google-cloud-orchestration-airflow-service-v1 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +12 -0
  3. data/AUTHENTICATION.md +167 -0
  4. data/LICENSE.md +201 -0
  5. data/README.md +139 -0
  6. data/lib/google/cloud/orchestration/airflow/service/v1/environments/client.rb +818 -0
  7. data/lib/google/cloud/orchestration/airflow/service/v1/environments/credentials.rb +51 -0
  8. data/lib/google/cloud/orchestration/airflow/service/v1/environments/operations.rb +668 -0
  9. data/lib/google/cloud/orchestration/airflow/service/v1/environments/paths.rb +56 -0
  10. data/lib/google/cloud/orchestration/airflow/service/v1/environments.rb +54 -0
  11. data/lib/google/cloud/orchestration/airflow/service/v1/environments_pb.rb +173 -0
  12. data/lib/google/cloud/orchestration/airflow/service/v1/environments_services_pb.rb +57 -0
  13. data/lib/google/cloud/orchestration/airflow/service/v1/image_versions/client.rb +380 -0
  14. data/lib/google/cloud/orchestration/airflow/service/v1/image_versions/credentials.rb +51 -0
  15. data/lib/google/cloud/orchestration/airflow/service/v1/image_versions.rb +52 -0
  16. data/lib/google/cloud/orchestration/airflow/service/v1/image_versions_pb.rb +46 -0
  17. data/lib/google/cloud/orchestration/airflow/service/v1/image_versions_services_pb.rb +49 -0
  18. data/lib/google/cloud/orchestration/airflow/service/v1/operations_pb.rb +50 -0
  19. data/lib/google/cloud/orchestration/airflow/service/v1/version.rb +32 -0
  20. data/lib/google/cloud/orchestration/airflow/service/v1.rb +43 -0
  21. data/lib/google-cloud-orchestration-airflow-service-v1.rb +21 -0
  22. data/proto_docs/README.md +4 -0
  23. data/proto_docs/google/api/field_behavior.rb +71 -0
  24. data/proto_docs/google/api/resource.rb +283 -0
  25. data/proto_docs/google/cloud/orchestration/airflow/service/v1/environments.rb +762 -0
  26. data/proto_docs/google/cloud/orchestration/airflow/service/v1/image_versions.rb +88 -0
  27. data/proto_docs/google/cloud/orchestration/airflow/service/v1/operations.rb +94 -0
  28. data/proto_docs/google/longrunning/operations.rb +164 -0
  29. data/proto_docs/google/protobuf/any.rb +141 -0
  30. data/proto_docs/google/protobuf/duration.rb +98 -0
  31. data/proto_docs/google/protobuf/empty.rb +36 -0
  32. data/proto_docs/google/protobuf/field_mask.rb +229 -0
  33. data/proto_docs/google/protobuf/timestamp.rb +129 -0
  34. data/proto_docs/google/rpc/status.rb +46 -0
  35. data/proto_docs/google/type/date.rb +53 -0
  36. metadata +228 -0
@@ -0,0 +1,762 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2021 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+
20
+ module Google
21
+ module Cloud
22
+ module Orchestration
23
+ module Airflow
24
+ module Service
25
+ module V1
26
+ # Create a new environment.
27
+ # @!attribute [rw] parent
28
+ # @return [::String]
29
+ # The parent must be of the form
30
+ # "projects/\\{projectId}/locations/\\{locationId}".
31
+ # @!attribute [rw] environment
32
+ # @return [::Google::Cloud::Orchestration::Airflow::Service::V1::Environment]
33
+ # The environment to create.
34
+ class CreateEnvironmentRequest
35
+ include ::Google::Protobuf::MessageExts
36
+ extend ::Google::Protobuf::MessageExts::ClassMethods
37
+ end
38
+
39
+ # Get an environment.
40
+ # @!attribute [rw] name
41
+ # @return [::String]
42
+ # The resource name of the environment to get, in the form:
43
+ # "projects/\\{projectId}/locations/\\{locationId}/environments/\\{environmentId}"
44
+ class GetEnvironmentRequest
45
+ include ::Google::Protobuf::MessageExts
46
+ extend ::Google::Protobuf::MessageExts::ClassMethods
47
+ end
48
+
49
+ # List environments in a project and location.
50
+ # @!attribute [rw] parent
51
+ # @return [::String]
52
+ # List environments in the given project and location, in the form:
53
+ # "projects/\\{projectId}/locations/\\{locationId}"
54
+ # @!attribute [rw] page_size
55
+ # @return [::Integer]
56
+ # The maximum number of environments to return.
57
+ # @!attribute [rw] page_token
58
+ # @return [::String]
59
+ # The next_page_token value returned from a previous List request, if any.
60
+ class ListEnvironmentsRequest
61
+ include ::Google::Protobuf::MessageExts
62
+ extend ::Google::Protobuf::MessageExts::ClassMethods
63
+ end
64
+
65
+ # The environments in a project and location.
66
+ # @!attribute [rw] environments
67
+ # @return [::Array<::Google::Cloud::Orchestration::Airflow::Service::V1::Environment>]
68
+ # The list of environments returned by a ListEnvironmentsRequest.
69
+ # @!attribute [rw] next_page_token
70
+ # @return [::String]
71
+ # The page token used to query for the next page if one exists.
72
+ class ListEnvironmentsResponse
73
+ include ::Google::Protobuf::MessageExts
74
+ extend ::Google::Protobuf::MessageExts::ClassMethods
75
+ end
76
+
77
+ # Delete an environment.
78
+ # @!attribute [rw] name
79
+ # @return [::String]
80
+ # The environment to delete, in the form:
81
+ # "projects/\\{projectId}/locations/\\{locationId}/environments/\\{environmentId}"
82
+ class DeleteEnvironmentRequest
83
+ include ::Google::Protobuf::MessageExts
84
+ extend ::Google::Protobuf::MessageExts::ClassMethods
85
+ end
86
+
87
+ # Update an environment.
88
+ # @!attribute [rw] name
89
+ # @return [::String]
90
+ # The relative resource name of the environment to update, in the form:
91
+ # "projects/\\{projectId}/locations/\\{locationId}/environments/\\{environmentId}"
92
+ # @!attribute [rw] environment
93
+ # @return [::Google::Cloud::Orchestration::Airflow::Service::V1::Environment]
94
+ # A patch environment. Fields specified by the `updateMask` will be copied
95
+ # from the patch environment into the environment under update.
96
+ # @!attribute [rw] update_mask
97
+ # @return [::Google::Protobuf::FieldMask]
98
+ # Required. A comma-separated list of paths, relative to `Environment`, of
99
+ # fields to update.
100
+ # For example, to set the version of scikit-learn to install in the
101
+ # environment to 0.19.0 and to remove an existing installation of
102
+ # numpy, the `updateMask` parameter would include the following two
103
+ # `paths` values: "config.softwareConfig.pypiPackages.scikit-learn" and
104
+ # "config.softwareConfig.pypiPackages.numpy". The included patch
105
+ # environment would specify the scikit-learn version as follows:
106
+ #
107
+ # {
108
+ # "config":{
109
+ # "softwareConfig":{
110
+ # "pypiPackages":{
111
+ # "scikit-learn":"==0.19.0"
112
+ # }
113
+ # }
114
+ # }
115
+ # }
116
+ #
117
+ # Note that in the above example, any existing PyPI packages
118
+ # other than scikit-learn and numpy will be unaffected.
119
+ #
120
+ # Only one update type may be included in a single request's `updateMask`.
121
+ # For example, one cannot update both the PyPI packages and
122
+ # labels in the same request. However, it is possible to update multiple
123
+ # members of a map field simultaneously in the same request. For example,
124
+ # to set the labels "label1" and "label2" while clearing "label3" (assuming
125
+ # it already exists), one can
126
+ # provide the paths "labels.label1", "labels.label2", and "labels.label3"
127
+ # and populate the patch environment as follows:
128
+ #
129
+ # {
130
+ # "labels":{
131
+ # "label1":"new-label1-value"
132
+ # "label2":"new-label2-value"
133
+ # }
134
+ # }
135
+ #
136
+ # Note that in the above example, any existing labels that are not
137
+ # included in the `updateMask` will be unaffected.
138
+ #
139
+ # It is also possible to replace an entire map field by providing the
140
+ # map field's path in the `updateMask`. The new value of the field will
141
+ # be that which is provided in the patch environment. For example, to
142
+ # delete all pre-existing user-specified PyPI packages and
143
+ # install botocore at version 1.7.14, the `updateMask` would contain
144
+ # the path "config.softwareConfig.pypiPackages", and
145
+ # the patch environment would be the following:
146
+ #
147
+ # {
148
+ # "config":{
149
+ # "softwareConfig":{
150
+ # "pypiPackages":{
151
+ # "botocore":"==1.7.14"
152
+ # }
153
+ # }
154
+ # }
155
+ # }
156
+ #
157
+ # **Note:** Only the following fields can be updated:
158
+ #
159
+ # * `config.softwareConfig.pypiPackages`
160
+ # * Replace all custom custom PyPI packages. If a replacement
161
+ # package map is not included in `environment`, all custom
162
+ # PyPI packages are cleared. It is an error to provide both
163
+ # this mask and a mask specifying an individual package.
164
+ # * `config.softwareConfig.pypiPackages.`packagename
165
+ # * Update the custom PyPI package *packagename*,
166
+ # preserving other packages. To delete the package, include it in
167
+ # `updateMask`, and omit the mapping for it in
168
+ # `environment.config.softwareConfig.pypiPackages`. It is an error
169
+ # to provide both a mask of this form and the
170
+ # `config.softwareConfig.pypiPackages` mask.
171
+ # * `labels`
172
+ # * Replace all environment labels. If a replacement labels map is not
173
+ # included in `environment`, all labels are cleared. It is an error to
174
+ # provide both this mask and a mask specifying one or more individual
175
+ # labels.
176
+ # * `labels.`labelName
177
+ # * Set the label named *labelName*, while preserving other
178
+ # labels. To delete the label, include it in `updateMask` and omit its
179
+ # mapping in `environment.labels`. It is an error to provide both a
180
+ # mask of this form and the `labels` mask.
181
+ # * `config.nodeCount`
182
+ # * Horizontally scale the number of nodes in the environment. An integer
183
+ # greater than or equal to 3 must be provided in the `config.nodeCount`
184
+ # field.
185
+ # * `config.webServerNetworkAccessControl`
186
+ # * Replace the environment's current `WebServerNetworkAccessControl`.
187
+ # * `config.databaseConfig`
188
+ # * Replace the environment's current `DatabaseConfig`.
189
+ # * `config.webServerConfig`
190
+ # * Replace the environment's current `WebServerConfig`.
191
+ # * `config.softwareConfig.airflowConfigOverrides`
192
+ # * Replace all Apache Airflow config overrides. If a replacement config
193
+ # overrides map is not included in `environment`, all config overrides
194
+ # are cleared.
195
+ # It is an error to provide both this mask and a mask specifying one or
196
+ # more individual config overrides.
197
+ # * `config.softwareConfig.airflowConfigOverrides.`section-name
198
+ # * Override the Apache Airflow config property *name* in the
199
+ # section named *section*, preserving other properties. To
200
+ # delete the property override, include it in `updateMask` and omit its
201
+ # mapping in
202
+ # `environment.config.softwareConfig.airflowConfigOverrides`.
203
+ # It is an error to provide both a mask of this form and the
204
+ # `config.softwareConfig.airflowConfigOverrides` mask.
205
+ # * `config.softwareConfig.envVariables`
206
+ # * Replace all environment variables. If a replacement environment
207
+ # variable map is not included in `environment`, all custom environment
208
+ # variables are cleared.
209
+ # It is an error to provide both this mask and a mask specifying one or
210
+ # more individual environment variables.
211
+ class UpdateEnvironmentRequest
212
+ include ::Google::Protobuf::MessageExts
213
+ extend ::Google::Protobuf::MessageExts::ClassMethods
214
+ end
215
+
216
+ # Configuration information for an environment.
217
+ # @!attribute [rw] gke_cluster
218
+ # @return [::String]
219
+ # Output only. The Kubernetes Engine cluster used to run this environment.
220
+ # @!attribute [rw] dag_gcs_prefix
221
+ # @return [::String]
222
+ # Output only. The Cloud Storage prefix of the DAGs for this environment. Although Cloud
223
+ # Storage objects reside in a flat namespace, a hierarchical file tree
224
+ # can be simulated using "/"-delimited object name prefixes. DAG objects for
225
+ # this environment reside in a simulated directory with the given prefix.
226
+ # @!attribute [rw] node_count
227
+ # @return [::Integer]
228
+ # The number of nodes in the Kubernetes Engine cluster that will be
229
+ # used to run this environment.
230
+ # @!attribute [rw] software_config
231
+ # @return [::Google::Cloud::Orchestration::Airflow::Service::V1::SoftwareConfig]
232
+ # The configuration settings for software inside the environment.
233
+ # @!attribute [rw] node_config
234
+ # @return [::Google::Cloud::Orchestration::Airflow::Service::V1::NodeConfig]
235
+ # The configuration used for the Kubernetes Engine cluster.
236
+ # @!attribute [rw] private_environment_config
237
+ # @return [::Google::Cloud::Orchestration::Airflow::Service::V1::PrivateEnvironmentConfig]
238
+ # The configuration used for the Private IP Cloud Composer environment.
239
+ # @!attribute [rw] web_server_network_access_control
240
+ # @return [::Google::Cloud::Orchestration::Airflow::Service::V1::WebServerNetworkAccessControl]
241
+ # Optional. The network-level access control policy for the Airflow web server. If
242
+ # unspecified, no network-level access restrictions will be applied.
243
+ # @!attribute [rw] database_config
244
+ # @return [::Google::Cloud::Orchestration::Airflow::Service::V1::DatabaseConfig]
245
+ # Optional. The configuration settings for Cloud SQL instance used internally by Apache
246
+ # Airflow software.
247
+ # @!attribute [rw] web_server_config
248
+ # @return [::Google::Cloud::Orchestration::Airflow::Service::V1::WebServerConfig]
249
+ # Optional. The configuration settings for the Airflow web server App Engine instance.
250
+ # @!attribute [rw] encryption_config
251
+ # @return [::Google::Cloud::Orchestration::Airflow::Service::V1::EncryptionConfig]
252
+ # Optional. The encryption options for the Cloud Composer environment
253
+ # and its dependencies. Cannot be updated.
254
+ # @!attribute [rw] airflow_uri
255
+ # @return [::String]
256
+ # Output only. The URI of the Apache Airflow Web UI hosted within this environment (see
257
+ # [Airflow web
258
+ # interface](/composer/docs/how-to/accessing/airflow-web-interface)).
259
+ class EnvironmentConfig
260
+ include ::Google::Protobuf::MessageExts
261
+ extend ::Google::Protobuf::MessageExts::ClassMethods
262
+ end
263
+
264
+ # Network-level access control policy for the Airflow web server.
265
+ # @!attribute [rw] allowed_ip_ranges
266
+ # @return [::Array<::Google::Cloud::Orchestration::Airflow::Service::V1::WebServerNetworkAccessControl::AllowedIpRange>]
267
+ # A collection of allowed IP ranges with descriptions.
268
+ class WebServerNetworkAccessControl
269
+ include ::Google::Protobuf::MessageExts
270
+ extend ::Google::Protobuf::MessageExts::ClassMethods
271
+
272
+ # Allowed IP range with user-provided description.
273
+ # @!attribute [rw] value
274
+ # @return [::String]
275
+ # IP address or range, defined using CIDR notation, of requests that this
276
+ # rule applies to.
277
+ # Examples: `192.168.1.1` or `192.168.0.0/16` or `2001:db8::/32`
278
+ # or `2001:0db8:0000:0042:0000:8a2e:0370:7334`.
279
+ #
280
+ # IP range prefixes should be properly truncated. For example,
281
+ # `1.2.3.4/24` should be truncated to `1.2.3.0/24`. Similarly, for IPv6,
282
+ # `2001:db8::1/32` should be truncated to `2001:db8::/32`.
283
+ # @!attribute [rw] description
284
+ # @return [::String]
285
+ # Optional. User-provided description. It must contain at most 300 characters.
286
+ class AllowedIpRange
287
+ include ::Google::Protobuf::MessageExts
288
+ extend ::Google::Protobuf::MessageExts::ClassMethods
289
+ end
290
+ end
291
+
292
+ # The configuration of Cloud SQL instance that is used by the Apache Airflow
293
+ # software.
294
+ # @!attribute [rw] machine_type
295
+ # @return [::String]
296
+ # Optional. Cloud SQL machine type used by Airflow database.
297
+ # It has to be one of: db-n1-standard-2, db-n1-standard-4, db-n1-standard-8
298
+ # or db-n1-standard-16. If not specified, db-n1-standard-2 will be used.
299
+ class DatabaseConfig
300
+ include ::Google::Protobuf::MessageExts
301
+ extend ::Google::Protobuf::MessageExts::ClassMethods
302
+ end
303
+
304
+ # The configuration settings for the Airflow web server App Engine instance.
305
+ # @!attribute [rw] machine_type
306
+ # @return [::String]
307
+ # Optional. Machine type on which Airflow web server is running.
308
+ # It has to be one of: composer-n1-webserver-2, composer-n1-webserver-4 or
309
+ # composer-n1-webserver-8.
310
+ # If not specified, composer-n1-webserver-2 will be used.
311
+ # Value custom is returned only in response, if Airflow web server parameters
312
+ # were manually changed to a non-standard values.
313
+ class WebServerConfig
314
+ include ::Google::Protobuf::MessageExts
315
+ extend ::Google::Protobuf::MessageExts::ClassMethods
316
+ end
317
+
318
+ # The encryption options for the Cloud Composer environment
319
+ # and its dependencies.
320
+ # @!attribute [rw] kms_key_name
321
+ # @return [::String]
322
+ # Optional. Customer-managed Encryption Key available through Google's Key Management
323
+ # Service. Cannot be updated.
324
+ # If not specified, Google-managed key will be used.
325
+ class EncryptionConfig
326
+ include ::Google::Protobuf::MessageExts
327
+ extend ::Google::Protobuf::MessageExts::ClassMethods
328
+ end
329
+
330
+ # Specifies the selection and configuration of software inside the environment.
331
+ # @!attribute [rw] image_version
332
+ # @return [::String]
333
+ # The version of the software running in the environment.
334
+ # This encapsulates both the version of Cloud Composer functionality and the
335
+ # version of Apache Airflow. It must match the regular expression
336
+ # `composer-([0-9]+\.[0-9]+\.[0-9]+|latest)-airflow-[0-9]+\.[0-9]+(\.[0-9]+.*)?`.
337
+ # When used as input, the server also checks if the provided version is
338
+ # supported and denies the request for an unsupported version.
339
+ #
340
+ # The Cloud Composer portion of the version is a
341
+ # [semantic version](https://semver.org) or `latest`. When the patch version
342
+ # is omitted, the current Cloud Composer patch version is selected.
343
+ # When `latest` is provided instead of an explicit version number,
344
+ # the server replaces `latest` with the current Cloud Composer version
345
+ # and stores that version number in the same field.
346
+ #
347
+ # The portion of the image version that follows *airflow-* is an
348
+ # official Apache Airflow repository
349
+ # [release name](https://github.com/apache/incubator-airflow/releases).
350
+ #
351
+ # See also [Version
352
+ # List](/composer/docs/concepts/versioning/composer-versions).
353
+ # @!attribute [rw] airflow_config_overrides
354
+ # @return [::Google::Protobuf::Map{::String => ::String}]
355
+ # Optional. Apache Airflow configuration properties to override.
356
+ #
357
+ # Property keys contain the section and property names, separated by a
358
+ # hyphen, for example "core-dags_are_paused_at_creation". Section names must
359
+ # not contain hyphens ("-"), opening square brackets ("["), or closing
360
+ # square brackets ("]"). The property name must not be empty and must not
361
+ # contain an equals sign ("=") or semicolon (";"). Section and property names
362
+ # must not contain a period ("."). Apache Airflow configuration property
363
+ # names must be written in
364
+ # [snake_case](https://en.wikipedia.org/wiki/Snake_case). Property values can
365
+ # contain any character, and can be written in any lower/upper case format.
366
+ #
367
+ # Certain Apache Airflow configuration property values are
368
+ # [blocked](/composer/docs/concepts/airflow-configurations),
369
+ # and cannot be overridden.
370
+ # @!attribute [rw] pypi_packages
371
+ # @return [::Google::Protobuf::Map{::String => ::String}]
372
+ # Optional. Custom Python Package Index (PyPI) packages to be installed in
373
+ # the environment.
374
+ #
375
+ # Keys refer to the lowercase package name such as "numpy"
376
+ # and values are the lowercase extras and version specifier such as
377
+ # "==1.12.0", "[devel,gcp_api]", or "[devel]>=1.8.2, <1.9.2". To specify a
378
+ # package without pinning it to a version specifier, use the empty string as
379
+ # the value.
380
+ # @!attribute [rw] env_variables
381
+ # @return [::Google::Protobuf::Map{::String => ::String}]
382
+ # Optional. Additional environment variables to provide to the Apache Airflow
383
+ # scheduler, worker, and webserver processes.
384
+ #
385
+ # Environment variable names must match the regular expression
386
+ # `[a-zA-Z_][a-zA-Z0-9_]*`. They cannot specify Apache Airflow
387
+ # software configuration overrides (they cannot match the regular expression
388
+ # `AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+`), and they cannot match any of the
389
+ # following reserved names:
390
+ #
391
+ # * `AIRFLOW_HOME`
392
+ # * `C_FORCE_ROOT`
393
+ # * `CONTAINER_NAME`
394
+ # * `DAGS_FOLDER`
395
+ # * `GCP_PROJECT`
396
+ # * `GCS_BUCKET`
397
+ # * `GKE_CLUSTER_NAME`
398
+ # * `SQL_DATABASE`
399
+ # * `SQL_INSTANCE`
400
+ # * `SQL_PASSWORD`
401
+ # * `SQL_PROJECT`
402
+ # * `SQL_REGION`
403
+ # * `SQL_USER`
404
+ # @!attribute [rw] python_version
405
+ # @return [::String]
406
+ # Optional. The major version of Python used to run the Apache Airflow
407
+ # scheduler, worker, and webserver processes.
408
+ #
409
+ # Can be set to '2' or '3'. If not specified, the default is '3'. Cannot be
410
+ # updated.
411
+ class SoftwareConfig
412
+ include ::Google::Protobuf::MessageExts
413
+ extend ::Google::Protobuf::MessageExts::ClassMethods
414
+
415
+ # @!attribute [rw] key
416
+ # @return [::String]
417
+ # @!attribute [rw] value
418
+ # @return [::String]
419
+ class AirflowConfigOverridesEntry
420
+ include ::Google::Protobuf::MessageExts
421
+ extend ::Google::Protobuf::MessageExts::ClassMethods
422
+ end
423
+
424
+ # @!attribute [rw] key
425
+ # @return [::String]
426
+ # @!attribute [rw] value
427
+ # @return [::String]
428
+ class PypiPackagesEntry
429
+ include ::Google::Protobuf::MessageExts
430
+ extend ::Google::Protobuf::MessageExts::ClassMethods
431
+ end
432
+
433
+ # @!attribute [rw] key
434
+ # @return [::String]
435
+ # @!attribute [rw] value
436
+ # @return [::String]
437
+ class EnvVariablesEntry
438
+ include ::Google::Protobuf::MessageExts
439
+ extend ::Google::Protobuf::MessageExts::ClassMethods
440
+ end
441
+ end
442
+
443
+ # Configuration for controlling how IPs are allocated in the
444
+ # GKE cluster running the Apache Airflow software.
445
+ # @!attribute [rw] use_ip_aliases
446
+ # @return [::Boolean]
447
+ # Optional. Whether or not to enable Alias IPs in the GKE cluster.
448
+ # If `true`, a VPC-native cluster is created.
449
+ # @!attribute [rw] cluster_secondary_range_name
450
+ # @return [::String]
451
+ # Optional. The name of the GKE cluster's secondary range used to allocate
452
+ # IP addresses to pods.
453
+ #
454
+ # This field is applicable only when `use_ip_aliases` is true.
455
+ # @!attribute [rw] cluster_ipv4_cidr_block
456
+ # @return [::String]
457
+ # Optional. The IP address range used to allocate IP addresses to pods in
458
+ # the GKE cluster.
459
+ #
460
+ # This field is applicable only when `use_ip_aliases` is true.
461
+ #
462
+ # Set to blank to have GKE choose a range with the default size.
463
+ #
464
+ # Set to /netmask (e.g. `/14`) to have GKE choose a range with a specific
465
+ # netmask.
466
+ #
467
+ # Set to a
468
+ # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
469
+ # notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
470
+ # `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
471
+ # to use.
472
+ # @!attribute [rw] services_secondary_range_name
473
+ # @return [::String]
474
+ # Optional. The name of the services' secondary range used to allocate
475
+ # IP addresses to the GKE cluster.
476
+ #
477
+ # This field is applicable only when `use_ip_aliases` is true.
478
+ # @!attribute [rw] services_ipv4_cidr_block
479
+ # @return [::String]
480
+ # Optional. The IP address range of the services IP addresses in this
481
+ # GKE cluster.
482
+ #
483
+ # This field is applicable only when `use_ip_aliases` is true.
484
+ #
485
+ # Set to blank to have GKE choose a range with the default size.
486
+ #
487
+ # Set to /netmask (e.g. `/14`) to have GKE choose a range with a specific
488
+ # netmask.
489
+ #
490
+ # Set to a
491
+ # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
492
+ # notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
493
+ # `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
494
+ # to use.
495
+ class IPAllocationPolicy
496
+ include ::Google::Protobuf::MessageExts
497
+ extend ::Google::Protobuf::MessageExts::ClassMethods
498
+ end
499
+
500
+ # The configuration information for the Kubernetes Engine nodes running
501
+ # the Apache Airflow software.
502
+ # @!attribute [rw] location
503
+ # @return [::String]
504
+ # Optional. The Compute Engine [zone](/compute/docs/regions-zones) in which
505
+ # to deploy the VMs used to run the Apache Airflow software, specified as a
506
+ # [relative resource
507
+ # name](/apis/design/resource_names#relative_resource_name). For example:
508
+ # "projects/\\{projectId}/zones/\\{zoneId}".
509
+ #
510
+ # This `location` must belong to the enclosing environment's project and
511
+ # location. If both this field and `nodeConfig.machineType` are specified,
512
+ # `nodeConfig.machineType` must belong to this `location`; if both are
513
+ # unspecified, the service will pick a zone in the Compute Engine region
514
+ # corresponding to the Cloud Composer location, and propagate that choice to
515
+ # both fields. If only one field (`location` or `nodeConfig.machineType`) is
516
+ # specified, the location information from the specified field will be
517
+ # propagated to the unspecified field.
518
+ # @!attribute [rw] machine_type
519
+ # @return [::String]
520
+ # Optional. The Compute Engine
521
+ # [machine type](/compute/docs/machine-types) used for cluster instances,
522
+ # specified as a
523
+ # [relative resource
524
+ # name](/apis/design/resource_names#relative_resource_name). For example:
525
+ # "projects/\\{projectId}/zones/\\{zoneId}/machineTypes/\\{machineTypeId}".
526
+ #
527
+ # The `machineType` must belong to the enclosing environment's project and
528
+ # location. If both this field and `nodeConfig.location` are specified,
529
+ # this `machineType` must belong to the `nodeConfig.location`; if both are
530
+ # unspecified, the service will pick a zone in the Compute Engine region
531
+ # corresponding to the Cloud Composer location, and propagate that choice to
532
+ # both fields. If exactly one of this field and `nodeConfig.location` is
533
+ # specified, the location information from the specified field will be
534
+ # propagated to the unspecified field.
535
+ #
536
+ # The `machineTypeId` must not be a [shared-core machine
537
+ # type](/compute/docs/machine-types#sharedcore).
538
+ #
539
+ # If this field is unspecified, the `machineTypeId` defaults
540
+ # to "n1-standard-1".
541
+ # @!attribute [rw] network
542
+ # @return [::String]
543
+ # Optional. The Compute Engine network to be used for machine
544
+ # communications, specified as a
545
+ # [relative resource
546
+ # name](/apis/design/resource_names#relative_resource_name). For example:
547
+ # "projects/\\{projectId}/global/networks/\\{networkId}".
548
+ #
549
+ # If unspecified, the "default" network ID in the environment's project is
550
+ # used. If a [Custom Subnet Network](/vpc/docs/vpc#vpc_networks_and_subnets)
551
+ # is provided, `nodeConfig.subnetwork` must also be provided. For
552
+ # [Shared VPC](/vpc/docs/shared-vpc) subnetwork requirements, see
553
+ # `nodeConfig.subnetwork`.
554
+ # @!attribute [rw] subnetwork
555
+ # @return [::String]
556
+ # Optional. The Compute Engine subnetwork to be used for machine
557
+ # communications, specified as a
558
+ # [relative resource
559
+ # name](/apis/design/resource_names#relative_resource_name). For example:
560
+ # "projects/\\{projectId}/regions/\\{regionId}/subnetworks/\\{subnetworkId}"
561
+ #
562
+ # If a subnetwork is provided, `nodeConfig.network` must also be provided,
563
+ # and the subnetwork must belong to the enclosing environment's project and
564
+ # location.
565
+ # @!attribute [rw] disk_size_gb
566
+ # @return [::Integer]
567
+ # Optional. The disk size in GB used for node VMs. Minimum size is 20GB.
568
+ # If unspecified, defaults to 100GB. Cannot be updated.
569
+ # @!attribute [rw] oauth_scopes
570
+ # @return [::Array<::String>]
571
+ # Optional. The set of Google API scopes to be made available on all
572
+ # node VMs. If `oauth_scopes` is empty, defaults to
573
+ # ["https://www.googleapis.com/auth/cloud-platform"]. Cannot be updated.
574
+ # @!attribute [rw] service_account
575
+ # @return [::String]
576
+ # Optional. The Google Cloud Platform Service Account to be used by the node
577
+ # VMs. If a service account is not specified, the "default" Compute Engine
578
+ # service account is used. Cannot be updated.
579
+ # @!attribute [rw] tags
580
+ # @return [::Array<::String>]
581
+ # Optional. The list of instance tags applied to all node VMs. Tags are used
582
+ # to identify valid sources or targets for network firewalls. Each tag within
583
+ # the list must comply with [RFC1035](https://www.ietf.org/rfc/rfc1035.txt).
584
+ # Cannot be updated.
585
+ # @!attribute [rw] ip_allocation_policy
586
+ # @return [::Google::Cloud::Orchestration::Airflow::Service::V1::IPAllocationPolicy]
587
+ # Optional. The configuration for controlling how IPs are allocated in the GKE cluster.
588
+ class NodeConfig
589
+ include ::Google::Protobuf::MessageExts
590
+ extend ::Google::Protobuf::MessageExts::ClassMethods
591
+ end
592
+
593
+ # Configuration options for the private GKE cluster in a Cloud Composer
594
+ # environment.
595
+ # @!attribute [rw] enable_private_endpoint
596
+ # @return [::Boolean]
597
+ # Optional. If `true`, access to the public endpoint of the GKE cluster is
598
+ # denied.
599
+ # @!attribute [rw] master_ipv4_cidr_block
600
+ # @return [::String]
601
+ # Optional. The CIDR block from which IPv4 range for GKE master will be reserved. If
602
+ # left blank, the default value of '172.16.0.0/23' is used.
603
+ # @!attribute [r] master_ipv4_reserved_range
604
+ # @return [::String]
605
+ # Output only. The IP range in CIDR notation to use for the hosted master network. This
606
+ # range is used for assigning internal IP addresses to the GKE cluster
607
+ # master or set of masters and to the internal load balancer virtual IP.
608
+ # This range must not overlap with any other ranges in use
609
+ # within the cluster's network.
610
+ class PrivateClusterConfig
611
+ include ::Google::Protobuf::MessageExts
612
+ extend ::Google::Protobuf::MessageExts::ClassMethods
613
+ end
614
+
615
+ # The configuration information for configuring a Private IP Cloud Composer
616
+ # environment.
617
+ # @!attribute [rw] enable_private_environment
618
+ # @return [::Boolean]
619
+ # Optional. If `true`, a Private IP Cloud Composer environment is created.
620
+ # If this field is set to true, `IPAllocationPolicy.use_ip_aliases` must be
621
+ # set to true.
622
+ # @!attribute [rw] private_cluster_config
623
+ # @return [::Google::Cloud::Orchestration::Airflow::Service::V1::PrivateClusterConfig]
624
+ # Optional. Configuration for the private GKE cluster for a Private IP
625
+ # Cloud Composer environment.
626
+ # @!attribute [rw] web_server_ipv4_cidr_block
627
+ # @return [::String]
628
+ # Optional. The CIDR block from which IP range for web server will be reserved. Needs
629
+ # to be disjoint from `private_cluster_config.master_ipv4_cidr_block` and
630
+ # `cloud_sql_ipv4_cidr_block`.
631
+ # @!attribute [rw] cloud_sql_ipv4_cidr_block
632
+ # @return [::String]
633
+ # Optional. The CIDR block from which IP range in tenant project will be reserved for
634
+ # Cloud SQL. Needs to be disjoint from `web_server_ipv4_cidr_block`.
635
+ # @!attribute [r] web_server_ipv4_reserved_range
636
+ # @return [::String]
637
+ # Output only. The IP range reserved for the tenant project's App Engine VMs.
638
+ class PrivateEnvironmentConfig
639
+ include ::Google::Protobuf::MessageExts
640
+ extend ::Google::Protobuf::MessageExts::ClassMethods
641
+ end
642
+
643
+ # An environment for running orchestration tasks.
644
+ # @!attribute [rw] name
645
+ # @return [::String]
646
+ # The resource name of the environment, in the form:
647
+ # "projects/\\{projectId}/locations/\\{locationId}/environments/\\{environmentId}"
648
+ #
649
+ # EnvironmentId must start with a lowercase letter followed by up to 63
650
+ # lowercase letters, numbers, or hyphens, and cannot end with a hyphen.
651
+ # @!attribute [rw] config
652
+ # @return [::Google::Cloud::Orchestration::Airflow::Service::V1::EnvironmentConfig]
653
+ # Configuration parameters for this environment.
654
+ # @!attribute [rw] uuid
655
+ # @return [::String]
656
+ # Output only. The UUID (Universally Unique IDentifier) associated with this environment.
657
+ # This value is generated when the environment is created.
658
+ # @!attribute [rw] state
659
+ # @return [::Google::Cloud::Orchestration::Airflow::Service::V1::Environment::State]
660
+ # The current state of the environment.
661
+ # @!attribute [rw] create_time
662
+ # @return [::Google::Protobuf::Timestamp]
663
+ # Output only. The time at which this environment was created.
664
+ # @!attribute [rw] update_time
665
+ # @return [::Google::Protobuf::Timestamp]
666
+ # Output only. The time at which this environment was last modified.
667
+ # @!attribute [rw] labels
668
+ # @return [::Google::Protobuf::Map{::String => ::String}]
669
+ # Optional. User-defined labels for this environment.
670
+ # The labels map can contain no more than 64 entries. Entries of the labels
671
+ # map are UTF8 strings that comply with the following restrictions:
672
+ #
673
+ # * Keys must conform to regexp: [\p\\{Ll}\p\\{Lo}][\p\\{Ll}\p\\{Lo}\p\\{N}_-]\\{0,62}
674
+ # * Values must conform to regexp: [\p\\{Ll}\p\\{Lo}\p\\{N}_-]\\{0,63}
675
+ # * Both keys and values are additionally constrained to be <= 128 bytes in
676
+ # size.
677
+ class Environment
678
+ include ::Google::Protobuf::MessageExts
679
+ extend ::Google::Protobuf::MessageExts::ClassMethods
680
+
681
+ # @!attribute [rw] key
682
+ # @return [::String]
683
+ # @!attribute [rw] value
684
+ # @return [::String]
685
+ class LabelsEntry
686
+ include ::Google::Protobuf::MessageExts
687
+ extend ::Google::Protobuf::MessageExts::ClassMethods
688
+ end
689
+
690
+ # State of the environment.
691
+ module State
692
+ # The state of the environment is unknown.
693
+ STATE_UNSPECIFIED = 0
694
+
695
+ # The environment is in the process of being created.
696
+ CREATING = 1
697
+
698
+ # The environment is currently running and healthy. It is ready for use.
699
+ RUNNING = 2
700
+
701
+ # The environment is being updated. It remains usable but cannot receive
702
+ # additional update requests or be deleted at this time.
703
+ UPDATING = 3
704
+
705
+ # The environment is undergoing deletion. It cannot be used.
706
+ DELETING = 4
707
+
708
+ # The environment has encountered an error and cannot be used.
709
+ ERROR = 5
710
+ end
711
+ end
712
+
713
+ # Message containing information about the result of an upgrade check
714
+ # operation.
715
+ # @!attribute [r] build_log_uri
716
+ # @return [::String]
717
+ # Output only. Url for a docker build log of an upgraded image.
718
+ # @!attribute [r] contains_pypi_modules_conflict
719
+ # @return [::Google::Cloud::Orchestration::Airflow::Service::V1::CheckUpgradeResponse::ConflictResult]
720
+ # Output only. Whether build has succeeded or failed on modules conflicts.
721
+ # @!attribute [r] pypi_conflict_build_log_extract
722
+ # @return [::String]
723
+ # Output only. Extract from a docker image build log containing information about pypi
724
+ # modules conflicts.
725
+ # @!attribute [rw] image_version
726
+ # @return [::String]
727
+ # Composer image for which the build was happening.
728
+ # @!attribute [rw] pypi_dependencies
729
+ # @return [::Google::Protobuf::Map{::String => ::String}]
730
+ # Pypi dependencies specified in the environment configuration, at the time
731
+ # when the build was triggered.
732
+ class CheckUpgradeResponse
733
+ include ::Google::Protobuf::MessageExts
734
+ extend ::Google::Protobuf::MessageExts::ClassMethods
735
+
736
+ # @!attribute [rw] key
737
+ # @return [::String]
738
+ # @!attribute [rw] value
739
+ # @return [::String]
740
+ class PypiDependenciesEntry
741
+ include ::Google::Protobuf::MessageExts
742
+ extend ::Google::Protobuf::MessageExts::ClassMethods
743
+ end
744
+
745
+ # Whether there were python modules conflict during image build.
746
+ module ConflictResult
747
+ # It is unknown whether build had conflicts or not.
748
+ CONFLICT_RESULT_UNSPECIFIED = 0
749
+
750
+ # There were python packages conflicts.
751
+ CONFLICT = 1
752
+
753
+ # There were no python packages conflicts.
754
+ NO_CONFLICT = 2
755
+ end
756
+ end
757
+ end
758
+ end
759
+ end
760
+ end
761
+ end
762
+ end