Committer: @alexander-fenster PiperOrigin-RevId: 382134259pull/662/head
parent
eb2c73b157
commit
f5cb59993d
12 changed files with 2863 additions and 0 deletions
@ -0,0 +1,344 @@ |
||||
# This file was automatically generated by BuildFileGenerator |
||||
# https://github.com/googleapis/rules_gapic/tree/master/bazel |
||||
|
||||
# Most of the manual changes to this file will be overwritten. |
||||
# It's **only** allowed to change the following rule attribute values: |
||||
# - names of *_gapic_assembly_* rules |
||||
# - certain parameters of *_gapic_library rules, including but not limited to: |
||||
# * extra_protoc_parameters |
||||
# * extra_protoc_file_parameters |
||||
# The complete list of preserved parameters can be found in the source code. |
||||
|
||||
# This is an API workspace, having public visibility by default makes perfect sense. |
||||
package(default_visibility = ["//visibility:public"]) |
||||
|
||||
############################################################################## |
||||
# Common |
||||
############################################################################## |
||||
load("@rules_proto//proto:defs.bzl", "proto_library") |
||||
load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") |
||||
|
||||
proto_library( |
||||
name = "service_proto", |
||||
srcs = [ |
||||
"environments.proto", |
||||
"image_versions.proto", |
||||
"operations.proto", |
||||
], |
||||
deps = [ |
||||
"//google/api:annotations_proto", |
||||
"//google/api:client_proto", |
||||
"//google/api:field_behavior_proto", |
||||
"//google/api:resource_proto", |
||||
"//google/longrunning:operations_proto", |
||||
"//google/type:date_proto", |
||||
"@com_google_protobuf//:field_mask_proto", |
||||
"@com_google_protobuf//:timestamp_proto", |
||||
], |
||||
) |
||||
|
||||
proto_library_with_info( |
||||
name = "service_proto_with_info", |
||||
deps = [ |
||||
":service_proto", |
||||
"//google/cloud:common_resources_proto", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# Java |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"java_gapic_assembly_gradle_pkg", |
||||
"java_gapic_library", |
||||
"java_gapic_test", |
||||
"java_grpc_library", |
||||
"java_proto_library", |
||||
) |
||||
|
||||
java_proto_library( |
||||
name = "service_java_proto", |
||||
deps = [":service_proto"], |
||||
) |
||||
|
||||
java_grpc_library( |
||||
name = "service_java_grpc", |
||||
srcs = [":service_proto"], |
||||
deps = [":service_java_proto"], |
||||
) |
||||
|
||||
java_gapic_library( |
||||
name = "service_java_gapic", |
||||
srcs = [":service_proto_with_info"], |
||||
grpc_service_config = "composer_grpc_service_config.json", |
||||
test_deps = [ |
||||
":service_java_grpc", |
||||
], |
||||
deps = [ |
||||
":service_java_proto", |
||||
], |
||||
) |
||||
|
||||
java_gapic_test( |
||||
name = "service_java_gapic_test_suite", |
||||
test_classes = [ |
||||
"com.google.cloud.orchestration.airflow.service.v1.EnvironmentsClientTest", |
||||
"com.google.cloud.orchestration.airflow.service.v1.ImageVersionsClientTest", |
||||
], |
||||
runtime_deps = [":service_java_gapic_test"], |
||||
) |
||||
|
||||
# Open Source Packages |
||||
java_gapic_assembly_gradle_pkg( |
||||
name = "google-cloud-airflow-service-v1-java", |
||||
deps = [ |
||||
":service_java_gapic", |
||||
":service_java_grpc", |
||||
":service_java_proto", |
||||
":service_proto", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# Go |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"go_gapic_assembly_pkg", |
||||
"go_gapic_library", |
||||
"go_proto_library", |
||||
"go_test", |
||||
) |
||||
|
||||
go_proto_library( |
||||
name = "service_go_proto", |
||||
compilers = ["@io_bazel_rules_go//proto:go_grpc"], |
||||
importpath = "google.golang.org/genproto/googleapis/cloud/orchestration/airflow/service/v1", |
||||
protos = [":service_proto"], |
||||
deps = [ |
||||
"//google/api:annotations_go_proto", |
||||
"//google/longrunning:longrunning_go_proto", |
||||
"//google/type:date_go_proto", |
||||
], |
||||
) |
||||
|
||||
go_gapic_library( |
||||
name = "service_go_gapic", |
||||
srcs = [":service_proto_with_info"], |
||||
grpc_service_config = "composer_grpc_service_config.json", |
||||
importpath = "cloud.google.com/go/orchestration/airflow/service/apiv1;service", |
||||
service_yaml = "composer_v1.yaml", |
||||
metadata = True, |
||||
deps = [ |
||||
":service_go_proto", |
||||
"//google/longrunning:longrunning_go_proto", |
||||
"@com_google_cloud_go//longrunning/autogen:go_default_library", |
||||
"@com_google_cloud_go//longrunning:go_default_library", |
||||
], |
||||
) |
||||
|
||||
go_test( |
||||
name = "service_go_gapic_test", |
||||
srcs = [":service_go_gapic_srcjar_test"], |
||||
embed = [":service_go_gapic"], |
||||
importpath = "cloud.google.com/go/orchestration/airflow/service/apiv1", |
||||
) |
||||
|
||||
# Open Source Packages |
||||
go_gapic_assembly_pkg( |
||||
name = "gapi-cloud-airflow-service-v1-go", |
||||
deps = [ |
||||
":service_go_gapic", |
||||
":service_go_gapic_srcjar-test.srcjar", |
||||
":service_go_gapic_srcjar-metadata.srcjar", |
||||
":service_go_proto", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# Python |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"py_gapic_assembly_pkg", |
||||
"py_gapic_library", |
||||
) |
||||
|
||||
py_gapic_library( |
||||
name = "service_py_gapic", |
||||
srcs = [":service_proto"], |
||||
grpc_service_config = "composer_grpc_service_config.json", |
||||
) |
||||
|
||||
# Open Source Packages |
||||
py_gapic_assembly_pkg( |
||||
name = "airflow-service-v1-py", |
||||
deps = [ |
||||
":service_py_gapic", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# PHP |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"php_gapic_assembly_pkg", |
||||
"php_gapic_library", |
||||
"php_grpc_library", |
||||
"php_proto_library", |
||||
) |
||||
|
||||
php_proto_library( |
||||
name = "service_php_proto", |
||||
deps = [":service_proto"], |
||||
) |
||||
|
||||
php_grpc_library( |
||||
name = "service_php_grpc", |
||||
srcs = [":service_proto"], |
||||
deps = [":service_php_proto"], |
||||
) |
||||
|
||||
php_gapic_library( |
||||
name = "service_php_gapic", |
||||
srcs = [":service_proto_with_info"], |
||||
grpc_service_config = "composer_grpc_service_config.json", |
||||
service_yaml = "composer_v1.yaml", |
||||
deps = [ |
||||
":service_php_grpc", |
||||
":service_php_proto", |
||||
], |
||||
) |
||||
|
||||
# Open Source Packages |
||||
php_gapic_assembly_pkg( |
||||
name = "google-cloud-airflow-service-v1-php", |
||||
deps = [ |
||||
":service_php_gapic", |
||||
":service_php_grpc", |
||||
":service_php_proto", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# Node.js |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"nodejs_gapic_assembly_pkg", |
||||
"nodejs_gapic_library", |
||||
) |
||||
|
||||
nodejs_gapic_library( |
||||
name = "service_nodejs_gapic", |
||||
package_name = "@google-cloud/composer", |
||||
src = ":service_proto_with_info", |
||||
extra_protoc_parameters = ["metadata"], |
||||
grpc_service_config = "composer_grpc_service_config.json", |
||||
package = "google.cloud.orchestration.airflow.service.v1", |
||||
service_yaml = "composer_v1.yaml", |
||||
deps = [], |
||||
) |
||||
|
||||
nodejs_gapic_assembly_pkg( |
||||
name = "airflow-service-v1-nodejs", |
||||
deps = [ |
||||
":service_nodejs_gapic", |
||||
":service_proto", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# Ruby |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"ruby_gapic_assembly_pkg", |
||||
"ruby_cloud_gapic_library", |
||||
"ruby_grpc_library", |
||||
"ruby_proto_library", |
||||
) |
||||
|
||||
ruby_proto_library( |
||||
name = "service_ruby_proto", |
||||
deps = [":service_proto"], |
||||
) |
||||
|
||||
ruby_grpc_library( |
||||
name = "service_ruby_grpc", |
||||
srcs = [":service_proto"], |
||||
deps = [":service_ruby_proto"], |
||||
) |
||||
|
||||
ruby_cloud_gapic_library( |
||||
name = "service_ruby_gapic", |
||||
srcs = [":service_proto_with_info"], |
||||
extra_protoc_parameters = [ |
||||
"ruby-cloud-gem-name=google-cloud-airflow-service-v1", |
||||
], |
||||
grpc_service_config = "composer_grpc_service_config.json", |
||||
deps = [ |
||||
":service_ruby_grpc", |
||||
":service_ruby_proto", |
||||
], |
||||
) |
||||
|
||||
# Open Source Packages |
||||
ruby_gapic_assembly_pkg( |
||||
name = "google-cloud-airflow-service-v1-ruby", |
||||
deps = [ |
||||
":service_ruby_gapic", |
||||
":service_ruby_grpc", |
||||
":service_ruby_proto", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# C# |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"csharp_gapic_assembly_pkg", |
||||
"csharp_gapic_library", |
||||
"csharp_grpc_library", |
||||
"csharp_proto_library", |
||||
) |
||||
|
||||
csharp_proto_library( |
||||
name = "service_csharp_proto", |
||||
deps = [":service_proto"], |
||||
) |
||||
|
||||
csharp_grpc_library( |
||||
name = "service_csharp_grpc", |
||||
srcs = [":service_proto"], |
||||
deps = [":service_csharp_proto"], |
||||
) |
||||
|
||||
csharp_gapic_library( |
||||
name = "service_csharp_gapic", |
||||
srcs = [":service_proto_with_info"], |
||||
common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", |
||||
grpc_service_config = "composer_grpc_service_config.json", |
||||
deps = [ |
||||
":service_csharp_grpc", |
||||
":service_csharp_proto", |
||||
], |
||||
) |
||||
|
||||
# Open Source Packages |
||||
csharp_gapic_assembly_pkg( |
||||
name = "google-cloud-airflow-service-v1-csharp", |
||||
deps = [ |
||||
":service_csharp_gapic", |
||||
":service_csharp_grpc", |
||||
":service_csharp_proto", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# C++ |
||||
############################################################################## |
||||
# Put your C++ rules here |
@ -0,0 +1,15 @@ |
||||
{ |
||||
"methodConfig": [ |
||||
{ |
||||
"name": [ |
||||
{ |
||||
"service": "com.google.cloud.orchestration.airflow.service.v1.Environments" |
||||
}, |
||||
{ |
||||
"service": "com.google.cloud.orchestration.airflow.service.v1.ImageVersions" |
||||
} |
||||
], |
||||
"timeout": "60s" |
||||
} |
||||
] |
||||
} |
@ -0,0 +1,48 @@ |
||||
type: google.api.Service |
||||
config_version: 3 |
||||
name: composer.googleapis.com |
||||
title: Cloud Composer API |
||||
|
||||
apis: |
||||
- name: google.cloud.orchestration.airflow.service.v1.Environments |
||||
- name: google.cloud.orchestration.airflow.service.v1.ImageVersions |
||||
|
||||
types: |
||||
- name: google.cloud.orchestration.airflow.service.v1.CheckUpgradeResponse |
||||
- name: google.cloud.orchestration.airflow.service.v1.OperationMetadata |
||||
|
||||
documentation: |
||||
summary: Manages Apache Airflow environments on Google Cloud Platform. |
||||
|
||||
backend: |
||||
rules: |
||||
- selector: 'google.cloud.orchestration.airflow.service.v1.Environments.*' |
||||
deadline: 10.0 |
||||
- selector: google.cloud.orchestration.airflow.service.v1.ImageVersions.ListImageVersions |
||||
deadline: 10.0 |
||||
- selector: 'google.longrunning.Operations.*' |
||||
deadline: 10.0 |
||||
|
||||
http: |
||||
rules: |
||||
- selector: google.longrunning.Operations.DeleteOperation |
||||
delete: '/v1/{name=projects/*/locations/*/operations/*}' |
||||
- selector: google.longrunning.Operations.GetOperation |
||||
get: '/v1/{name=projects/*/locations/*/operations/*}' |
||||
- selector: google.longrunning.Operations.ListOperations |
||||
get: '/v1/{name=projects/*/locations/*}/operations' |
||||
|
||||
authentication: |
||||
rules: |
||||
- selector: 'google.cloud.orchestration.airflow.service.v1.Environments.*' |
||||
oauth: |
||||
canonical_scopes: |- |
||||
https://www.googleapis.com/auth/cloud-platform |
||||
- selector: google.cloud.orchestration.airflow.service.v1.ImageVersions.ListImageVersions |
||||
oauth: |
||||
canonical_scopes: |- |
||||
https://www.googleapis.com/auth/cloud-platform |
||||
- selector: 'google.longrunning.Operations.*' |
||||
oauth: |
||||
canonical_scopes: |- |
||||
https://www.googleapis.com/auth/cloud-platform |
@ -0,0 +1,730 @@ |
||||
// Copyright 2021 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. |
||||
|
||||
syntax = "proto3"; |
||||
|
||||
package google.cloud.orchestration.airflow.service.v1; |
||||
|
||||
import "google/api/annotations.proto"; |
||||
import "google/api/client.proto"; |
||||
import "google/api/field_behavior.proto"; |
||||
import "google/api/resource.proto"; |
||||
import "google/longrunning/operations.proto"; |
||||
import "google/protobuf/field_mask.proto"; |
||||
import "google/protobuf/timestamp.proto"; |
||||
|
||||
option go_package = "google.golang.org/genproto/googleapis/cloud/orchestration/airflow/service/v1;service"; |
||||
option java_multiple_files = true; |
||||
option java_package = "com.google.cloud.orchestration.airflow.service.v1"; |
||||
|
||||
// Managed Apache Airflow Environments. |
||||
service Environments { |
||||
option (google.api.default_host) = "composer.googleapis.com"; |
||||
option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; |
||||
|
||||
// Create a new environment. |
||||
rpc CreateEnvironment(CreateEnvironmentRequest) returns (google.longrunning.Operation) { |
||||
option (google.api.http) = { |
||||
post: "/v1/{parent=projects/*/locations/*}/environments" |
||||
body: "environment" |
||||
}; |
||||
option (google.api.method_signature) = "parent,environment"; |
||||
option (google.longrunning.operation_info) = { |
||||
response_type: "Environment" |
||||
metadata_type: "google.cloud.orchestration.airflow.service.v1.OperationMetadata" |
||||
}; |
||||
} |
||||
|
||||
// Get an existing environment. |
||||
rpc GetEnvironment(GetEnvironmentRequest) returns (Environment) { |
||||
option (google.api.http) = { |
||||
get: "/v1/{name=projects/*/locations/*/environments/*}" |
||||
}; |
||||
option (google.api.method_signature) = "name"; |
||||
} |
||||
|
||||
// List environments. |
||||
rpc ListEnvironments(ListEnvironmentsRequest) returns (ListEnvironmentsResponse) { |
||||
option (google.api.http) = { |
||||
get: "/v1/{parent=projects/*/locations/*}/environments" |
||||
}; |
||||
option (google.api.method_signature) = "parent"; |
||||
} |
||||
|
||||
// Update an environment. |
||||
rpc UpdateEnvironment(UpdateEnvironmentRequest) returns (google.longrunning.Operation) { |
||||
option (google.api.http) = { |
||||
patch: "/v1/{name=projects/*/locations/*/environments/*}" |
||||
body: "environment" |
||||
}; |
||||
option (google.api.method_signature) = "name,environment,update_mask"; |
||||
option (google.longrunning.operation_info) = { |
||||
response_type: "Environment" |
||||
metadata_type: "google.cloud.orchestration.airflow.service.v1.OperationMetadata" |
||||
}; |
||||
} |
||||
|
||||
// Delete an environment. |
||||
rpc DeleteEnvironment(DeleteEnvironmentRequest) returns (google.longrunning.Operation) { |
||||
option (google.api.http) = { |
||||
delete: "/v1/{name=projects/*/locations/*/environments/*}" |
||||
}; |
||||
option (google.api.method_signature) = "name"; |
||||
option (google.longrunning.operation_info) = { |
||||
response_type: "google.protobuf.Empty" |
||||
metadata_type: "google.cloud.orchestration.airflow.service.v1.OperationMetadata" |
||||
}; |
||||
} |
||||
} |
||||
|
||||
// Create a new environment. |
||||
message CreateEnvironmentRequest { |
||||
// The parent must be of the form |
||||
// "projects/{projectId}/locations/{locationId}". |
||||
string parent = 1; |
||||
|
||||
// The environment to create. |
||||
Environment environment = 2; |
||||
} |
||||
|
||||
// Get an environment. |
||||
message GetEnvironmentRequest { |
||||
// The resource name of the environment to get, in the form: |
||||
// "projects/{projectId}/locations/{locationId}/environments/{environmentId}" |
||||
string name = 1; |
||||
} |
||||
|
||||
// List environments in a project and location. |
||||
message ListEnvironmentsRequest { |
||||
// List environments in the given project and location, in the form: |
||||
// "projects/{projectId}/locations/{locationId}" |
||||
string parent = 1; |
||||
|
||||
// The maximum number of environments to return. |
||||
int32 page_size = 2; |
||||
|
||||
// The next_page_token value returned from a previous List request, if any. |
||||
string page_token = 3; |
||||
} |
||||
|
||||
// The environments in a project and location. |
||||
message ListEnvironmentsResponse { |
||||
// The list of environments returned by a ListEnvironmentsRequest. |
||||
repeated Environment environments = 1; |
||||
|
||||
// The page token used to query for the next page if one exists. |
||||
string next_page_token = 2; |
||||
} |
||||
|
||||
// Delete an environment. |
||||
message DeleteEnvironmentRequest { |
||||
// The environment to delete, in the form: |
||||
// "projects/{projectId}/locations/{locationId}/environments/{environmentId}" |
||||
string name = 1; |
||||
} |
||||
|
||||
// Update an environment. |
||||
message UpdateEnvironmentRequest { |
||||
// The relative resource name of the environment to update, in the form: |
||||
// "projects/{projectId}/locations/{locationId}/environments/{environmentId}" |
||||
string name = 2; |
||||
|
||||
// A patch environment. Fields specified by the `updateMask` will be copied |
||||
// from the patch environment into the environment under update. |
||||
Environment environment = 1; |
||||
|
||||
// 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 |
||||
// numpy, the `updateMask` parameter would include the following two |
||||
// `paths` values: "config.softwareConfig.pypiPackages.scikit-learn" and |
||||
// "config.softwareConfig.pypiPackages.numpy". 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 numpy 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. |
||||
// * `config.webServerNetworkAccessControl` |
||||
// * Replace the environment's current `WebServerNetworkAccessControl`. |
||||
// * `config.databaseConfig` |
||||
// * Replace the environment's current `DatabaseConfig`. |
||||
// * `config.webServerConfig` |
||||
// * Replace the environment's current `WebServerConfig`. |
||||
// * `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. |
||||
// It is an error to provide both this mask and a mask specifying one or |
||||
// more individual environment variables. |
||||
google.protobuf.FieldMask update_mask = 3; |
||||
} |
||||
|
||||
// Configuration information for an environment. |
||||
message EnvironmentConfig { |
||||
// Output only. The Kubernetes Engine cluster used to run this environment. |
||||
string gke_cluster = 1; |
||||
|
||||
// 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. |
||||
string dag_gcs_prefix = 2; |
||||
|
||||
// The number of nodes in the Kubernetes Engine cluster that will be |
||||
// used to run this environment. |
||||
int32 node_count = 3; |
||||
|
||||
// The configuration settings for software inside the environment. |
||||
SoftwareConfig software_config = 4; |
||||
|
||||
// The configuration used for the Kubernetes Engine cluster. |
||||
NodeConfig node_config = 5; |
||||
|
||||
// The configuration used for the Private IP Cloud Composer environment. |
||||
PrivateEnvironmentConfig private_environment_config = 7; |
||||
|
||||
// Optional. The network-level access control policy for the Airflow web server. If |
||||
// unspecified, no network-level access restrictions will be applied. |
||||
WebServerNetworkAccessControl web_server_network_access_control = 8 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. The configuration settings for Cloud SQL instance used internally by Apache |
||||
// Airflow software. |
||||
DatabaseConfig database_config = 9 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. The configuration settings for the Airflow web server App Engine instance. |
||||
WebServerConfig web_server_config = 10 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. The encryption options for the Cloud Composer environment |
||||
// and its dependencies. Cannot be updated. |
||||
EncryptionConfig encryption_config = 11 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// 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)). |
||||
string airflow_uri = 6; |
||||
} |
||||
|
||||
// Network-level access control policy for the Airflow web server. |
||||
message WebServerNetworkAccessControl { |
||||
// Allowed IP range with user-provided description. |
||||
message AllowedIpRange { |
||||
// 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`. |
||||
string value = 1; |
||||
|
||||
// Optional. User-provided description. It must contain at most 300 characters. |
||||
string description = 2 [(google.api.field_behavior) = OPTIONAL]; |
||||
} |
||||
|
||||
// A collection of allowed IP ranges with descriptions. |
||||
repeated AllowedIpRange allowed_ip_ranges = 1; |
||||
} |
||||
|
||||
// The configuration of Cloud SQL instance that is used by the Apache Airflow |
||||
// software. |
||||
message DatabaseConfig { |
||||
// 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. |
||||
string machine_type = 1 [(google.api.field_behavior) = OPTIONAL]; |
||||
} |
||||
|
||||
// The configuration settings for the Airflow web server App Engine instance. |
||||
message WebServerConfig { |
||||
// 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. |
||||
string machine_type = 1 [(google.api.field_behavior) = OPTIONAL]; |
||||
} |
||||
|
||||
// The encryption options for the Cloud Composer environment |
||||
// and its dependencies. |
||||
message EncryptionConfig { |
||||
// Optional. Customer-managed Encryption Key available through Google's Key Management |
||||
// Service. Cannot be updated. |
||||
// If not specified, Google-managed key will be used. |
||||
string kms_key_name = 1 [(google.api.field_behavior) = OPTIONAL]; |
||||
} |
||||
|
||||
// Specifies the selection and configuration of software inside the environment. |
||||
message SoftwareConfig { |
||||
// 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]+|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 version is a |
||||
// [semantic version](https://semver.org) or `latest`. When the patch version |
||||
// is omitted, the current Cloud Composer patch version is selected. |
||||
// When `latest` is provided instead of an explicit version number, |
||||
// the server replaces `latest` with the current Cloud Composer version |
||||
// and stores that version number in the same field. |
||||
// |
||||
// The portion of the image version that follows *airflow-* is an |
||||
// official Apache Airflow repository |
||||
// [release name](https://github.com/apache/incubator-airflow/releases). |
||||
// |
||||
// See also [Version |
||||
// List](/composer/docs/concepts/versioning/composer-versions). |
||||
string image_version = 1; |
||||
|
||||
// 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. |
||||
map<string, string> airflow_config_overrides = 2; |
||||
|
||||
// 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. |
||||
map<string, string> pypi_packages = 3; |
||||
|
||||
// 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` |
||||
map<string, string> env_variables = 4; |
||||
|
||||
// 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. |
||||
string python_version = 6; |
||||
} |
||||
|
||||
// Configuration for controlling how IPs are allocated in the |
||||
// GKE cluster running the Apache Airflow software. |
||||
message IPAllocationPolicy { |
||||
// Optional. Whether or not to enable Alias IPs in the GKE cluster. |
||||
// If `true`, a VPC-native cluster is created. |
||||
bool use_ip_aliases = 1 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Configuration of allocating IP addresses for pods in the GKE cluster. |
||||
oneof cluster_ip_allocation { |
||||
// Optional. The name of the GKE cluster's secondary range used to allocate |
||||
// IP addresses to pods. |
||||
// |
||||
// This field is applicable only when `use_ip_aliases` is true. |
||||
string cluster_secondary_range_name = 2 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. The IP address range used to allocate IP addresses to pods in |
||||
// the GKE cluster. |
||||
// |
||||
// 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](http://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. |
||||
string cluster_ipv4_cidr_block = 4 [(google.api.field_behavior) = OPTIONAL]; |
||||
} |
||||
|
||||
// Configuration of allocating IP addresses for services in the GKE cluster. |
||||
oneof services_ip_allocation { |
||||
// Optional. The name of the services' secondary range used to allocate |
||||
// IP addresses to the GKE cluster. |
||||
// |
||||
// This field is applicable only when `use_ip_aliases` is true. |
||||
string services_secondary_range_name = 3 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. The IP address range of the services IP addresses in this |
||||
// GKE cluster. |
||||
// |
||||
// 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](http://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. |
||||
string services_ipv4_cidr_block = 5 [(google.api.field_behavior) = OPTIONAL]; |
||||
} |
||||
} |
||||
|
||||
// The configuration information for the Kubernetes Engine nodes running |
||||
// the Apache Airflow software. |
||||
message NodeConfig { |
||||
// 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. |
||||
string location = 1; |
||||
|
||||
// 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". |
||||
string machine_type = 2; |
||||
|
||||
// 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 ID 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`. |
||||
string network = 3; |
||||
|
||||
// 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. |
||||
string subnetwork = 4; |
||||
|
||||
// Optional. The disk size in GB used for node VMs. Minimum size is 20GB. |
||||
// If unspecified, defaults to 100GB. Cannot be updated. |
||||
int32 disk_size_gb = 5; |
||||
|
||||
// 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. |
||||
repeated string oauth_scopes = 6; |
||||
|
||||
// Optional. The Google Cloud Platform Service Account to be used by the node |
||||
// VMs. If a service account is not specified, the "default" Compute Engine |
||||
// service account is used. Cannot be updated. |
||||
string service_account = 7; |
||||
|
||||
// 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. |
||||
repeated string tags = 8; |
||||
|
||||
// Optional. The configuration for controlling how IPs are allocated in the GKE cluster. |
||||
IPAllocationPolicy ip_allocation_policy = 9 [(google.api.field_behavior) = OPTIONAL]; |
||||
} |
||||
|
||||
// Configuration options for the private GKE cluster in a Cloud Composer |
||||
// environment. |
||||
message PrivateClusterConfig { |
||||
// Optional. If `true`, access to the public endpoint of the GKE cluster is |
||||
// denied. |
||||
bool enable_private_endpoint = 1 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// 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. |
||||
string master_ipv4_cidr_block = 2 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// 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 GKE 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. |
||||
string master_ipv4_reserved_range = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
} |
||||
|
||||
// The configuration information for configuring a Private IP Cloud Composer |
||||
// environment. |
||||
message PrivateEnvironmentConfig { |
||||
// 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. |
||||
bool enable_private_environment = 1 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. Configuration for the private GKE cluster for a Private IP |
||||
// Cloud Composer environment. |
||||
PrivateClusterConfig private_cluster_config = 2 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// 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`. |
||||
string web_server_ipv4_cidr_block = 3 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// 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`. |
||||
string cloud_sql_ipv4_cidr_block = 4 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Output only. The IP range reserved for the tenant project's App Engine VMs. |
||||
string web_server_ipv4_reserved_range = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
} |
||||
|
||||
// An environment for running orchestration tasks. |
||||
message Environment { |
||||
option (google.api.resource) = { |
||||
type: "composer.googleapis.com/Environment" |
||||
pattern: "projects/{project}/locations/{location}/environments/{environment}" |
||||
}; |
||||
|
||||
// State of the environment. |
||||
enum State { |
||||
// The state of the environment is unknown. |
||||
STATE_UNSPECIFIED = 0; |
||||
|
||||
// The environment is in the process of being created. |
||||
CREATING = 1; |
||||
|
||||
// The environment is currently running and healthy. It is ready for use. |
||||
RUNNING = 2; |
||||
|
||||
// The environment is being updated. It remains usable but cannot receive |
||||
// additional update requests or be deleted at this time. |
||||
UPDATING = 3; |
||||
|
||||
// The environment is undergoing deletion. It cannot be used. |
||||
DELETING = 4; |
||||
|
||||
// The environment has encountered an error and cannot be used. |
||||
ERROR = 5; |
||||
} |
||||
|
||||
// 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. |
||||
string name = 1; |
||||
|
||||
// Configuration parameters for this environment. |
||||
EnvironmentConfig config = 2; |
||||
|
||||
// Output only. The UUID (Universally Unique IDentifier) associated with this environment. |
||||
// This value is generated when the environment is created. |
||||
string uuid = 3; |
||||
|
||||
// The current state of the environment. |
||||
State state = 4; |
||||
|
||||
// Output only. The time at which this environment was created. |
||||
google.protobuf.Timestamp create_time = 5; |
||||
|
||||
// Output only. The time at which this environment was last modified. |
||||
google.protobuf.Timestamp update_time = 6; |
||||
|
||||
// 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. |
||||
map<string, string> labels = 7; |
||||
} |
||||
|
||||
// Message containing information about the result of an upgrade check |
||||
// operation. |
||||
message CheckUpgradeResponse { |
||||
// Whether there were python modules conflict during image build. |
||||
enum ConflictResult { |
||||
// It is unknown whether build had conflicts or not. |
||||
CONFLICT_RESULT_UNSPECIFIED = 0; |
||||
|
||||
// There were python packages conflicts. |
||||
CONFLICT = 1; |
||||
|
||||
// There were no python packages conflicts. |
||||
NO_CONFLICT = 2; |
||||
} |
||||
|
||||
// Output only. Url for a docker build log of an upgraded image. |
||||
string build_log_uri = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
|
||||
// Output only. Whether build has succeeded or failed on modules conflicts. |
||||
ConflictResult contains_pypi_modules_conflict = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
|
||||
// Output only. Extract from a docker image build log containing information about pypi |
||||
// modules conflicts. |
||||
string pypi_conflict_build_log_extract = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
|
||||
// Composer image for which the build was happening. |
||||
string image_version = 5; |
||||
|
||||
// Pypi dependencies specified in the environment configuration, at the time |
||||
// when the build was triggered. |
||||
map<string, string> pypi_dependencies = 6; |
||||
} |
@ -0,0 +1,88 @@ |
||||
// Copyright 2021 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. |
||||
|
||||
syntax = "proto3"; |
||||
|
||||
package google.cloud.orchestration.airflow.service.v1; |
||||
|
||||
import "google/api/annotations.proto"; |
||||
import "google/api/client.proto"; |
||||
import "google/type/date.proto"; |
||||
|
||||
option go_package = "google.golang.org/genproto/googleapis/cloud/orchestration/airflow/service/v1;service"; |
||||
option java_multiple_files = true; |
||||
option java_package = "com.google.cloud.orchestration.airflow.service.v1"; |
||||
|
||||
// Readonly service to query available ImageVersions. |
||||
service ImageVersions { |
||||
option (google.api.default_host) = "composer.googleapis.com"; |
||||
option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; |
||||
|
||||
// List ImageVersions for provided location. |
||||
rpc ListImageVersions(ListImageVersionsRequest) returns (ListImageVersionsResponse) { |
||||
option (google.api.http) = { |
||||
get: "/v1/{parent=projects/*/locations/*}/imageVersions" |
||||
}; |
||||
option (google.api.method_signature) = "parent"; |
||||
} |
||||
} |
||||
|
||||
// List ImageVersions in a project and location. |
||||
message ListImageVersionsRequest { |
||||
// List ImageVersions in the given project and location, in the form: |
||||
// "projects/{projectId}/locations/{locationId}" |
||||
string parent = 1; |
||||
|
||||
// The maximum number of image_versions to return. |
||||
int32 page_size = 2; |
||||
|
||||
// The next_page_token value returned from a previous List request, if any. |
||||
string page_token = 3; |
||||
|
||||
// Whether or not image versions from old releases should be included. |
||||
bool include_past_releases = 4; |
||||
} |
||||
|
||||
// The ImageVersions in a project and location. |
||||
message ListImageVersionsResponse { |
||||
// The list of supported ImageVersions in a location. |
||||
repeated ImageVersion image_versions = 1; |
||||
|
||||
// The page token used to query for the next page if one exists. |
||||
string next_page_token = 2; |
||||
} |
||||
|
||||
// ImageVersion information |
||||
message ImageVersion { |
||||
// The string identifier of the ImageVersion, in the form: |
||||
// "composer-x.y.z-airflow-a.b(.c)" |
||||
string image_version_id = 1; |
||||
|
||||
// Whether this is the default ImageVersion used by Composer during |
||||
// environment creation if no input ImageVersion is specified. |
||||
bool is_default = 2; |
||||
|
||||
// supported python versions |
||||
repeated string supported_python_versions = 3; |
||||
|
||||
// The date of the version release. |
||||
google.type.Date release_date = 4; |
||||
|
||||
// Whether it is impossible to create an environment with the image version. |
||||
bool creation_disabled = 5; |
||||
|
||||
// Whether it is impossible to upgrade an environment running with the image |
||||
// version. |
||||
bool upgrade_disabled = 6; |
||||
} |
@ -0,0 +1,88 @@ |
||||
// Copyright 2021 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. |
||||
|
||||
syntax = "proto3"; |
||||
|
||||
package google.cloud.orchestration.airflow.service.v1; |
||||
|
||||
import "google/protobuf/timestamp.proto"; |
||||
import "google/api/annotations.proto"; |
||||
|
||||
option go_package = "google.golang.org/genproto/googleapis/cloud/orchestration/airflow/service/v1;service"; |
||||
option java_multiple_files = true; |
||||
option java_outer_classname = "OperationsProto"; |
||||
option java_package = "com.google.cloud.orchestration.airflow.service.v1"; |
||||
|
||||
// Metadata describing an operation. |
||||
message OperationMetadata { |
||||
// An enum describing the overall state of an operation. |
||||
enum State { |
||||
option allow_alias = true; |
||||
|
||||
// Unused. |
||||
STATE_UNSPECIFIED = 0; |
||||
|
||||
// The operation has been created but is not yet started. |
||||
PENDING = 1; |
||||
|
||||
// The operation is underway. |
||||
RUNNING = 2; |
||||
|
||||
// The operation completed successfully. |
||||
SUCCEEDED = 3; |
||||
|
||||
SUCCESSFUL = 3; |
||||
|
||||
// The operation is no longer running but did not succeed. |
||||
FAILED = 4; |
||||
} |
||||
|
||||
// Type of longrunning operation. |
||||
enum Type { |
||||
// Unused. |
||||
TYPE_UNSPECIFIED = 0; |
||||
|
||||
// A resource creation operation. |
||||
CREATE = 1; |
||||
|
||||
// A resource deletion operation. |
||||
DELETE = 2; |
||||
|
||||
// A resource update operation. |
||||
UPDATE = 3; |
||||
|
||||
// A resource check operation. |
||||
CHECK = 4; |
||||
} |
||||
|
||||
// Output only. The current operation state. |
||||
State state = 1; |
||||
|
||||
// Output only. The type of operation being performed. |
||||
Type operation_type = 2; |
||||
|
||||
// Output only. The resource being operated on, as a [relative resource name]( |
||||
// /apis/design/resource_names#relative_resource_name). |
||||
string resource = 3; |
||||
|
||||
// Output only. The UUID of the resource being operated on. |
||||
string resource_uuid = 4; |
||||
|
||||
// Output only. The time the operation was submitted to the server. |
||||
google.protobuf.Timestamp create_time = 5; |
||||
|
||||
// Output only. The time when the operation terminated, regardless of its success. |
||||
// This field is unset if the operation is still ongoing. |
||||
google.protobuf.Timestamp end_time = 6; |
||||
} |
@ -0,0 +1,344 @@ |
||||
# This file was automatically generated by BuildFileGenerator |
||||
# https://github.com/googleapis/rules_gapic/tree/master/bazel |
||||
|
||||
# Most of the manual changes to this file will be overwritten. |
||||
# It's **only** allowed to change the following rule attribute values: |
||||
# - names of *_gapic_assembly_* rules |
||||
# - certain parameters of *_gapic_library rules, including but not limited to: |
||||
# * extra_protoc_parameters |
||||
# * extra_protoc_file_parameters |
||||
# The complete list of preserved parameters can be found in the source code. |
||||
|
||||
# This is an API workspace, having public visibility by default makes perfect sense. |
||||
package(default_visibility = ["//visibility:public"]) |
||||
|
||||
############################################################################## |
||||
# Common |
||||
############################################################################## |
||||
load("@rules_proto//proto:defs.bzl", "proto_library") |
||||
load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") |
||||
|
||||
proto_library( |
||||
name = "service_proto", |
||||
srcs = [ |
||||
"environments.proto", |
||||
"image_versions.proto", |
||||
"operations.proto", |
||||
], |
||||
deps = [ |
||||
"//google/api:annotations_proto", |
||||
"//google/api:client_proto", |
||||
"//google/api:field_behavior_proto", |
||||
"//google/api:resource_proto", |
||||
"//google/longrunning:operations_proto", |
||||
"//google/type:date_proto", |
||||
"@com_google_protobuf//:field_mask_proto", |
||||
"@com_google_protobuf//:timestamp_proto", |
||||
], |
||||
) |
||||
|
||||
proto_library_with_info( |
||||
name = "service_proto_with_info", |
||||
deps = [ |
||||
":service_proto", |
||||
"//google/cloud:common_resources_proto", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# Java |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"java_gapic_assembly_gradle_pkg", |
||||
"java_gapic_library", |
||||
"java_gapic_test", |
||||
"java_grpc_library", |
||||
"java_proto_library", |
||||
) |
||||
|
||||
java_proto_library( |
||||
name = "service_java_proto", |
||||
deps = [":service_proto"], |
||||
) |
||||
|
||||
java_grpc_library( |
||||
name = "service_java_grpc", |
||||
srcs = [":service_proto"], |
||||
deps = [":service_java_proto"], |
||||
) |
||||
|
||||
java_gapic_library( |
||||
name = "service_java_gapic", |
||||
srcs = [":service_proto_with_info"], |
||||
grpc_service_config = "composer_grpc_service_config.json", |
||||
test_deps = [ |
||||
":service_java_grpc", |
||||
], |
||||
deps = [ |
||||
":service_java_proto", |
||||
], |
||||
) |
||||
|
||||
java_gapic_test( |
||||
name = "service_java_gapic_test_suite", |
||||
test_classes = [ |
||||
"com.google.cloud.orchestration.airflow.service.v1beta1.EnvironmentsClientTest", |
||||
"com.google.cloud.orchestration.airflow.service.v1beta1.ImageVersionsClientTest", |
||||
], |
||||
runtime_deps = [":service_java_gapic_test"], |
||||
) |
||||
|
||||
# Open Source Packages |
||||
java_gapic_assembly_gradle_pkg( |
||||
name = "google-cloud-airflow-service-v1beta1-java", |
||||
deps = [ |
||||
":service_java_gapic", |
||||
":service_java_grpc", |
||||
":service_java_proto", |
||||
":service_proto", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# Go |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"go_gapic_assembly_pkg", |
||||
"go_gapic_library", |
||||
"go_proto_library", |
||||
"go_test", |
||||
) |
||||
|
||||
go_proto_library( |
||||
name = "service_go_proto", |
||||
compilers = ["@io_bazel_rules_go//proto:go_grpc"], |
||||
importpath = "google.golang.org/genproto/googleapis/cloud/orchestration/airflow/service/v1beta1", |
||||
protos = [":service_proto"], |
||||
deps = [ |
||||
"//google/api:annotations_go_proto", |
||||
"//google/longrunning:longrunning_go_proto", |
||||
"//google/type:date_go_proto", |
||||
], |
||||
) |
||||
|
||||
go_gapic_library( |
||||
name = "service_go_gapic", |
||||
srcs = [":service_proto_with_info"], |
||||
grpc_service_config = "composer_grpc_service_config.json", |
||||
importpath = "cloud.google.com/go/orchestration/airflow/service/apiv1beta1;service", |
||||
service_yaml = "composer_v1beta1.yaml", |
||||
metadata = True, |
||||
deps = [ |
||||
":service_go_proto", |
||||
"//google/longrunning:longrunning_go_proto", |
||||
"@com_google_cloud_go//longrunning/autogen:go_default_library", |
||||
"@com_google_cloud_go//longrunning:go_default_library", |
||||
], |
||||
) |
||||
|
||||
go_test( |
||||
name = "service_go_gapic_test", |
||||
srcs = [":service_go_gapic_srcjar_test"], |
||||
embed = [":service_go_gapic"], |
||||
importpath = "cloud.google.com/go/orchestration/airflow/service/apiv1beta1", |
||||
) |
||||
|
||||
# Open Source Packages |
||||
go_gapic_assembly_pkg( |
||||
name = "gapi-cloud-airflow-service-v1beta1-go", |
||||
deps = [ |
||||
":service_go_gapic", |
||||
":service_go_gapic_srcjar-test.srcjar", |
||||
":service_go_gapic_srcjar-metadata.srcjar", |
||||
":service_go_proto", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# Python |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"py_gapic_assembly_pkg", |
||||
"py_gapic_library", |
||||
) |
||||
|
||||
py_gapic_library( |
||||
name = "service_py_gapic", |
||||
srcs = [":service_proto"], |
||||
grpc_service_config = "composer_grpc_service_config.json", |
||||
) |
||||
|
||||
# Open Source Packages |
||||
py_gapic_assembly_pkg( |
||||
name = "airflow-service-v1beta1-py", |
||||
deps = [ |
||||
":service_py_gapic", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# PHP |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"php_gapic_assembly_pkg", |
||||
"php_gapic_library", |
||||
"php_grpc_library", |
||||
"php_proto_library", |
||||
) |
||||
|
||||
php_proto_library( |
||||
name = "service_php_proto", |
||||
deps = [":service_proto"], |
||||
) |
||||
|
||||
php_grpc_library( |
||||
name = "service_php_grpc", |
||||
srcs = [":service_proto"], |
||||
deps = [":service_php_proto"], |
||||
) |
||||
|
||||
php_gapic_library( |
||||
name = "service_php_gapic", |
||||
srcs = [":service_proto_with_info"], |
||||
grpc_service_config = "composer_grpc_service_config.json", |
||||
service_yaml = "composer_v1beta1.yaml", |
||||
deps = [ |
||||
":service_php_grpc", |
||||
":service_php_proto", |
||||
], |
||||
) |
||||
|
||||
# Open Source Packages |
||||
php_gapic_assembly_pkg( |
||||
name = "google-cloud-airflow-service-v1beta1-php", |
||||
deps = [ |
||||
":service_php_gapic", |
||||
":service_php_grpc", |
||||
":service_php_proto", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# Node.js |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"nodejs_gapic_assembly_pkg", |
||||
"nodejs_gapic_library", |
||||
) |
||||
|
||||
nodejs_gapic_library( |
||||
name = "service_nodejs_gapic", |
||||
package_name = "@google-cloud/composer", |
||||
src = ":service_proto_with_info", |
||||
extra_protoc_parameters = ["metadata"], |
||||
grpc_service_config = "composer_grpc_service_config.json", |
||||
package = "google.cloud.orchestration.airflow.service.v1beta1", |
||||
service_yaml = "composer_v1beta1.yaml", |
||||
deps = [], |
||||
) |
||||
|
||||
nodejs_gapic_assembly_pkg( |
||||
name = "airflow-service-v1beta1-nodejs", |
||||
deps = [ |
||||
":service_nodejs_gapic", |
||||
":service_proto", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# Ruby |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"ruby_gapic_assembly_pkg", |
||||
"ruby_cloud_gapic_library", |
||||
"ruby_grpc_library", |
||||
"ruby_proto_library", |
||||
) |
||||
|
||||
ruby_proto_library( |
||||
name = "service_ruby_proto", |
||||
deps = [":service_proto"], |
||||
) |
||||
|
||||
ruby_grpc_library( |
||||
name = "service_ruby_grpc", |
||||
srcs = [":service_proto"], |
||||
deps = [":service_ruby_proto"], |
||||
) |
||||
|
||||
ruby_cloud_gapic_library( |
||||
name = "service_ruby_gapic", |
||||
srcs = [":service_proto_with_info"], |
||||
extra_protoc_parameters = [ |
||||
"ruby-cloud-gem-name=google-cloud-airflow-service-v1beta1", |
||||
], |
||||
grpc_service_config = "composer_grpc_service_config.json", |
||||
deps = [ |
||||
":service_ruby_grpc", |
||||
":service_ruby_proto", |
||||
], |
||||
) |
||||
|
||||
# Open Source Packages |
||||
ruby_gapic_assembly_pkg( |
||||
name = "google-cloud-airflow-service-v1beta1-ruby", |
||||
deps = [ |
||||
":service_ruby_gapic", |
||||
":service_ruby_grpc", |
||||
":service_ruby_proto", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# C# |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"csharp_gapic_assembly_pkg", |
||||
"csharp_gapic_library", |
||||
"csharp_grpc_library", |
||||
"csharp_proto_library", |
||||
) |
||||
|
||||
csharp_proto_library( |
||||
name = "service_csharp_proto", |
||||
deps = [":service_proto"], |
||||
) |
||||
|
||||
csharp_grpc_library( |
||||
name = "service_csharp_grpc", |
||||
srcs = [":service_proto"], |
||||
deps = [":service_csharp_proto"], |
||||
) |
||||
|
||||
csharp_gapic_library( |
||||
name = "service_csharp_gapic", |
||||
srcs = [":service_proto_with_info"], |
||||
common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", |
||||
grpc_service_config = "composer_grpc_service_config.json", |
||||
deps = [ |
||||
":service_csharp_grpc", |
||||
":service_csharp_proto", |
||||
], |
||||
) |
||||
|
||||
# Open Source Packages |
||||
csharp_gapic_assembly_pkg( |
||||
name = "google-cloud-airflow-service-v1beta1-csharp", |
||||
deps = [ |
||||
":service_csharp_gapic", |
||||
":service_csharp_grpc", |
||||
":service_csharp_proto", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# C++ |
||||
############################################################################## |
||||
# Put your C++ rules here |
@ -0,0 +1,15 @@ |
||||
{ |
||||
"methodConfig": [ |
||||
{ |
||||
"name": [ |
||||
{ |
||||
"service": "com.google.cloud.orchestration.airflow.service.v1beta1.Environments" |
||||
}, |
||||
{ |
||||
"service": "com.google.cloud.orchestration.airflow.service.v1beta1.ImageVersions" |
||||
} |
||||
], |
||||
"timeout": "60s" |
||||
} |
||||
] |
||||
} |
@ -0,0 +1,48 @@ |
||||
type: google.api.Service |
||||
config_version: 3 |
||||
name: composer.googleapis.com |
||||
title: Cloud Composer API |
||||
|
||||
apis: |
||||
- name: google.cloud.orchestration.airflow.service.v1beta1.Environments |
||||
- name: google.cloud.orchestration.airflow.service.v1beta1.ImageVersions |
||||
|
||||
types: |
||||
- name: google.cloud.orchestration.airflow.service.v1beta1.CheckUpgradeResponse |
||||
- name: google.cloud.orchestration.airflow.service.v1beta1.OperationMetadata |
||||
|
||||
documentation: |
||||
summary: Manages Apache Airflow environments on Google Cloud Platform. |
||||
|
||||
backend: |
||||
rules: |
||||
- selector: 'google.cloud.orchestration.airflow.service.v1beta1.Environments.*' |
||||
deadline: 10.0 |
||||
- selector: google.cloud.orchestration.airflow.service.v1beta1.ImageVersions.ListImageVersions |
||||
deadline: 10.0 |
||||
- selector: 'google.longrunning.Operations.*' |
||||
deadline: 10.0 |
||||
|
||||
http: |
||||
rules: |
||||
- selector: google.longrunning.Operations.DeleteOperation |
||||
delete: '/v1beta1/{name=projects/*/locations/*/operations/*}' |
||||
- selector: google.longrunning.Operations.GetOperation |
||||
get: '/v1beta1/{name=projects/*/locations/*/operations/*}' |
||||
- selector: google.longrunning.Operations.ListOperations |
||||
get: '/v1beta1/{name=projects/*/locations/*}/operations' |
||||
|
||||
authentication: |
||||
rules: |
||||
- selector: 'google.cloud.orchestration.airflow.service.v1beta1.Environments.*' |
||||
oauth: |
||||
canonical_scopes: |- |
||||
https://www.googleapis.com/auth/cloud-platform |
||||
- selector: google.cloud.orchestration.airflow.service.v1beta1.ImageVersions.ListImageVersions |
||||
oauth: |
||||
canonical_scopes: |- |
||||
https://www.googleapis.com/auth/cloud-platform |
||||
- selector: 'google.longrunning.Operations.*' |
||||
oauth: |
||||
canonical_scopes: |- |
||||
https://www.googleapis.com/auth/cloud-platform |
@ -0,0 +1,971 @@ |
||||
// Copyright 2021 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. |
||||
|
||||
syntax = "proto3"; |
||||
|
||||
package google.cloud.orchestration.airflow.service.v1beta1; |
||||
|
||||
import "google/api/annotations.proto"; |
||||
import "google/api/client.proto"; |
||||
import "google/api/field_behavior.proto"; |
||||
import "google/api/resource.proto"; |
||||
import "google/longrunning/operations.proto"; |
||||
import "google/protobuf/field_mask.proto"; |
||||
import "google/protobuf/timestamp.proto"; |
||||
|
||||
option go_package = "google.golang.org/genproto/googleapis/cloud/orchestration/airflow/service/v1beta1;service"; |
||||
option java_multiple_files = true; |
||||
option java_package = "com.google.cloud.orchestration.airflow.service.v1beta1"; |
||||
|
||||
// Managed Apache Airflow Environments. |
||||
service Environments { |
||||
option (google.api.default_host) = "composer.googleapis.com"; |
||||
option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; |
||||
|
||||
// Create a new environment. |
||||
rpc CreateEnvironment(CreateEnvironmentRequest) returns (google.longrunning.Operation) { |
||||
option (google.api.http) = { |
||||
post: "/v1beta1/{parent=projects/*/locations/*}/environments" |
||||
body: "environment" |
||||
}; |
||||
option (google.api.method_signature) = "parent,environment"; |
||||
option (google.longrunning.operation_info) = { |
||||
response_type: "Environment" |
||||
metadata_type: "google.cloud.orchestration.airflow.service.v1beta1.OperationMetadata" |
||||
}; |
||||
} |
||||
|
||||
// Get an existing environment. |
||||
rpc GetEnvironment(GetEnvironmentRequest) returns (Environment) { |
||||
option (google.api.http) = { |
||||
get: "/v1beta1/{name=projects/*/locations/*/environments/*}" |
||||
}; |
||||
option (google.api.method_signature) = "name"; |
||||
} |
||||
|
||||
// List environments. |
||||
rpc ListEnvironments(ListEnvironmentsRequest) returns (ListEnvironmentsResponse) { |
||||
option (google.api.http) = { |
||||
get: "/v1beta1/{parent=projects/*/locations/*}/environments" |
||||
}; |
||||
option (google.api.method_signature) = "parent"; |
||||
} |
||||
|
||||
// Update an environment. |
||||
rpc UpdateEnvironment(UpdateEnvironmentRequest) returns (google.longrunning.Operation) { |
||||
option (google.api.http) = { |
||||
patch: "/v1beta1/{name=projects/*/locations/*/environments/*}" |
||||
body: "environment" |
||||
}; |
||||
option (google.api.method_signature) = "name,environment,update_mask"; |
||||
option (google.longrunning.operation_info) = { |
||||
response_type: "Environment" |
||||
metadata_type: "google.cloud.orchestration.airflow.service.v1beta1.OperationMetadata" |
||||
}; |
||||
} |
||||
|
||||
// Delete an environment. |
||||
rpc DeleteEnvironment(DeleteEnvironmentRequest) returns (google.longrunning.Operation) { |
||||
option (google.api.http) = { |
||||
delete: "/v1beta1/{name=projects/*/locations/*/environments/*}" |
||||
}; |
||||
option (google.api.method_signature) = "name"; |
||||
option (google.longrunning.operation_info) = { |
||||
response_type: "google.protobuf.Empty" |
||||
metadata_type: "google.cloud.orchestration.airflow.service.v1beta1.OperationMetadata" |
||||
}; |
||||
} |
||||
|
||||
// Restart Airflow web server. |
||||
rpc RestartWebServer(RestartWebServerRequest) returns (google.longrunning.Operation) { |
||||
option (google.api.http) = { |
||||
post: "/v1beta1/{name=projects/*/locations/*/environments/*}:restartWebServer" |
||||
body: "*" |
||||
}; |
||||
option (google.longrunning.operation_info) = { |
||||
response_type: "Environment" |
||||
metadata_type: "google.cloud.orchestration.airflow.service.v1beta1.OperationMetadata" |
||||
}; |
||||
} |
||||
|
||||
// Check if an upgrade operation on the environment will succeed. |
||||
// |
||||
// In case of problems detailed info can be found in the returned Operation. |
||||
rpc CheckUpgrade(CheckUpgradeRequest) returns (google.longrunning.Operation) { |
||||
option (google.api.http) = { |
||||
post: "/v1beta1/{environment=projects/*/locations/*/environments/*}:checkUpgrade" |
||||
body: "*" |
||||
}; |
||||
option (google.longrunning.operation_info) = { |
||||
response_type: "google.cloud.orchestration.airflow.service.v1beta1.CheckUpgradeResponse" |
||||
metadata_type: "google.cloud.orchestration.airflow.service.v1beta1.OperationMetadata" |
||||
}; |
||||
} |
||||
} |
||||
|
||||
// Create a new environment. |
||||
message CreateEnvironmentRequest { |
||||
// The parent must be of the form |
||||
// "projects/{projectId}/locations/{locationId}". |
||||
string parent = 1; |
||||
|
||||
// The environment to create. |
||||
Environment environment = 2; |
||||
} |
||||
|
||||
// Get an environment. |
||||
message GetEnvironmentRequest { |
||||
// The resource name of the environment to get, in the form: |
||||
// "projects/{projectId}/locations/{locationId}/environments/{environmentId}" |
||||
string name = 1; |
||||
} |
||||
|
||||
// List environments in a project and location. |
||||
message ListEnvironmentsRequest { |
||||
// List environments in the given project and location, in the form: |
||||
// "projects/{projectId}/locations/{locationId}" |
||||
string parent = 1; |
||||
|
||||
// The maximum number of environments to return. |
||||
int32 page_size = 2; |
||||
|
||||
// The next_page_token value returned from a previous List request, if any. |
||||
string page_token = 3; |
||||
} |
||||
|
||||
// The environments in a project and location. |
||||
message ListEnvironmentsResponse { |
||||
// The list of environments returned by a ListEnvironmentsRequest. |
||||
repeated Environment environments = 1; |
||||
|
||||
// The page token used to query for the next page if one exists. |
||||
string next_page_token = 2; |
||||
} |
||||
|
||||
// Delete an environment. |
||||
message DeleteEnvironmentRequest { |
||||
// The environment to delete, in the form: |
||||
// "projects/{projectId}/locations/{locationId}/environments/{environmentId}" |
||||
string name = 1; |
||||
} |
||||
|
||||
// Update an environment. |
||||
message UpdateEnvironmentRequest { |
||||
// The relative resource name of the environment to update, in the form: |
||||
// "projects/{projectId}/locations/{locationId}/environments/{environmentId}" |
||||
string name = 2; |
||||
|
||||
// A patch environment. Fields specified by the `updateMask` will be copied |
||||
// from the patch environment into the environment under update. |
||||
Environment environment = 1; |
||||
|
||||
// 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. * `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. |
||||
// It is an error to provide both this mask and a mask specifying one or |
||||
// more individual environment variables. |
||||
// * `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 major version and Airflow major and minor versions. Consult |
||||
// the [Cloud Composer Version |
||||
// List](https://cloud.google.com/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. * `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. * `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. * `config.maintenanceWindow` |
||||
// * Maintenance window during which Cloud Composer components may be |
||||
// under maintenance. |
||||
google.protobuf.FieldMask update_mask = 3 [(google.api.field_behavior) = REQUIRED]; |
||||
} |
||||
|
||||
// Restart Airflow web server. |
||||
message RestartWebServerRequest { |
||||
// The resource name of the environment to restart the web server for, in the |
||||
// form: |
||||
// "projects/{projectId}/locations/{locationId}/environments/{environmentId}" |
||||
string name = 1; |
||||
} |
||||
|
||||
// Configuration information for an environment. |
||||
message EnvironmentConfig { |
||||
// The size of the Cloud Composer environment. |
||||
enum EnvironmentSize { |
||||
// The size of the environment is unspecified. |
||||
ENVIRONMENT_SIZE_UNSPECIFIED = 0; |
||||
|
||||
// The environment size is small. |
||||
ENVIRONMENT_SIZE_SMALL = 1; |
||||
|
||||
// The environment size is medium. |
||||
ENVIRONMENT_SIZE_MEDIUM = 2; |
||||
|
||||
// The environment size is large. |
||||
ENVIRONMENT_SIZE_LARGE = 3; |
||||
} |
||||
|
||||
// Output only. The Kubernetes Engine cluster used to run this environment. |
||||
string gke_cluster = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
|
||||
// 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. |
||||
string dag_gcs_prefix = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
|
||||
// The number of nodes in the Kubernetes Engine cluster that will be |
||||
// used to run this environment. |
||||
int32 node_count = 3; |
||||
|
||||
// The configuration settings for software inside the environment. |
||||
SoftwareConfig software_config = 4; |
||||
|
||||
// The configuration used for the Kubernetes Engine cluster. |
||||
NodeConfig node_config = 5; |
||||
|
||||
// The configuration used for the Private IP Cloud Composer environment. |
||||
PrivateEnvironmentConfig private_environment_config = 7; |
||||
|
||||
// Optional. The network-level access control policy for the Airflow web server. If |
||||
// unspecified, no network-level access restrictions will be applied. |
||||
WebServerNetworkAccessControl web_server_network_access_control = 9 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. The configuration settings for Cloud SQL instance used internally by Apache |
||||
// Airflow software. |
||||
DatabaseConfig database_config = 10 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. The configuration settings for the Airflow web server App Engine instance. |
||||
WebServerConfig web_server_config = 11 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// 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)). |
||||
string airflow_uri = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
|
||||
// Optional. The encryption options for the Cloud Composer environment and its |
||||
// dependencies. Cannot be updated. |
||||
EncryptionConfig encryption_config = 12 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// 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 maintenance_window = 13 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// 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 workloads_config = 15 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. The size of the Cloud Composer environment. |
||||
// |
||||
// This field is supported for Cloud Composer environments in versions |
||||
// composer-2.*.*-airflow-*.*.* and newer. |
||||
EnvironmentSize environment_size = 16 [(google.api.field_behavior) = OPTIONAL]; |
||||
} |
||||
|
||||
// Network-level access control policy for the Airflow web server. |
||||
message WebServerNetworkAccessControl { |
||||
// Allowed IP range with user-provided description. |
||||
message AllowedIpRange { |
||||
// 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`. |
||||
string value = 1; |
||||
|
||||
// Optional. User-provided description. It must contain at most 300 characters. |
||||
string description = 2 [(google.api.field_behavior) = OPTIONAL]; |
||||
} |
||||
|
||||
// A collection of allowed IP ranges with descriptions. |
||||
repeated AllowedIpRange allowed_ip_ranges = 1; |
||||
} |
||||
|
||||
// Specifies the selection and configuration of software inside the environment. |
||||
message SoftwareConfig { |
||||
// 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]+|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 version is a |
||||
// [semantic version](https://semver.org) or `latest`. When the patch version |
||||
// is omitted, the current Cloud Composer patch version is selected. |
||||
// When `latest` is provided instead of an explicit version number, |
||||
// the server replaces `latest` with the current Cloud Composer version |
||||
// and stores that version number in the same field. |
||||
// |
||||
// The portion of the image version that follows *airflow-* is an |
||||
// official Apache Airflow repository |
||||
// [release name](https://github.com/apache/incubator-airflow/releases). |
||||
// |
||||
// See also [Version |
||||
// List](/composer/docs/concepts/versioning/composer-versions). |
||||
string image_version = 1; |
||||
|
||||
// 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. |
||||
map<string, string> airflow_config_overrides = 2 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// 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. |
||||
map<string, string> pypi_packages = 3 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// 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` |
||||
map<string, string> env_variables = 4 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// 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. |
||||
string python_version = 6 [(google.api.field_behavior) = OPTIONAL]; |
||||
} |
||||
|
||||
// Configuration for controlling how IPs are allocated in the |
||||
// GKE cluster. |
||||
message IPAllocationPolicy { |
||||
// Optional. Whether or not to enable Alias IPs in the GKE cluster. |
||||
// If `true`, a VPC-native cluster is created. |
||||
bool use_ip_aliases = 1 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// 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. |
||||
// |
||||
// This field is applicable only when `use_ip_aliases` is true. |
||||
string cluster_secondary_range_name = 2 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// 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. |
||||
// |
||||
// This field is applicable only when `use_ip_aliases` is true. |
||||
string services_secondary_range_name = 3 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. The IP address range used to allocate IP addresses to pods in |
||||
// the cluster. |
||||
// |
||||
// 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](http://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. |
||||
string cluster_ipv4_cidr_block = 4 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. The IP address range of the services IP addresses in this |
||||
// cluster. |
||||
// |
||||
// 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](http://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. |
||||
string services_ipv4_cidr_block = 5 [(google.api.field_behavior) = OPTIONAL]; |
||||
} |
||||
|
||||
// The configuration information for the Kubernetes Engine nodes running |
||||
// the Apache Airflow software. |
||||
message NodeConfig { |
||||
// 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. |
||||
string location = 1 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// 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". |
||||
string machine_type = 2 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// 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`. |
||||
string network = 3 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// 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. |
||||
string subnetwork = 4 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. The disk size in GB used for node VMs. Minimum size is 20GB. |
||||
// If unspecified, defaults to 100GB. Cannot be updated. |
||||
int32 disk_size_gb = 5 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// 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. |
||||
repeated string oauth_scopes = 6 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// 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. |
||||
string service_account = 7 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// 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. |
||||
repeated string tags = 8 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. The IPAllocationPolicy fields for the GKE cluster. |
||||
IPAllocationPolicy ip_allocation_policy = 9 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// 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. |
||||
int32 max_pods_per_node = 10 [(google.api.field_behavior) = OPTIONAL]; |
||||
} |
||||
|
||||
// Configuration options for the private GKE cluster in a Cloud Composer |
||||
// environment. |
||||
message PrivateClusterConfig { |
||||
// Optional. If `true`, access to the public endpoint of the GKE cluster is |
||||
// denied. |
||||
bool enable_private_endpoint = 1 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// 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. |
||||
string master_ipv4_cidr_block = 2 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// 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. |
||||
string master_ipv4_reserved_range = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
} |
||||
|
||||
// The configuration information for configuring a Private IP Cloud Composer |
||||
// environment. |
||||
message PrivateEnvironmentConfig { |
||||
// 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 . |
||||
bool enable_private_environment = 1 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. Configuration for the private GKE cluster for a Private IP |
||||
// Cloud Composer environment. |
||||
PrivateClusterConfig private_cluster_config = 2 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// 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. |
||||
string web_server_ipv4_cidr_block = 3 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// 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 |
||||
string cloud_sql_ipv4_cidr_block = 4 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Output only. The IP range reserved for the tenant project's App Engine VMs. |
||||
string web_server_ipv4_reserved_range = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
|
||||
// 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. |
||||
string cloud_composer_network_ipv4_cidr_block = 7 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// 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. |
||||
string cloud_composer_network_ipv4_reserved_range = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
} |
||||
|
||||
// The configuration of Cloud SQL instance that is used by the Apache Airflow |
||||
// software. |
||||
message DatabaseConfig { |
||||
// 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. |
||||
string machine_type = 1 [(google.api.field_behavior) = OPTIONAL]; |
||||
} |
||||
|
||||
// The configuration settings for the Airflow web server App Engine instance. |
||||
message WebServerConfig { |
||||
// 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. |
||||
string machine_type = 1 [(google.api.field_behavior) = OPTIONAL]; |
||||
} |
||||
|
||||
// The encryption options for the Cloud Composer environment and its |
||||
// dependencies. |
||||
message EncryptionConfig { |
||||
// Optional. Customer-managed Encryption Key available through Google's Key Management |
||||
// Service. Cannot be updated. |
||||
// If not specified, Google-managed key will be used. |
||||
string kms_key_name = 1 [(google.api.field_behavior) = OPTIONAL]; |
||||
} |
||||
|
||||
// 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. |
||||
message MaintenanceWindow { |
||||
// Required. Start time of the first recurrence of the maintenance window. |
||||
google.protobuf.Timestamp start_time = 1 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// 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`. |
||||
google.protobuf.Timestamp end_time = 2 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// 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`. |
||||
string recurrence = 3 [(google.api.field_behavior) = REQUIRED]; |
||||
} |
||||
|
||||
// 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. |
||||
message WorkloadsConfig { |
||||
// Configuration for resources used by Airflow schedulers. |
||||
message SchedulerResource { |
||||
// Optional. CPU request and limit for a single Airflow scheduler replica. |
||||
float cpu = 1 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. Memory (GB) request and limit for a single Airflow scheduler replica. |
||||
float memory_gb = 2 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. Storage (GB) request and limit for a single Airflow scheduler replica. |
||||
float storage_gb = 3 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. The number of schedulers. |
||||
int32 count = 4 [(google.api.field_behavior) = OPTIONAL]; |
||||
} |
||||
|
||||
// Configuration for resources used by Airflow web server. |
||||
message WebServerResource { |
||||
// Optional. CPU request and limit for Airflow web server. |
||||
float cpu = 1 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. Memory (GB) request and limit for Airflow web server. |
||||
float memory_gb = 2 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. Storage (GB) request and limit for Airflow web server. |
||||
float storage_gb = 3 [(google.api.field_behavior) = OPTIONAL]; |
||||
} |
||||
|
||||
// Configuration for resources used by Airflow workers. |
||||
message WorkerResource { |
||||
// Optional. CPU request and limit for a single Airflow worker replica. |
||||
float cpu = 1 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. Memory (GB) request and limit for a single Airflow worker replica. |
||||
float memory_gb = 2 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. Storage (GB) request and limit for a single Airflow worker replica. |
||||
float storage_gb = 3 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. Minimum number of workers for autoscaling. |
||||
int32 min_count = 4 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. Maximum number of workers for autoscaling. |
||||
int32 max_count = 5 [(google.api.field_behavior) = OPTIONAL]; |
||||
} |
||||
|
||||
// Optional. Resources used by Airflow schedulers. |
||||
SchedulerResource scheduler = 1 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. Resources used by Airflow web server. |
||||
WebServerResource web_server = 2 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. Resources used by Airflow workers. |
||||
WorkerResource worker = 3 [(google.api.field_behavior) = OPTIONAL]; |
||||
} |
||||
|
||||
// An environment for running orchestration tasks. |
||||
message Environment { |
||||
option (google.api.resource) = { |
||||
type: "composer.googleapis.com/Environment" |
||||
pattern: "projects/{project}/locations/{location}/environments/{environment}" |
||||
}; |
||||
|
||||
// State of the environment. |
||||
enum State { |
||||
// The state of the environment is unknown. |
||||
STATE_UNSPECIFIED = 0; |
||||
|
||||
// The environment is in the process of being created. |
||||
CREATING = 1; |
||||
|
||||
// The environment is currently running and healthy. It is ready for use. |
||||
RUNNING = 2; |
||||
|
||||
// The environment is being updated. It remains usable but cannot receive |
||||
// additional update requests or be deleted at this time. |
||||
UPDATING = 3; |
||||
|
||||
// The environment is undergoing deletion. It cannot be used. |
||||
DELETING = 4; |
||||
|
||||
// The environment has encountered an error and cannot be used. |
||||
ERROR = 5; |
||||
} |
||||
|
||||
// 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. |
||||
string name = 1; |
||||
|
||||
// Configuration parameters for this environment. |
||||
EnvironmentConfig config = 2; |
||||
|
||||
// Output only. The UUID (Universally Unique IDentifier) associated with this environment. |
||||
// This value is generated when the environment is created. |
||||
string uuid = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
|
||||
// The current state of the environment. |
||||
State state = 4; |
||||
|
||||
// Output only. The time at which this environment was created. |
||||
google.protobuf.Timestamp create_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
|
||||
// Output only. The time at which this environment was last modified. |
||||
google.protobuf.Timestamp update_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
|
||||
// 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. |
||||
map<string, string> labels = 7 [(google.api.field_behavior) = OPTIONAL]; |
||||
} |
||||
|
||||
// Request to check whether image upgrade will succeed. |
||||
message CheckUpgradeRequest { |
||||
// The resource name of the environment to check upgrade for, in the |
||||
// form: |
||||
// "projects/{projectId}/locations/{locationId}/environments/{environmentId}" |
||||
string environment = 1; |
||||
|
||||
// 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]+|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 version is a |
||||
// [semantic version](https://semver.org) or `latest`. When the patch version |
||||
// is omitted, the current Cloud Composer patch version is selected. |
||||
// When `latest` is provided instead of an explicit version number, |
||||
// the server replaces `latest` with the current Cloud Composer version |
||||
// and stores that version number in the same field. |
||||
// |
||||
// The portion of the image version that follows `airflow-` is an |
||||
// official Apache Airflow repository |
||||
// [release name](https://github.com/apache/incubator-airflow/releases). |
||||
// |
||||
// See also [Version List] |
||||
// (/composer/docs/concepts/versioning/composer-versions). |
||||
string image_version = 2; |
||||
} |
||||
|
||||
// Message containing information about the result of an upgrade check |
||||
// operation. |
||||
message CheckUpgradeResponse { |
||||
// Whether there were python modules conflict during image build. |
||||
enum ConflictResult { |
||||
// It is unknown whether build had conflicts or not. |
||||
CONFLICT_RESULT_UNSPECIFIED = 0; |
||||
|
||||
// There were python packages conflicts. |
||||
CONFLICT = 1; |
||||
|
||||
// There were no python packages conflicts. |
||||
NO_CONFLICT = 2; |
||||
} |
||||
|
||||
// Output only. Url for a docker build log of an upgraded image. |
||||
string build_log_uri = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
|
||||
// Output only. Whether build has succeeded or failed on modules conflicts. |
||||
ConflictResult contains_pypi_modules_conflict = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
|
||||
// Output only. Extract from a docker image build log containing information about pypi |
||||
// modules conflicts. |
||||
string pypi_conflict_build_log_extract = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
|
||||
// Composer image for which the build was happening. |
||||
string image_version = 5; |
||||
|
||||
// Pypi dependencies specified in the environment configuration, at the time |
||||
// when the build was triggered. |
||||
map<string, string> pypi_dependencies = 6; |
||||
} |
@ -0,0 +1,88 @@ |
||||
// Copyright 2021 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. |
||||
|
||||
syntax = "proto3"; |
||||
|
||||
package google.cloud.orchestration.airflow.service.v1beta1; |
||||
|
||||
import "google/api/annotations.proto"; |
||||
import "google/api/client.proto"; |
||||
import "google/type/date.proto"; |
||||
|
||||
option go_package = "google.golang.org/genproto/googleapis/cloud/orchestration/airflow/service/v1beta1;service"; |
||||
option java_multiple_files = true; |
||||
option java_package = "com.google.cloud.orchestration.airflow.service.v1beta1"; |
||||
|
||||
// Readonly service to query available ImageVersions. |
||||
service ImageVersions { |
||||
option (google.api.default_host) = "composer.googleapis.com"; |
||||
option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; |
||||
|
||||
// List ImageVersions for provided location. |
||||
rpc ListImageVersions(ListImageVersionsRequest) returns (ListImageVersionsResponse) { |
||||
option (google.api.http) = { |
||||
get: "/v1beta1/{parent=projects/*/locations/*}/imageVersions" |
||||
}; |
||||
option (google.api.method_signature) = "parent"; |
||||
} |
||||
} |
||||
|
||||
// List ImageVersions in a project and location. |
||||
message ListImageVersionsRequest { |
||||
// List ImageVersions in the given project and location, in the form: |
||||
// "projects/{projectId}/locations/{locationId}" |
||||
string parent = 1; |
||||
|
||||
// The maximum number of image_versions to return. |
||||
int32 page_size = 2; |
||||
|
||||
// The next_page_token value returned from a previous List request, if any. |
||||
string page_token = 3; |
||||
|
||||
// Whether or not image versions from old releases should be included. |
||||
bool include_past_releases = 4; |
||||
} |
||||
|
||||
// The ImageVersions in a project and location. |
||||
message ListImageVersionsResponse { |
||||
// The list of supported ImageVersions in a location. |
||||
repeated ImageVersion image_versions = 1; |
||||
|
||||
// The page token used to query for the next page if one exists. |
||||
string next_page_token = 2; |
||||
} |
||||
|
||||
// Image Version information |
||||
message ImageVersion { |
||||
// The string identifier of the ImageVersion, in the form: |
||||
// "composer-x.y.z-airflow-a.b(.c)" |
||||
string image_version_id = 1; |
||||
|
||||
// Whether this is the default ImageVersion used by Composer during |
||||
// environment creation if no input ImageVersion is specified. |
||||
bool is_default = 2; |
||||
|
||||
// supported python versions |
||||
repeated string supported_python_versions = 3; |
||||
|
||||
// The date of the version release. |
||||
google.type.Date release_date = 4; |
||||
|
||||
// Whether it is impossible to create an environment with the image version. |
||||
bool creation_disabled = 5; |
||||
|
||||
// Whether it is impossible to upgrade an environment running with the image |
||||
// version. |
||||
bool upgrade_disabled = 6; |
||||
} |
@ -0,0 +1,84 @@ |
||||
// Copyright 2021 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. |
||||
|
||||
syntax = "proto3"; |
||||
|
||||
package google.cloud.orchestration.airflow.service.v1beta1; |
||||
|
||||
import "google/protobuf/timestamp.proto"; |
||||
import "google/api/annotations.proto"; |
||||
|
||||
option go_package = "google.golang.org/genproto/googleapis/cloud/orchestration/airflow/service/v1beta1;service"; |
||||
option java_multiple_files = true; |
||||
option java_outer_classname = "OperationsProto"; |
||||
option java_package = "com.google.cloud.orchestration.airflow.service.v1beta1"; |
||||
|
||||
// Metadata describing an operation. |
||||
message OperationMetadata { |
||||
// An enum describing the overall state of an operation. |
||||
enum State { |
||||
// Unused. |
||||
STATE_UNSPECIFIED = 0; |
||||
|
||||
// The operation has been created but is not yet started. |
||||
PENDING = 1; |
||||
|
||||
// The operation is underway. |
||||
RUNNING = 2; |
||||
|
||||
// The operation completed successfully. |
||||
SUCCESSFUL = 3; |
||||
|
||||
// The operation is no longer running but did not succeed. |
||||
FAILED = 4; |
||||
} |
||||
|
||||
// Type of longrunning operation. |
||||
enum Type { |
||||
// Unused. |
||||
TYPE_UNSPECIFIED = 0; |
||||
|
||||
// A resource creation operation. |
||||
CREATE = 1; |
||||
|
||||
// A resource deletion operation. |
||||
DELETE = 2; |
||||
|
||||
// A resource update operation. |
||||
UPDATE = 3; |
||||
|
||||
// A resource check operation. |
||||
CHECK = 4; |
||||
} |
||||
|
||||
// Output only. The current operation state. |
||||
State state = 1; |
||||
|
||||
// Output only. The type of operation being performed. |
||||
Type operation_type = 2; |
||||
|
||||
// Output only. The resource being operated on, as a [relative resource name]( |
||||
// /apis/design/resource_names#relative_resource_name). |
||||
string resource = 3; |
||||
|
||||
// Output only. The UUID of the resource being operated on. |
||||
string resource_uuid = 4; |
||||
|
||||
// Output only. The time the operation was submitted to the server. |
||||
google.protobuf.Timestamp create_time = 5; |
||||
|
||||
// Output only. The time when the operation terminated, regardless of its success. |
||||
// This field is unset if the operation is still ongoing. |
||||
google.protobuf.Timestamp end_time = 6; |
||||
} |
Loading…
Reference in new issue