pulumi-gcp 7.5.0a1704347630__py3-none-any.whl → 7.6.0__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. pulumi_gcp/__init__.py +99 -0
  2. pulumi_gcp/bigqueryanalyticshub/_inputs.py +40 -0
  3. pulumi_gcp/bigqueryanalyticshub/listing.py +117 -3
  4. pulumi_gcp/bigqueryanalyticshub/outputs.py +49 -0
  5. pulumi_gcp/clouddeploy/__init__.py +1 -0
  6. pulumi_gcp/clouddeploy/_inputs.py +239 -0
  7. pulumi_gcp/clouddeploy/automation.py +1103 -0
  8. pulumi_gcp/clouddeploy/outputs.py +246 -0
  9. pulumi_gcp/clouddomains/__init__.py +10 -0
  10. pulumi_gcp/clouddomains/_inputs.py +1098 -0
  11. pulumi_gcp/clouddomains/outputs.py +1156 -0
  12. pulumi_gcp/clouddomains/registration.py +1068 -0
  13. pulumi_gcp/cloudrunv2/job.py +4 -4
  14. pulumi_gcp/composer/_inputs.py +79 -1
  15. pulumi_gcp/composer/outputs.py +131 -4
  16. pulumi_gcp/compute/__init__.py +1 -0
  17. pulumi_gcp/compute/_inputs.py +180 -0
  18. pulumi_gcp/compute/get_instance_template.py +11 -1
  19. pulumi_gcp/compute/get_region_instance_template.py +11 -1
  20. pulumi_gcp/compute/get_reservation.py +212 -0
  21. pulumi_gcp/compute/instance_template.py +47 -0
  22. pulumi_gcp/compute/network_firewall_policy.py +20 -22
  23. pulumi_gcp/compute/outputs.py +325 -0
  24. pulumi_gcp/compute/region_instance_template.py +47 -0
  25. pulumi_gcp/compute/region_network_firewall_policy.py +31 -35
  26. pulumi_gcp/compute/router_peer.py +54 -0
  27. pulumi_gcp/compute/vpn_tunnel.py +8 -4
  28. pulumi_gcp/config/__init__.pyi +2 -0
  29. pulumi_gcp/config/vars.py +4 -0
  30. pulumi_gcp/container/_inputs.py +23 -0
  31. pulumi_gcp/container/aws_node_pool.py +7 -7
  32. pulumi_gcp/container/cluster.py +68 -14
  33. pulumi_gcp/container/get_cluster.py +11 -1
  34. pulumi_gcp/container/outputs.py +49 -0
  35. pulumi_gcp/dataflow/pipeline.py +1 -1
  36. pulumi_gcp/dataproc/_inputs.py +413 -39
  37. pulumi_gcp/dataproc/metastore_service.py +63 -0
  38. pulumi_gcp/dataproc/outputs.py +461 -39
  39. pulumi_gcp/dns/__init__.py +1 -0
  40. pulumi_gcp/dns/_inputs.py +94 -0
  41. pulumi_gcp/dns/get_managed_zones.py +89 -0
  42. pulumi_gcp/dns/outputs.py +62 -0
  43. pulumi_gcp/edgecontainer/vpn_connection.py +10 -10
  44. pulumi_gcp/filestore/__init__.py +1 -0
  45. pulumi_gcp/filestore/get_instance.py +258 -0
  46. pulumi_gcp/filestore/instance.py +7 -7
  47. pulumi_gcp/filestore/outputs.py +126 -0
  48. pulumi_gcp/gkebackup/backup_plan.py +24 -8
  49. pulumi_gcp/gkebackup/restore_plan.py +36 -12
  50. pulumi_gcp/gkebackup/restore_plan_iam_binding.py +36 -12
  51. pulumi_gcp/gkebackup/restore_plan_iam_member.py +36 -12
  52. pulumi_gcp/gkebackup/restore_plan_iam_policy.py +36 -12
  53. pulumi_gcp/gkehub/_inputs.py +502 -2
  54. pulumi_gcp/gkehub/feature.py +34 -0
  55. pulumi_gcp/gkehub/feature_membership.py +177 -0
  56. pulumi_gcp/gkehub/membership.py +18 -6
  57. pulumi_gcp/gkehub/outputs.py +502 -2
  58. pulumi_gcp/gkeonprem/_inputs.py +21 -25
  59. pulumi_gcp/gkeonprem/outputs.py +34 -25
  60. pulumi_gcp/gkeonprem/v_mware_node_pool.py +34 -0
  61. pulumi_gcp/integrationconnectors/__init__.py +1 -0
  62. pulumi_gcp/integrationconnectors/endpoint_attachment.py +669 -0
  63. pulumi_gcp/kms/_inputs.py +42 -0
  64. pulumi_gcp/kms/crypto_key.py +36 -0
  65. pulumi_gcp/kms/get_kms_crypto_key.py +11 -1
  66. pulumi_gcp/kms/outputs.py +62 -0
  67. pulumi_gcp/logging/__init__.py +2 -0
  68. pulumi_gcp/logging/folder_settings.py +490 -0
  69. pulumi_gcp/logging/folder_sink.py +21 -21
  70. pulumi_gcp/logging/organization_settings.py +484 -0
  71. pulumi_gcp/logging/organization_sink.py +21 -21
  72. pulumi_gcp/logging/project_sink.py +7 -14
  73. pulumi_gcp/netapp/__init__.py +3 -0
  74. pulumi_gcp/netapp/active_directory.py +1413 -0
  75. pulumi_gcp/netapp/backup_vault.py +593 -0
  76. pulumi_gcp/netapp/kmsconfig.py +649 -0
  77. pulumi_gcp/orgpolicy/policy.py +28 -0
  78. pulumi_gcp/provider.py +20 -0
  79. pulumi_gcp/pubsub/subscription.py +29 -37
  80. pulumi_gcp/serviceaccount/account.py +47 -0
  81. pulumi_gcp/servicenetworking/connection.py +55 -1
  82. pulumi_gcp/sql/database_instance.py +2 -2
  83. pulumi_gcp/sql/ssl_cert.py +1 -1
  84. pulumi_gcp/sql/user.py +7 -7
  85. pulumi_gcp/storage/transfer_job.py +24 -5
  86. pulumi_gcp/vertex/__init__.py +3 -0
  87. pulumi_gcp/vertex/_inputs.py +339 -0
  88. pulumi_gcp/vertex/ai_feature_group.py +710 -0
  89. pulumi_gcp/vertex/ai_feature_online_store.py +962 -0
  90. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +804 -0
  91. pulumi_gcp/vertex/outputs.py +406 -0
  92. pulumi_gcp/vmwareengine/__init__.py +2 -0
  93. pulumi_gcp/vmwareengine/_inputs.py +84 -0
  94. pulumi_gcp/vmwareengine/external_access_rule.py +947 -0
  95. pulumi_gcp/vmwareengine/get_external_access_rule.py +245 -0
  96. pulumi_gcp/vmwareengine/outputs.py +146 -0
  97. pulumi_gcp/workflows/workflow.py +7 -7
  98. {pulumi_gcp-7.5.0a1704347630.dist-info → pulumi_gcp-7.6.0.dist-info}/METADATA +1 -1
  99. {pulumi_gcp-7.5.0a1704347630.dist-info → pulumi_gcp-7.6.0.dist-info}/RECORD +101 -82
  100. {pulumi_gcp-7.5.0a1704347630.dist-info → pulumi_gcp-7.6.0.dist-info}/WHEEL +0 -0
  101. {pulumi_gcp-7.5.0a1704347630.dist-info → pulumi_gcp-7.6.0.dist-info}/top_level.txt +0 -0
@@ -1111,7 +1111,7 @@ class DatabaseInstance(pulumi.CustomResource):
1111
1111
  __props__.__dict__["name"] = name
1112
1112
  __props__.__dict__["project"] = project
1113
1113
  __props__.__dict__["region"] = region
1114
- __props__.__dict__["replica_configuration"] = replica_configuration
1114
+ __props__.__dict__["replica_configuration"] = None if replica_configuration is None else pulumi.Output.secret(replica_configuration)
1115
1115
  __props__.__dict__["restore_backup_context"] = restore_backup_context
1116
1116
  __props__.__dict__["root_password"] = None if root_password is None else pulumi.Output.secret(root_password)
1117
1117
  __props__.__dict__["settings"] = settings
@@ -1126,7 +1126,7 @@ class DatabaseInstance(pulumi.CustomResource):
1126
1126
  __props__.__dict__["self_link"] = None
1127
1127
  __props__.__dict__["server_ca_certs"] = None
1128
1128
  __props__.__dict__["service_account_email_address"] = None
1129
- secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["rootPassword"])
1129
+ secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["replicaConfiguration", "rootPassword", "serverCaCerts"])
1130
1130
  opts = pulumi.ResourceOptions.merge(opts, secret_opts)
1131
1131
  super(DatabaseInstance, __self__).__init__(
1132
1132
  'gcp:sql/databaseInstance:DatabaseInstance',
@@ -368,7 +368,7 @@ class SslCert(pulumi.CustomResource):
368
368
  __props__.__dict__["private_key"] = None
369
369
  __props__.__dict__["server_ca_cert"] = None
370
370
  __props__.__dict__["sha1_fingerprint"] = None
371
- secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["privateKey"])
371
+ secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["cert", "privateKey", "serverCaCert"])
372
372
  opts = pulumi.ResourceOptions.merge(opts, secret_opts)
373
373
  super(SslCert, __self__).__init__(
374
374
  'gcp:sql/sslCert:SslCert',
pulumi_gcp/sql/user.py CHANGED
@@ -48,7 +48,7 @@ class UserArgs:
48
48
  is not provided, the provider project is used.
49
49
  :param pulumi.Input[str] type: The user type. It determines the method to authenticate the
50
50
  user during login. The default is the database's built-in user type. Flags
51
- include "BUILT_IN", "CLOUD_IAM_USER", or "CLOUD_IAM_SERVICE_ACCOUNT".
51
+ include "BUILT_IN", "CLOUD_IAM_USER", "CLOUD_IAM_GROUP" or "CLOUD_IAM_SERVICE_ACCOUNT".
52
52
  """
53
53
  pulumi.set(__self__, "instance", instance)
54
54
  if deletion_policy is not None:
@@ -167,7 +167,7 @@ class UserArgs:
167
167
  """
168
168
  The user type. It determines the method to authenticate the
169
169
  user during login. The default is the database's built-in user type. Flags
170
- include "BUILT_IN", "CLOUD_IAM_USER", or "CLOUD_IAM_SERVICE_ACCOUNT".
170
+ include "BUILT_IN", "CLOUD_IAM_USER", "CLOUD_IAM_GROUP" or "CLOUD_IAM_SERVICE_ACCOUNT".
171
171
  """
172
172
  return pulumi.get(self, "type")
173
173
 
@@ -212,7 +212,7 @@ class _UserState:
212
212
  is not provided, the provider project is used.
213
213
  :param pulumi.Input[str] type: The user type. It determines the method to authenticate the
214
214
  user during login. The default is the database's built-in user type. Flags
215
- include "BUILT_IN", "CLOUD_IAM_USER", or "CLOUD_IAM_SERVICE_ACCOUNT".
215
+ include "BUILT_IN", "CLOUD_IAM_USER", "CLOUD_IAM_GROUP" or "CLOUD_IAM_SERVICE_ACCOUNT".
216
216
  """
217
217
  if deletion_policy is not None:
218
218
  pulumi.set(__self__, "deletion_policy", deletion_policy)
@@ -343,7 +343,7 @@ class _UserState:
343
343
  """
344
344
  The user type. It determines the method to authenticate the
345
345
  user during login. The default is the database's built-in user type. Flags
346
- include "BUILT_IN", "CLOUD_IAM_USER", or "CLOUD_IAM_SERVICE_ACCOUNT".
346
+ include "BUILT_IN", "CLOUD_IAM_USER", "CLOUD_IAM_GROUP" or "CLOUD_IAM_SERVICE_ACCOUNT".
347
347
  """
348
348
  return pulumi.get(self, "type")
349
349
 
@@ -421,7 +421,7 @@ class User(pulumi.CustomResource):
421
421
  is not provided, the provider project is used.
422
422
  :param pulumi.Input[str] type: The user type. It determines the method to authenticate the
423
423
  user during login. The default is the database's built-in user type. Flags
424
- include "BUILT_IN", "CLOUD_IAM_USER", or "CLOUD_IAM_SERVICE_ACCOUNT".
424
+ include "BUILT_IN", "CLOUD_IAM_USER", "CLOUD_IAM_GROUP" or "CLOUD_IAM_SERVICE_ACCOUNT".
425
425
  """
426
426
  ...
427
427
  @overload
@@ -553,7 +553,7 @@ class User(pulumi.CustomResource):
553
553
  is not provided, the provider project is used.
554
554
  :param pulumi.Input[str] type: The user type. It determines the method to authenticate the
555
555
  user during login. The default is the database's built-in user type. Flags
556
- include "BUILT_IN", "CLOUD_IAM_USER", or "CLOUD_IAM_SERVICE_ACCOUNT".
556
+ include "BUILT_IN", "CLOUD_IAM_USER", "CLOUD_IAM_GROUP" or "CLOUD_IAM_SERVICE_ACCOUNT".
557
557
  """
558
558
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
559
559
 
@@ -648,7 +648,7 @@ class User(pulumi.CustomResource):
648
648
  """
649
649
  The user type. It determines the method to authenticate the
650
650
  user during login. The default is the database's built-in user type. Flags
651
- include "BUILT_IN", "CLOUD_IAM_USER", or "CLOUD_IAM_SERVICE_ACCOUNT".
651
+ include "BUILT_IN", "CLOUD_IAM_USER", "CLOUD_IAM_GROUP" or "CLOUD_IAM_SERVICE_ACCOUNT".
652
652
  """
653
653
  return pulumi.get(self, "type")
654
654
 
@@ -19,6 +19,7 @@ class TransferJobArgs:
19
19
  description: pulumi.Input[str],
20
20
  transfer_spec: pulumi.Input['TransferJobTransferSpecArgs'],
21
21
  event_stream: Optional[pulumi.Input['TransferJobEventStreamArgs']] = None,
22
+ name: Optional[pulumi.Input[str]] = None,
22
23
  notification_config: Optional[pulumi.Input['TransferJobNotificationConfigArgs']] = None,
23
24
  project: Optional[pulumi.Input[str]] = None,
24
25
  schedule: Optional[pulumi.Input['TransferJobScheduleArgs']] = None,
@@ -30,6 +31,7 @@ class TransferJobArgs:
30
31
 
31
32
  - - -
32
33
  :param pulumi.Input['TransferJobEventStreamArgs'] event_stream: Specifies the Event-driven transfer options. Event-driven transfers listen to an event stream to transfer updated files. Structure documented below Either `event_stream` or `schedule` must be set.
34
+ :param pulumi.Input[str] name: The name of the Transfer Job. This name must start with "transferJobs/" prefix and end with a letter or a number, and should be no more than 128 characters ( `transferJobs/^(?!OPI)[A-Za-z0-9-._~]*[A-Za-z0-9]$` ). For transfers involving PosixFilesystem, this name must start with transferJobs/OPI specifically ( `transferJobs/OPI^[A-Za-z0-9-._~]*[A-Za-z0-9]$` ). For all other transfer types, this name must not start with transferJobs/OPI. Default the provider will assign a random unique name with `transferJobs/{{name}}` format, where `name` is a numeric value.
33
35
  :param pulumi.Input['TransferJobNotificationConfigArgs'] notification_config: Notification configuration. This is not supported for transfers involving PosixFilesystem. Structure documented below.
34
36
  :param pulumi.Input[str] project: The project in which the resource belongs. If it
35
37
  is not provided, the provider project is used.
@@ -40,6 +42,8 @@ class TransferJobArgs:
40
42
  pulumi.set(__self__, "transfer_spec", transfer_spec)
41
43
  if event_stream is not None:
42
44
  pulumi.set(__self__, "event_stream", event_stream)
45
+ if name is not None:
46
+ pulumi.set(__self__, "name", name)
43
47
  if notification_config is not None:
44
48
  pulumi.set(__self__, "notification_config", notification_config)
45
49
  if project is not None:
@@ -87,6 +91,18 @@ class TransferJobArgs:
87
91
  def event_stream(self, value: Optional[pulumi.Input['TransferJobEventStreamArgs']]):
88
92
  pulumi.set(self, "event_stream", value)
89
93
 
94
+ @property
95
+ @pulumi.getter
96
+ def name(self) -> Optional[pulumi.Input[str]]:
97
+ """
98
+ The name of the Transfer Job. This name must start with "transferJobs/" prefix and end with a letter or a number, and should be no more than 128 characters ( `transferJobs/^(?!OPI)[A-Za-z0-9-._~]*[A-Za-z0-9]$` ). For transfers involving PosixFilesystem, this name must start with transferJobs/OPI specifically ( `transferJobs/OPI^[A-Za-z0-9-._~]*[A-Za-z0-9]$` ). For all other transfer types, this name must not start with transferJobs/OPI. Default the provider will assign a random unique name with `transferJobs/{{name}}` format, where `name` is a numeric value.
99
+ """
100
+ return pulumi.get(self, "name")
101
+
102
+ @name.setter
103
+ def name(self, value: Optional[pulumi.Input[str]]):
104
+ pulumi.set(self, "name", value)
105
+
90
106
  @property
91
107
  @pulumi.getter(name="notificationConfig")
92
108
  def notification_config(self) -> Optional[pulumi.Input['TransferJobNotificationConfigArgs']]:
@@ -158,7 +174,7 @@ class _TransferJobState:
158
174
  :param pulumi.Input[str] description: Unique description to identify the Transfer Job.
159
175
  :param pulumi.Input['TransferJobEventStreamArgs'] event_stream: Specifies the Event-driven transfer options. Event-driven transfers listen to an event stream to transfer updated files. Structure documented below Either `event_stream` or `schedule` must be set.
160
176
  :param pulumi.Input[str] last_modification_time: When the Transfer Job was last modified.
161
- :param pulumi.Input[str] name: Specifies a unique name of the resource such as AWS SQS ARN in the form 'arn:aws:sqs:region:account_id:queue_name', or Pub/Sub subscription resource name in the form 'projects/{project}/subscriptions/{sub}'.
177
+ :param pulumi.Input[str] name: The name of the Transfer Job. This name must start with "transferJobs/" prefix and end with a letter or a number, and should be no more than 128 characters ( `transferJobs/^(?!OPI)[A-Za-z0-9-._~]*[A-Za-z0-9]$` ). For transfers involving PosixFilesystem, this name must start with transferJobs/OPI specifically ( `transferJobs/OPI^[A-Za-z0-9-._~]*[A-Za-z0-9]$` ). For all other transfer types, this name must not start with transferJobs/OPI. Default the provider will assign a random unique name with `transferJobs/{{name}}` format, where `name` is a numeric value.
162
178
  :param pulumi.Input['TransferJobNotificationConfigArgs'] notification_config: Notification configuration. This is not supported for transfers involving PosixFilesystem. Structure documented below.
163
179
  :param pulumi.Input[str] project: The project in which the resource belongs. If it
164
180
  is not provided, the provider project is used.
@@ -255,7 +271,7 @@ class _TransferJobState:
255
271
  @pulumi.getter
256
272
  def name(self) -> Optional[pulumi.Input[str]]:
257
273
  """
258
- Specifies a unique name of the resource such as AWS SQS ARN in the form 'arn:aws:sqs:region:account_id:queue_name', or Pub/Sub subscription resource name in the form 'projects/{project}/subscriptions/{sub}'.
274
+ The name of the Transfer Job. This name must start with "transferJobs/" prefix and end with a letter or a number, and should be no more than 128 characters ( `transferJobs/^(?!OPI)[A-Za-z0-9-._~]*[A-Za-z0-9]$` ). For transfers involving PosixFilesystem, this name must start with transferJobs/OPI specifically ( `transferJobs/OPI^[A-Za-z0-9-._~]*[A-Za-z0-9]$` ). For all other transfer types, this name must not start with transferJobs/OPI. Default the provider will assign a random unique name with `transferJobs/{{name}}` format, where `name` is a numeric value.
259
275
  """
260
276
  return pulumi.get(self, "name")
261
277
 
@@ -334,6 +350,7 @@ class TransferJob(pulumi.CustomResource):
334
350
  opts: Optional[pulumi.ResourceOptions] = None,
335
351
  description: Optional[pulumi.Input[str]] = None,
336
352
  event_stream: Optional[pulumi.Input[pulumi.InputType['TransferJobEventStreamArgs']]] = None,
353
+ name: Optional[pulumi.Input[str]] = None,
337
354
  notification_config: Optional[pulumi.Input[pulumi.InputType['TransferJobNotificationConfigArgs']]] = None,
338
355
  project: Optional[pulumi.Input[str]] = None,
339
356
  schedule: Optional[pulumi.Input[pulumi.InputType['TransferJobScheduleArgs']]] = None,
@@ -449,6 +466,7 @@ class TransferJob(pulumi.CustomResource):
449
466
  :param pulumi.ResourceOptions opts: Options for the resource.
450
467
  :param pulumi.Input[str] description: Unique description to identify the Transfer Job.
451
468
  :param pulumi.Input[pulumi.InputType['TransferJobEventStreamArgs']] event_stream: Specifies the Event-driven transfer options. Event-driven transfers listen to an event stream to transfer updated files. Structure documented below Either `event_stream` or `schedule` must be set.
469
+ :param pulumi.Input[str] name: The name of the Transfer Job. This name must start with "transferJobs/" prefix and end with a letter or a number, and should be no more than 128 characters ( `transferJobs/^(?!OPI)[A-Za-z0-9-._~]*[A-Za-z0-9]$` ). For transfers involving PosixFilesystem, this name must start with transferJobs/OPI specifically ( `transferJobs/OPI^[A-Za-z0-9-._~]*[A-Za-z0-9]$` ). For all other transfer types, this name must not start with transferJobs/OPI. Default the provider will assign a random unique name with `transferJobs/{{name}}` format, where `name` is a numeric value.
452
470
  :param pulumi.Input[pulumi.InputType['TransferJobNotificationConfigArgs']] notification_config: Notification configuration. This is not supported for transfers involving PosixFilesystem. Structure documented below.
453
471
  :param pulumi.Input[str] project: The project in which the resource belongs. If it
454
472
  is not provided, the provider project is used.
@@ -586,6 +604,7 @@ class TransferJob(pulumi.CustomResource):
586
604
  opts: Optional[pulumi.ResourceOptions] = None,
587
605
  description: Optional[pulumi.Input[str]] = None,
588
606
  event_stream: Optional[pulumi.Input[pulumi.InputType['TransferJobEventStreamArgs']]] = None,
607
+ name: Optional[pulumi.Input[str]] = None,
589
608
  notification_config: Optional[pulumi.Input[pulumi.InputType['TransferJobNotificationConfigArgs']]] = None,
590
609
  project: Optional[pulumi.Input[str]] = None,
591
610
  schedule: Optional[pulumi.Input[pulumi.InputType['TransferJobScheduleArgs']]] = None,
@@ -604,6 +623,7 @@ class TransferJob(pulumi.CustomResource):
604
623
  raise TypeError("Missing required property 'description'")
605
624
  __props__.__dict__["description"] = description
606
625
  __props__.__dict__["event_stream"] = event_stream
626
+ __props__.__dict__["name"] = name
607
627
  __props__.__dict__["notification_config"] = notification_config
608
628
  __props__.__dict__["project"] = project
609
629
  __props__.__dict__["schedule"] = schedule
@@ -614,7 +634,6 @@ class TransferJob(pulumi.CustomResource):
614
634
  __props__.__dict__["creation_time"] = None
615
635
  __props__.__dict__["deletion_time"] = None
616
636
  __props__.__dict__["last_modification_time"] = None
617
- __props__.__dict__["name"] = None
618
637
  super(TransferJob, __self__).__init__(
619
638
  'gcp:storage/transferJob:TransferJob',
620
639
  resource_name,
@@ -648,7 +667,7 @@ class TransferJob(pulumi.CustomResource):
648
667
  :param pulumi.Input[str] description: Unique description to identify the Transfer Job.
649
668
  :param pulumi.Input[pulumi.InputType['TransferJobEventStreamArgs']] event_stream: Specifies the Event-driven transfer options. Event-driven transfers listen to an event stream to transfer updated files. Structure documented below Either `event_stream` or `schedule` must be set.
650
669
  :param pulumi.Input[str] last_modification_time: When the Transfer Job was last modified.
651
- :param pulumi.Input[str] name: Specifies a unique name of the resource such as AWS SQS ARN in the form 'arn:aws:sqs:region:account_id:queue_name', or Pub/Sub subscription resource name in the form 'projects/{project}/subscriptions/{sub}'.
670
+ :param pulumi.Input[str] name: The name of the Transfer Job. This name must start with "transferJobs/" prefix and end with a letter or a number, and should be no more than 128 characters ( `transferJobs/^(?!OPI)[A-Za-z0-9-._~]*[A-Za-z0-9]$` ). For transfers involving PosixFilesystem, this name must start with transferJobs/OPI specifically ( `transferJobs/OPI^[A-Za-z0-9-._~]*[A-Za-z0-9]$` ). For all other transfer types, this name must not start with transferJobs/OPI. Default the provider will assign a random unique name with `transferJobs/{{name}}` format, where `name` is a numeric value.
652
671
  :param pulumi.Input[pulumi.InputType['TransferJobNotificationConfigArgs']] notification_config: Notification configuration. This is not supported for transfers involving PosixFilesystem. Structure documented below.
653
672
  :param pulumi.Input[str] project: The project in which the resource belongs. If it
654
673
  is not provided, the provider project is used.
@@ -719,7 +738,7 @@ class TransferJob(pulumi.CustomResource):
719
738
  @pulumi.getter
720
739
  def name(self) -> pulumi.Output[str]:
721
740
  """
722
- Specifies a unique name of the resource such as AWS SQS ARN in the form 'arn:aws:sqs:region:account_id:queue_name', or Pub/Sub subscription resource name in the form 'projects/{project}/subscriptions/{sub}'.
741
+ The name of the Transfer Job. This name must start with "transferJobs/" prefix and end with a letter or a number, and should be no more than 128 characters ( `transferJobs/^(?!OPI)[A-Za-z0-9-._~]*[A-Za-z0-9]$` ). For transfers involving PosixFilesystem, this name must start with transferJobs/OPI specifically ( `transferJobs/OPI^[A-Za-z0-9-._~]*[A-Za-z0-9]$` ). For all other transfer types, this name must not start with transferJobs/OPI. Default the provider will assign a random unique name with `transferJobs/{{name}}` format, where `name` is a numeric value.
723
742
  """
724
743
  return pulumi.get(self, "name")
725
744
 
@@ -10,6 +10,9 @@ from .ai_endpoint import *
10
10
  from .ai_endpoint_iam_binding import *
11
11
  from .ai_endpoint_iam_member import *
12
12
  from .ai_endpoint_iam_policy import *
13
+ from .ai_feature_group import *
14
+ from .ai_feature_online_store import *
15
+ from .ai_feature_online_store_featureview import *
13
16
  from .ai_feature_store import *
14
17
  from .ai_feature_store_entity_type import *
15
18
  from .ai_feature_store_entity_type_feature import *
@@ -20,6 +20,16 @@ __all__ = [
20
20
  'AiEndpointEncryptionSpecArgs',
21
21
  'AiEndpointIamBindingConditionArgs',
22
22
  'AiEndpointIamMemberConditionArgs',
23
+ 'AiFeatureGroupBigQueryArgs',
24
+ 'AiFeatureGroupBigQueryBigQuerySourceArgs',
25
+ 'AiFeatureOnlineStoreBigtableArgs',
26
+ 'AiFeatureOnlineStoreBigtableAutoScalingArgs',
27
+ 'AiFeatureOnlineStoreDedicatedServingEndpointArgs',
28
+ 'AiFeatureOnlineStoreDedicatedServingEndpointPrivateServiceConnectConfigArgs',
29
+ 'AiFeatureOnlineStoreEmbeddingManagementArgs',
30
+ 'AiFeatureOnlineStoreFeatureviewBigQuerySourceArgs',
31
+ 'AiFeatureOnlineStoreFeatureviewSyncConfigArgs',
32
+ 'AiFeatureOnlineStoreOptimizedArgs',
23
33
  'AiFeatureStoreEncryptionSpecArgs',
24
34
  'AiFeatureStoreEntityTypeIamBindingConditionArgs',
25
35
  'AiFeatureStoreEntityTypeIamMemberConditionArgs',
@@ -706,6 +716,335 @@ class AiEndpointIamMemberConditionArgs:
706
716
  pulumi.set(self, "description", value)
707
717
 
708
718
 
719
+ @pulumi.input_type
720
+ class AiFeatureGroupBigQueryArgs:
721
+ def __init__(__self__, *,
722
+ big_query_source: pulumi.Input['AiFeatureGroupBigQueryBigQuerySourceArgs'],
723
+ entity_id_columns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
724
+ """
725
+ :param pulumi.Input['AiFeatureGroupBigQueryBigQuerySourceArgs'] big_query_source: The BigQuery source URI that points to either a BigQuery Table or View.
726
+ Structure is documented below.
727
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] entity_id_columns: Columns to construct entityId / row keys. Currently only supports 1 entity_id_column. If not provided defaults to entityId.
728
+ """
729
+ pulumi.set(__self__, "big_query_source", big_query_source)
730
+ if entity_id_columns is not None:
731
+ pulumi.set(__self__, "entity_id_columns", entity_id_columns)
732
+
733
+ @property
734
+ @pulumi.getter(name="bigQuerySource")
735
+ def big_query_source(self) -> pulumi.Input['AiFeatureGroupBigQueryBigQuerySourceArgs']:
736
+ """
737
+ The BigQuery source URI that points to either a BigQuery Table or View.
738
+ Structure is documented below.
739
+ """
740
+ return pulumi.get(self, "big_query_source")
741
+
742
+ @big_query_source.setter
743
+ def big_query_source(self, value: pulumi.Input['AiFeatureGroupBigQueryBigQuerySourceArgs']):
744
+ pulumi.set(self, "big_query_source", value)
745
+
746
+ @property
747
+ @pulumi.getter(name="entityIdColumns")
748
+ def entity_id_columns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
749
+ """
750
+ Columns to construct entityId / row keys. Currently only supports 1 entity_id_column. If not provided defaults to entityId.
751
+ """
752
+ return pulumi.get(self, "entity_id_columns")
753
+
754
+ @entity_id_columns.setter
755
+ def entity_id_columns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
756
+ pulumi.set(self, "entity_id_columns", value)
757
+
758
+
759
+ @pulumi.input_type
760
+ class AiFeatureGroupBigQueryBigQuerySourceArgs:
761
+ def __init__(__self__, *,
762
+ input_uri: pulumi.Input[str]):
763
+ """
764
+ :param pulumi.Input[str] input_uri: BigQuery URI to a table, up to 2000 characters long. For example: `bq://projectId.bqDatasetId.bqTableId.`
765
+ """
766
+ pulumi.set(__self__, "input_uri", input_uri)
767
+
768
+ @property
769
+ @pulumi.getter(name="inputUri")
770
+ def input_uri(self) -> pulumi.Input[str]:
771
+ """
772
+ BigQuery URI to a table, up to 2000 characters long. For example: `bq://projectId.bqDatasetId.bqTableId.`
773
+ """
774
+ return pulumi.get(self, "input_uri")
775
+
776
+ @input_uri.setter
777
+ def input_uri(self, value: pulumi.Input[str]):
778
+ pulumi.set(self, "input_uri", value)
779
+
780
+
781
+ @pulumi.input_type
782
+ class AiFeatureOnlineStoreBigtableArgs:
783
+ def __init__(__self__, *,
784
+ auto_scaling: pulumi.Input['AiFeatureOnlineStoreBigtableAutoScalingArgs']):
785
+ """
786
+ :param pulumi.Input['AiFeatureOnlineStoreBigtableAutoScalingArgs'] auto_scaling: Autoscaling config applied to Bigtable Instance.
787
+ Structure is documented below.
788
+ """
789
+ pulumi.set(__self__, "auto_scaling", auto_scaling)
790
+
791
+ @property
792
+ @pulumi.getter(name="autoScaling")
793
+ def auto_scaling(self) -> pulumi.Input['AiFeatureOnlineStoreBigtableAutoScalingArgs']:
794
+ """
795
+ Autoscaling config applied to Bigtable Instance.
796
+ Structure is documented below.
797
+ """
798
+ return pulumi.get(self, "auto_scaling")
799
+
800
+ @auto_scaling.setter
801
+ def auto_scaling(self, value: pulumi.Input['AiFeatureOnlineStoreBigtableAutoScalingArgs']):
802
+ pulumi.set(self, "auto_scaling", value)
803
+
804
+
805
+ @pulumi.input_type
806
+ class AiFeatureOnlineStoreBigtableAutoScalingArgs:
807
+ def __init__(__self__, *,
808
+ max_node_count: pulumi.Input[int],
809
+ min_node_count: pulumi.Input[int],
810
+ cpu_utilization_target: Optional[pulumi.Input[int]] = None):
811
+ """
812
+ :param pulumi.Input[int] max_node_count: The maximum number of nodes to scale up to. Must be greater than or equal to minNodeCount, and less than or equal to 10 times of 'minNodeCount'.
813
+ :param pulumi.Input[int] min_node_count: The minimum number of nodes to scale down to. Must be greater than or equal to 1.
814
+ :param pulumi.Input[int] cpu_utilization_target: A percentage of the cluster's CPU capacity. Can be from 10% to 80%. When a cluster's CPU utilization exceeds the target that you have set, Bigtable immediately adds nodes to the cluster. When CPU utilization is substantially lower than the target, Bigtable removes nodes. If not set will default to 50%.
815
+ """
816
+ pulumi.set(__self__, "max_node_count", max_node_count)
817
+ pulumi.set(__self__, "min_node_count", min_node_count)
818
+ if cpu_utilization_target is not None:
819
+ pulumi.set(__self__, "cpu_utilization_target", cpu_utilization_target)
820
+
821
+ @property
822
+ @pulumi.getter(name="maxNodeCount")
823
+ def max_node_count(self) -> pulumi.Input[int]:
824
+ """
825
+ The maximum number of nodes to scale up to. Must be greater than or equal to minNodeCount, and less than or equal to 10 times of 'minNodeCount'.
826
+ """
827
+ return pulumi.get(self, "max_node_count")
828
+
829
+ @max_node_count.setter
830
+ def max_node_count(self, value: pulumi.Input[int]):
831
+ pulumi.set(self, "max_node_count", value)
832
+
833
+ @property
834
+ @pulumi.getter(name="minNodeCount")
835
+ def min_node_count(self) -> pulumi.Input[int]:
836
+ """
837
+ The minimum number of nodes to scale down to. Must be greater than or equal to 1.
838
+ """
839
+ return pulumi.get(self, "min_node_count")
840
+
841
+ @min_node_count.setter
842
+ def min_node_count(self, value: pulumi.Input[int]):
843
+ pulumi.set(self, "min_node_count", value)
844
+
845
+ @property
846
+ @pulumi.getter(name="cpuUtilizationTarget")
847
+ def cpu_utilization_target(self) -> Optional[pulumi.Input[int]]:
848
+ """
849
+ A percentage of the cluster's CPU capacity. Can be from 10% to 80%. When a cluster's CPU utilization exceeds the target that you have set, Bigtable immediately adds nodes to the cluster. When CPU utilization is substantially lower than the target, Bigtable removes nodes. If not set will default to 50%.
850
+ """
851
+ return pulumi.get(self, "cpu_utilization_target")
852
+
853
+ @cpu_utilization_target.setter
854
+ def cpu_utilization_target(self, value: Optional[pulumi.Input[int]]):
855
+ pulumi.set(self, "cpu_utilization_target", value)
856
+
857
+
858
+ @pulumi.input_type
859
+ class AiFeatureOnlineStoreDedicatedServingEndpointArgs:
860
+ def __init__(__self__, *,
861
+ private_service_connect_config: Optional[pulumi.Input['AiFeatureOnlineStoreDedicatedServingEndpointPrivateServiceConnectConfigArgs']] = None,
862
+ public_endpoint_domain_name: Optional[pulumi.Input[str]] = None,
863
+ service_attachment: Optional[pulumi.Input[str]] = None):
864
+ """
865
+ :param pulumi.Input['AiFeatureOnlineStoreDedicatedServingEndpointPrivateServiceConnectConfigArgs'] private_service_connect_config: Private service connect config.
866
+ Structure is documented below.
867
+ :param pulumi.Input[str] public_endpoint_domain_name: (Output)
868
+ Domain name to use for this FeatureOnlineStore
869
+ :param pulumi.Input[str] service_attachment: (Output)
870
+ Name of the service attachment resource. Applicable only if private service connect is enabled and after FeatureViewSync is created.
871
+ """
872
+ if private_service_connect_config is not None:
873
+ pulumi.set(__self__, "private_service_connect_config", private_service_connect_config)
874
+ if public_endpoint_domain_name is not None:
875
+ pulumi.set(__self__, "public_endpoint_domain_name", public_endpoint_domain_name)
876
+ if service_attachment is not None:
877
+ pulumi.set(__self__, "service_attachment", service_attachment)
878
+
879
+ @property
880
+ @pulumi.getter(name="privateServiceConnectConfig")
881
+ def private_service_connect_config(self) -> Optional[pulumi.Input['AiFeatureOnlineStoreDedicatedServingEndpointPrivateServiceConnectConfigArgs']]:
882
+ """
883
+ Private service connect config.
884
+ Structure is documented below.
885
+ """
886
+ return pulumi.get(self, "private_service_connect_config")
887
+
888
+ @private_service_connect_config.setter
889
+ def private_service_connect_config(self, value: Optional[pulumi.Input['AiFeatureOnlineStoreDedicatedServingEndpointPrivateServiceConnectConfigArgs']]):
890
+ pulumi.set(self, "private_service_connect_config", value)
891
+
892
+ @property
893
+ @pulumi.getter(name="publicEndpointDomainName")
894
+ def public_endpoint_domain_name(self) -> Optional[pulumi.Input[str]]:
895
+ """
896
+ (Output)
897
+ Domain name to use for this FeatureOnlineStore
898
+ """
899
+ return pulumi.get(self, "public_endpoint_domain_name")
900
+
901
+ @public_endpoint_domain_name.setter
902
+ def public_endpoint_domain_name(self, value: Optional[pulumi.Input[str]]):
903
+ pulumi.set(self, "public_endpoint_domain_name", value)
904
+
905
+ @property
906
+ @pulumi.getter(name="serviceAttachment")
907
+ def service_attachment(self) -> Optional[pulumi.Input[str]]:
908
+ """
909
+ (Output)
910
+ Name of the service attachment resource. Applicable only if private service connect is enabled and after FeatureViewSync is created.
911
+ """
912
+ return pulumi.get(self, "service_attachment")
913
+
914
+ @service_attachment.setter
915
+ def service_attachment(self, value: Optional[pulumi.Input[str]]):
916
+ pulumi.set(self, "service_attachment", value)
917
+
918
+
919
+ @pulumi.input_type
920
+ class AiFeatureOnlineStoreDedicatedServingEndpointPrivateServiceConnectConfigArgs:
921
+ def __init__(__self__, *,
922
+ enable_private_service_connect: pulumi.Input[bool],
923
+ project_allowlists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
924
+ """
925
+ :param pulumi.Input[bool] enable_private_service_connect: If set to true, customers will use private service connection to send request. Otherwise, the connection will set to public endpoint.
926
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] project_allowlists: A list of Projects from which the forwarding rule will target the service attachment.
927
+ """
928
+ pulumi.set(__self__, "enable_private_service_connect", enable_private_service_connect)
929
+ if project_allowlists is not None:
930
+ pulumi.set(__self__, "project_allowlists", project_allowlists)
931
+
932
+ @property
933
+ @pulumi.getter(name="enablePrivateServiceConnect")
934
+ def enable_private_service_connect(self) -> pulumi.Input[bool]:
935
+ """
936
+ If set to true, customers will use private service connection to send request. Otherwise, the connection will set to public endpoint.
937
+ """
938
+ return pulumi.get(self, "enable_private_service_connect")
939
+
940
+ @enable_private_service_connect.setter
941
+ def enable_private_service_connect(self, value: pulumi.Input[bool]):
942
+ pulumi.set(self, "enable_private_service_connect", value)
943
+
944
+ @property
945
+ @pulumi.getter(name="projectAllowlists")
946
+ def project_allowlists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
947
+ """
948
+ A list of Projects from which the forwarding rule will target the service attachment.
949
+ """
950
+ return pulumi.get(self, "project_allowlists")
951
+
952
+ @project_allowlists.setter
953
+ def project_allowlists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
954
+ pulumi.set(self, "project_allowlists", value)
955
+
956
+
957
+ @pulumi.input_type
958
+ class AiFeatureOnlineStoreEmbeddingManagementArgs:
959
+ def __init__(__self__, *,
960
+ enabled: Optional[pulumi.Input[bool]] = None):
961
+ """
962
+ :param pulumi.Input[bool] enabled: Enable embedding management.
963
+ """
964
+ if enabled is not None:
965
+ pulumi.set(__self__, "enabled", enabled)
966
+
967
+ @property
968
+ @pulumi.getter
969
+ def enabled(self) -> Optional[pulumi.Input[bool]]:
970
+ """
971
+ Enable embedding management.
972
+ """
973
+ return pulumi.get(self, "enabled")
974
+
975
+ @enabled.setter
976
+ def enabled(self, value: Optional[pulumi.Input[bool]]):
977
+ pulumi.set(self, "enabled", value)
978
+
979
+
980
+ @pulumi.input_type
981
+ class AiFeatureOnlineStoreFeatureviewBigQuerySourceArgs:
982
+ def __init__(__self__, *,
983
+ entity_id_columns: pulumi.Input[Sequence[pulumi.Input[str]]],
984
+ uri: pulumi.Input[str]):
985
+ """
986
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] entity_id_columns: Columns to construct entityId / row keys. Start by supporting 1 only.
987
+ :param pulumi.Input[str] uri: The BigQuery view URI that will be materialized on each sync trigger based on FeatureView.SyncConfig.
988
+ """
989
+ pulumi.set(__self__, "entity_id_columns", entity_id_columns)
990
+ pulumi.set(__self__, "uri", uri)
991
+
992
+ @property
993
+ @pulumi.getter(name="entityIdColumns")
994
+ def entity_id_columns(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]:
995
+ """
996
+ Columns to construct entityId / row keys. Start by supporting 1 only.
997
+ """
998
+ return pulumi.get(self, "entity_id_columns")
999
+
1000
+ @entity_id_columns.setter
1001
+ def entity_id_columns(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]):
1002
+ pulumi.set(self, "entity_id_columns", value)
1003
+
1004
+ @property
1005
+ @pulumi.getter
1006
+ def uri(self) -> pulumi.Input[str]:
1007
+ """
1008
+ The BigQuery view URI that will be materialized on each sync trigger based on FeatureView.SyncConfig.
1009
+ """
1010
+ return pulumi.get(self, "uri")
1011
+
1012
+ @uri.setter
1013
+ def uri(self, value: pulumi.Input[str]):
1014
+ pulumi.set(self, "uri", value)
1015
+
1016
+
1017
+ @pulumi.input_type
1018
+ class AiFeatureOnlineStoreFeatureviewSyncConfigArgs:
1019
+ def __init__(__self__, *,
1020
+ cron: Optional[pulumi.Input[str]] = None):
1021
+ """
1022
+ :param pulumi.Input[str] cron: Cron schedule (https://en.wikipedia.org/wiki/Cron) to launch scheduled runs.
1023
+ To explicitly set a timezone to the cron tab, apply a prefix in the cron tab: "CRON_TZ=${IANA_TIME_ZONE}" or "TZ=${IANA_TIME_ZONE}".
1024
+ """
1025
+ if cron is not None:
1026
+ pulumi.set(__self__, "cron", cron)
1027
+
1028
+ @property
1029
+ @pulumi.getter
1030
+ def cron(self) -> Optional[pulumi.Input[str]]:
1031
+ """
1032
+ Cron schedule (https://en.wikipedia.org/wiki/Cron) to launch scheduled runs.
1033
+ To explicitly set a timezone to the cron tab, apply a prefix in the cron tab: "CRON_TZ=${IANA_TIME_ZONE}" or "TZ=${IANA_TIME_ZONE}".
1034
+ """
1035
+ return pulumi.get(self, "cron")
1036
+
1037
+ @cron.setter
1038
+ def cron(self, value: Optional[pulumi.Input[str]]):
1039
+ pulumi.set(self, "cron", value)
1040
+
1041
+
1042
+ @pulumi.input_type
1043
+ class AiFeatureOnlineStoreOptimizedArgs:
1044
+ def __init__(__self__):
1045
+ pass
1046
+
1047
+
709
1048
  @pulumi.input_type
710
1049
  class AiFeatureStoreEncryptionSpecArgs:
711
1050
  def __init__(__self__, *,