google-cloud-orchestration-airflow-service-v1 0.2.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -181,13 +181,10 @@ module Google
181
181
  # * `config.nodeCount`
182
182
  # * Horizontally scale the number of nodes in the environment. An integer
183
183
  # greater than or equal to 3 must be provided in the `config.nodeCount`
184
- # field.
184
+ # field. Supported for Cloud Composer environments in versions
185
+ # composer-1.*.*-airflow-*.*.*.
185
186
  # * `config.webServerNetworkAccessControl`
186
187
  # * 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
188
  # * `config.softwareConfig.airflowConfigOverrides`
192
189
  # * Replace all Apache Airflow config overrides. If a replacement config
193
190
  # overrides map is not included in `environment`, all config overrides
@@ -205,28 +202,107 @@ module Google
205
202
  # * `config.softwareConfig.envVariables`
206
203
  # * Replace all environment variables. If a replacement environment
207
204
  # 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.
205
+ # variables are cleared.
206
+ # * `config.softwareConfig.schedulerCount`
207
+ # * Horizontally scale the number of schedulers in Airflow. A positive
208
+ # integer not greater than the number of nodes must be provided in the
209
+ # `config.softwareConfig.schedulerCount` field. Supported for Cloud
210
+ # Composer environments in versions composer-1.*.*-airflow-2.*.*.
211
+ # * `config.databaseConfig.machineType`
212
+ # * Cloud SQL machine type used by Airflow database.
213
+ # It has to be one of: db-n1-standard-2, db-n1-standard-4,
214
+ # db-n1-standard-8 or db-n1-standard-16. Supported for Cloud Composer
215
+ # environments in versions composer-1.*.*-airflow-*.*.*.
216
+ # * `config.webServerConfig.machineType`
217
+ # * Machine type on which Airflow web server is running.
218
+ # It has to be one of: composer-n1-webserver-2, composer-n1-webserver-4
219
+ # or composer-n1-webserver-8. Supported for Cloud Composer environments
220
+ # in versions composer-1.*.*-airflow-*.*.*.
211
221
  class UpdateEnvironmentRequest
212
222
  include ::Google::Protobuf::MessageExts
213
223
  extend ::Google::Protobuf::MessageExts::ClassMethods
214
224
  end
215
225
 
226
+ # Request to create a snapshot of a Cloud Composer environment.
227
+ # @!attribute [rw] environment
228
+ # @return [::String]
229
+ # The resource name of the source environment in the form:
230
+ # "projects/\\{projectId}/locations/\\{locationId}/environments/\\{environmentId}"
231
+ # @!attribute [rw] snapshot_location
232
+ # @return [::String]
233
+ # Location in a Cloud Storage where the snapshot is going to be stored, e.g.:
234
+ # "gs://my-bucket/snapshots".
235
+ class SaveSnapshotRequest
236
+ include ::Google::Protobuf::MessageExts
237
+ extend ::Google::Protobuf::MessageExts::ClassMethods
238
+ end
239
+
240
+ # Response to SaveSnapshotRequest.
241
+ # @!attribute [rw] snapshot_path
242
+ # @return [::String]
243
+ # The fully-resolved Cloud Storage path of the created snapshot,
244
+ # e.g.:
245
+ # "gs://my-bucket/snapshots/project_location_environment_timestamp".
246
+ # This field is populated only if the snapshot creation was successful.
247
+ class SaveSnapshotResponse
248
+ include ::Google::Protobuf::MessageExts
249
+ extend ::Google::Protobuf::MessageExts::ClassMethods
250
+ end
251
+
252
+ # Request to load a snapshot into a Cloud Composer environment.
253
+ # @!attribute [rw] environment
254
+ # @return [::String]
255
+ # The resource name of the target environment in the form:
256
+ # "projects/\\{projectId}/locations/\\{locationId}/environments/\\{environmentId}"
257
+ # @!attribute [rw] snapshot_path
258
+ # @return [::String]
259
+ # A Cloud Storage path to a snapshot to load, e.g.:
260
+ # "gs://my-bucket/snapshots/project_location_environment_timestamp".
261
+ # @!attribute [rw] skip_pypi_packages_installation
262
+ # @return [::Boolean]
263
+ # Whether or not to skip installing Pypi packages when loading the
264
+ # environment's state.
265
+ # @!attribute [rw] skip_environment_variables_setting
266
+ # @return [::Boolean]
267
+ # Whether or not to skip setting environment variables when loading the
268
+ # environment's state.
269
+ # @!attribute [rw] skip_airflow_overrides_setting
270
+ # @return [::Boolean]
271
+ # Whether or not to skip setting Airflow overrides when loading the
272
+ # environment's state.
273
+ # @!attribute [rw] skip_gcs_data_copying
274
+ # @return [::Boolean]
275
+ # Whether or not to skip copying Cloud Storage data when loading the
276
+ # environment's state.
277
+ class LoadSnapshotRequest
278
+ include ::Google::Protobuf::MessageExts
279
+ extend ::Google::Protobuf::MessageExts::ClassMethods
280
+ end
281
+
282
+ # Response to LoadSnapshotRequest.
283
+ class LoadSnapshotResponse
284
+ include ::Google::Protobuf::MessageExts
285
+ extend ::Google::Protobuf::MessageExts::ClassMethods
286
+ end
287
+
216
288
  # Configuration information for an environment.
217
289
  # @!attribute [rw] gke_cluster
218
290
  # @return [::String]
219
291
  # Output only. The Kubernetes Engine cluster used to run this environment.
220
292
  # @!attribute [rw] dag_gcs_prefix
221
293
  # @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.
294
+ # Output only. The Cloud Storage prefix of the DAGs for this environment.
295
+ # Although Cloud Storage objects reside in a flat namespace, a hierarchical
296
+ # file tree can be simulated using "/"-delimited object name prefixes. DAG
297
+ # objects for this environment reside in a simulated directory with the given
298
+ # prefix.
226
299
  # @!attribute [rw] node_count
227
300
  # @return [::Integer]
228
301
  # The number of nodes in the Kubernetes Engine cluster that will be
229
302
  # used to run this environment.
303
+ #
304
+ # This field is supported for Cloud Composer environments in versions
305
+ # composer-1.*.*-airflow-*.*.*.
230
306
  # @!attribute [rw] software_config
231
307
  # @return [::Google::Cloud::Orchestration::Airflow::Service::V1::SoftwareConfig]
232
308
  # The configuration settings for software inside the environment.
@@ -238,27 +314,87 @@ module Google
238
314
  # The configuration used for the Private IP Cloud Composer environment.
239
315
  # @!attribute [rw] web_server_network_access_control
240
316
  # @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.
317
+ # Optional. The network-level access control policy for the Airflow web
318
+ # server. If unspecified, no network-level access restrictions will be
319
+ # applied.
243
320
  # @!attribute [rw] database_config
244
321
  # @return [::Google::Cloud::Orchestration::Airflow::Service::V1::DatabaseConfig]
245
- # Optional. The configuration settings for Cloud SQL instance used internally by Apache
246
- # Airflow software.
322
+ # Optional. The configuration settings for Cloud SQL instance used internally
323
+ # by Apache Airflow software.
247
324
  # @!attribute [rw] web_server_config
248
325
  # @return [::Google::Cloud::Orchestration::Airflow::Service::V1::WebServerConfig]
249
- # Optional. The configuration settings for the Airflow web server App Engine instance.
326
+ # Optional. The configuration settings for the Airflow web server App Engine
327
+ # instance.
250
328
  # @!attribute [rw] encryption_config
251
329
  # @return [::Google::Cloud::Orchestration::Airflow::Service::V1::EncryptionConfig]
252
330
  # Optional. The encryption options for the Cloud Composer environment
253
331
  # and its dependencies. Cannot be updated.
332
+ # @!attribute [rw] maintenance_window
333
+ # @return [::Google::Cloud::Orchestration::Airflow::Service::V1::MaintenanceWindow]
334
+ # Optional. The maintenance window is the period when Cloud Composer
335
+ # components may undergo maintenance. It is defined so that maintenance is
336
+ # not executed during peak hours or critical time periods.
337
+ #
338
+ # The system will not be under maintenance for every occurrence of this
339
+ # window, but when maintenance is planned, it will be scheduled
340
+ # during the window.
341
+ #
342
+ # The maintenance window period must encompass at least 12 hours per week.
343
+ # This may be split into multiple chunks, each with a size of
344
+ # at least 4 hours.
345
+ #
346
+ # If this value is omitted, the default value for maintenance window will be
347
+ # applied. The default value is Saturday and Sunday 00-06 GMT.
348
+ # @!attribute [rw] workloads_config
349
+ # @return [::Google::Cloud::Orchestration::Airflow::Service::V1::WorkloadsConfig]
350
+ # Optional. The workloads configuration settings for the GKE cluster
351
+ # associated with the Cloud Composer environment. The GKE cluster runs
352
+ # Airflow scheduler, web server and workers workloads.
353
+ #
354
+ # This field is supported for Cloud Composer environments in versions
355
+ # composer-2.*.*-airflow-*.*.* and newer.
356
+ # @!attribute [rw] environment_size
357
+ # @return [::Google::Cloud::Orchestration::Airflow::Service::V1::EnvironmentConfig::EnvironmentSize]
358
+ # Optional. The size of the Cloud Composer environment.
359
+ #
360
+ # This field is supported for Cloud Composer environments in versions
361
+ # composer-2.*.*-airflow-*.*.* and newer.
254
362
  # @!attribute [rw] airflow_uri
255
363
  # @return [::String]
256
- # Output only. The URI of the Apache Airflow Web UI hosted within this environment (see
257
- # [Airflow web
364
+ # Output only. The URI of the Apache Airflow Web UI hosted within this
365
+ # environment (see [Airflow web
258
366
  # interface](/composer/docs/how-to/accessing/airflow-web-interface)).
367
+ # @!attribute [rw] master_authorized_networks_config
368
+ # @return [::Google::Cloud::Orchestration::Airflow::Service::V1::MasterAuthorizedNetworksConfig]
369
+ # Optional. The configuration options for GKE cluster master authorized
370
+ # networks. By default master authorized networks feature is:
371
+ # - in case of private environment: enabled with no external networks
372
+ # allowlisted.
373
+ # - in case of public environment: disabled.
374
+ # @!attribute [rw] recovery_config
375
+ # @return [::Google::Cloud::Orchestration::Airflow::Service::V1::RecoveryConfig]
376
+ # Optional. The Recovery settings configuration of an environment.
377
+ #
378
+ # This field is supported for Cloud Composer environments in versions
379
+ # composer-2.*.*-airflow-*.*.* and newer.
259
380
  class EnvironmentConfig
260
381
  include ::Google::Protobuf::MessageExts
261
382
  extend ::Google::Protobuf::MessageExts::ClassMethods
383
+
384
+ # The size of the Cloud Composer environment.
385
+ module EnvironmentSize
386
+ # The size of the environment is unspecified.
387
+ ENVIRONMENT_SIZE_UNSPECIFIED = 0
388
+
389
+ # The environment size is small.
390
+ ENVIRONMENT_SIZE_SMALL = 1
391
+
392
+ # The environment size is medium.
393
+ ENVIRONMENT_SIZE_MEDIUM = 2
394
+
395
+ # The environment size is large.
396
+ ENVIRONMENT_SIZE_LARGE = 3
397
+ end
262
398
  end
263
399
 
264
400
  # Network-level access control policy for the Airflow web server.
@@ -282,7 +418,8 @@ module Google
282
418
  # `2001:db8::1/32` should be truncated to `2001:db8::/32`.
283
419
  # @!attribute [rw] description
284
420
  # @return [::String]
285
- # Optional. User-provided description. It must contain at most 300 characters.
421
+ # Optional. User-provided description. It must contain at most 300
422
+ # characters.
286
423
  class AllowedIpRange
287
424
  include ::Google::Protobuf::MessageExts
288
425
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -296,12 +433,16 @@ module Google
296
433
  # Optional. Cloud SQL machine type used by Airflow database.
297
434
  # It has to be one of: db-n1-standard-2, db-n1-standard-4, db-n1-standard-8
298
435
  # or db-n1-standard-16. If not specified, db-n1-standard-2 will be used.
436
+ # Supported for Cloud Composer environments in versions
437
+ # composer-1.*.*-airflow-*.*.*.
299
438
  class DatabaseConfig
300
439
  include ::Google::Protobuf::MessageExts
301
440
  extend ::Google::Protobuf::MessageExts::ClassMethods
302
441
  end
303
442
 
304
443
  # The configuration settings for the Airflow web server App Engine instance.
444
+ # Supported for Cloud Composer environments in versions
445
+ # composer-1.*.*-airflow-*.*.*
305
446
  # @!attribute [rw] machine_type
306
447
  # @return [::String]
307
448
  # Optional. Machine type on which Airflow web server is running.
@@ -316,40 +457,77 @@ module Google
316
457
  end
317
458
 
318
459
  # The encryption options for the Cloud Composer environment
319
- # and its dependencies.
460
+ # and its dependencies.Supported for Cloud Composer environments in versions
461
+ # composer-1.*.*-airflow-*.*.*.
320
462
  # @!attribute [rw] kms_key_name
321
463
  # @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.
464
+ # Optional. Customer-managed Encryption Key available through Google's Key
465
+ # Management Service. Cannot be updated. If not specified, Google-managed key
466
+ # will be used.
325
467
  class EncryptionConfig
326
468
  include ::Google::Protobuf::MessageExts
327
469
  extend ::Google::Protobuf::MessageExts::ClassMethods
328
470
  end
329
471
 
472
+ # The configuration settings for Cloud Composer maintenance window.
473
+ # The following example:
474
+ #
475
+ # ```
476
+ # {
477
+ # "startTime":"2019-08-01T01:00:00Z"
478
+ # "endTime":"2019-08-01T07:00:00Z"
479
+ # "recurrence":"FREQ=WEEKLY;BYDAY=TU,WE"
480
+ # }
481
+ # ```
482
+ #
483
+ # would define a maintenance window between 01 and 07 hours UTC during
484
+ # each Tuesday and Wednesday.
485
+ # @!attribute [rw] start_time
486
+ # @return [::Google::Protobuf::Timestamp]
487
+ # Required. Start time of the first recurrence of the maintenance window.
488
+ # @!attribute [rw] end_time
489
+ # @return [::Google::Protobuf::Timestamp]
490
+ # Required. Maintenance window end time. It is used only to calculate the
491
+ # duration of the maintenance window. The value for end-time must be in the
492
+ # future, relative to `start_time`.
493
+ # @!attribute [rw] recurrence
494
+ # @return [::String]
495
+ # Required. Maintenance window recurrence. Format is a subset of
496
+ # [RFC-5545](https://tools.ietf.org/html/rfc5545) `RRULE`. The only allowed
497
+ # values for `FREQ` field are `FREQ=DAILY` and `FREQ=WEEKLY;BYDAY=...`
498
+ # Example values: `FREQ=WEEKLY;BYDAY=TU,WE`, `FREQ=DAILY`.
499
+ class MaintenanceWindow
500
+ include ::Google::Protobuf::MessageExts
501
+ extend ::Google::Protobuf::MessageExts::ClassMethods
502
+ end
503
+
330
504
  # Specifies the selection and configuration of software inside the environment.
331
505
  # @!attribute [rw] image_version
332
506
  # @return [::String]
333
507
  # The version of the software running in the environment.
334
508
  # This encapsulates both the version of Cloud Composer functionality and the
335
509
  # 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]+.*)?`.
510
+ # `composer-([0-9]+(\.[0-9]+\.[0-9]+(-preview\.[0-9]+)?)?|latest)-airflow-([0-9]+(\.[0-9]+(\.[0-9]+)?)?)`.
337
511
  # When used as input, the server also checks if the provided version is
338
512
  # supported and denies the request for an unsupported version.
339
513
  #
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.
514
+ # The Cloud Composer portion of the image version is a full
515
+ # [semantic version](https://semver.org), or an alias in the form of major
516
+ # version number or `latest`. When an alias is provided, the server replaces
517
+ # it with the current Cloud Composer version that satisfies the alias.
346
518
  #
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).
519
+ # The Apache Airflow portion of the image version is a full semantic version
520
+ # that points to one of the supported Apache Airflow versions, or an alias in
521
+ # the form of only major or major.minor versions specified. When an alias is
522
+ # provided, the server replaces it with the latest Apache Airflow version
523
+ # that satisfies the alias and is supported in the given Cloud Composer
524
+ # version.
350
525
  #
351
- # See also [Version
352
- # List](/composer/docs/concepts/versioning/composer-versions).
526
+ # In all cases, the resolved image version is stored in the same field.
527
+ #
528
+ # See also [version
529
+ # list](/composer/docs/concepts/versioning/composer-versions) and [versioning
530
+ # overview](/composer/docs/concepts/versioning/composer-versioning-overview).
353
531
  # @!attribute [rw] airflow_config_overrides
354
532
  # @return [::Google::Protobuf::Map{::String => ::String}]
355
533
  # Optional. Apache Airflow configuration properties to override.
@@ -408,6 +586,16 @@ module Google
408
586
  #
409
587
  # Can be set to '2' or '3'. If not specified, the default is '3'. Cannot be
410
588
  # updated.
589
+ #
590
+ # This field is only supported for Cloud Composer environments in versions
591
+ # composer-1.*.*-airflow-*.*.*. Environments in newer versions always use
592
+ # Python major version 3.
593
+ # @!attribute [rw] scheduler_count
594
+ # @return [::Integer]
595
+ # Optional. The number of schedulers for Airflow.
596
+ #
597
+ # This field is supported for Cloud Composer environments in versions
598
+ # composer-1.*.*-airflow-2.*.*.
411
599
  class SoftwareConfig
412
600
  include ::Google::Protobuf::MessageExts
413
601
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -446,18 +634,24 @@ module Google
446
634
  # @return [::Boolean]
447
635
  # Optional. Whether or not to enable Alias IPs in the GKE cluster.
448
636
  # If `true`, a VPC-native cluster is created.
637
+ #
638
+ # This field is only supported for Cloud Composer environments in versions
639
+ # composer-1.*.*-airflow-*.*.*. Environments in newer versions always use
640
+ # VPC-native GKE clusters.
449
641
  # @!attribute [rw] cluster_secondary_range_name
450
642
  # @return [::String]
451
643
  # Optional. The name of the GKE cluster's secondary range used to allocate
452
644
  # IP addresses to pods.
453
645
  #
454
- # This field is applicable only when `use_ip_aliases` is true.
646
+ # For Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*,
647
+ # this field is applicable only when `use_ip_aliases` is true.
455
648
  # @!attribute [rw] cluster_ipv4_cidr_block
456
649
  # @return [::String]
457
650
  # Optional. The IP address range used to allocate IP addresses to pods in
458
651
  # the GKE cluster.
459
652
  #
460
- # This field is applicable only when `use_ip_aliases` is true.
653
+ # For Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*,
654
+ # this field is applicable only when `use_ip_aliases` is true.
461
655
  #
462
656
  # Set to blank to have GKE choose a range with the default size.
463
657
  #
@@ -465,7 +659,7 @@ module Google
465
659
  # netmask.
466
660
  #
467
661
  # Set to a
468
- # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
662
+ # [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
469
663
  # notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
470
664
  # `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
471
665
  # to use.
@@ -474,13 +668,15 @@ module Google
474
668
  # Optional. The name of the services' secondary range used to allocate
475
669
  # IP addresses to the GKE cluster.
476
670
  #
477
- # This field is applicable only when `use_ip_aliases` is true.
671
+ # For Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*,
672
+ # this field is applicable only when `use_ip_aliases` is true.
478
673
  # @!attribute [rw] services_ipv4_cidr_block
479
674
  # @return [::String]
480
675
  # Optional. The IP address range of the services IP addresses in this
481
676
  # GKE cluster.
482
677
  #
483
- # This field is applicable only when `use_ip_aliases` is true.
678
+ # For Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*,
679
+ # this field is applicable only when `use_ip_aliases` is true.
484
680
  #
485
681
  # Set to blank to have GKE choose a range with the default size.
486
682
  #
@@ -488,7 +684,7 @@ module Google
488
684
  # netmask.
489
685
  #
490
686
  # Set to a
491
- # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
687
+ # [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
492
688
  # notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
493
689
  # `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
494
690
  # to use.
@@ -515,6 +711,9 @@ module Google
515
711
  # both fields. If only one field (`location` or `nodeConfig.machineType`) is
516
712
  # specified, the location information from the specified field will be
517
713
  # propagated to the unspecified field.
714
+ #
715
+ # This field is supported for Cloud Composer environments in versions
716
+ # composer-1.*.*-airflow-*.*.*.
518
717
  # @!attribute [rw] machine_type
519
718
  # @return [::String]
520
719
  # Optional. The Compute Engine
@@ -538,6 +737,9 @@ module Google
538
737
  #
539
738
  # If this field is unspecified, the `machineTypeId` defaults
540
739
  # to "n1-standard-1".
740
+ #
741
+ # This field is supported for Cloud Composer environments in versions
742
+ # composer-1.*.*-airflow-*.*.*.
541
743
  # @!attribute [rw] network
542
744
  # @return [::String]
543
745
  # Optional. The Compute Engine network to be used for machine
@@ -564,13 +766,19 @@ module Google
564
766
  # location.
565
767
  # @!attribute [rw] disk_size_gb
566
768
  # @return [::Integer]
567
- # Optional. The disk size in GB used for node VMs. Minimum size is 20GB.
769
+ # Optional. The disk size in GB used for node VMs. Minimum size is 30GB.
568
770
  # If unspecified, defaults to 100GB. Cannot be updated.
771
+ #
772
+ # This field is supported for Cloud Composer environments in versions
773
+ # composer-1.*.*-airflow-*.*.*.
569
774
  # @!attribute [rw] oauth_scopes
570
775
  # @return [::Array<::String>]
571
776
  # Optional. The set of Google API scopes to be made available on all
572
777
  # node VMs. If `oauth_scopes` is empty, defaults to
573
778
  # ["https://www.googleapis.com/auth/cloud-platform"]. Cannot be updated.
779
+ #
780
+ # This field is supported for Cloud Composer environments in versions
781
+ # composer-1.*.*-airflow-*.*.*.
574
782
  # @!attribute [rw] service_account
575
783
  # @return [::String]
576
784
  # Optional. The Google Cloud Platform Service Account to be used by the node
@@ -584,7 +792,16 @@ module Google
584
792
  # Cannot be updated.
585
793
  # @!attribute [rw] ip_allocation_policy
586
794
  # @return [::Google::Cloud::Orchestration::Airflow::Service::V1::IPAllocationPolicy]
587
- # Optional. The configuration for controlling how IPs are allocated in the GKE cluster.
795
+ # Optional. The configuration for controlling how IPs are allocated in the
796
+ # GKE cluster.
797
+ # @!attribute [rw] enable_ip_masq_agent
798
+ # @return [::Boolean]
799
+ # Optional. Deploys 'ip-masq-agent' daemon set in the GKE cluster and defines
800
+ # nonMasqueradeCIDRs equals to pod IP range so IP masquerading is used for
801
+ # all destination addresses, except between pods traffic.
802
+ #
803
+ # See:
804
+ # https://cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent
588
805
  class NodeConfig
589
806
  include ::Google::Protobuf::MessageExts
590
807
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -598,48 +815,251 @@ module Google
598
815
  # denied.
599
816
  # @!attribute [rw] master_ipv4_cidr_block
600
817
  # @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.
818
+ # Optional. The CIDR block from which IPv4 range for GKE master will be
819
+ # reserved. If left blank, the default value of '172.16.0.0/23' is used.
603
820
  # @!attribute [r] master_ipv4_reserved_range
604
821
  # @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.
822
+ # Output only. The IP range in CIDR notation to use for the hosted master
823
+ # network. This range is used for assigning internal IP addresses to the GKE
824
+ # cluster master or set of masters and to the internal load balancer virtual
825
+ # IP. This range must not overlap with any other ranges in use within the
826
+ # cluster's network.
610
827
  class PrivateClusterConfig
611
828
  include ::Google::Protobuf::MessageExts
612
829
  extend ::Google::Protobuf::MessageExts::ClassMethods
613
830
  end
614
831
 
832
+ # Configuration options for networking connections in the Composer 2
833
+ # environment.
834
+ # @!attribute [rw] connection_type
835
+ # @return [::Google::Cloud::Orchestration::Airflow::Service::V1::NetworkingConfig::ConnectionType]
836
+ # Optional. Indicates the user requested specifc connection type between
837
+ # Tenant and Customer projects. You cannot set networking connection type in
838
+ # public IP environment.
839
+ class NetworkingConfig
840
+ include ::Google::Protobuf::MessageExts
841
+ extend ::Google::Protobuf::MessageExts::ClassMethods
842
+
843
+ # Represents connection type between Composer environment in Customer
844
+ # Project and the corresponding Tenant project, from a predefined list
845
+ # of available connection modes.
846
+ module ConnectionType
847
+ # No specific connection type was requested, so the environment uses
848
+ # the default value corresponding to the rest of its configuration.
849
+ CONNECTION_TYPE_UNSPECIFIED = 0
850
+
851
+ # Requests the use of VPC peerings for connecting the Customer and Tenant
852
+ # projects.
853
+ VPC_PEERING = 1
854
+
855
+ # Requests the use of Private Service Connect for connecting the Customer
856
+ # and Tenant projects.
857
+ PRIVATE_SERVICE_CONNECT = 2
858
+ end
859
+ end
860
+
615
861
  # The configuration information for configuring a Private IP Cloud Composer
616
862
  # environment.
617
863
  # @!attribute [rw] enable_private_environment
618
864
  # @return [::Boolean]
619
865
  # Optional. If `true`, a Private IP Cloud Composer environment is created.
620
866
  # If this field is set to true, `IPAllocationPolicy.use_ip_aliases` must be
621
- # set to true.
867
+ # set to true for Cloud Composer environments in versions
868
+ # composer-1.*.*-airflow-*.*.*.
622
869
  # @!attribute [rw] private_cluster_config
623
870
  # @return [::Google::Cloud::Orchestration::Airflow::Service::V1::PrivateClusterConfig]
624
871
  # Optional. Configuration for the private GKE cluster for a Private IP
625
872
  # Cloud Composer environment.
626
873
  # @!attribute [rw] web_server_ipv4_cidr_block
627
874
  # @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
875
+ # Optional. The CIDR block from which IP range for web server will be
876
+ # reserved. Needs to be disjoint from
877
+ # `private_cluster_config.master_ipv4_cidr_block` and
630
878
  # `cloud_sql_ipv4_cidr_block`.
879
+ #
880
+ # This field is supported for Cloud Composer environments in versions
881
+ # composer-1.*.*-airflow-*.*.*.
631
882
  # @!attribute [rw] cloud_sql_ipv4_cidr_block
632
883
  # @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`.
884
+ # Optional. The CIDR block from which IP range in tenant project will be
885
+ # reserved for Cloud SQL. Needs to be disjoint from
886
+ # `web_server_ipv4_cidr_block`.
635
887
  # @!attribute [r] web_server_ipv4_reserved_range
636
888
  # @return [::String]
637
889
  # Output only. The IP range reserved for the tenant project's App Engine VMs.
890
+ #
891
+ # This field is supported for Cloud Composer environments in versions
892
+ # composer-1.*.*-airflow-*.*.*.
893
+ # @!attribute [rw] cloud_composer_network_ipv4_cidr_block
894
+ # @return [::String]
895
+ # Optional. The CIDR block from which IP range for Cloud Composer Network in
896
+ # tenant project will be reserved. Needs to be disjoint from
897
+ # private_cluster_config.master_ipv4_cidr_block and
898
+ # cloud_sql_ipv4_cidr_block.
899
+ #
900
+ # This field is supported for Cloud Composer environments in versions
901
+ # composer-2.*.*-airflow-*.*.* and newer.
902
+ # @!attribute [r] cloud_composer_network_ipv4_reserved_range
903
+ # @return [::String]
904
+ # Output only. The IP range reserved for the tenant project's Cloud Composer
905
+ # network.
906
+ #
907
+ # This field is supported for Cloud Composer environments in versions
908
+ # composer-2.*.*-airflow-*.*.* and newer.
909
+ # @!attribute [rw] enable_privately_used_public_ips
910
+ # @return [::Boolean]
911
+ # Optional. When enabled, IPs from public (non-RFC1918) ranges can be used
912
+ # for `IPAllocationPolicy.cluster_ipv4_cidr_block` and
913
+ # `IPAllocationPolicy.service_ipv4_cidr_block`.
914
+ # @!attribute [rw] cloud_composer_connection_subnetwork
915
+ # @return [::String]
916
+ # Optional. When specified, the environment will use Private Service Connect
917
+ # instead of VPC peerings to connect to Cloud SQL in the Tenant Project,
918
+ # and the PSC endpoint in the Customer Project will use an IP address from
919
+ # this subnetwork.
920
+ # @!attribute [rw] networking_config
921
+ # @return [::Google::Cloud::Orchestration::Airflow::Service::V1::NetworkingConfig]
922
+ # Optional. Configuration for the network connections configuration in the
923
+ # environment.
638
924
  class PrivateEnvironmentConfig
639
925
  include ::Google::Protobuf::MessageExts
640
926
  extend ::Google::Protobuf::MessageExts::ClassMethods
641
927
  end
642
928
 
929
+ # The Kubernetes workloads configuration for GKE cluster associated with the
930
+ # Cloud Composer environment. Supported for Cloud Composer environments in
931
+ # versions composer-2.*.*-airflow-*.*.* and newer.
932
+ # @!attribute [rw] scheduler
933
+ # @return [::Google::Cloud::Orchestration::Airflow::Service::V1::WorkloadsConfig::SchedulerResource]
934
+ # Optional. Resources used by Airflow schedulers.
935
+ # @!attribute [rw] web_server
936
+ # @return [::Google::Cloud::Orchestration::Airflow::Service::V1::WorkloadsConfig::WebServerResource]
937
+ # Optional. Resources used by Airflow web server.
938
+ # @!attribute [rw] worker
939
+ # @return [::Google::Cloud::Orchestration::Airflow::Service::V1::WorkloadsConfig::WorkerResource]
940
+ # Optional. Resources used by Airflow workers.
941
+ class WorkloadsConfig
942
+ include ::Google::Protobuf::MessageExts
943
+ extend ::Google::Protobuf::MessageExts::ClassMethods
944
+
945
+ # Configuration for resources used by Airflow schedulers.
946
+ # @!attribute [rw] cpu
947
+ # @return [::Float]
948
+ # Optional. CPU request and limit for a single Airflow scheduler replica.
949
+ # @!attribute [rw] memory_gb
950
+ # @return [::Float]
951
+ # Optional. Memory (GB) request and limit for a single Airflow scheduler
952
+ # replica.
953
+ # @!attribute [rw] storage_gb
954
+ # @return [::Float]
955
+ # Optional. Storage (GB) request and limit for a single Airflow scheduler
956
+ # replica.
957
+ # @!attribute [rw] count
958
+ # @return [::Integer]
959
+ # Optional. The number of schedulers.
960
+ class SchedulerResource
961
+ include ::Google::Protobuf::MessageExts
962
+ extend ::Google::Protobuf::MessageExts::ClassMethods
963
+ end
964
+
965
+ # Configuration for resources used by Airflow web server.
966
+ # @!attribute [rw] cpu
967
+ # @return [::Float]
968
+ # Optional. CPU request and limit for Airflow web server.
969
+ # @!attribute [rw] memory_gb
970
+ # @return [::Float]
971
+ # Optional. Memory (GB) request and limit for Airflow web server.
972
+ # @!attribute [rw] storage_gb
973
+ # @return [::Float]
974
+ # Optional. Storage (GB) request and limit for Airflow web server.
975
+ class WebServerResource
976
+ include ::Google::Protobuf::MessageExts
977
+ extend ::Google::Protobuf::MessageExts::ClassMethods
978
+ end
979
+
980
+ # Configuration for resources used by Airflow workers.
981
+ # @!attribute [rw] cpu
982
+ # @return [::Float]
983
+ # Optional. CPU request and limit for a single Airflow worker replica.
984
+ # @!attribute [rw] memory_gb
985
+ # @return [::Float]
986
+ # Optional. Memory (GB) request and limit for a single Airflow worker
987
+ # replica.
988
+ # @!attribute [rw] storage_gb
989
+ # @return [::Float]
990
+ # Optional. Storage (GB) request and limit for a single Airflow worker
991
+ # replica.
992
+ # @!attribute [rw] min_count
993
+ # @return [::Integer]
994
+ # Optional. Minimum number of workers for autoscaling.
995
+ # @!attribute [rw] max_count
996
+ # @return [::Integer]
997
+ # Optional. Maximum number of workers for autoscaling.
998
+ class WorkerResource
999
+ include ::Google::Protobuf::MessageExts
1000
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1001
+ end
1002
+ end
1003
+
1004
+ # The Recovery settings of an environment.
1005
+ # @!attribute [rw] scheduled_snapshots_config
1006
+ # @return [::Google::Cloud::Orchestration::Airflow::Service::V1::ScheduledSnapshotsConfig]
1007
+ # Optional. The configuration for scheduled snapshot creation mechanism.
1008
+ class RecoveryConfig
1009
+ include ::Google::Protobuf::MessageExts
1010
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1011
+ end
1012
+
1013
+ # The configuration for scheduled snapshot creation mechanism.
1014
+ # @!attribute [rw] enabled
1015
+ # @return [::Boolean]
1016
+ # Optional. Whether scheduled snapshots creation is enabled.
1017
+ # @!attribute [rw] snapshot_location
1018
+ # @return [::String]
1019
+ # Optional. The Cloud Storage location for storing automatically created
1020
+ # snapshots.
1021
+ # @!attribute [rw] snapshot_creation_schedule
1022
+ # @return [::String]
1023
+ # Optional. The cron expression representing the time when snapshots creation
1024
+ # mechanism runs. This field is subject to additional validation around
1025
+ # frequency of execution.
1026
+ # @!attribute [rw] time_zone
1027
+ # @return [::String]
1028
+ # Optional. Time zone that sets the context to interpret
1029
+ # snapshot_creation_schedule.
1030
+ class ScheduledSnapshotsConfig
1031
+ include ::Google::Protobuf::MessageExts
1032
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1033
+ end
1034
+
1035
+ # Configuration options for the master authorized networks feature. Enabled
1036
+ # master authorized networks will disallow all external traffic to access
1037
+ # Kubernetes master through HTTPS except traffic from the given CIDR blocks,
1038
+ # Google Compute Engine Public IPs and Google Prod IPs.
1039
+ # @!attribute [rw] enabled
1040
+ # @return [::Boolean]
1041
+ # Whether or not master authorized networks feature is enabled.
1042
+ # @!attribute [rw] cidr_blocks
1043
+ # @return [::Array<::Google::Cloud::Orchestration::Airflow::Service::V1::MasterAuthorizedNetworksConfig::CidrBlock>]
1044
+ # Up to 50 external networks that could access Kubernetes master through
1045
+ # HTTPS.
1046
+ class MasterAuthorizedNetworksConfig
1047
+ include ::Google::Protobuf::MessageExts
1048
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1049
+
1050
+ # CIDR block with an optional name.
1051
+ # @!attribute [rw] display_name
1052
+ # @return [::String]
1053
+ # User-defined name that identifies the CIDR block.
1054
+ # @!attribute [rw] cidr_block
1055
+ # @return [::String]
1056
+ # CIDR block that must be specified in CIDR notation.
1057
+ class CidrBlock
1058
+ include ::Google::Protobuf::MessageExts
1059
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1060
+ end
1061
+ end
1062
+
643
1063
  # An environment for running orchestration tasks.
644
1064
  # @!attribute [rw] name
645
1065
  # @return [::String]
@@ -653,8 +1073,8 @@ module Google
653
1073
  # Configuration parameters for this environment.
654
1074
  # @!attribute [rw] uuid
655
1075
  # @return [::String]
656
- # Output only. The UUID (Universally Unique IDentifier) associated with this environment.
657
- # This value is generated when the environment is created.
1076
+ # Output only. The UUID (Universally Unique IDentifier) associated with this
1077
+ # environment. This value is generated when the environment is created.
658
1078
  # @!attribute [rw] state
659
1079
  # @return [::Google::Cloud::Orchestration::Airflow::Service::V1::Environment::State]
660
1080
  # The current state of the environment.
@@ -720,8 +1140,8 @@ module Google
720
1140
  # Output only. Whether build has succeeded or failed on modules conflicts.
721
1141
  # @!attribute [r] pypi_conflict_build_log_extract
722
1142
  # @return [::String]
723
- # Output only. Extract from a docker image build log containing information about pypi
724
- # modules conflicts.
1143
+ # Output only. Extract from a docker image build log containing information
1144
+ # about pypi modules conflicts.
725
1145
  # @!attribute [rw] image_version
726
1146
  # @return [::String]
727
1147
  # Composer image for which the build was happening.