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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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