// Copyright 2022 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 // protoc v3.21.9 // source: google/cloud/orchestration/airflow/service/v1beta1/environments.proto package service import ( context "context" reflect "reflect" sync "sync" _ "google.golang.org/genproto/googleapis/api/annotations" longrunning "google.golang.org/genproto/googleapis/longrunning" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" timestamppb "google.golang.org/protobuf/types/known/timestamppb" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) // The size of the Cloud Composer environment. type EnvironmentConfig_EnvironmentSize int32 const ( // The size of the environment is unspecified. EnvironmentConfig_ENVIRONMENT_SIZE_UNSPECIFIED EnvironmentConfig_EnvironmentSize = 0 // The environment size is small. EnvironmentConfig_ENVIRONMENT_SIZE_SMALL EnvironmentConfig_EnvironmentSize = 1 // The environment size is medium. EnvironmentConfig_ENVIRONMENT_SIZE_MEDIUM EnvironmentConfig_EnvironmentSize = 2 // The environment size is large. EnvironmentConfig_ENVIRONMENT_SIZE_LARGE EnvironmentConfig_EnvironmentSize = 3 ) // Enum value maps for EnvironmentConfig_EnvironmentSize. var ( EnvironmentConfig_EnvironmentSize_name = map[int32]string{ 0: "ENVIRONMENT_SIZE_UNSPECIFIED", 1: "ENVIRONMENT_SIZE_SMALL", 2: "ENVIRONMENT_SIZE_MEDIUM", 3: "ENVIRONMENT_SIZE_LARGE", } EnvironmentConfig_EnvironmentSize_value = map[string]int32{ "ENVIRONMENT_SIZE_UNSPECIFIED": 0, "ENVIRONMENT_SIZE_SMALL": 1, "ENVIRONMENT_SIZE_MEDIUM": 2, "ENVIRONMENT_SIZE_LARGE": 3, } ) func (x EnvironmentConfig_EnvironmentSize) Enum() *EnvironmentConfig_EnvironmentSize { p := new(EnvironmentConfig_EnvironmentSize) *p = x return p } func (x EnvironmentConfig_EnvironmentSize) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (EnvironmentConfig_EnvironmentSize) Descriptor() protoreflect.EnumDescriptor { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_enumTypes[0].Descriptor() } func (EnvironmentConfig_EnvironmentSize) Type() protoreflect.EnumType { return &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_enumTypes[0] } func (x EnvironmentConfig_EnvironmentSize) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use EnvironmentConfig_EnvironmentSize.Descriptor instead. func (EnvironmentConfig_EnvironmentSize) EnumDescriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{13, 0} } // Represents connection type between Composer environment in Customer // Project and the corresponding Tenant project, from a predefined list // of available connection modes. type NetworkingConfig_ConnectionType int32 const ( // No specific connection type was requested, so the environment uses // the default value corresponding to the rest of its configuration. NetworkingConfig_CONNECTION_TYPE_UNSPECIFIED NetworkingConfig_ConnectionType = 0 // Requests the use of VPC peerings for connecting the Customer and Tenant // projects. NetworkingConfig_VPC_PEERING NetworkingConfig_ConnectionType = 1 // Requests the use of Private Service Connect for connecting the Customer // and Tenant projects. NetworkingConfig_PRIVATE_SERVICE_CONNECT NetworkingConfig_ConnectionType = 2 ) // Enum value maps for NetworkingConfig_ConnectionType. var ( NetworkingConfig_ConnectionType_name = map[int32]string{ 0: "CONNECTION_TYPE_UNSPECIFIED", 1: "VPC_PEERING", 2: "PRIVATE_SERVICE_CONNECT", } NetworkingConfig_ConnectionType_value = map[string]int32{ "CONNECTION_TYPE_UNSPECIFIED": 0, "VPC_PEERING": 1, "PRIVATE_SERVICE_CONNECT": 2, } ) func (x NetworkingConfig_ConnectionType) Enum() *NetworkingConfig_ConnectionType { p := new(NetworkingConfig_ConnectionType) *p = x return p } func (x NetworkingConfig_ConnectionType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (NetworkingConfig_ConnectionType) Descriptor() protoreflect.EnumDescriptor { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_enumTypes[1].Descriptor() } func (NetworkingConfig_ConnectionType) Type() protoreflect.EnumType { return &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_enumTypes[1] } func (x NetworkingConfig_ConnectionType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use NetworkingConfig_ConnectionType.Descriptor instead. func (NetworkingConfig_ConnectionType) EnumDescriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{19, 0} } // State of the environment. type Environment_State int32 const ( // The state of the environment is unknown. Environment_STATE_UNSPECIFIED Environment_State = 0 // The environment is in the process of being created. Environment_CREATING Environment_State = 1 // The environment is currently running and healthy. It is ready for use. Environment_RUNNING Environment_State = 2 // The environment is being updated. It remains usable but cannot receive // additional update requests or be deleted at this time. Environment_UPDATING Environment_State = 3 // The environment is undergoing deletion. It cannot be used. Environment_DELETING Environment_State = 4 // The environment has encountered an error and cannot be used. Environment_ERROR Environment_State = 5 ) // Enum value maps for Environment_State. var ( Environment_State_name = map[int32]string{ 0: "STATE_UNSPECIFIED", 1: "CREATING", 2: "RUNNING", 3: "UPDATING", 4: "DELETING", 5: "ERROR", } Environment_State_value = map[string]int32{ "STATE_UNSPECIFIED": 0, "CREATING": 1, "RUNNING": 2, "UPDATING": 3, "DELETING": 4, "ERROR": 5, } ) func (x Environment_State) Enum() *Environment_State { p := new(Environment_State) *p = x return p } func (x Environment_State) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Environment_State) Descriptor() protoreflect.EnumDescriptor { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_enumTypes[2].Descriptor() } func (Environment_State) Type() protoreflect.EnumType { return &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_enumTypes[2] } func (x Environment_State) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Environment_State.Descriptor instead. func (Environment_State) EnumDescriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{30, 0} } // Whether there were python modules conflict during image build. type CheckUpgradeResponse_ConflictResult int32 const ( // It is unknown whether build had conflicts or not. CheckUpgradeResponse_CONFLICT_RESULT_UNSPECIFIED CheckUpgradeResponse_ConflictResult = 0 // There were python packages conflicts. CheckUpgradeResponse_CONFLICT CheckUpgradeResponse_ConflictResult = 1 // There were no python packages conflicts. CheckUpgradeResponse_NO_CONFLICT CheckUpgradeResponse_ConflictResult = 2 ) // Enum value maps for CheckUpgradeResponse_ConflictResult. var ( CheckUpgradeResponse_ConflictResult_name = map[int32]string{ 0: "CONFLICT_RESULT_UNSPECIFIED", 1: "CONFLICT", 2: "NO_CONFLICT", } CheckUpgradeResponse_ConflictResult_value = map[string]int32{ "CONFLICT_RESULT_UNSPECIFIED": 0, "CONFLICT": 1, "NO_CONFLICT": 2, } ) func (x CheckUpgradeResponse_ConflictResult) Enum() *CheckUpgradeResponse_ConflictResult { p := new(CheckUpgradeResponse_ConflictResult) *p = x return p } func (x CheckUpgradeResponse_ConflictResult) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (CheckUpgradeResponse_ConflictResult) Descriptor() protoreflect.EnumDescriptor { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_enumTypes[3].Descriptor() } func (CheckUpgradeResponse_ConflictResult) Type() protoreflect.EnumType { return &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_enumTypes[3] } func (x CheckUpgradeResponse_ConflictResult) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use CheckUpgradeResponse_ConflictResult.Descriptor instead. func (CheckUpgradeResponse_ConflictResult) EnumDescriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{32, 0} } // Create a new environment. type CreateEnvironmentRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The parent must be of the form // "projects/{projectId}/locations/{locationId}". Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` // The environment to create. Environment *Environment `protobuf:"bytes,2,opt,name=environment,proto3" json:"environment,omitempty"` } func (x *CreateEnvironmentRequest) Reset() { *x = CreateEnvironmentRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CreateEnvironmentRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CreateEnvironmentRequest) ProtoMessage() {} func (x *CreateEnvironmentRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CreateEnvironmentRequest.ProtoReflect.Descriptor instead. func (*CreateEnvironmentRequest) Descriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{0} } func (x *CreateEnvironmentRequest) GetParent() string { if x != nil { return x.Parent } return "" } func (x *CreateEnvironmentRequest) GetEnvironment() *Environment { if x != nil { return x.Environment } return nil } // Get an environment. type GetEnvironmentRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The resource name of the environment to get, in the form: // "projects/{projectId}/locations/{locationId}/environments/{environmentId}" Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` } func (x *GetEnvironmentRequest) Reset() { *x = GetEnvironmentRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetEnvironmentRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetEnvironmentRequest) ProtoMessage() {} func (x *GetEnvironmentRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetEnvironmentRequest.ProtoReflect.Descriptor instead. func (*GetEnvironmentRequest) Descriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{1} } func (x *GetEnvironmentRequest) GetName() string { if x != nil { return x.Name } return "" } // List environments in a project and location. type ListEnvironmentsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // List environments in the given project and location, in the form: // "projects/{projectId}/locations/{locationId}" Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` // The maximum number of environments to return. PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` // The next_page_token value returned from a previous List request, if any. PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` } func (x *ListEnvironmentsRequest) Reset() { *x = ListEnvironmentsRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListEnvironmentsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListEnvironmentsRequest) ProtoMessage() {} func (x *ListEnvironmentsRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ListEnvironmentsRequest.ProtoReflect.Descriptor instead. func (*ListEnvironmentsRequest) Descriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{2} } func (x *ListEnvironmentsRequest) GetParent() string { if x != nil { return x.Parent } return "" } func (x *ListEnvironmentsRequest) GetPageSize() int32 { if x != nil { return x.PageSize } return 0 } func (x *ListEnvironmentsRequest) GetPageToken() string { if x != nil { return x.PageToken } return "" } // The environments in a project and location. type ListEnvironmentsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The list of environments returned by a ListEnvironmentsRequest. Environments []*Environment `protobuf:"bytes,1,rep,name=environments,proto3" json:"environments,omitempty"` // The page token used to query for the next page if one exists. NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` } func (x *ListEnvironmentsResponse) Reset() { *x = ListEnvironmentsResponse{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListEnvironmentsResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListEnvironmentsResponse) ProtoMessage() {} func (x *ListEnvironmentsResponse) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ListEnvironmentsResponse.ProtoReflect.Descriptor instead. func (*ListEnvironmentsResponse) Descriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{3} } func (x *ListEnvironmentsResponse) GetEnvironments() []*Environment { if x != nil { return x.Environments } return nil } func (x *ListEnvironmentsResponse) GetNextPageToken() string { if x != nil { return x.NextPageToken } return "" } // Delete an environment. type DeleteEnvironmentRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The environment to delete, in the form: // "projects/{projectId}/locations/{locationId}/environments/{environmentId}" Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` } func (x *DeleteEnvironmentRequest) Reset() { *x = DeleteEnvironmentRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeleteEnvironmentRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeleteEnvironmentRequest) ProtoMessage() {} func (x *DeleteEnvironmentRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DeleteEnvironmentRequest.ProtoReflect.Descriptor instead. func (*DeleteEnvironmentRequest) Descriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{4} } func (x *DeleteEnvironmentRequest) GetName() string { if x != nil { return x.Name } return "" } // Update an environment. type UpdateEnvironmentRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The relative resource name of the environment to update, in the form: // "projects/{projectId}/locations/{locationId}/environments/{environmentId}" Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // A patch environment. Fields specified by the `updateMask` will be copied // from the patch environment into the environment under update. Environment *Environment `protobuf:"bytes,1,opt,name=environment,proto3" json:"environment,omitempty"` // Required. A comma-separated list of paths, relative to `Environment`, of // fields to update. // For example, to set the version of scikit-learn to install in the // environment to 0.19.0 and to remove an existing installation of // argparse, the `updateMask` parameter would include the following two // `paths` values: "config.softwareConfig.pypiPackages.scikit-learn" and // "config.softwareConfig.pypiPackages.argparse". The included patch // environment would specify the scikit-learn version as follows: // // { // "config":{ // "softwareConfig":{ // "pypiPackages":{ // "scikit-learn":"==0.19.0" // } // } // } // } // // Note that in the above example, any existing PyPI packages // other than scikit-learn and argparse will be unaffected. // // Only one update type may be included in a single request's `updateMask`. // For example, one cannot update both the PyPI packages and // labels in the same request. However, it is possible to update multiple // members of a map field simultaneously in the same request. For example, // to set the labels "label1" and "label2" while clearing "label3" (assuming // it already exists), one can // provide the paths "labels.label1", "labels.label2", and "labels.label3" // and populate the patch environment as follows: // // { // "labels":{ // "label1":"new-label1-value" // "label2":"new-label2-value" // } // } // // Note that in the above example, any existing labels that are not // included in the `updateMask` will be unaffected. // // It is also possible to replace an entire map field by providing the // map field's path in the `updateMask`. The new value of the field will // be that which is provided in the patch environment. For example, to // delete all pre-existing user-specified PyPI packages and // install botocore at version 1.7.14, the `updateMask` would contain // the path "config.softwareConfig.pypiPackages", and // the patch environment would be the following: // // { // "config":{ // "softwareConfig":{ // "pypiPackages":{ // "botocore":"==1.7.14" // } // } // } // } // // **Note:** Only the following fields can be updated: // // * `config.softwareConfig.pypiPackages` // - Replace all custom custom PyPI packages. If a replacement // package map is not included in `environment`, all custom // PyPI packages are cleared. It is an error to provide both // this mask and a mask specifying an individual package. // // * `config.softwareConfig.pypiPackages.`packagename // - Update the custom PyPI package *packagename*, // preserving other packages. To delete the package, include it in // `updateMask`, and omit the mapping for it in // `environment.config.softwareConfig.pypiPackages`. It is an error // to provide both a mask of this form and the // `config.softwareConfig.pypiPackages` mask. // // * `labels` // - Replace all environment labels. If a replacement labels map is not // included in `environment`, all labels are cleared. It is an error to // provide both this mask and a mask specifying one or more individual // labels. // // * `labels.`labelName // - Set the label named *labelName*, while preserving other // labels. To delete the label, include it in `updateMask` and omit its // mapping in `environment.labels`. It is an error to provide both a // mask of this form and the `labels` mask. // // * `config.nodeCount` // - Horizontally scale the number of nodes in the environment. An integer // greater than or equal to 3 must be provided in the `config.nodeCount` // field. Supported for Cloud Composer environments in versions // composer-1.*.*-airflow-*.*.*. // // * `config.webServerNetworkAccessControl` // - Replace the environment's current WebServerNetworkAccessControl. // // * `config.softwareConfig.airflowConfigOverrides` // - Replace all Apache Airflow config overrides. If a replacement config // overrides map is not included in `environment`, all config overrides // are cleared. // It is an error to provide both this mask and a mask specifying one or // more individual config overrides. // // * `config.softwareConfig.airflowConfigOverrides.`section-name // - Override the Apache Airflow config property *name* in the // section named *section*, preserving other properties. To // delete the property override, include it in `updateMask` and omit its // mapping in // `environment.config.softwareConfig.airflowConfigOverrides`. // It is an error to provide both a mask of this form and the // `config.softwareConfig.airflowConfigOverrides` mask. // // * `config.softwareConfig.envVariables` // - Replace all environment variables. If a replacement environment // variable map is not included in `environment`, all custom environment // variables are cleared. // // * `config.softwareConfig.imageVersion` // - Upgrade the version of the environment in-place. Refer to // `SoftwareConfig.image_version` for information on how to format the // new image version. Additionally, the new image version cannot effect // a version downgrade, and must match the current image version's // Composer and Airflow major versions. Consult the [Cloud Composer // version list](/composer/docs/concepts/versioning/composer-versions) // for valid values. // // * `config.softwareConfig.schedulerCount` // - Horizontally scale the number of schedulers in Airflow. A positive // integer not greater than the number of nodes must be provided in the // `config.softwareConfig.schedulerCount` field. Supported for Cloud // Composer environments in versions composer-1.*.*-airflow-2.*.*. // // * `config.softwareConfig.cloudDataLineageIntegration` // - Configuration for Cloud Data Lineage integration. // // * `config.databaseConfig.machineType` // - Cloud SQL machine type used by Airflow database. // It has to be one of: db-n1-standard-2, db-n1-standard-4, // db-n1-standard-8 or db-n1-standard-16. Supported for Cloud Composer // environments in versions composer-1.*.*-airflow-*.*.*. // // * `config.webServerConfig.machineType` // - Machine type on which Airflow web server is running. // It has to be one of: composer-n1-webserver-2, composer-n1-webserver-4 // or composer-n1-webserver-8. Supported for Cloud Composer environments // in versions composer-1.*.*-airflow-*.*.*. // // * `config.maintenanceWindow` // - Maintenance window during which Cloud Composer components may be // under maintenance. // // * `config.workloadsConfig` // - The workloads configuration settings for the GKE cluster associated // with the Cloud Composer environment. Supported for Cloud Composer // environments in versions composer-2.*.*-airflow-*.*.* and newer. // // * `config.environmentSize` // - The size of the Cloud Composer environment. Supported for Cloud // Composer environments in versions composer-2.*.*-airflow-*.*.* and // newer. UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` } func (x *UpdateEnvironmentRequest) Reset() { *x = UpdateEnvironmentRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateEnvironmentRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateEnvironmentRequest) ProtoMessage() {} func (x *UpdateEnvironmentRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UpdateEnvironmentRequest.ProtoReflect.Descriptor instead. func (*UpdateEnvironmentRequest) Descriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{5} } func (x *UpdateEnvironmentRequest) GetName() string { if x != nil { return x.Name } return "" } func (x *UpdateEnvironmentRequest) GetEnvironment() *Environment { if x != nil { return x.Environment } return nil } func (x *UpdateEnvironmentRequest) GetUpdateMask() *fieldmaskpb.FieldMask { if x != nil { return x.UpdateMask } return nil } // Restart Airflow web server. type RestartWebServerRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The resource name of the environment to restart the web server for, in the // form: // "projects/{projectId}/locations/{locationId}/environments/{environmentId}" Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` } func (x *RestartWebServerRequest) Reset() { *x = RestartWebServerRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RestartWebServerRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*RestartWebServerRequest) ProtoMessage() {} func (x *RestartWebServerRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RestartWebServerRequest.ProtoReflect.Descriptor instead. func (*RestartWebServerRequest) Descriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{6} } func (x *RestartWebServerRequest) GetName() string { if x != nil { return x.Name } return "" } // Response to ExecuteAirflowCommandRequest. type ExecuteAirflowCommandResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The unique ID of the command execution for polling. ExecutionId string `protobuf:"bytes,1,opt,name=execution_id,json=executionId,proto3" json:"execution_id,omitempty"` // The name of the pod where the command is executed. Pod string `protobuf:"bytes,2,opt,name=pod,proto3" json:"pod,omitempty"` // The namespace of the pod where the command is executed. PodNamespace string `protobuf:"bytes,3,opt,name=pod_namespace,json=podNamespace,proto3" json:"pod_namespace,omitempty"` // Error message. Empty if there was no error. Error string `protobuf:"bytes,4,opt,name=error,proto3" json:"error,omitempty"` } func (x *ExecuteAirflowCommandResponse) Reset() { *x = ExecuteAirflowCommandResponse{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ExecuteAirflowCommandResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ExecuteAirflowCommandResponse) ProtoMessage() {} func (x *ExecuteAirflowCommandResponse) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ExecuteAirflowCommandResponse.ProtoReflect.Descriptor instead. func (*ExecuteAirflowCommandResponse) Descriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{7} } func (x *ExecuteAirflowCommandResponse) GetExecutionId() string { if x != nil { return x.ExecutionId } return "" } func (x *ExecuteAirflowCommandResponse) GetPod() string { if x != nil { return x.Pod } return "" } func (x *ExecuteAirflowCommandResponse) GetPodNamespace() string { if x != nil { return x.PodNamespace } return "" } func (x *ExecuteAirflowCommandResponse) GetError() string { if x != nil { return x.Error } return "" } // Response to PollAirflowCommandRequest. type PollAirflowCommandResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Output from the command execution. It may not contain the full output // and the caller may need to poll for more lines. Output []*PollAirflowCommandResponse_Line `protobuf:"bytes,1,rep,name=output,proto3" json:"output,omitempty"` // Whether the command execution has finished and there is no more output. OutputEnd bool `protobuf:"varint,2,opt,name=output_end,json=outputEnd,proto3" json:"output_end,omitempty"` // The result exit status of the command. ExitInfo *PollAirflowCommandResponse_ExitInfo `protobuf:"bytes,3,opt,name=exit_info,json=exitInfo,proto3" json:"exit_info,omitempty"` } func (x *PollAirflowCommandResponse) Reset() { *x = PollAirflowCommandResponse{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PollAirflowCommandResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*PollAirflowCommandResponse) ProtoMessage() {} func (x *PollAirflowCommandResponse) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PollAirflowCommandResponse.ProtoReflect.Descriptor instead. func (*PollAirflowCommandResponse) Descriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{8} } func (x *PollAirflowCommandResponse) GetOutput() []*PollAirflowCommandResponse_Line { if x != nil { return x.Output } return nil } func (x *PollAirflowCommandResponse) GetOutputEnd() bool { if x != nil { return x.OutputEnd } return false } func (x *PollAirflowCommandResponse) GetExitInfo() *PollAirflowCommandResponse_ExitInfo { if x != nil { return x.ExitInfo } return nil } // Request to create a snapshot of a Cloud Composer environment. type SaveSnapshotRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The resource name of the source environment in the form: // "projects/{projectId}/locations/{locationId}/environments/{environmentId}" Environment string `protobuf:"bytes,1,opt,name=environment,proto3" json:"environment,omitempty"` // Location in a Cloud Storage where the snapshot is going to be stored, e.g.: // "gs://my-bucket/snapshots". SnapshotLocation string `protobuf:"bytes,2,opt,name=snapshot_location,json=snapshotLocation,proto3" json:"snapshot_location,omitempty"` } func (x *SaveSnapshotRequest) Reset() { *x = SaveSnapshotRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SaveSnapshotRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*SaveSnapshotRequest) ProtoMessage() {} func (x *SaveSnapshotRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SaveSnapshotRequest.ProtoReflect.Descriptor instead. func (*SaveSnapshotRequest) Descriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{9} } func (x *SaveSnapshotRequest) GetEnvironment() string { if x != nil { return x.Environment } return "" } func (x *SaveSnapshotRequest) GetSnapshotLocation() string { if x != nil { return x.SnapshotLocation } return "" } // Response to SaveSnapshotRequest. type SaveSnapshotResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The fully-resolved Cloud Storage path of the created snapshot, // e.g.: // "gs://my-bucket/snapshots/project_location_environment_timestamp". // This field is populated only if the snapshot creation was successful. SnapshotPath string `protobuf:"bytes,1,opt,name=snapshot_path,json=snapshotPath,proto3" json:"snapshot_path,omitempty"` } func (x *SaveSnapshotResponse) Reset() { *x = SaveSnapshotResponse{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SaveSnapshotResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*SaveSnapshotResponse) ProtoMessage() {} func (x *SaveSnapshotResponse) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SaveSnapshotResponse.ProtoReflect.Descriptor instead. func (*SaveSnapshotResponse) Descriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{10} } func (x *SaveSnapshotResponse) GetSnapshotPath() string { if x != nil { return x.SnapshotPath } return "" } // Request to load a snapshot into a Cloud Composer environment. type LoadSnapshotRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The resource name of the target environment in the form: // "projects/{projectId}/locations/{locationId}/environments/{environmentId}" Environment string `protobuf:"bytes,1,opt,name=environment,proto3" json:"environment,omitempty"` // A Cloud Storage path to a snapshot to load, e.g.: // "gs://my-bucket/snapshots/project_location_environment_timestamp". SnapshotPath string `protobuf:"bytes,2,opt,name=snapshot_path,json=snapshotPath,proto3" json:"snapshot_path,omitempty"` // Whether or not to skip installing Pypi packages when loading the // environment's state. SkipPypiPackagesInstallation bool `protobuf:"varint,3,opt,name=skip_pypi_packages_installation,json=skipPypiPackagesInstallation,proto3" json:"skip_pypi_packages_installation,omitempty"` // Whether or not to skip setting environment variables when loading the // environment's state. SkipEnvironmentVariablesSetting bool `protobuf:"varint,4,opt,name=skip_environment_variables_setting,json=skipEnvironmentVariablesSetting,proto3" json:"skip_environment_variables_setting,omitempty"` // Whether or not to skip setting Airflow overrides when loading the // environment's state. SkipAirflowOverridesSetting bool `protobuf:"varint,5,opt,name=skip_airflow_overrides_setting,json=skipAirflowOverridesSetting,proto3" json:"skip_airflow_overrides_setting,omitempty"` // Whether or not to skip copying Cloud Storage data when loading the // environment's state. SkipGcsDataCopying bool `protobuf:"varint,6,opt,name=skip_gcs_data_copying,json=skipGcsDataCopying,proto3" json:"skip_gcs_data_copying,omitempty"` } func (x *LoadSnapshotRequest) Reset() { *x = LoadSnapshotRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LoadSnapshotRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*LoadSnapshotRequest) ProtoMessage() {} func (x *LoadSnapshotRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use LoadSnapshotRequest.ProtoReflect.Descriptor instead. func (*LoadSnapshotRequest) Descriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{11} } func (x *LoadSnapshotRequest) GetEnvironment() string { if x != nil { return x.Environment } return "" } func (x *LoadSnapshotRequest) GetSnapshotPath() string { if x != nil { return x.SnapshotPath } return "" } func (x *LoadSnapshotRequest) GetSkipPypiPackagesInstallation() bool { if x != nil { return x.SkipPypiPackagesInstallation } return false } func (x *LoadSnapshotRequest) GetSkipEnvironmentVariablesSetting() bool { if x != nil { return x.SkipEnvironmentVariablesSetting } return false } func (x *LoadSnapshotRequest) GetSkipAirflowOverridesSetting() bool { if x != nil { return x.SkipAirflowOverridesSetting } return false } func (x *LoadSnapshotRequest) GetSkipGcsDataCopying() bool { if x != nil { return x.SkipGcsDataCopying } return false } // Response to LoadSnapshotRequest. type LoadSnapshotResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *LoadSnapshotResponse) Reset() { *x = LoadSnapshotResponse{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LoadSnapshotResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*LoadSnapshotResponse) ProtoMessage() {} func (x *LoadSnapshotResponse) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use LoadSnapshotResponse.ProtoReflect.Descriptor instead. func (*LoadSnapshotResponse) Descriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{12} } // Configuration information for an environment. type EnvironmentConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Output only. The Kubernetes Engine cluster used to run this environment. GkeCluster string `protobuf:"bytes,1,opt,name=gke_cluster,json=gkeCluster,proto3" json:"gke_cluster,omitempty"` // Output only. The Cloud Storage prefix of the DAGs for this environment. // Although Cloud Storage objects reside in a flat namespace, a hierarchical // file tree can be simulated using "/"-delimited object name prefixes. DAG // objects for this environment reside in a simulated directory with the given // prefix. DagGcsPrefix string `protobuf:"bytes,2,opt,name=dag_gcs_prefix,json=dagGcsPrefix,proto3" json:"dag_gcs_prefix,omitempty"` // The number of nodes in the Kubernetes Engine cluster that will be // used to run this environment. // // This field is supported for Cloud Composer environments in versions // composer-1.*.*-airflow-*.*.*. NodeCount int32 `protobuf:"varint,3,opt,name=node_count,json=nodeCount,proto3" json:"node_count,omitempty"` // The configuration settings for software inside the environment. SoftwareConfig *SoftwareConfig `protobuf:"bytes,4,opt,name=software_config,json=softwareConfig,proto3" json:"software_config,omitempty"` // The configuration used for the Kubernetes Engine cluster. NodeConfig *NodeConfig `protobuf:"bytes,5,opt,name=node_config,json=nodeConfig,proto3" json:"node_config,omitempty"` // The configuration used for the Private IP Cloud Composer environment. PrivateEnvironmentConfig *PrivateEnvironmentConfig `protobuf:"bytes,7,opt,name=private_environment_config,json=privateEnvironmentConfig,proto3" json:"private_environment_config,omitempty"` // Optional. The network-level access control policy for the Airflow web // server. If unspecified, no network-level access restrictions will be // applied. WebServerNetworkAccessControl *WebServerNetworkAccessControl `protobuf:"bytes,9,opt,name=web_server_network_access_control,json=webServerNetworkAccessControl,proto3" json:"web_server_network_access_control,omitempty"` // Optional. The configuration settings for Cloud SQL instance used internally // by Apache Airflow software. DatabaseConfig *DatabaseConfig `protobuf:"bytes,10,opt,name=database_config,json=databaseConfig,proto3" json:"database_config,omitempty"` // Optional. The configuration settings for the Airflow web server App Engine // instance. // // This field is supported for Cloud Composer environments in versions // composer-1.*.*-airflow-*.*.*. WebServerConfig *WebServerConfig `protobuf:"bytes,11,opt,name=web_server_config,json=webServerConfig,proto3" json:"web_server_config,omitempty"` // Output only. The URI of the Apache Airflow Web UI hosted within this // environment (see [Airflow web // interface](/composer/docs/how-to/accessing/airflow-web-interface)). AirflowUri string `protobuf:"bytes,6,opt,name=airflow_uri,json=airflowUri,proto3" json:"airflow_uri,omitempty"` // Optional. The encryption options for the Cloud Composer environment and its // dependencies. Cannot be updated. EncryptionConfig *EncryptionConfig `protobuf:"bytes,12,opt,name=encryption_config,json=encryptionConfig,proto3" json:"encryption_config,omitempty"` // Optional. The maintenance window is the period when Cloud Composer // components may undergo maintenance. It is defined so that maintenance is // not executed during peak hours or critical time periods. // // The system will not be under maintenance for every occurrence of this // window, but when maintenance is planned, it will be scheduled // during the window. // // The maintenance window period must encompass at least 12 hours per week. // This may be split into multiple chunks, each with a size of // at least 4 hours. // // If this value is omitted, Cloud Composer components may be subject to // maintenance at any time. MaintenanceWindow *MaintenanceWindow `protobuf:"bytes,13,opt,name=maintenance_window,json=maintenanceWindow,proto3" json:"maintenance_window,omitempty"` // Optional. The workloads configuration settings for the GKE cluster // associated with the Cloud Composer environment. The GKE cluster runs // Airflow scheduler, web server and workers workloads. // // This field is supported for Cloud Composer environments in versions // composer-2.*.*-airflow-*.*.* and newer. WorkloadsConfig *WorkloadsConfig `protobuf:"bytes,15,opt,name=workloads_config,json=workloadsConfig,proto3" json:"workloads_config,omitempty"` // Optional. The size of the Cloud Composer environment. // // This field is supported for Cloud Composer environments in versions // composer-2.*.*-airflow-*.*.* and newer. EnvironmentSize EnvironmentConfig_EnvironmentSize `protobuf:"varint,16,opt,name=environment_size,json=environmentSize,proto3,enum=google.cloud.orchestration.airflow.service.v1beta1.EnvironmentConfig_EnvironmentSize" json:"environment_size,omitempty"` // Optional. The configuration options for GKE cluster master authorized // networks. By default master authorized networks feature is: // - in case of private environment: enabled with no external networks // allowlisted. // - in case of public environment: disabled. MasterAuthorizedNetworksConfig *MasterAuthorizedNetworksConfig `protobuf:"bytes,17,opt,name=master_authorized_networks_config,json=masterAuthorizedNetworksConfig,proto3" json:"master_authorized_networks_config,omitempty"` // Optional. The Recovery settings configuration of an environment. // // This field is supported for Cloud Composer environments in versions // composer-2.*.*-airflow-*.*.* and newer. RecoveryConfig *RecoveryConfig `protobuf:"bytes,18,opt,name=recovery_config,json=recoveryConfig,proto3" json:"recovery_config,omitempty"` } func (x *EnvironmentConfig) Reset() { *x = EnvironmentConfig{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *EnvironmentConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*EnvironmentConfig) ProtoMessage() {} func (x *EnvironmentConfig) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use EnvironmentConfig.ProtoReflect.Descriptor instead. func (*EnvironmentConfig) Descriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{13} } func (x *EnvironmentConfig) GetGkeCluster() string { if x != nil { return x.GkeCluster } return "" } func (x *EnvironmentConfig) GetDagGcsPrefix() string { if x != nil { return x.DagGcsPrefix } return "" } func (x *EnvironmentConfig) GetNodeCount() int32 { if x != nil { return x.NodeCount } return 0 } func (x *EnvironmentConfig) GetSoftwareConfig() *SoftwareConfig { if x != nil { return x.SoftwareConfig } return nil } func (x *EnvironmentConfig) GetNodeConfig() *NodeConfig { if x != nil { return x.NodeConfig } return nil } func (x *EnvironmentConfig) GetPrivateEnvironmentConfig() *PrivateEnvironmentConfig { if x != nil { return x.PrivateEnvironmentConfig } return nil } func (x *EnvironmentConfig) GetWebServerNetworkAccessControl() *WebServerNetworkAccessControl { if x != nil { return x.WebServerNetworkAccessControl } return nil } func (x *EnvironmentConfig) GetDatabaseConfig() *DatabaseConfig { if x != nil { return x.DatabaseConfig } return nil } func (x *EnvironmentConfig) GetWebServerConfig() *WebServerConfig { if x != nil { return x.WebServerConfig } return nil } func (x *EnvironmentConfig) GetAirflowUri() string { if x != nil { return x.AirflowUri } return "" } func (x *EnvironmentConfig) GetEncryptionConfig() *EncryptionConfig { if x != nil { return x.EncryptionConfig } return nil } func (x *EnvironmentConfig) GetMaintenanceWindow() *MaintenanceWindow { if x != nil { return x.MaintenanceWindow } return nil } func (x *EnvironmentConfig) GetWorkloadsConfig() *WorkloadsConfig { if x != nil { return x.WorkloadsConfig } return nil } func (x *EnvironmentConfig) GetEnvironmentSize() EnvironmentConfig_EnvironmentSize { if x != nil { return x.EnvironmentSize } return EnvironmentConfig_ENVIRONMENT_SIZE_UNSPECIFIED } func (x *EnvironmentConfig) GetMasterAuthorizedNetworksConfig() *MasterAuthorizedNetworksConfig { if x != nil { return x.MasterAuthorizedNetworksConfig } return nil } func (x *EnvironmentConfig) GetRecoveryConfig() *RecoveryConfig { if x != nil { return x.RecoveryConfig } return nil } // Network-level access control policy for the Airflow web server. type WebServerNetworkAccessControl struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // A collection of allowed IP ranges with descriptions. AllowedIpRanges []*WebServerNetworkAccessControl_AllowedIpRange `protobuf:"bytes,1,rep,name=allowed_ip_ranges,json=allowedIpRanges,proto3" json:"allowed_ip_ranges,omitempty"` } func (x *WebServerNetworkAccessControl) Reset() { *x = WebServerNetworkAccessControl{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WebServerNetworkAccessControl) String() string { return protoimpl.X.MessageStringOf(x) } func (*WebServerNetworkAccessControl) ProtoMessage() {} func (x *WebServerNetworkAccessControl) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WebServerNetworkAccessControl.ProtoReflect.Descriptor instead. func (*WebServerNetworkAccessControl) Descriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{14} } func (x *WebServerNetworkAccessControl) GetAllowedIpRanges() []*WebServerNetworkAccessControl_AllowedIpRange { if x != nil { return x.AllowedIpRanges } return nil } // Specifies the selection and configuration of software inside the environment. type SoftwareConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The version of the software running in the environment. // This encapsulates both the version of Cloud Composer functionality and the // version of Apache Airflow. It must match the regular expression // `composer-([0-9]+(\.[0-9]+\.[0-9]+(-preview\.[0-9]+)?)?|latest)-airflow-([0-9]+(\.[0-9]+(\.[0-9]+)?)?)`. // When used as input, the server also checks if the provided version is // supported and denies the request for an unsupported version. // // The Cloud Composer portion of the image version is a full // [semantic version](https://semver.org), or an alias in the form of major // version number or `latest`. When an alias is provided, the server replaces // it with the current Cloud Composer version that satisfies the alias. // // The Apache Airflow portion of the image version is a full semantic version // that points to one of the supported Apache Airflow versions, or an alias in // the form of only major or major.minor versions specified. When an alias is // provided, the server replaces it with the latest Apache Airflow version // that satisfies the alias and is supported in the given Cloud Composer // version. // // In all cases, the resolved image version is stored in the same field. // // See also [version // list](/composer/docs/concepts/versioning/composer-versions) and [versioning // overview](/composer/docs/concepts/versioning/composer-versioning-overview). ImageVersion string `protobuf:"bytes,1,opt,name=image_version,json=imageVersion,proto3" json:"image_version,omitempty"` // Optional. Apache Airflow configuration properties to override. // // Property keys contain the section and property names, separated by a // hyphen, for example "core-dags_are_paused_at_creation". Section names must // not contain hyphens ("-"), opening square brackets ("["), or closing // square brackets ("]"). The property name must not be empty and must not // contain an equals sign ("=") or semicolon (";"). Section and property names // must not contain a period ("."). Apache Airflow configuration property // names must be written in // [snake_case](https://en.wikipedia.org/wiki/Snake_case). Property values can // contain any character, and can be written in any lower/upper case format. // // Certain Apache Airflow configuration property values are // [blocked](/composer/docs/concepts/airflow-configurations), // and cannot be overridden. AirflowConfigOverrides map[string]string `protobuf:"bytes,2,rep,name=airflow_config_overrides,json=airflowConfigOverrides,proto3" json:"airflow_config_overrides,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Optional. Custom Python Package Index (PyPI) packages to be installed in // the environment. // // Keys refer to the lowercase package name such as "numpy" // and values are the lowercase extras and version specifier such as // "==1.12.0", "[devel,gcp_api]", or "[devel]>=1.8.2, <1.9.2". To specify a // package without pinning it to a version specifier, use the empty string as // the value. PypiPackages map[string]string `protobuf:"bytes,3,rep,name=pypi_packages,json=pypiPackages,proto3" json:"pypi_packages,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Optional. Additional environment variables to provide to the Apache Airflow // scheduler, worker, and webserver processes. // // Environment variable names must match the regular expression // `[a-zA-Z_][a-zA-Z0-9_]*`. They cannot specify Apache Airflow // software configuration overrides (they cannot match the regular expression // `AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+`), and they cannot match any of the // following reserved names: // // * `AIRFLOW_HOME` // * `C_FORCE_ROOT` // * `CONTAINER_NAME` // * `DAGS_FOLDER` // * `GCP_PROJECT` // * `GCS_BUCKET` // * `GKE_CLUSTER_NAME` // * `SQL_DATABASE` // * `SQL_INSTANCE` // * `SQL_PASSWORD` // * `SQL_PROJECT` // * `SQL_REGION` // * `SQL_USER` EnvVariables map[string]string `protobuf:"bytes,4,rep,name=env_variables,json=envVariables,proto3" json:"env_variables,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Optional. The major version of Python used to run the Apache Airflow // scheduler, worker, and webserver processes. // // Can be set to '2' or '3'. If not specified, the default is '3'. Cannot be // updated. // // This field is only supported for Cloud Composer environments in versions // composer-1.*.*-airflow-*.*.*. Environments in newer versions always use // Python major version 3. PythonVersion string `protobuf:"bytes,6,opt,name=python_version,json=pythonVersion,proto3" json:"python_version,omitempty"` // Optional. The number of schedulers for Airflow. // // This field is supported for Cloud Composer environments in versions // composer-1.*.*-airflow-2.*.*. SchedulerCount int32 `protobuf:"varint,7,opt,name=scheduler_count,json=schedulerCount,proto3" json:"scheduler_count,omitempty"` // Optional. The configuration for Cloud Data Lineage integration. CloudDataLineageIntegration *CloudDataLineageIntegration `protobuf:"bytes,8,opt,name=cloud_data_lineage_integration,json=cloudDataLineageIntegration,proto3" json:"cloud_data_lineage_integration,omitempty"` } func (x *SoftwareConfig) Reset() { *x = SoftwareConfig{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SoftwareConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*SoftwareConfig) ProtoMessage() {} func (x *SoftwareConfig) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SoftwareConfig.ProtoReflect.Descriptor instead. func (*SoftwareConfig) Descriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{15} } func (x *SoftwareConfig) GetImageVersion() string { if x != nil { return x.ImageVersion } return "" } func (x *SoftwareConfig) GetAirflowConfigOverrides() map[string]string { if x != nil { return x.AirflowConfigOverrides } return nil } func (x *SoftwareConfig) GetPypiPackages() map[string]string { if x != nil { return x.PypiPackages } return nil } func (x *SoftwareConfig) GetEnvVariables() map[string]string { if x != nil { return x.EnvVariables } return nil } func (x *SoftwareConfig) GetPythonVersion() string { if x != nil { return x.PythonVersion } return "" } func (x *SoftwareConfig) GetSchedulerCount() int32 { if x != nil { return x.SchedulerCount } return 0 } func (x *SoftwareConfig) GetCloudDataLineageIntegration() *CloudDataLineageIntegration { if x != nil { return x.CloudDataLineageIntegration } return nil } // Configuration for controlling how IPs are allocated in the // GKE cluster. type IPAllocationPolicy struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Optional. Whether or not to enable Alias IPs in the GKE cluster. // If `true`, a VPC-native cluster is created. // // This field is only supported for Cloud Composer environments in versions // composer-1.*.*-airflow-*.*.*. Environments in newer versions always use // VPC-native GKE clusters. UseIpAliases bool `protobuf:"varint,1,opt,name=use_ip_aliases,json=useIpAliases,proto3" json:"use_ip_aliases,omitempty"` // Optional. The name of the cluster's secondary range used to allocate // IP addresses to pods. Specify either `cluster_secondary_range_name` // or `cluster_ipv4_cidr_block` but not both. // // For Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*, // this field is applicable only when `use_ip_aliases` is true. ClusterSecondaryRangeName string `protobuf:"bytes,2,opt,name=cluster_secondary_range_name,json=clusterSecondaryRangeName,proto3" json:"cluster_secondary_range_name,omitempty"` // Optional. The name of the services' secondary range used to allocate // IP addresses to the cluster. Specify either `services_secondary_range_name` // or `services_ipv4_cidr_block` but not both. // // For Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*, // this field is applicable only when `use_ip_aliases` is true. ServicesSecondaryRangeName string `protobuf:"bytes,3,opt,name=services_secondary_range_name,json=servicesSecondaryRangeName,proto3" json:"services_secondary_range_name,omitempty"` // Optional. The IP address range used to allocate IP addresses to pods in // the cluster. // // For Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*, // this field is applicable only when `use_ip_aliases` is true. // // Set to blank to have GKE choose a range with the default size. // // Set to /netmask (e.g. `/14`) to have GKE choose a range with a specific // netmask. // // Set to a // [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) // notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. // `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range // to use. // Specify `cluster_secondary_range_name` or `cluster_ipv4_cidr_block` // but not both. ClusterIpv4CidrBlock string `protobuf:"bytes,4,opt,name=cluster_ipv4_cidr_block,json=clusterIpv4CidrBlock,proto3" json:"cluster_ipv4_cidr_block,omitempty"` // Optional. The IP address range of the services IP addresses in this // cluster. // // For Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*, // this field is applicable only when `use_ip_aliases` is true. // // Set to blank to have GKE choose a range with the default size. // // Set to /netmask (e.g. `/14`) to have GKE choose a range with a specific // netmask. // // Set to a // [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) // notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. // `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range // to use. // Specify `services_secondary_range_name` or `services_ipv4_cidr_block` // but not both. ServicesIpv4CidrBlock string `protobuf:"bytes,5,opt,name=services_ipv4_cidr_block,json=servicesIpv4CidrBlock,proto3" json:"services_ipv4_cidr_block,omitempty"` } func (x *IPAllocationPolicy) Reset() { *x = IPAllocationPolicy{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *IPAllocationPolicy) String() string { return protoimpl.X.MessageStringOf(x) } func (*IPAllocationPolicy) ProtoMessage() {} func (x *IPAllocationPolicy) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use IPAllocationPolicy.ProtoReflect.Descriptor instead. func (*IPAllocationPolicy) Descriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{16} } func (x *IPAllocationPolicy) GetUseIpAliases() bool { if x != nil { return x.UseIpAliases } return false } func (x *IPAllocationPolicy) GetClusterSecondaryRangeName() string { if x != nil { return x.ClusterSecondaryRangeName } return "" } func (x *IPAllocationPolicy) GetServicesSecondaryRangeName() string { if x != nil { return x.ServicesSecondaryRangeName } return "" } func (x *IPAllocationPolicy) GetClusterIpv4CidrBlock() string { if x != nil { return x.ClusterIpv4CidrBlock } return "" } func (x *IPAllocationPolicy) GetServicesIpv4CidrBlock() string { if x != nil { return x.ServicesIpv4CidrBlock } return "" } // The configuration information for the Kubernetes Engine nodes running // the Apache Airflow software. type NodeConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Optional. The Compute Engine [zone](/compute/docs/regions-zones) in which // to deploy the VMs used to run the Apache Airflow software, specified as a // [relative resource // name](/apis/design/resource_names#relative_resource_name). For example: // "projects/{projectId}/zones/{zoneId}". // // This `location` must belong to the enclosing environment's project and // location. If both this field and `nodeConfig.machineType` are specified, // `nodeConfig.machineType` must belong to this `location`; if both are // unspecified, the service will pick a zone in the Compute Engine region // corresponding to the Cloud Composer location, and propagate that choice to // both fields. If only one field (`location` or `nodeConfig.machineType`) is // specified, the location information from the specified field will be // propagated to the unspecified field. // // This field is supported for Cloud Composer environments in versions // composer-1.*.*-airflow-*.*.*. Location string `protobuf:"bytes,1,opt,name=location,proto3" json:"location,omitempty"` // Optional. The Compute Engine // [machine type](/compute/docs/machine-types) used for cluster instances, // specified as a // [relative resource // name](/apis/design/resource_names#relative_resource_name). For example: // "projects/{projectId}/zones/{zoneId}/machineTypes/{machineTypeId}". // // The `machineType` must belong to the enclosing environment's project and // location. If both this field and `nodeConfig.location` are specified, // this `machineType` must belong to the `nodeConfig.location`; if both are // unspecified, the service will pick a zone in the Compute Engine region // corresponding to the Cloud Composer location, and propagate that choice to // both fields. If exactly one of this field and `nodeConfig.location` is // specified, the location information from the specified field will be // propagated to the unspecified field. // // The `machineTypeId` must not be a [shared-core machine // type](/compute/docs/machine-types#sharedcore). // // If this field is unspecified, the `machineTypeId` defaults // to "n1-standard-1". // // This field is supported for Cloud Composer environments in versions // composer-1.*.*-airflow-*.*.*. MachineType string `protobuf:"bytes,2,opt,name=machine_type,json=machineType,proto3" json:"machine_type,omitempty"` // Optional. The Compute Engine network to be used for machine // communications, specified as a // [relative resource // name](/apis/design/resource_names#relative_resource_name). For example: // "projects/{projectId}/global/networks/{networkId}". // // If unspecified, the default network in the environment's project is used. // If a [Custom Subnet Network](/vpc/docs/vpc#vpc_networks_and_subnets) // is provided, `nodeConfig.subnetwork` must also be provided. For // [Shared VPC](/vpc/docs/shared-vpc) subnetwork requirements, see // `nodeConfig.subnetwork`. Network string `protobuf:"bytes,3,opt,name=network,proto3" json:"network,omitempty"` // Optional. The Compute Engine subnetwork to be used for machine // communications, specified as a // [relative resource // name](/apis/design/resource_names#relative_resource_name). For example: // "projects/{projectId}/regions/{regionId}/subnetworks/{subnetworkId}" // // If a subnetwork is provided, `nodeConfig.network` must also be provided, // and the subnetwork must belong to the enclosing environment's project and // location. Subnetwork string `protobuf:"bytes,4,opt,name=subnetwork,proto3" json:"subnetwork,omitempty"` // Optional. The disk size in GB used for node VMs. Minimum size is 30GB. // If unspecified, defaults to 100GB. Cannot be updated. // // This field is supported for Cloud Composer environments in versions // composer-1.*.*-airflow-*.*.*. DiskSizeGb int32 `protobuf:"varint,5,opt,name=disk_size_gb,json=diskSizeGb,proto3" json:"disk_size_gb,omitempty"` // Optional. The set of Google API scopes to be made available on all // node VMs. If `oauth_scopes` is empty, defaults to // ["https://www.googleapis.com/auth/cloud-platform"]. Cannot be updated. // // This field is supported for Cloud Composer environments in versions // composer-1.*.*-airflow-*.*.*. OauthScopes []string `protobuf:"bytes,6,rep,name=oauth_scopes,json=oauthScopes,proto3" json:"oauth_scopes,omitempty"` // Optional. The Google Cloud Platform Service Account to be used by the // workloads. If a service account is not specified, the "default" Compute // Engine service account is used. Cannot be updated. ServiceAccount string `protobuf:"bytes,7,opt,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"` // Optional. The list of instance tags applied to all node VMs. Tags are used // to identify valid sources or targets for network firewalls. Each tag within // the list must comply with [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). // Cannot be updated. // // This field is supported for Cloud Composer environments in versions // composer-1.*.*-airflow-*.*.*. Tags []string `protobuf:"bytes,8,rep,name=tags,proto3" json:"tags,omitempty"` // Optional. The IPAllocationPolicy fields for the GKE cluster. IpAllocationPolicy *IPAllocationPolicy `protobuf:"bytes,9,opt,name=ip_allocation_policy,json=ipAllocationPolicy,proto3" json:"ip_allocation_policy,omitempty"` // Optional. The maximum number of pods per node in the Cloud Composer GKE // cluster. The value must be between 8 and 110 and it can be set only if the // environment is VPC-native. The default value is 32. Values of this field // will be propagated both to the `default-pool` node pool of the newly // created GKE cluster, and to the default "Maximum Pods per Node" value which // is used for newly created node pools if their value is not explicitly set // during node pool creation. For more information, see [Optimizing IP address // allocation] // (https://cloud.google.com/kubernetes-engine/docs/how-to/flexible-pod-cidr). // Cannot be updated. // // This field is supported for Cloud Composer environments in versions // composer-1.*.*-airflow-*.*.*. MaxPodsPerNode int32 `protobuf:"varint,10,opt,name=max_pods_per_node,json=maxPodsPerNode,proto3" json:"max_pods_per_node,omitempty"` // Optional. Deploys 'ip-masq-agent' daemon set in the GKE cluster and defines // nonMasqueradeCIDRs equals to pod IP range so IP masquerading is used for // all destination addresses, except between pods traffic. // // See: // https://cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent EnableIpMasqAgent bool `protobuf:"varint,11,opt,name=enable_ip_masq_agent,json=enableIpMasqAgent,proto3" json:"enable_ip_masq_agent,omitempty"` } func (x *NodeConfig) Reset() { *x = NodeConfig{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *NodeConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*NodeConfig) ProtoMessage() {} func (x *NodeConfig) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use NodeConfig.ProtoReflect.Descriptor instead. func (*NodeConfig) Descriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{17} } func (x *NodeConfig) GetLocation() string { if x != nil { return x.Location } return "" } func (x *NodeConfig) GetMachineType() string { if x != nil { return x.MachineType } return "" } func (x *NodeConfig) GetNetwork() string { if x != nil { return x.Network } return "" } func (x *NodeConfig) GetSubnetwork() string { if x != nil { return x.Subnetwork } return "" } func (x *NodeConfig) GetDiskSizeGb() int32 { if x != nil { return x.DiskSizeGb } return 0 } func (x *NodeConfig) GetOauthScopes() []string { if x != nil { return x.OauthScopes } return nil } func (x *NodeConfig) GetServiceAccount() string { if x != nil { return x.ServiceAccount } return "" } func (x *NodeConfig) GetTags() []string { if x != nil { return x.Tags } return nil } func (x *NodeConfig) GetIpAllocationPolicy() *IPAllocationPolicy { if x != nil { return x.IpAllocationPolicy } return nil } func (x *NodeConfig) GetMaxPodsPerNode() int32 { if x != nil { return x.MaxPodsPerNode } return 0 } func (x *NodeConfig) GetEnableIpMasqAgent() bool { if x != nil { return x.EnableIpMasqAgent } return false } // Configuration options for the private GKE cluster in a Cloud Composer // environment. type PrivateClusterConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Optional. If `true`, access to the public endpoint of the GKE cluster is // denied. EnablePrivateEndpoint bool `protobuf:"varint,1,opt,name=enable_private_endpoint,json=enablePrivateEndpoint,proto3" json:"enable_private_endpoint,omitempty"` // Optional. The CIDR block from which IPv4 range for GKE master will be // reserved. If left blank, the default value of '172.16.0.0/23' is used. MasterIpv4CidrBlock string `protobuf:"bytes,2,opt,name=master_ipv4_cidr_block,json=masterIpv4CidrBlock,proto3" json:"master_ipv4_cidr_block,omitempty"` // Output only. The IP range in CIDR notation to use for the hosted master // network. This range is used for assigning internal IP addresses to the // cluster master or set of masters and to the internal load balancer virtual // IP. This range must not overlap with any other ranges in use within the // cluster's network. MasterIpv4ReservedRange string `protobuf:"bytes,3,opt,name=master_ipv4_reserved_range,json=masterIpv4ReservedRange,proto3" json:"master_ipv4_reserved_range,omitempty"` } func (x *PrivateClusterConfig) Reset() { *x = PrivateClusterConfig{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PrivateClusterConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*PrivateClusterConfig) ProtoMessage() {} func (x *PrivateClusterConfig) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PrivateClusterConfig.ProtoReflect.Descriptor instead. func (*PrivateClusterConfig) Descriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{18} } func (x *PrivateClusterConfig) GetEnablePrivateEndpoint() bool { if x != nil { return x.EnablePrivateEndpoint } return false } func (x *PrivateClusterConfig) GetMasterIpv4CidrBlock() string { if x != nil { return x.MasterIpv4CidrBlock } return "" } func (x *PrivateClusterConfig) GetMasterIpv4ReservedRange() string { if x != nil { return x.MasterIpv4ReservedRange } return "" } // Configuration options for networking connections in the Composer 2 // environment. type NetworkingConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Optional. Indicates the user requested specifc connection type between // Tenant and Customer projects. You cannot set networking connection type in // public IP environment. ConnectionType NetworkingConfig_ConnectionType `protobuf:"varint,1,opt,name=connection_type,json=connectionType,proto3,enum=google.cloud.orchestration.airflow.service.v1beta1.NetworkingConfig_ConnectionType" json:"connection_type,omitempty"` } func (x *NetworkingConfig) Reset() { *x = NetworkingConfig{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *NetworkingConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*NetworkingConfig) ProtoMessage() {} func (x *NetworkingConfig) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use NetworkingConfig.ProtoReflect.Descriptor instead. func (*NetworkingConfig) Descriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{19} } func (x *NetworkingConfig) GetConnectionType() NetworkingConfig_ConnectionType { if x != nil { return x.ConnectionType } return NetworkingConfig_CONNECTION_TYPE_UNSPECIFIED } // The configuration information for configuring a Private IP Cloud Composer // environment. type PrivateEnvironmentConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Optional. If `true`, a Private IP Cloud Composer environment is created. // If this field is set to true, `IPAllocationPolicy.use_ip_aliases` must be // set to true for Cloud Composer environments in versions // composer-1.*.*-airflow-*.*.*. EnablePrivateEnvironment bool `protobuf:"varint,1,opt,name=enable_private_environment,json=enablePrivateEnvironment,proto3" json:"enable_private_environment,omitempty"` // Optional. Configuration for the private GKE cluster for a Private IP // Cloud Composer environment. PrivateClusterConfig *PrivateClusterConfig `protobuf:"bytes,2,opt,name=private_cluster_config,json=privateClusterConfig,proto3" json:"private_cluster_config,omitempty"` // Optional. The CIDR block from which IP range for web server will be // reserved. Needs to be disjoint from // private_cluster_config.master_ipv4_cidr_block and // cloud_sql_ipv4_cidr_block. // // This field is supported for Cloud Composer environments in versions // composer-1.*.*-airflow-*.*.*. WebServerIpv4CidrBlock string `protobuf:"bytes,3,opt,name=web_server_ipv4_cidr_block,json=webServerIpv4CidrBlock,proto3" json:"web_server_ipv4_cidr_block,omitempty"` // Optional. The CIDR block from which IP range in tenant project will be // reserved for Cloud SQL. Needs to be disjoint from // web_server_ipv4_cidr_block CloudSqlIpv4CidrBlock string `protobuf:"bytes,4,opt,name=cloud_sql_ipv4_cidr_block,json=cloudSqlIpv4CidrBlock,proto3" json:"cloud_sql_ipv4_cidr_block,omitempty"` // Output only. The IP range reserved for the tenant project's App Engine VMs. // // This field is supported for Cloud Composer environments in versions // composer-1.*.*-airflow-*.*.*. WebServerIpv4ReservedRange string `protobuf:"bytes,5,opt,name=web_server_ipv4_reserved_range,json=webServerIpv4ReservedRange,proto3" json:"web_server_ipv4_reserved_range,omitempty"` // Optional. The CIDR block from which IP range for Cloud Composer Network in // tenant project will be reserved. Needs to be disjoint from // private_cluster_config.master_ipv4_cidr_block and // cloud_sql_ipv4_cidr_block. // // This field is supported for Cloud Composer environments in versions // composer-2.*.*-airflow-*.*.* and newer. CloudComposerNetworkIpv4CidrBlock string `protobuf:"bytes,7,opt,name=cloud_composer_network_ipv4_cidr_block,json=cloudComposerNetworkIpv4CidrBlock,proto3" json:"cloud_composer_network_ipv4_cidr_block,omitempty"` // Output only. The IP range reserved for the tenant project's Cloud Composer // network. // // This field is supported for Cloud Composer environments in versions // composer-2.*.*-airflow-*.*.* and newer. CloudComposerNetworkIpv4ReservedRange string `protobuf:"bytes,8,opt,name=cloud_composer_network_ipv4_reserved_range,json=cloudComposerNetworkIpv4ReservedRange,proto3" json:"cloud_composer_network_ipv4_reserved_range,omitempty"` // Optional. When enabled, IPs from public (non-RFC1918) ranges can be used // for `IPAllocationPolicy.cluster_ipv4_cidr_block` and // `IPAllocationPolicy.service_ipv4_cidr_block`. EnablePrivatelyUsedPublicIps bool `protobuf:"varint,6,opt,name=enable_privately_used_public_ips,json=enablePrivatelyUsedPublicIps,proto3" json:"enable_privately_used_public_ips,omitempty"` // Optional. When specified, the environment will use Private Service Connect // instead of VPC peerings to connect to Cloud SQL in the Tenant Project, // and the PSC endpoint in the Customer Project will use an IP address from // this subnetwork. CloudComposerConnectionSubnetwork string `protobuf:"bytes,9,opt,name=cloud_composer_connection_subnetwork,json=cloudComposerConnectionSubnetwork,proto3" json:"cloud_composer_connection_subnetwork,omitempty"` // Optional. Configuration for the network connections configuration in the // environment. NetworkingConfig *NetworkingConfig `protobuf:"bytes,10,opt,name=networking_config,json=networkingConfig,proto3" json:"networking_config,omitempty"` } func (x *PrivateEnvironmentConfig) Reset() { *x = PrivateEnvironmentConfig{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PrivateEnvironmentConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*PrivateEnvironmentConfig) ProtoMessage() {} func (x *PrivateEnvironmentConfig) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PrivateEnvironmentConfig.ProtoReflect.Descriptor instead. func (*PrivateEnvironmentConfig) Descriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{20} } func (x *PrivateEnvironmentConfig) GetEnablePrivateEnvironment() bool { if x != nil { return x.EnablePrivateEnvironment } return false } func (x *PrivateEnvironmentConfig) GetPrivateClusterConfig() *PrivateClusterConfig { if x != nil { return x.PrivateClusterConfig } return nil } func (x *PrivateEnvironmentConfig) GetWebServerIpv4CidrBlock() string { if x != nil { return x.WebServerIpv4CidrBlock } return "" } func (x *PrivateEnvironmentConfig) GetCloudSqlIpv4CidrBlock() string { if x != nil { return x.CloudSqlIpv4CidrBlock } return "" } func (x *PrivateEnvironmentConfig) GetWebServerIpv4ReservedRange() string { if x != nil { return x.WebServerIpv4ReservedRange } return "" } func (x *PrivateEnvironmentConfig) GetCloudComposerNetworkIpv4CidrBlock() string { if x != nil { return x.CloudComposerNetworkIpv4CidrBlock } return "" } func (x *PrivateEnvironmentConfig) GetCloudComposerNetworkIpv4ReservedRange() string { if x != nil { return x.CloudComposerNetworkIpv4ReservedRange } return "" } func (x *PrivateEnvironmentConfig) GetEnablePrivatelyUsedPublicIps() bool { if x != nil { return x.EnablePrivatelyUsedPublicIps } return false } func (x *PrivateEnvironmentConfig) GetCloudComposerConnectionSubnetwork() string { if x != nil { return x.CloudComposerConnectionSubnetwork } return "" } func (x *PrivateEnvironmentConfig) GetNetworkingConfig() *NetworkingConfig { if x != nil { return x.NetworkingConfig } return nil } // The configuration of Cloud SQL instance that is used by the Apache Airflow // software. type DatabaseConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Optional. Cloud SQL machine type used by Airflow database. // It has to be one of: db-n1-standard-2, db-n1-standard-4, db-n1-standard-8 // or db-n1-standard-16. If not specified, db-n1-standard-2 will be used. // Supported for Cloud Composer environments in versions // composer-1.*.*-airflow-*.*.*. MachineType string `protobuf:"bytes,1,opt,name=machine_type,json=machineType,proto3" json:"machine_type,omitempty"` } func (x *DatabaseConfig) Reset() { *x = DatabaseConfig{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DatabaseConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*DatabaseConfig) ProtoMessage() {} func (x *DatabaseConfig) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DatabaseConfig.ProtoReflect.Descriptor instead. func (*DatabaseConfig) Descriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{21} } func (x *DatabaseConfig) GetMachineType() string { if x != nil { return x.MachineType } return "" } // The configuration settings for the Airflow web server App Engine instance. // Supported for Cloud Composer environments in versions // composer-1.*.*-airflow-*.*.*. type WebServerConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Optional. Machine type on which Airflow web server is running. // It has to be one of: composer-n1-webserver-2, composer-n1-webserver-4 or // composer-n1-webserver-8. // If not specified, composer-n1-webserver-2 will be used. // Value custom is returned only in response, if Airflow web server parameters // were manually changed to a non-standard values. MachineType string `protobuf:"bytes,1,opt,name=machine_type,json=machineType,proto3" json:"machine_type,omitempty"` } func (x *WebServerConfig) Reset() { *x = WebServerConfig{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WebServerConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*WebServerConfig) ProtoMessage() {} func (x *WebServerConfig) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WebServerConfig.ProtoReflect.Descriptor instead. func (*WebServerConfig) Descriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{22} } func (x *WebServerConfig) GetMachineType() string { if x != nil { return x.MachineType } return "" } // The encryption options for the Cloud Composer environment and its // dependencies. Supported for Cloud Composer environments in versions // composer-1.*.*-airflow-*.*.*. type EncryptionConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Optional. Customer-managed Encryption Key available through Google's Key // Management Service. Cannot be updated. If not specified, Google-managed key // will be used. KmsKeyName string `protobuf:"bytes,1,opt,name=kms_key_name,json=kmsKeyName,proto3" json:"kms_key_name,omitempty"` } func (x *EncryptionConfig) Reset() { *x = EncryptionConfig{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *EncryptionConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*EncryptionConfig) ProtoMessage() {} func (x *EncryptionConfig) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use EncryptionConfig.ProtoReflect.Descriptor instead. func (*EncryptionConfig) Descriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{23} } func (x *EncryptionConfig) GetKmsKeyName() string { if x != nil { return x.KmsKeyName } return "" } // The configuration settings for Cloud Composer maintenance window. // The following example: // // ``` // // { // "startTime":"2019-08-01T01:00:00Z" // "endTime":"2019-08-01T07:00:00Z" // "recurrence":"FREQ=WEEKLY;BYDAY=TU,WE" // } // // ``` // // would define a maintenance window between 01 and 07 hours UTC during // each Tuesday and Wednesday. type MaintenanceWindow struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. Start time of the first recurrence of the maintenance window. StartTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` // Required. Maintenance window end time. It is used only to calculate the // duration of the maintenance window. The value for end_time must be in the // future, relative to `start_time`. EndTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` // Required. Maintenance window recurrence. Format is a subset of // [RFC-5545](https://tools.ietf.org/html/rfc5545) `RRULE`. The only allowed // values for `FREQ` field are `FREQ=DAILY` and `FREQ=WEEKLY;BYDAY=...` // Example values: `FREQ=WEEKLY;BYDAY=TU,WE`, `FREQ=DAILY`. Recurrence string `protobuf:"bytes,3,opt,name=recurrence,proto3" json:"recurrence,omitempty"` } func (x *MaintenanceWindow) Reset() { *x = MaintenanceWindow{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MaintenanceWindow) String() string { return protoimpl.X.MessageStringOf(x) } func (*MaintenanceWindow) ProtoMessage() {} func (x *MaintenanceWindow) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MaintenanceWindow.ProtoReflect.Descriptor instead. func (*MaintenanceWindow) Descriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{24} } func (x *MaintenanceWindow) GetStartTime() *timestamppb.Timestamp { if x != nil { return x.StartTime } return nil } func (x *MaintenanceWindow) GetEndTime() *timestamppb.Timestamp { if x != nil { return x.EndTime } return nil } func (x *MaintenanceWindow) GetRecurrence() string { if x != nil { return x.Recurrence } return "" } // The Kubernetes workloads configuration for GKE cluster associated with the // Cloud Composer environment. Supported for Cloud Composer environments in // versions composer-2.*.*-airflow-*.*.* and newer. type WorkloadsConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Optional. Resources used by Airflow schedulers. Scheduler *WorkloadsConfig_SchedulerResource `protobuf:"bytes,1,opt,name=scheduler,proto3" json:"scheduler,omitempty"` // Optional. Resources used by Airflow web server. WebServer *WorkloadsConfig_WebServerResource `protobuf:"bytes,2,opt,name=web_server,json=webServer,proto3" json:"web_server,omitempty"` // Optional. Resources used by Airflow workers. Worker *WorkloadsConfig_WorkerResource `protobuf:"bytes,3,opt,name=worker,proto3" json:"worker,omitempty"` // Optional. Resources used by Airflow triggerers. Triggerer *WorkloadsConfig_TriggererResource `protobuf:"bytes,4,opt,name=triggerer,proto3" json:"triggerer,omitempty"` } func (x *WorkloadsConfig) Reset() { *x = WorkloadsConfig{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WorkloadsConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*WorkloadsConfig) ProtoMessage() {} func (x *WorkloadsConfig) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WorkloadsConfig.ProtoReflect.Descriptor instead. func (*WorkloadsConfig) Descriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{25} } func (x *WorkloadsConfig) GetScheduler() *WorkloadsConfig_SchedulerResource { if x != nil { return x.Scheduler } return nil } func (x *WorkloadsConfig) GetWebServer() *WorkloadsConfig_WebServerResource { if x != nil { return x.WebServer } return nil } func (x *WorkloadsConfig) GetWorker() *WorkloadsConfig_WorkerResource { if x != nil { return x.Worker } return nil } func (x *WorkloadsConfig) GetTriggerer() *WorkloadsConfig_TriggererResource { if x != nil { return x.Triggerer } return nil } // The Recovery settings of an environment. type RecoveryConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Optional. The configuration for scheduled snapshot creation mechanism. ScheduledSnapshotsConfig *ScheduledSnapshotsConfig `protobuf:"bytes,1,opt,name=scheduled_snapshots_config,json=scheduledSnapshotsConfig,proto3" json:"scheduled_snapshots_config,omitempty"` } func (x *RecoveryConfig) Reset() { *x = RecoveryConfig{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RecoveryConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*RecoveryConfig) ProtoMessage() {} func (x *RecoveryConfig) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RecoveryConfig.ProtoReflect.Descriptor instead. func (*RecoveryConfig) Descriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{26} } func (x *RecoveryConfig) GetScheduledSnapshotsConfig() *ScheduledSnapshotsConfig { if x != nil { return x.ScheduledSnapshotsConfig } return nil } // The configuration for scheduled snapshot creation mechanism. type ScheduledSnapshotsConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Optional. Whether scheduled snapshots creation is enabled. Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"` // Optional. The Cloud Storage location for storing automatically created // snapshots. SnapshotLocation string `protobuf:"bytes,6,opt,name=snapshot_location,json=snapshotLocation,proto3" json:"snapshot_location,omitempty"` // Optional. The cron expression representing the time when snapshots creation // mechanism runs. This field is subject to additional validation around // frequency of execution. SnapshotCreationSchedule string `protobuf:"bytes,3,opt,name=snapshot_creation_schedule,json=snapshotCreationSchedule,proto3" json:"snapshot_creation_schedule,omitempty"` // Optional. Time zone that sets the context to interpret // snapshot_creation_schedule. TimeZone string `protobuf:"bytes,5,opt,name=time_zone,json=timeZone,proto3" json:"time_zone,omitempty"` } func (x *ScheduledSnapshotsConfig) Reset() { *x = ScheduledSnapshotsConfig{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ScheduledSnapshotsConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*ScheduledSnapshotsConfig) ProtoMessage() {} func (x *ScheduledSnapshotsConfig) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ScheduledSnapshotsConfig.ProtoReflect.Descriptor instead. func (*ScheduledSnapshotsConfig) Descriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{27} } func (x *ScheduledSnapshotsConfig) GetEnabled() bool { if x != nil { return x.Enabled } return false } func (x *ScheduledSnapshotsConfig) GetSnapshotLocation() string { if x != nil { return x.SnapshotLocation } return "" } func (x *ScheduledSnapshotsConfig) GetSnapshotCreationSchedule() string { if x != nil { return x.SnapshotCreationSchedule } return "" } func (x *ScheduledSnapshotsConfig) GetTimeZone() string { if x != nil { return x.TimeZone } return "" } // Configuration options for the master authorized networks feature. Enabled // master authorized networks will disallow all external traffic to access // Kubernetes master through HTTPS except traffic from the given CIDR blocks, // Google Compute Engine Public IPs and Google Prod IPs. type MasterAuthorizedNetworksConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Whether or not master authorized networks feature is enabled. Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"` // Up to 50 external networks that could access Kubernetes master through // HTTPS. CidrBlocks []*MasterAuthorizedNetworksConfig_CidrBlock `protobuf:"bytes,2,rep,name=cidr_blocks,json=cidrBlocks,proto3" json:"cidr_blocks,omitempty"` } func (x *MasterAuthorizedNetworksConfig) Reset() { *x = MasterAuthorizedNetworksConfig{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MasterAuthorizedNetworksConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*MasterAuthorizedNetworksConfig) ProtoMessage() {} func (x *MasterAuthorizedNetworksConfig) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MasterAuthorizedNetworksConfig.ProtoReflect.Descriptor instead. func (*MasterAuthorizedNetworksConfig) Descriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{28} } func (x *MasterAuthorizedNetworksConfig) GetEnabled() bool { if x != nil { return x.Enabled } return false } func (x *MasterAuthorizedNetworksConfig) GetCidrBlocks() []*MasterAuthorizedNetworksConfig_CidrBlock { if x != nil { return x.CidrBlocks } return nil } // Configuration for Cloud Data Lineage integration. type CloudDataLineageIntegration struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Optional. Whether or not Cloud Data Lineage integration is enabled. Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"` } func (x *CloudDataLineageIntegration) Reset() { *x = CloudDataLineageIntegration{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CloudDataLineageIntegration) String() string { return protoimpl.X.MessageStringOf(x) } func (*CloudDataLineageIntegration) ProtoMessage() {} func (x *CloudDataLineageIntegration) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CloudDataLineageIntegration.ProtoReflect.Descriptor instead. func (*CloudDataLineageIntegration) Descriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{29} } func (x *CloudDataLineageIntegration) GetEnabled() bool { if x != nil { return x.Enabled } return false } // An environment for running orchestration tasks. type Environment struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The resource name of the environment, in the form: // "projects/{projectId}/locations/{locationId}/environments/{environmentId}" // // EnvironmentId must start with a lowercase letter followed by up to 63 // lowercase letters, numbers, or hyphens, and cannot end with a hyphen. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Configuration parameters for this environment. Config *EnvironmentConfig `protobuf:"bytes,2,opt,name=config,proto3" json:"config,omitempty"` // Output only. The UUID (Universally Unique IDentifier) associated with this // environment. This value is generated when the environment is created. Uuid string `protobuf:"bytes,3,opt,name=uuid,proto3" json:"uuid,omitempty"` // The current state of the environment. State Environment_State `protobuf:"varint,4,opt,name=state,proto3,enum=google.cloud.orchestration.airflow.service.v1beta1.Environment_State" json:"state,omitempty"` // Output only. The time at which this environment was created. CreateTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` // Output only. The time at which this environment was last modified. UpdateTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` // Optional. User-defined labels for this environment. // The labels map can contain no more than 64 entries. Entries of the labels // map are UTF8 strings that comply with the following restrictions: // // * Keys must conform to regexp: [\p{Ll}\p{Lo}][\p{Ll}\p{Lo}\p{N}_-]{0,62} // * Values must conform to regexp: [\p{Ll}\p{Lo}\p{N}_-]{0,63} // * Both keys and values are additionally constrained to be <= 128 bytes in // size. Labels map[string]string `protobuf:"bytes,7,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *Environment) Reset() { *x = Environment{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Environment) String() string { return protoimpl.X.MessageStringOf(x) } func (*Environment) ProtoMessage() {} func (x *Environment) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Environment.ProtoReflect.Descriptor instead. func (*Environment) Descriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{30} } func (x *Environment) GetName() string { if x != nil { return x.Name } return "" } func (x *Environment) GetConfig() *EnvironmentConfig { if x != nil { return x.Config } return nil } func (x *Environment) GetUuid() string { if x != nil { return x.Uuid } return "" } func (x *Environment) GetState() Environment_State { if x != nil { return x.State } return Environment_STATE_UNSPECIFIED } func (x *Environment) GetCreateTime() *timestamppb.Timestamp { if x != nil { return x.CreateTime } return nil } func (x *Environment) GetUpdateTime() *timestamppb.Timestamp { if x != nil { return x.UpdateTime } return nil } func (x *Environment) GetLabels() map[string]string { if x != nil { return x.Labels } return nil } // Request to check whether image upgrade will succeed. type CheckUpgradeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The resource name of the environment to check upgrade for, in the // form: // "projects/{projectId}/locations/{locationId}/environments/{environmentId}" Environment string `protobuf:"bytes,1,opt,name=environment,proto3" json:"environment,omitempty"` // The version of the software running in the environment. // This encapsulates both the version of Cloud Composer functionality and the // version of Apache Airflow. It must match the regular expression // `composer-([0-9]+(\.[0-9]+\.[0-9]+(-preview\.[0-9]+)?)?|latest)-airflow-([0-9]+(\.[0-9]+(\.[0-9]+)?)?)`. // When used as input, the server also checks if the provided version is // supported and denies the request for an unsupported version. // // The Cloud Composer portion of the image version is a full // [semantic version](https://semver.org), or an alias in the form of major // version number or `latest`. When an alias is provided, the server replaces // it with the current Cloud Composer version that satisfies the alias. // // The Apache Airflow portion of the image version is a full semantic version // that points to one of the supported Apache Airflow versions, or an alias in // the form of only major or major.minor versions specified. When an alias is // provided, the server replaces it with the latest Apache Airflow version // that satisfies the alias and is supported in the given Cloud Composer // version. // // In all cases, the resolved image version is stored in the same field. // // See also [version // list](/composer/docs/concepts/versioning/composer-versions) and [versioning // overview](/composer/docs/concepts/versioning/composer-versioning-overview). ImageVersion string `protobuf:"bytes,2,opt,name=image_version,json=imageVersion,proto3" json:"image_version,omitempty"` } func (x *CheckUpgradeRequest) Reset() { *x = CheckUpgradeRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CheckUpgradeRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CheckUpgradeRequest) ProtoMessage() {} func (x *CheckUpgradeRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CheckUpgradeRequest.ProtoReflect.Descriptor instead. func (*CheckUpgradeRequest) Descriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{31} } func (x *CheckUpgradeRequest) GetEnvironment() string { if x != nil { return x.Environment } return "" } func (x *CheckUpgradeRequest) GetImageVersion() string { if x != nil { return x.ImageVersion } return "" } // Message containing information about the result of an upgrade check // operation. type CheckUpgradeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Output only. Url for a docker build log of an upgraded image. BuildLogUri string `protobuf:"bytes,1,opt,name=build_log_uri,json=buildLogUri,proto3" json:"build_log_uri,omitempty"` // Output only. Whether build has succeeded or failed on modules conflicts. ContainsPypiModulesConflict CheckUpgradeResponse_ConflictResult `protobuf:"varint,4,opt,name=contains_pypi_modules_conflict,json=containsPypiModulesConflict,proto3,enum=google.cloud.orchestration.airflow.service.v1beta1.CheckUpgradeResponse_ConflictResult" json:"contains_pypi_modules_conflict,omitempty"` // Output only. Extract from a docker image build log containing information // about pypi modules conflicts. PypiConflictBuildLogExtract string `protobuf:"bytes,3,opt,name=pypi_conflict_build_log_extract,json=pypiConflictBuildLogExtract,proto3" json:"pypi_conflict_build_log_extract,omitempty"` // Composer image for which the build was happening. ImageVersion string `protobuf:"bytes,5,opt,name=image_version,json=imageVersion,proto3" json:"image_version,omitempty"` // Pypi dependencies specified in the environment configuration, at the time // when the build was triggered. PypiDependencies map[string]string `protobuf:"bytes,6,rep,name=pypi_dependencies,json=pypiDependencies,proto3" json:"pypi_dependencies,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *CheckUpgradeResponse) Reset() { *x = CheckUpgradeResponse{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CheckUpgradeResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*CheckUpgradeResponse) ProtoMessage() {} func (x *CheckUpgradeResponse) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CheckUpgradeResponse.ProtoReflect.Descriptor instead. func (*CheckUpgradeResponse) Descriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{32} } func (x *CheckUpgradeResponse) GetBuildLogUri() string { if x != nil { return x.BuildLogUri } return "" } func (x *CheckUpgradeResponse) GetContainsPypiModulesConflict() CheckUpgradeResponse_ConflictResult { if x != nil { return x.ContainsPypiModulesConflict } return CheckUpgradeResponse_CONFLICT_RESULT_UNSPECIFIED } func (x *CheckUpgradeResponse) GetPypiConflictBuildLogExtract() string { if x != nil { return x.PypiConflictBuildLogExtract } return "" } func (x *CheckUpgradeResponse) GetImageVersion() string { if x != nil { return x.ImageVersion } return "" } func (x *CheckUpgradeResponse) GetPypiDependencies() map[string]string { if x != nil { return x.PypiDependencies } return nil } // Contains information about a single line from logs. type PollAirflowCommandResponse_Line struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Number of the line. LineNumber int32 `protobuf:"varint,1,opt,name=line_number,json=lineNumber,proto3" json:"line_number,omitempty"` // Text content of the log line. Content string `protobuf:"bytes,2,opt,name=content,proto3" json:"content,omitempty"` } func (x *PollAirflowCommandResponse_Line) Reset() { *x = PollAirflowCommandResponse_Line{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PollAirflowCommandResponse_Line) String() string { return protoimpl.X.MessageStringOf(x) } func (*PollAirflowCommandResponse_Line) ProtoMessage() {} func (x *PollAirflowCommandResponse_Line) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PollAirflowCommandResponse_Line.ProtoReflect.Descriptor instead. func (*PollAirflowCommandResponse_Line) Descriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{8, 0} } func (x *PollAirflowCommandResponse_Line) GetLineNumber() int32 { if x != nil { return x.LineNumber } return 0 } func (x *PollAirflowCommandResponse_Line) GetContent() string { if x != nil { return x.Content } return "" } // Information about how a command ended. type PollAirflowCommandResponse_ExitInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The exit code from the command execution. ExitCode int32 `protobuf:"varint,1,opt,name=exit_code,json=exitCode,proto3" json:"exit_code,omitempty"` // Error message. Empty if there was no error. Error string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` } func (x *PollAirflowCommandResponse_ExitInfo) Reset() { *x = PollAirflowCommandResponse_ExitInfo{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PollAirflowCommandResponse_ExitInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*PollAirflowCommandResponse_ExitInfo) ProtoMessage() {} func (x *PollAirflowCommandResponse_ExitInfo) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PollAirflowCommandResponse_ExitInfo.ProtoReflect.Descriptor instead. func (*PollAirflowCommandResponse_ExitInfo) Descriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{8, 1} } func (x *PollAirflowCommandResponse_ExitInfo) GetExitCode() int32 { if x != nil { return x.ExitCode } return 0 } func (x *PollAirflowCommandResponse_ExitInfo) GetError() string { if x != nil { return x.Error } return "" } // Allowed IP range with user-provided description. type WebServerNetworkAccessControl_AllowedIpRange struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // IP address or range, defined using CIDR notation, of requests that this // rule applies to. // Examples: `192.168.1.1` or `192.168.0.0/16` or `2001:db8::/32` // // or `2001:0db8:0000:0042:0000:8a2e:0370:7334`. // // IP range prefixes should be properly truncated. For example, // `1.2.3.4/24` should be truncated to `1.2.3.0/24`. Similarly, for IPv6, // `2001:db8::1/32` should be truncated to `2001:db8::/32`. Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` // Optional. User-provided description. It must contain at most 300 // characters. Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` } func (x *WebServerNetworkAccessControl_AllowedIpRange) Reset() { *x = WebServerNetworkAccessControl_AllowedIpRange{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WebServerNetworkAccessControl_AllowedIpRange) String() string { return protoimpl.X.MessageStringOf(x) } func (*WebServerNetworkAccessControl_AllowedIpRange) ProtoMessage() {} func (x *WebServerNetworkAccessControl_AllowedIpRange) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WebServerNetworkAccessControl_AllowedIpRange.ProtoReflect.Descriptor instead. func (*WebServerNetworkAccessControl_AllowedIpRange) Descriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{14, 0} } func (x *WebServerNetworkAccessControl_AllowedIpRange) GetValue() string { if x != nil { return x.Value } return "" } func (x *WebServerNetworkAccessControl_AllowedIpRange) GetDescription() string { if x != nil { return x.Description } return "" } // Configuration for resources used by Airflow schedulers. type WorkloadsConfig_SchedulerResource struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Optional. CPU request and limit for a single Airflow scheduler replica. Cpu float32 `protobuf:"fixed32,1,opt,name=cpu,proto3" json:"cpu,omitempty"` // Optional. Memory (GB) request and limit for a single Airflow scheduler // replica. MemoryGb float32 `protobuf:"fixed32,2,opt,name=memory_gb,json=memoryGb,proto3" json:"memory_gb,omitempty"` // Optional. Storage (GB) request and limit for a single Airflow scheduler // replica. StorageGb float32 `protobuf:"fixed32,3,opt,name=storage_gb,json=storageGb,proto3" json:"storage_gb,omitempty"` // Optional. The number of schedulers. Count int32 `protobuf:"varint,4,opt,name=count,proto3" json:"count,omitempty"` } func (x *WorkloadsConfig_SchedulerResource) Reset() { *x = WorkloadsConfig_SchedulerResource{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WorkloadsConfig_SchedulerResource) String() string { return protoimpl.X.MessageStringOf(x) } func (*WorkloadsConfig_SchedulerResource) ProtoMessage() {} func (x *WorkloadsConfig_SchedulerResource) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WorkloadsConfig_SchedulerResource.ProtoReflect.Descriptor instead. func (*WorkloadsConfig_SchedulerResource) Descriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{25, 0} } func (x *WorkloadsConfig_SchedulerResource) GetCpu() float32 { if x != nil { return x.Cpu } return 0 } func (x *WorkloadsConfig_SchedulerResource) GetMemoryGb() float32 { if x != nil { return x.MemoryGb } return 0 } func (x *WorkloadsConfig_SchedulerResource) GetStorageGb() float32 { if x != nil { return x.StorageGb } return 0 } func (x *WorkloadsConfig_SchedulerResource) GetCount() int32 { if x != nil { return x.Count } return 0 } // Configuration for resources used by Airflow web server. type WorkloadsConfig_WebServerResource struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Optional. CPU request and limit for Airflow web server. Cpu float32 `protobuf:"fixed32,1,opt,name=cpu,proto3" json:"cpu,omitempty"` // Optional. Memory (GB) request and limit for Airflow web server. MemoryGb float32 `protobuf:"fixed32,2,opt,name=memory_gb,json=memoryGb,proto3" json:"memory_gb,omitempty"` // Optional. Storage (GB) request and limit for Airflow web server. StorageGb float32 `protobuf:"fixed32,3,opt,name=storage_gb,json=storageGb,proto3" json:"storage_gb,omitempty"` } func (x *WorkloadsConfig_WebServerResource) Reset() { *x = WorkloadsConfig_WebServerResource{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WorkloadsConfig_WebServerResource) String() string { return protoimpl.X.MessageStringOf(x) } func (*WorkloadsConfig_WebServerResource) ProtoMessage() {} func (x *WorkloadsConfig_WebServerResource) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WorkloadsConfig_WebServerResource.ProtoReflect.Descriptor instead. func (*WorkloadsConfig_WebServerResource) Descriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{25, 1} } func (x *WorkloadsConfig_WebServerResource) GetCpu() float32 { if x != nil { return x.Cpu } return 0 } func (x *WorkloadsConfig_WebServerResource) GetMemoryGb() float32 { if x != nil { return x.MemoryGb } return 0 } func (x *WorkloadsConfig_WebServerResource) GetStorageGb() float32 { if x != nil { return x.StorageGb } return 0 } // Configuration for resources used by Airflow workers. type WorkloadsConfig_WorkerResource struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Optional. CPU request and limit for a single Airflow worker replica. Cpu float32 `protobuf:"fixed32,1,opt,name=cpu,proto3" json:"cpu,omitempty"` // Optional. Memory (GB) request and limit for a single Airflow worker // replica. MemoryGb float32 `protobuf:"fixed32,2,opt,name=memory_gb,json=memoryGb,proto3" json:"memory_gb,omitempty"` // Optional. Storage (GB) request and limit for a single Airflow worker // replica. StorageGb float32 `protobuf:"fixed32,3,opt,name=storage_gb,json=storageGb,proto3" json:"storage_gb,omitempty"` // Optional. Minimum number of workers for autoscaling. MinCount int32 `protobuf:"varint,4,opt,name=min_count,json=minCount,proto3" json:"min_count,omitempty"` // Optional. Maximum number of workers for autoscaling. MaxCount int32 `protobuf:"varint,5,opt,name=max_count,json=maxCount,proto3" json:"max_count,omitempty"` } func (x *WorkloadsConfig_WorkerResource) Reset() { *x = WorkloadsConfig_WorkerResource{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WorkloadsConfig_WorkerResource) String() string { return protoimpl.X.MessageStringOf(x) } func (*WorkloadsConfig_WorkerResource) ProtoMessage() {} func (x *WorkloadsConfig_WorkerResource) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WorkloadsConfig_WorkerResource.ProtoReflect.Descriptor instead. func (*WorkloadsConfig_WorkerResource) Descriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{25, 2} } func (x *WorkloadsConfig_WorkerResource) GetCpu() float32 { if x != nil { return x.Cpu } return 0 } func (x *WorkloadsConfig_WorkerResource) GetMemoryGb() float32 { if x != nil { return x.MemoryGb } return 0 } func (x *WorkloadsConfig_WorkerResource) GetStorageGb() float32 { if x != nil { return x.StorageGb } return 0 } func (x *WorkloadsConfig_WorkerResource) GetMinCount() int32 { if x != nil { return x.MinCount } return 0 } func (x *WorkloadsConfig_WorkerResource) GetMaxCount() int32 { if x != nil { return x.MaxCount } return 0 } // Configuration for resources used by Airflow triggerers. type WorkloadsConfig_TriggererResource struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Optional. The number of triggerers. Count int32 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"` // Optional. CPU request and limit for a single Airflow triggerer replica. Cpu float32 `protobuf:"fixed32,2,opt,name=cpu,proto3" json:"cpu,omitempty"` // Optional. Memory (GB) request and limit for a single Airflow triggerer // replica. MemoryGb float32 `protobuf:"fixed32,3,opt,name=memory_gb,json=memoryGb,proto3" json:"memory_gb,omitempty"` } func (x *WorkloadsConfig_TriggererResource) Reset() { *x = WorkloadsConfig_TriggererResource{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WorkloadsConfig_TriggererResource) String() string { return protoimpl.X.MessageStringOf(x) } func (*WorkloadsConfig_TriggererResource) ProtoMessage() {} func (x *WorkloadsConfig_TriggererResource) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WorkloadsConfig_TriggererResource.ProtoReflect.Descriptor instead. func (*WorkloadsConfig_TriggererResource) Descriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{25, 3} } func (x *WorkloadsConfig_TriggererResource) GetCount() int32 { if x != nil { return x.Count } return 0 } func (x *WorkloadsConfig_TriggererResource) GetCpu() float32 { if x != nil { return x.Cpu } return 0 } func (x *WorkloadsConfig_TriggererResource) GetMemoryGb() float32 { if x != nil { return x.MemoryGb } return 0 } // CIDR block with an optional name. type MasterAuthorizedNetworksConfig_CidrBlock struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // User-defined name that identifies the CIDR block. DisplayName string `protobuf:"bytes,1,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` // CIDR block that must be specified in CIDR notation. CidrBlock string `protobuf:"bytes,2,opt,name=cidr_block,json=cidrBlock,proto3" json:"cidr_block,omitempty"` } func (x *MasterAuthorizedNetworksConfig_CidrBlock) Reset() { *x = MasterAuthorizedNetworksConfig_CidrBlock{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MasterAuthorizedNetworksConfig_CidrBlock) String() string { return protoimpl.X.MessageStringOf(x) } func (*MasterAuthorizedNetworksConfig_CidrBlock) ProtoMessage() {} func (x *MasterAuthorizedNetworksConfig_CidrBlock) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MasterAuthorizedNetworksConfig_CidrBlock.ProtoReflect.Descriptor instead. func (*MasterAuthorizedNetworksConfig_CidrBlock) Descriptor() ([]byte, []int) { return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP(), []int{28, 0} } func (x *MasterAuthorizedNetworksConfig_CidrBlock) GetDisplayName() string { if x != nil { return x.DisplayName } return "" } func (x *MasterAuthorizedNetworksConfig_CidrBlock) GetCidrBlock() string { if x != nil { return x.CidrBlock } return "" } var File_google_cloud_orchestration_airflow_service_v1beta1_environments_proto protoreflect.FileDescriptor var file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDesc = []byte{ 0x0a, 0x45, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x32, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x95, 0x01, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x61, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x2b, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x6d, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xa7, 0x01, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x0c, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0c, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x2e, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xd3, 0x01, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x61, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x2d, 0x0a, 0x17, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x57, 0x65, 0x62, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x8f, 0x01, 0x0a, 0x1d, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x41, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x6f, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x6f, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0xa0, 0x03, 0x0a, 0x1a, 0x50, 0x6f, 0x6c, 0x6c, 0x41, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x53, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x6c, 0x6c, 0x41, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4c, 0x69, 0x6e, 0x65, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x45, 0x6e, 0x64, 0x12, 0x74, 0x0a, 0x09, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x57, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x6c, 0x6c, 0x41, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x78, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x65, 0x78, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x41, 0x0a, 0x04, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6c, 0x69, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x1a, 0x3d, 0x0a, 0x08, 0x45, 0x78, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x65, 0x78, 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x64, 0x0a, 0x13, 0x53, 0x61, 0x76, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3b, 0x0a, 0x14, 0x53, 0x61, 0x76, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x50, 0x61, 0x74, 0x68, 0x22, 0xe8, 0x02, 0x0a, 0x13, 0x4c, 0x6f, 0x61, 0x64, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x45, 0x0a, 0x1f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x70, 0x79, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1c, 0x73, 0x6b, 0x69, 0x70, 0x50, 0x79, 0x70, 0x69, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4b, 0x0a, 0x22, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1f, 0x73, 0x6b, 0x69, 0x70, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x43, 0x0a, 0x1e, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1b, 0x73, 0x6b, 0x69, 0x70, 0x41, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x31, 0x0a, 0x15, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x67, 0x63, 0x73, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x70, 0x79, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x73, 0x6b, 0x69, 0x70, 0x47, 0x63, 0x73, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x70, 0x79, 0x69, 0x6e, 0x67, 0x22, 0x16, 0x0a, 0x14, 0x4c, 0x6f, 0x61, 0x64, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa1, 0x0e, 0x0a, 0x11, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x24, 0x0a, 0x0b, 0x67, 0x6b, 0x65, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x67, 0x6b, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x29, 0x0a, 0x0e, 0x64, 0x61, 0x67, 0x5f, 0x67, 0x63, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x64, 0x61, 0x67, 0x47, 0x63, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x6b, 0x0a, 0x0f, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0e, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x5f, 0x0a, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x8a, 0x01, 0x0a, 0x1a, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x18, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0xa0, 0x01, 0x0a, 0x21, 0x77, 0x65, 0x62, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x51, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x57, 0x65, 0x62, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x1d, 0x77, 0x65, 0x62, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x70, 0x0a, 0x0f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x74, 0x0a, 0x11, 0x77, 0x65, 0x62, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x57, 0x65, 0x62, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x77, 0x65, 0x62, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x24, 0x0a, 0x0b, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x55, 0x72, 0x69, 0x12, 0x76, 0x0a, 0x11, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x79, 0x0a, 0x12, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x11, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x73, 0x0a, 0x10, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x85, 0x01, 0x0a, 0x10, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x55, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x12, 0xa2, 0x01, 0x0a, 0x21, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x52, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x1e, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x70, 0x0a, 0x0f, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x88, 0x01, 0x0a, 0x0f, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x4e, 0x56, 0x49, 0x52, 0x4f, 0x4e, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x45, 0x4e, 0x56, 0x49, 0x52, 0x4f, 0x4e, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x5f, 0x53, 0x4d, 0x41, 0x4c, 0x4c, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x45, 0x4e, 0x56, 0x49, 0x52, 0x4f, 0x4e, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x55, 0x4d, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x45, 0x4e, 0x56, 0x49, 0x52, 0x4f, 0x4e, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x5f, 0x4c, 0x41, 0x52, 0x47, 0x45, 0x10, 0x03, 0x22, 0xfd, 0x01, 0x0a, 0x1d, 0x57, 0x65, 0x62, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x8c, 0x01, 0x0a, 0x11, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x60, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x57, 0x65, 0x62, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x1a, 0x4d, 0x0a, 0x0e, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x98, 0x07, 0x0a, 0x0e, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x9d, 0x01, 0x0a, 0x18, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x5e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x16, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x12, 0x7e, 0x0a, 0x0d, 0x70, 0x79, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x54, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x79, 0x70, 0x69, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x70, 0x79, 0x70, 0x69, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x12, 0x7e, 0x0a, 0x0d, 0x65, 0x6e, 0x76, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x54, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x45, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x65, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x0e, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x0f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x99, 0x01, 0x0a, 0x1e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x6e, 0x65, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x1b, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x6e, 0x65, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x49, 0x0a, 0x1b, 0x41, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3f, 0x0a, 0x11, 0x50, 0x79, 0x70, 0x69, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3f, 0x0a, 0x11, 0x45, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xc7, 0x02, 0x0a, 0x12, 0x49, 0x50, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x29, 0x0a, 0x0e, 0x75, 0x73, 0x65, 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x49, 0x70, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x1c, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x19, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x46, 0x0a, 0x1d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x1a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x17, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x63, 0x69, 0x64, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x14, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x70, 0x76, 0x34, 0x43, 0x69, 0x64, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x3c, 0x0a, 0x18, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x63, 0x69, 0x64, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x15, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x49, 0x70, 0x76, 0x34, 0x43, 0x69, 0x64, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x94, 0x04, 0x0a, 0x0a, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1f, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0c, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x23, 0x0a, 0x0a, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x25, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x67, 0x62, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x47, 0x62, 0x12, 0x26, 0x0a, 0x0c, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x7d, 0x0a, 0x14, 0x69, 0x70, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x50, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x12, 0x69, 0x70, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2e, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x6f, 0x64, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x50, 0x6f, 0x64, 0x73, 0x50, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x34, 0x0a, 0x14, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x61, 0x73, 0x71, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x11, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x70, 0x4d, 0x61, 0x73, 0x71, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x22, 0xcf, 0x01, 0x0a, 0x14, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3b, 0x0a, 0x17, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x15, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x16, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x63, 0x69, 0x64, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x13, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x49, 0x70, 0x76, 0x34, 0x43, 0x69, 0x64, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x40, 0x0a, 0x1a, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x17, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x22, 0xf7, 0x01, 0x0a, 0x10, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x81, 0x01, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x53, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x5f, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x56, 0x50, 0x43, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x10, 0x02, 0x22, 0xff, 0x06, 0x0a, 0x18, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x41, 0x0a, 0x1a, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x18, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x83, 0x01, 0x0a, 0x16, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x14, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3f, 0x0a, 0x1a, 0x77, 0x65, 0x62, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x63, 0x69, 0x64, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x16, 0x77, 0x65, 0x62, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x70, 0x76, 0x34, 0x43, 0x69, 0x64, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x3d, 0x0a, 0x19, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x73, 0x71, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x63, 0x69, 0x64, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x15, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x53, 0x71, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x43, 0x69, 0x64, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x47, 0x0a, 0x1e, 0x77, 0x65, 0x62, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x1a, 0x77, 0x65, 0x62, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x56, 0x0a, 0x26, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x63, 0x69, 0x64, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x21, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x70, 0x76, 0x34, 0x43, 0x69, 0x64, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x5e, 0x0a, 0x2a, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x25, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x4b, 0x0a, 0x20, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x6c, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x69, 0x70, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x1c, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x6c, 0x79, 0x55, 0x73, 0x65, 0x64, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x49, 0x70, 0x73, 0x12, 0x54, 0x0a, 0x24, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x21, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x76, 0x0a, 0x11, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x38, 0x0a, 0x0e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x26, 0x0a, 0x0c, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x39, 0x0a, 0x0f, 0x57, 0x65, 0x62, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x26, 0x0a, 0x0c, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x39, 0x0a, 0x10, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x25, 0x0a, 0x0c, 0x6b, 0x6d, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x6b, 0x6d, 0x73, 0x4b, 0x65, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xb4, 0x01, 0x0a, 0x11, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0a, 0x72, 0x65, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x8e, 0x08, 0x0a, 0x0f, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x78, 0x0a, 0x09, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x55, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x12, 0x79, 0x0a, 0x0a, 0x77, 0x65, 0x62, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x55, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x57, 0x65, 0x62, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x77, 0x65, 0x62, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x6f, 0x0a, 0x06, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x52, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x12, 0x78, 0x0a, 0x09, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x55, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x72, 0x1a, 0x8b, 0x01, 0x0a, 0x11, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x15, 0x0a, 0x03, 0x63, 0x70, 0x75, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x03, 0x63, 0x70, 0x75, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x67, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x47, 0x62, 0x12, 0x22, 0x0a, 0x0a, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x67, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x47, 0x62, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x70, 0x0a, 0x11, 0x57, 0x65, 0x62, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x15, 0x0a, 0x03, 0x63, 0x70, 0x75, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x03, 0x63, 0x70, 0x75, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x67, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x47, 0x62, 0x12, 0x22, 0x0a, 0x0a, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x67, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x47, 0x62, 0x1a, 0xb1, 0x01, 0x0a, 0x0e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x15, 0x0a, 0x03, 0x63, 0x70, 0x75, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x03, 0x63, 0x70, 0x75, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x67, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x47, 0x62, 0x12, 0x22, 0x0a, 0x0a, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x67, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x47, 0x62, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x67, 0x0a, 0x11, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x15, 0x0a, 0x03, 0x63, 0x70, 0x75, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x03, 0x63, 0x70, 0x75, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x67, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x47, 0x62, 0x22, 0xa2, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x8f, 0x01, 0x0a, 0x1a, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x18, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xd0, 0x01, 0x0a, 0x18, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1d, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x30, 0x0a, 0x11, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x1a, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x18, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x22, 0x88, 0x02, 0x0a, 0x1e, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x7d, 0x0a, 0x0b, 0x63, 0x69, 0x64, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x5c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x69, 0x64, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x0a, 0x63, 0x69, 0x64, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x1a, 0x4d, 0x0a, 0x09, 0x43, 0x69, 0x64, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x69, 0x64, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x69, 0x64, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x3c, 0x0a, 0x1b, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x6e, 0x65, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0xef, 0x05, 0x0a, 0x0b, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x5d, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x5b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x68, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x60, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x55, 0x50, 0x44, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x05, 0x3a, 0x6c, 0xea, 0x41, 0x69, 0x0a, 0x23, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x7d, 0x22, 0x5c, 0x0a, 0x13, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xf8, 0x04, 0x0a, 0x14, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x0d, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x4c, 0x6f, 0x67, 0x55, 0x72, 0x69, 0x12, 0xa1, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x5f, 0x70, 0x79, 0x70, 0x69, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x57, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x1b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x50, 0x79, 0x70, 0x69, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x12, 0x49, 0x0a, 0x1f, 0x70, 0x79, 0x70, 0x69, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x1b, 0x70, 0x79, 0x70, 0x69, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4c, 0x6f, 0x67, 0x45, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x8b, 0x01, 0x0a, 0x11, 0x70, 0x79, 0x70, 0x69, 0x5f, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x5e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x79, 0x70, 0x69, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x70, 0x79, 0x70, 0x69, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x1a, 0x43, 0x0a, 0x15, 0x50, 0x79, 0x70, 0x69, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x50, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1f, 0x0a, 0x1b, 0x43, 0x4f, 0x4e, 0x46, 0x4c, 0x49, 0x43, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x4f, 0x4e, 0x46, 0x4c, 0x49, 0x43, 0x54, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x4e, 0x4f, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x4c, 0x49, 0x43, 0x54, 0x10, 0x02, 0x32, 0xb6, 0x16, 0x0a, 0x0c, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0xb8, 0x02, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xb5, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x44, 0x22, 0x35, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0xda, 0x41, 0x12, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0xca, 0x41, 0x53, 0x0a, 0x0b, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xe2, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x44, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x12, 0x35, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xf5, 0x01, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x4b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x4c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x46, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x12, 0x35, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xc2, 0x02, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xbf, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x44, 0x32, 0x35, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0xda, 0x41, 0x1c, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0xca, 0x41, 0x53, 0x0a, 0x0b, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xa7, 0x02, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa4, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x2a, 0x35, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0xca, 0x41, 0x5d, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x44, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xa8, 0x02, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x57, 0x65, 0x62, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x4b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x57, 0x65, 0x62, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa7, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4b, 0x22, 0x46, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x57, 0x65, 0x62, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x3a, 0x01, 0x2a, 0xca, 0x41, 0x53, 0x0a, 0x0b, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xe0, 0x02, 0x0a, 0x0c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x47, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xe7, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4e, 0x22, 0x49, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x3a, 0x01, 0x2a, 0xca, 0x41, 0x8f, 0x01, 0x0a, 0x47, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xe0, 0x02, 0x0a, 0x0c, 0x53, 0x61, 0x76, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x47, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xe7, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4e, 0x22, 0x49, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x61, 0x76, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x3a, 0x01, 0x2a, 0xca, 0x41, 0x8f, 0x01, 0x0a, 0x47, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xe0, 0x02, 0x0a, 0x0c, 0x4c, 0x6f, 0x61, 0x64, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x47, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xe7, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4e, 0x22, 0x49, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x3a, 0x01, 0x2a, 0xca, 0x41, 0x8f, 0x01, 0x0a, 0x47, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x4b, 0xca, 0x41, 0x17, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0x95, 0x01, 0x0a, 0x36, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x50, 0x01, 0x5a, 0x59, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x61, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescOnce sync.Once file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescData = file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDesc ) func file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescGZIP() []byte { file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescOnce.Do(func() { file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescData) }) return file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDescData } var file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_enumTypes = make([]protoimpl.EnumInfo, 4) var file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes = make([]protoimpl.MessageInfo, 46) var file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_goTypes = []interface{}{ (EnvironmentConfig_EnvironmentSize)(0), // 0: google.cloud.orchestration.airflow.service.v1beta1.EnvironmentConfig.EnvironmentSize (NetworkingConfig_ConnectionType)(0), // 1: google.cloud.orchestration.airflow.service.v1beta1.NetworkingConfig.ConnectionType (Environment_State)(0), // 2: google.cloud.orchestration.airflow.service.v1beta1.Environment.State (CheckUpgradeResponse_ConflictResult)(0), // 3: google.cloud.orchestration.airflow.service.v1beta1.CheckUpgradeResponse.ConflictResult (*CreateEnvironmentRequest)(nil), // 4: google.cloud.orchestration.airflow.service.v1beta1.CreateEnvironmentRequest (*GetEnvironmentRequest)(nil), // 5: google.cloud.orchestration.airflow.service.v1beta1.GetEnvironmentRequest (*ListEnvironmentsRequest)(nil), // 6: google.cloud.orchestration.airflow.service.v1beta1.ListEnvironmentsRequest (*ListEnvironmentsResponse)(nil), // 7: google.cloud.orchestration.airflow.service.v1beta1.ListEnvironmentsResponse (*DeleteEnvironmentRequest)(nil), // 8: google.cloud.orchestration.airflow.service.v1beta1.DeleteEnvironmentRequest (*UpdateEnvironmentRequest)(nil), // 9: google.cloud.orchestration.airflow.service.v1beta1.UpdateEnvironmentRequest (*RestartWebServerRequest)(nil), // 10: google.cloud.orchestration.airflow.service.v1beta1.RestartWebServerRequest (*ExecuteAirflowCommandResponse)(nil), // 11: google.cloud.orchestration.airflow.service.v1beta1.ExecuteAirflowCommandResponse (*PollAirflowCommandResponse)(nil), // 12: google.cloud.orchestration.airflow.service.v1beta1.PollAirflowCommandResponse (*SaveSnapshotRequest)(nil), // 13: google.cloud.orchestration.airflow.service.v1beta1.SaveSnapshotRequest (*SaveSnapshotResponse)(nil), // 14: google.cloud.orchestration.airflow.service.v1beta1.SaveSnapshotResponse (*LoadSnapshotRequest)(nil), // 15: google.cloud.orchestration.airflow.service.v1beta1.LoadSnapshotRequest (*LoadSnapshotResponse)(nil), // 16: google.cloud.orchestration.airflow.service.v1beta1.LoadSnapshotResponse (*EnvironmentConfig)(nil), // 17: google.cloud.orchestration.airflow.service.v1beta1.EnvironmentConfig (*WebServerNetworkAccessControl)(nil), // 18: google.cloud.orchestration.airflow.service.v1beta1.WebServerNetworkAccessControl (*SoftwareConfig)(nil), // 19: google.cloud.orchestration.airflow.service.v1beta1.SoftwareConfig (*IPAllocationPolicy)(nil), // 20: google.cloud.orchestration.airflow.service.v1beta1.IPAllocationPolicy (*NodeConfig)(nil), // 21: google.cloud.orchestration.airflow.service.v1beta1.NodeConfig (*PrivateClusterConfig)(nil), // 22: google.cloud.orchestration.airflow.service.v1beta1.PrivateClusterConfig (*NetworkingConfig)(nil), // 23: google.cloud.orchestration.airflow.service.v1beta1.NetworkingConfig (*PrivateEnvironmentConfig)(nil), // 24: google.cloud.orchestration.airflow.service.v1beta1.PrivateEnvironmentConfig (*DatabaseConfig)(nil), // 25: google.cloud.orchestration.airflow.service.v1beta1.DatabaseConfig (*WebServerConfig)(nil), // 26: google.cloud.orchestration.airflow.service.v1beta1.WebServerConfig (*EncryptionConfig)(nil), // 27: google.cloud.orchestration.airflow.service.v1beta1.EncryptionConfig (*MaintenanceWindow)(nil), // 28: google.cloud.orchestration.airflow.service.v1beta1.MaintenanceWindow (*WorkloadsConfig)(nil), // 29: google.cloud.orchestration.airflow.service.v1beta1.WorkloadsConfig (*RecoveryConfig)(nil), // 30: google.cloud.orchestration.airflow.service.v1beta1.RecoveryConfig (*ScheduledSnapshotsConfig)(nil), // 31: google.cloud.orchestration.airflow.service.v1beta1.ScheduledSnapshotsConfig (*MasterAuthorizedNetworksConfig)(nil), // 32: google.cloud.orchestration.airflow.service.v1beta1.MasterAuthorizedNetworksConfig (*CloudDataLineageIntegration)(nil), // 33: google.cloud.orchestration.airflow.service.v1beta1.CloudDataLineageIntegration (*Environment)(nil), // 34: google.cloud.orchestration.airflow.service.v1beta1.Environment (*CheckUpgradeRequest)(nil), // 35: google.cloud.orchestration.airflow.service.v1beta1.CheckUpgradeRequest (*CheckUpgradeResponse)(nil), // 36: google.cloud.orchestration.airflow.service.v1beta1.CheckUpgradeResponse (*PollAirflowCommandResponse_Line)(nil), // 37: google.cloud.orchestration.airflow.service.v1beta1.PollAirflowCommandResponse.Line (*PollAirflowCommandResponse_ExitInfo)(nil), // 38: google.cloud.orchestration.airflow.service.v1beta1.PollAirflowCommandResponse.ExitInfo (*WebServerNetworkAccessControl_AllowedIpRange)(nil), // 39: google.cloud.orchestration.airflow.service.v1beta1.WebServerNetworkAccessControl.AllowedIpRange nil, // 40: google.cloud.orchestration.airflow.service.v1beta1.SoftwareConfig.AirflowConfigOverridesEntry nil, // 41: google.cloud.orchestration.airflow.service.v1beta1.SoftwareConfig.PypiPackagesEntry nil, // 42: google.cloud.orchestration.airflow.service.v1beta1.SoftwareConfig.EnvVariablesEntry (*WorkloadsConfig_SchedulerResource)(nil), // 43: google.cloud.orchestration.airflow.service.v1beta1.WorkloadsConfig.SchedulerResource (*WorkloadsConfig_WebServerResource)(nil), // 44: google.cloud.orchestration.airflow.service.v1beta1.WorkloadsConfig.WebServerResource (*WorkloadsConfig_WorkerResource)(nil), // 45: google.cloud.orchestration.airflow.service.v1beta1.WorkloadsConfig.WorkerResource (*WorkloadsConfig_TriggererResource)(nil), // 46: google.cloud.orchestration.airflow.service.v1beta1.WorkloadsConfig.TriggererResource (*MasterAuthorizedNetworksConfig_CidrBlock)(nil), // 47: google.cloud.orchestration.airflow.service.v1beta1.MasterAuthorizedNetworksConfig.CidrBlock nil, // 48: google.cloud.orchestration.airflow.service.v1beta1.Environment.LabelsEntry nil, // 49: google.cloud.orchestration.airflow.service.v1beta1.CheckUpgradeResponse.PypiDependenciesEntry (*fieldmaskpb.FieldMask)(nil), // 50: google.protobuf.FieldMask (*timestamppb.Timestamp)(nil), // 51: google.protobuf.Timestamp (*longrunning.Operation)(nil), // 52: google.longrunning.Operation } var file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_depIdxs = []int32{ 34, // 0: google.cloud.orchestration.airflow.service.v1beta1.CreateEnvironmentRequest.environment:type_name -> google.cloud.orchestration.airflow.service.v1beta1.Environment 34, // 1: google.cloud.orchestration.airflow.service.v1beta1.ListEnvironmentsResponse.environments:type_name -> google.cloud.orchestration.airflow.service.v1beta1.Environment 34, // 2: google.cloud.orchestration.airflow.service.v1beta1.UpdateEnvironmentRequest.environment:type_name -> google.cloud.orchestration.airflow.service.v1beta1.Environment 50, // 3: google.cloud.orchestration.airflow.service.v1beta1.UpdateEnvironmentRequest.update_mask:type_name -> google.protobuf.FieldMask 37, // 4: google.cloud.orchestration.airflow.service.v1beta1.PollAirflowCommandResponse.output:type_name -> google.cloud.orchestration.airflow.service.v1beta1.PollAirflowCommandResponse.Line 38, // 5: google.cloud.orchestration.airflow.service.v1beta1.PollAirflowCommandResponse.exit_info:type_name -> google.cloud.orchestration.airflow.service.v1beta1.PollAirflowCommandResponse.ExitInfo 19, // 6: google.cloud.orchestration.airflow.service.v1beta1.EnvironmentConfig.software_config:type_name -> google.cloud.orchestration.airflow.service.v1beta1.SoftwareConfig 21, // 7: google.cloud.orchestration.airflow.service.v1beta1.EnvironmentConfig.node_config:type_name -> google.cloud.orchestration.airflow.service.v1beta1.NodeConfig 24, // 8: google.cloud.orchestration.airflow.service.v1beta1.EnvironmentConfig.private_environment_config:type_name -> google.cloud.orchestration.airflow.service.v1beta1.PrivateEnvironmentConfig 18, // 9: google.cloud.orchestration.airflow.service.v1beta1.EnvironmentConfig.web_server_network_access_control:type_name -> google.cloud.orchestration.airflow.service.v1beta1.WebServerNetworkAccessControl 25, // 10: google.cloud.orchestration.airflow.service.v1beta1.EnvironmentConfig.database_config:type_name -> google.cloud.orchestration.airflow.service.v1beta1.DatabaseConfig 26, // 11: google.cloud.orchestration.airflow.service.v1beta1.EnvironmentConfig.web_server_config:type_name -> google.cloud.orchestration.airflow.service.v1beta1.WebServerConfig 27, // 12: google.cloud.orchestration.airflow.service.v1beta1.EnvironmentConfig.encryption_config:type_name -> google.cloud.orchestration.airflow.service.v1beta1.EncryptionConfig 28, // 13: google.cloud.orchestration.airflow.service.v1beta1.EnvironmentConfig.maintenance_window:type_name -> google.cloud.orchestration.airflow.service.v1beta1.MaintenanceWindow 29, // 14: google.cloud.orchestration.airflow.service.v1beta1.EnvironmentConfig.workloads_config:type_name -> google.cloud.orchestration.airflow.service.v1beta1.WorkloadsConfig 0, // 15: google.cloud.orchestration.airflow.service.v1beta1.EnvironmentConfig.environment_size:type_name -> google.cloud.orchestration.airflow.service.v1beta1.EnvironmentConfig.EnvironmentSize 32, // 16: google.cloud.orchestration.airflow.service.v1beta1.EnvironmentConfig.master_authorized_networks_config:type_name -> google.cloud.orchestration.airflow.service.v1beta1.MasterAuthorizedNetworksConfig 30, // 17: google.cloud.orchestration.airflow.service.v1beta1.EnvironmentConfig.recovery_config:type_name -> google.cloud.orchestration.airflow.service.v1beta1.RecoveryConfig 39, // 18: google.cloud.orchestration.airflow.service.v1beta1.WebServerNetworkAccessControl.allowed_ip_ranges:type_name -> google.cloud.orchestration.airflow.service.v1beta1.WebServerNetworkAccessControl.AllowedIpRange 40, // 19: google.cloud.orchestration.airflow.service.v1beta1.SoftwareConfig.airflow_config_overrides:type_name -> google.cloud.orchestration.airflow.service.v1beta1.SoftwareConfig.AirflowConfigOverridesEntry 41, // 20: google.cloud.orchestration.airflow.service.v1beta1.SoftwareConfig.pypi_packages:type_name -> google.cloud.orchestration.airflow.service.v1beta1.SoftwareConfig.PypiPackagesEntry 42, // 21: google.cloud.orchestration.airflow.service.v1beta1.SoftwareConfig.env_variables:type_name -> google.cloud.orchestration.airflow.service.v1beta1.SoftwareConfig.EnvVariablesEntry 33, // 22: google.cloud.orchestration.airflow.service.v1beta1.SoftwareConfig.cloud_data_lineage_integration:type_name -> google.cloud.orchestration.airflow.service.v1beta1.CloudDataLineageIntegration 20, // 23: google.cloud.orchestration.airflow.service.v1beta1.NodeConfig.ip_allocation_policy:type_name -> google.cloud.orchestration.airflow.service.v1beta1.IPAllocationPolicy 1, // 24: google.cloud.orchestration.airflow.service.v1beta1.NetworkingConfig.connection_type:type_name -> google.cloud.orchestration.airflow.service.v1beta1.NetworkingConfig.ConnectionType 22, // 25: google.cloud.orchestration.airflow.service.v1beta1.PrivateEnvironmentConfig.private_cluster_config:type_name -> google.cloud.orchestration.airflow.service.v1beta1.PrivateClusterConfig 23, // 26: google.cloud.orchestration.airflow.service.v1beta1.PrivateEnvironmentConfig.networking_config:type_name -> google.cloud.orchestration.airflow.service.v1beta1.NetworkingConfig 51, // 27: google.cloud.orchestration.airflow.service.v1beta1.MaintenanceWindow.start_time:type_name -> google.protobuf.Timestamp 51, // 28: google.cloud.orchestration.airflow.service.v1beta1.MaintenanceWindow.end_time:type_name -> google.protobuf.Timestamp 43, // 29: google.cloud.orchestration.airflow.service.v1beta1.WorkloadsConfig.scheduler:type_name -> google.cloud.orchestration.airflow.service.v1beta1.WorkloadsConfig.SchedulerResource 44, // 30: google.cloud.orchestration.airflow.service.v1beta1.WorkloadsConfig.web_server:type_name -> google.cloud.orchestration.airflow.service.v1beta1.WorkloadsConfig.WebServerResource 45, // 31: google.cloud.orchestration.airflow.service.v1beta1.WorkloadsConfig.worker:type_name -> google.cloud.orchestration.airflow.service.v1beta1.WorkloadsConfig.WorkerResource 46, // 32: google.cloud.orchestration.airflow.service.v1beta1.WorkloadsConfig.triggerer:type_name -> google.cloud.orchestration.airflow.service.v1beta1.WorkloadsConfig.TriggererResource 31, // 33: google.cloud.orchestration.airflow.service.v1beta1.RecoveryConfig.scheduled_snapshots_config:type_name -> google.cloud.orchestration.airflow.service.v1beta1.ScheduledSnapshotsConfig 47, // 34: google.cloud.orchestration.airflow.service.v1beta1.MasterAuthorizedNetworksConfig.cidr_blocks:type_name -> google.cloud.orchestration.airflow.service.v1beta1.MasterAuthorizedNetworksConfig.CidrBlock 17, // 35: google.cloud.orchestration.airflow.service.v1beta1.Environment.config:type_name -> google.cloud.orchestration.airflow.service.v1beta1.EnvironmentConfig 2, // 36: google.cloud.orchestration.airflow.service.v1beta1.Environment.state:type_name -> google.cloud.orchestration.airflow.service.v1beta1.Environment.State 51, // 37: google.cloud.orchestration.airflow.service.v1beta1.Environment.create_time:type_name -> google.protobuf.Timestamp 51, // 38: google.cloud.orchestration.airflow.service.v1beta1.Environment.update_time:type_name -> google.protobuf.Timestamp 48, // 39: google.cloud.orchestration.airflow.service.v1beta1.Environment.labels:type_name -> google.cloud.orchestration.airflow.service.v1beta1.Environment.LabelsEntry 3, // 40: google.cloud.orchestration.airflow.service.v1beta1.CheckUpgradeResponse.contains_pypi_modules_conflict:type_name -> google.cloud.orchestration.airflow.service.v1beta1.CheckUpgradeResponse.ConflictResult 49, // 41: google.cloud.orchestration.airflow.service.v1beta1.CheckUpgradeResponse.pypi_dependencies:type_name -> google.cloud.orchestration.airflow.service.v1beta1.CheckUpgradeResponse.PypiDependenciesEntry 4, // 42: google.cloud.orchestration.airflow.service.v1beta1.Environments.CreateEnvironment:input_type -> google.cloud.orchestration.airflow.service.v1beta1.CreateEnvironmentRequest 5, // 43: google.cloud.orchestration.airflow.service.v1beta1.Environments.GetEnvironment:input_type -> google.cloud.orchestration.airflow.service.v1beta1.GetEnvironmentRequest 6, // 44: google.cloud.orchestration.airflow.service.v1beta1.Environments.ListEnvironments:input_type -> google.cloud.orchestration.airflow.service.v1beta1.ListEnvironmentsRequest 9, // 45: google.cloud.orchestration.airflow.service.v1beta1.Environments.UpdateEnvironment:input_type -> google.cloud.orchestration.airflow.service.v1beta1.UpdateEnvironmentRequest 8, // 46: google.cloud.orchestration.airflow.service.v1beta1.Environments.DeleteEnvironment:input_type -> google.cloud.orchestration.airflow.service.v1beta1.DeleteEnvironmentRequest 10, // 47: google.cloud.orchestration.airflow.service.v1beta1.Environments.RestartWebServer:input_type -> google.cloud.orchestration.airflow.service.v1beta1.RestartWebServerRequest 35, // 48: google.cloud.orchestration.airflow.service.v1beta1.Environments.CheckUpgrade:input_type -> google.cloud.orchestration.airflow.service.v1beta1.CheckUpgradeRequest 13, // 49: google.cloud.orchestration.airflow.service.v1beta1.Environments.SaveSnapshot:input_type -> google.cloud.orchestration.airflow.service.v1beta1.SaveSnapshotRequest 15, // 50: google.cloud.orchestration.airflow.service.v1beta1.Environments.LoadSnapshot:input_type -> google.cloud.orchestration.airflow.service.v1beta1.LoadSnapshotRequest 52, // 51: google.cloud.orchestration.airflow.service.v1beta1.Environments.CreateEnvironment:output_type -> google.longrunning.Operation 34, // 52: google.cloud.orchestration.airflow.service.v1beta1.Environments.GetEnvironment:output_type -> google.cloud.orchestration.airflow.service.v1beta1.Environment 7, // 53: google.cloud.orchestration.airflow.service.v1beta1.Environments.ListEnvironments:output_type -> google.cloud.orchestration.airflow.service.v1beta1.ListEnvironmentsResponse 52, // 54: google.cloud.orchestration.airflow.service.v1beta1.Environments.UpdateEnvironment:output_type -> google.longrunning.Operation 52, // 55: google.cloud.orchestration.airflow.service.v1beta1.Environments.DeleteEnvironment:output_type -> google.longrunning.Operation 52, // 56: google.cloud.orchestration.airflow.service.v1beta1.Environments.RestartWebServer:output_type -> google.longrunning.Operation 52, // 57: google.cloud.orchestration.airflow.service.v1beta1.Environments.CheckUpgrade:output_type -> google.longrunning.Operation 52, // 58: google.cloud.orchestration.airflow.service.v1beta1.Environments.SaveSnapshot:output_type -> google.longrunning.Operation 52, // 59: google.cloud.orchestration.airflow.service.v1beta1.Environments.LoadSnapshot:output_type -> google.longrunning.Operation 51, // [51:60] is the sub-list for method output_type 42, // [42:51] is the sub-list for method input_type 42, // [42:42] is the sub-list for extension type_name 42, // [42:42] is the sub-list for extension extendee 0, // [0:42] is the sub-list for field type_name } func init() { file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_init() } func file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_init() { if File_google_cloud_orchestration_airflow_service_v1beta1_environments_proto != nil { return } if !protoimpl.UnsafeEnabled { file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateEnvironmentRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetEnvironmentRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListEnvironmentsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListEnvironmentsResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteEnvironmentRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateEnvironmentRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RestartWebServerRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExecuteAirflowCommandResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PollAirflowCommandResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SaveSnapshotRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SaveSnapshotResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LoadSnapshotRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LoadSnapshotResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EnvironmentConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WebServerNetworkAccessControl); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SoftwareConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IPAllocationPolicy); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NodeConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PrivateClusterConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NetworkingConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PrivateEnvironmentConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DatabaseConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WebServerConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EncryptionConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MaintenanceWindow); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkloadsConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RecoveryConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ScheduledSnapshotsConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MasterAuthorizedNetworksConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CloudDataLineageIntegration); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Environment); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CheckUpgradeRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CheckUpgradeResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PollAirflowCommandResponse_Line); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PollAirflowCommandResponse_ExitInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WebServerNetworkAccessControl_AllowedIpRange); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkloadsConfig_SchedulerResource); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkloadsConfig_WebServerResource); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkloadsConfig_WorkerResource); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkloadsConfig_TriggererResource); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MasterAuthorizedNetworksConfig_CidrBlock); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDesc, NumEnums: 4, NumMessages: 46, NumExtensions: 0, NumServices: 1, }, GoTypes: file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_goTypes, DependencyIndexes: file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_depIdxs, EnumInfos: file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_enumTypes, MessageInfos: file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_msgTypes, }.Build() File_google_cloud_orchestration_airflow_service_v1beta1_environments_proto = out.File file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_rawDesc = nil file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_goTypes = nil file_google_cloud_orchestration_airflow_service_v1beta1_environments_proto_depIdxs = nil } // Reference imports to suppress errors if they are not otherwise used. var _ context.Context var _ grpc.ClientConnInterface // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. const _ = grpc.SupportPackageIsVersion6 // EnvironmentsClient is the client API for Environments service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type EnvironmentsClient interface { // Create a new environment. CreateEnvironment(ctx context.Context, in *CreateEnvironmentRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) // Get an existing environment. GetEnvironment(ctx context.Context, in *GetEnvironmentRequest, opts ...grpc.CallOption) (*Environment, error) // List environments. ListEnvironments(ctx context.Context, in *ListEnvironmentsRequest, opts ...grpc.CallOption) (*ListEnvironmentsResponse, error) // Update an environment. UpdateEnvironment(ctx context.Context, in *UpdateEnvironmentRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) // Delete an environment. DeleteEnvironment(ctx context.Context, in *DeleteEnvironmentRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) // Restart Airflow web server. RestartWebServer(ctx context.Context, in *RestartWebServerRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) // Check if an upgrade operation on the environment will succeed. // // In case of problems detailed info can be found in the returned Operation. CheckUpgrade(ctx context.Context, in *CheckUpgradeRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) // Creates a snapshots of a Cloud Composer environment. // // As a result of this operation, snapshot of environment's state is stored // in a location specified in the SaveSnapshotRequest. SaveSnapshot(ctx context.Context, in *SaveSnapshotRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) // Loads a snapshot of a Cloud Composer environment. // // As a result of this operation, a snapshot of environment's specified in // LoadSnapshotRequest is loaded into the environment. LoadSnapshot(ctx context.Context, in *LoadSnapshotRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) } type environmentsClient struct { cc grpc.ClientConnInterface } func NewEnvironmentsClient(cc grpc.ClientConnInterface) EnvironmentsClient { return &environmentsClient{cc} } func (c *environmentsClient) CreateEnvironment(ctx context.Context, in *CreateEnvironmentRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { out := new(longrunning.Operation) err := c.cc.Invoke(ctx, "/google.cloud.orchestration.airflow.service.v1beta1.Environments/CreateEnvironment", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *environmentsClient) GetEnvironment(ctx context.Context, in *GetEnvironmentRequest, opts ...grpc.CallOption) (*Environment, error) { out := new(Environment) err := c.cc.Invoke(ctx, "/google.cloud.orchestration.airflow.service.v1beta1.Environments/GetEnvironment", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *environmentsClient) ListEnvironments(ctx context.Context, in *ListEnvironmentsRequest, opts ...grpc.CallOption) (*ListEnvironmentsResponse, error) { out := new(ListEnvironmentsResponse) err := c.cc.Invoke(ctx, "/google.cloud.orchestration.airflow.service.v1beta1.Environments/ListEnvironments", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *environmentsClient) UpdateEnvironment(ctx context.Context, in *UpdateEnvironmentRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { out := new(longrunning.Operation) err := c.cc.Invoke(ctx, "/google.cloud.orchestration.airflow.service.v1beta1.Environments/UpdateEnvironment", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *environmentsClient) DeleteEnvironment(ctx context.Context, in *DeleteEnvironmentRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { out := new(longrunning.Operation) err := c.cc.Invoke(ctx, "/google.cloud.orchestration.airflow.service.v1beta1.Environments/DeleteEnvironment", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *environmentsClient) RestartWebServer(ctx context.Context, in *RestartWebServerRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { out := new(longrunning.Operation) err := c.cc.Invoke(ctx, "/google.cloud.orchestration.airflow.service.v1beta1.Environments/RestartWebServer", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *environmentsClient) CheckUpgrade(ctx context.Context, in *CheckUpgradeRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { out := new(longrunning.Operation) err := c.cc.Invoke(ctx, "/google.cloud.orchestration.airflow.service.v1beta1.Environments/CheckUpgrade", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *environmentsClient) SaveSnapshot(ctx context.Context, in *SaveSnapshotRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { out := new(longrunning.Operation) err := c.cc.Invoke(ctx, "/google.cloud.orchestration.airflow.service.v1beta1.Environments/SaveSnapshot", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *environmentsClient) LoadSnapshot(ctx context.Context, in *LoadSnapshotRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { out := new(longrunning.Operation) err := c.cc.Invoke(ctx, "/google.cloud.orchestration.airflow.service.v1beta1.Environments/LoadSnapshot", in, out, opts...) if err != nil { return nil, err } return out, nil } // EnvironmentsServer is the server API for Environments service. type EnvironmentsServer interface { // Create a new environment. CreateEnvironment(context.Context, *CreateEnvironmentRequest) (*longrunning.Operation, error) // Get an existing environment. GetEnvironment(context.Context, *GetEnvironmentRequest) (*Environment, error) // List environments. ListEnvironments(context.Context, *ListEnvironmentsRequest) (*ListEnvironmentsResponse, error) // Update an environment. UpdateEnvironment(context.Context, *UpdateEnvironmentRequest) (*longrunning.Operation, error) // Delete an environment. DeleteEnvironment(context.Context, *DeleteEnvironmentRequest) (*longrunning.Operation, error) // Restart Airflow web server. RestartWebServer(context.Context, *RestartWebServerRequest) (*longrunning.Operation, error) // Check if an upgrade operation on the environment will succeed. // // In case of problems detailed info can be found in the returned Operation. CheckUpgrade(context.Context, *CheckUpgradeRequest) (*longrunning.Operation, error) // Creates a snapshots of a Cloud Composer environment. // // As a result of this operation, snapshot of environment's state is stored // in a location specified in the SaveSnapshotRequest. SaveSnapshot(context.Context, *SaveSnapshotRequest) (*longrunning.Operation, error) // Loads a snapshot of a Cloud Composer environment. // // As a result of this operation, a snapshot of environment's specified in // LoadSnapshotRequest is loaded into the environment. LoadSnapshot(context.Context, *LoadSnapshotRequest) (*longrunning.Operation, error) } // UnimplementedEnvironmentsServer can be embedded to have forward compatible implementations. type UnimplementedEnvironmentsServer struct { } func (*UnimplementedEnvironmentsServer) CreateEnvironment(context.Context, *CreateEnvironmentRequest) (*longrunning.Operation, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateEnvironment not implemented") } func (*UnimplementedEnvironmentsServer) GetEnvironment(context.Context, *GetEnvironmentRequest) (*Environment, error) { return nil, status.Errorf(codes.Unimplemented, "method GetEnvironment not implemented") } func (*UnimplementedEnvironmentsServer) ListEnvironments(context.Context, *ListEnvironmentsRequest) (*ListEnvironmentsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ListEnvironments not implemented") } func (*UnimplementedEnvironmentsServer) UpdateEnvironment(context.Context, *UpdateEnvironmentRequest) (*longrunning.Operation, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateEnvironment not implemented") } func (*UnimplementedEnvironmentsServer) DeleteEnvironment(context.Context, *DeleteEnvironmentRequest) (*longrunning.Operation, error) { return nil, status.Errorf(codes.Unimplemented, "method DeleteEnvironment not implemented") } func (*UnimplementedEnvironmentsServer) RestartWebServer(context.Context, *RestartWebServerRequest) (*longrunning.Operation, error) { return nil, status.Errorf(codes.Unimplemented, "method RestartWebServer not implemented") } func (*UnimplementedEnvironmentsServer) CheckUpgrade(context.Context, *CheckUpgradeRequest) (*longrunning.Operation, error) { return nil, status.Errorf(codes.Unimplemented, "method CheckUpgrade not implemented") } func (*UnimplementedEnvironmentsServer) SaveSnapshot(context.Context, *SaveSnapshotRequest) (*longrunning.Operation, error) { return nil, status.Errorf(codes.Unimplemented, "method SaveSnapshot not implemented") } func (*UnimplementedEnvironmentsServer) LoadSnapshot(context.Context, *LoadSnapshotRequest) (*longrunning.Operation, error) { return nil, status.Errorf(codes.Unimplemented, "method LoadSnapshot not implemented") } func RegisterEnvironmentsServer(s *grpc.Server, srv EnvironmentsServer) { s.RegisterService(&_Environments_serviceDesc, srv) } func _Environments_CreateEnvironment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(CreateEnvironmentRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(EnvironmentsServer).CreateEnvironment(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.orchestration.airflow.service.v1beta1.Environments/CreateEnvironment", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(EnvironmentsServer).CreateEnvironment(ctx, req.(*CreateEnvironmentRequest)) } return interceptor(ctx, in, info, handler) } func _Environments_GetEnvironment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetEnvironmentRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(EnvironmentsServer).GetEnvironment(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.orchestration.airflow.service.v1beta1.Environments/GetEnvironment", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(EnvironmentsServer).GetEnvironment(ctx, req.(*GetEnvironmentRequest)) } return interceptor(ctx, in, info, handler) } func _Environments_ListEnvironments_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ListEnvironmentsRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(EnvironmentsServer).ListEnvironments(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.orchestration.airflow.service.v1beta1.Environments/ListEnvironments", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(EnvironmentsServer).ListEnvironments(ctx, req.(*ListEnvironmentsRequest)) } return interceptor(ctx, in, info, handler) } func _Environments_UpdateEnvironment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(UpdateEnvironmentRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(EnvironmentsServer).UpdateEnvironment(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.orchestration.airflow.service.v1beta1.Environments/UpdateEnvironment", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(EnvironmentsServer).UpdateEnvironment(ctx, req.(*UpdateEnvironmentRequest)) } return interceptor(ctx, in, info, handler) } func _Environments_DeleteEnvironment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(DeleteEnvironmentRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(EnvironmentsServer).DeleteEnvironment(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.orchestration.airflow.service.v1beta1.Environments/DeleteEnvironment", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(EnvironmentsServer).DeleteEnvironment(ctx, req.(*DeleteEnvironmentRequest)) } return interceptor(ctx, in, info, handler) } func _Environments_RestartWebServer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(RestartWebServerRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(EnvironmentsServer).RestartWebServer(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.orchestration.airflow.service.v1beta1.Environments/RestartWebServer", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(EnvironmentsServer).RestartWebServer(ctx, req.(*RestartWebServerRequest)) } return interceptor(ctx, in, info, handler) } func _Environments_CheckUpgrade_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(CheckUpgradeRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(EnvironmentsServer).CheckUpgrade(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.orchestration.airflow.service.v1beta1.Environments/CheckUpgrade", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(EnvironmentsServer).CheckUpgrade(ctx, req.(*CheckUpgradeRequest)) } return interceptor(ctx, in, info, handler) } func _Environments_SaveSnapshot_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(SaveSnapshotRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(EnvironmentsServer).SaveSnapshot(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.orchestration.airflow.service.v1beta1.Environments/SaveSnapshot", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(EnvironmentsServer).SaveSnapshot(ctx, req.(*SaveSnapshotRequest)) } return interceptor(ctx, in, info, handler) } func _Environments_LoadSnapshot_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(LoadSnapshotRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(EnvironmentsServer).LoadSnapshot(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.orchestration.airflow.service.v1beta1.Environments/LoadSnapshot", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(EnvironmentsServer).LoadSnapshot(ctx, req.(*LoadSnapshotRequest)) } return interceptor(ctx, in, info, handler) } var _Environments_serviceDesc = grpc.ServiceDesc{ ServiceName: "google.cloud.orchestration.airflow.service.v1beta1.Environments", HandlerType: (*EnvironmentsServer)(nil), Methods: []grpc.MethodDesc{ { MethodName: "CreateEnvironment", Handler: _Environments_CreateEnvironment_Handler, }, { MethodName: "GetEnvironment", Handler: _Environments_GetEnvironment_Handler, }, { MethodName: "ListEnvironments", Handler: _Environments_ListEnvironments_Handler, }, { MethodName: "UpdateEnvironment", Handler: _Environments_UpdateEnvironment_Handler, }, { MethodName: "DeleteEnvironment", Handler: _Environments_DeleteEnvironment_Handler, }, { MethodName: "RestartWebServer", Handler: _Environments_RestartWebServer_Handler, }, { MethodName: "CheckUpgrade", Handler: _Environments_CheckUpgrade_Handler, }, { MethodName: "SaveSnapshot", Handler: _Environments_SaveSnapshot_Handler, }, { MethodName: "LoadSnapshot", Handler: _Environments_LoadSnapshot_Handler, }, }, Streams: []grpc.StreamDesc{}, Metadata: "google/cloud/orchestration/airflow/service/v1beta1/environments.proto", }