pulumi-gcp 8.42.0a1758178363__py3-none-any.whl → 9.0.0__py3-none-any.whl

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 (271) hide show
  1. pulumi_gcp/__init__.py +83 -48
  2. pulumi_gcp/activedirectory/peering.py +16 -0
  3. pulumi_gcp/alloydb/backup.py +8 -4
  4. pulumi_gcp/alloydb/cluster.py +56 -10
  5. pulumi_gcp/alloydb/get_cluster.py +12 -1
  6. pulumi_gcp/alloydb/instance.py +10 -4
  7. pulumi_gcp/alloydb/user.py +8 -4
  8. pulumi_gcp/apigateway/api_config_iam_binding.py +4 -4
  9. pulumi_gcp/apigateway/api_config_iam_member.py +4 -4
  10. pulumi_gcp/apigateway/api_config_iam_policy.py +4 -4
  11. pulumi_gcp/apigateway/api_iam_binding.py +4 -4
  12. pulumi_gcp/apigateway/api_iam_member.py +4 -4
  13. pulumi_gcp/apigateway/api_iam_policy.py +4 -4
  14. pulumi_gcp/apigateway/gateway_iam_binding.py +4 -4
  15. pulumi_gcp/apigateway/gateway_iam_member.py +4 -4
  16. pulumi_gcp/apigateway/gateway_iam_policy.py +4 -4
  17. pulumi_gcp/apigee/_inputs.py +151 -108
  18. pulumi_gcp/apigee/keystores_aliases_key_cert_file.py +52 -40
  19. pulumi_gcp/apigee/outputs.py +92 -88
  20. pulumi_gcp/artifactregistry/__init__.py +2 -0
  21. pulumi_gcp/artifactregistry/_inputs.py +0 -12
  22. pulumi_gcp/artifactregistry/get_npm_package.py +251 -0
  23. pulumi_gcp/artifactregistry/get_python_package.py +237 -0
  24. pulumi_gcp/artifactregistry/get_repository.py +12 -1
  25. pulumi_gcp/artifactregistry/outputs.py +8 -16
  26. pulumi_gcp/artifactregistry/repository.py +28 -0
  27. pulumi_gcp/backupdisasterrecovery/__init__.py +1 -0
  28. pulumi_gcp/backupdisasterrecovery/backup_plan.py +4 -4
  29. pulumi_gcp/backupdisasterrecovery/get_backup.py +12 -1
  30. pulumi_gcp/backupdisasterrecovery/get_backup_plan_association.py +4 -0
  31. pulumi_gcp/backupdisasterrecovery/get_data_source_references.py +135 -0
  32. pulumi_gcp/backupdisasterrecovery/get_management_server.py +4 -0
  33. pulumi_gcp/backupdisasterrecovery/outputs.py +103 -0
  34. pulumi_gcp/beyondcorp/__init__.py +0 -5
  35. pulumi_gcp/beyondcorp/_inputs.py +0 -312
  36. pulumi_gcp/beyondcorp/outputs.py +0 -200
  37. pulumi_gcp/bigquery/_inputs.py +114 -4
  38. pulumi_gcp/bigquery/app_profile.py +3 -5
  39. pulumi_gcp/bigquery/outputs.py +75 -5
  40. pulumi_gcp/bigqueryanalyticshub/data_exchange_subscription.py +20 -0
  41. pulumi_gcp/bigtable/app_profile.py +1 -1
  42. pulumi_gcp/bigtable/get_table_iam_policy.py +16 -18
  43. pulumi_gcp/bigtable/table_iam_binding.py +43 -43
  44. pulumi_gcp/bigtable/table_iam_member.py +43 -43
  45. pulumi_gcp/bigtable/table_iam_policy.py +43 -43
  46. pulumi_gcp/billing/_inputs.py +0 -6
  47. pulumi_gcp/billing/outputs.py +0 -4
  48. pulumi_gcp/certificatemanager/__init__.py +1 -0
  49. pulumi_gcp/certificatemanager/certificate_map_entry.py +7 -7
  50. pulumi_gcp/certificatemanager/get_dns_authorization.py +229 -0
  51. pulumi_gcp/certificatemanager/outputs.py +41 -0
  52. pulumi_gcp/chronicle/_inputs.py +6 -5
  53. pulumi_gcp/chronicle/outputs.py +4 -3
  54. pulumi_gcp/chronicle/reference_list.py +53 -5
  55. pulumi_gcp/cloudasset/get_resources_search_all.py +8 -0
  56. pulumi_gcp/cloudbuild/_inputs.py +309 -45
  57. pulumi_gcp/cloudbuild/bitbucket_server_config.py +2 -6
  58. pulumi_gcp/cloudbuild/get_trigger.py +12 -1
  59. pulumi_gcp/cloudbuild/outputs.py +380 -30
  60. pulumi_gcp/cloudbuild/trigger.py +160 -2
  61. pulumi_gcp/cloudbuild/worker_pool.py +2 -6
  62. pulumi_gcp/cloudfunctionsv2/_inputs.py +23 -21
  63. pulumi_gcp/cloudfunctionsv2/outputs.py +17 -16
  64. pulumi_gcp/cloudquota/s_quota_adjuster_settings.py +16 -0
  65. pulumi_gcp/cloudrunv2/_inputs.py +80 -26
  66. pulumi_gcp/cloudrunv2/get_service.py +12 -1
  67. pulumi_gcp/cloudrunv2/outputs.py +109 -30
  68. pulumi_gcp/cloudrunv2/service.py +72 -12
  69. pulumi_gcp/cloudrunv2/worker_pool.py +2 -2
  70. pulumi_gcp/cloudtasks/queue.py +98 -2
  71. pulumi_gcp/colab/_inputs.py +1 -114
  72. pulumi_gcp/colab/outputs.py +1 -106
  73. pulumi_gcp/compute/_inputs.py +884 -24
  74. pulumi_gcp/compute/backend_bucket.py +68 -0
  75. pulumi_gcp/compute/backend_bucket_iam_binding.py +236 -0
  76. pulumi_gcp/compute/backend_bucket_iam_member.py +236 -0
  77. pulumi_gcp/compute/backend_bucket_iam_policy.py +236 -0
  78. pulumi_gcp/compute/backend_service.py +54 -0
  79. pulumi_gcp/compute/backend_service_iam_binding.py +464 -0
  80. pulumi_gcp/compute/backend_service_iam_member.py +464 -0
  81. pulumi_gcp/compute/backend_service_iam_policy.py +464 -0
  82. pulumi_gcp/compute/cross_site_network.py +16 -0
  83. pulumi_gcp/compute/future_reservation.py +32 -0
  84. pulumi_gcp/compute/get_backend_bucket.py +12 -1
  85. pulumi_gcp/compute/get_backend_service.py +12 -1
  86. pulumi_gcp/compute/get_region_backend_service.py +12 -1
  87. pulumi_gcp/compute/get_resource_policy.py +2 -20
  88. pulumi_gcp/compute/machine_image_iam_binding.py +8 -4
  89. pulumi_gcp/compute/machine_image_iam_member.py +8 -4
  90. pulumi_gcp/compute/machine_image_iam_policy.py +8 -4
  91. pulumi_gcp/compute/network_edge_security_service.py +16 -0
  92. pulumi_gcp/compute/network_firewall_policy_packet_mirroring_rule.py +12 -0
  93. pulumi_gcp/compute/network_peering_routes_config.py +0 -100
  94. pulumi_gcp/compute/organization_security_policy.py +83 -51
  95. pulumi_gcp/compute/outputs.py +799 -16
  96. pulumi_gcp/compute/packet_mirroring.py +6 -0
  97. pulumi_gcp/compute/preview_feature.py +16 -0
  98. pulumi_gcp/compute/public_delegated_prefix.py +42 -0
  99. pulumi_gcp/compute/region_backend_service.py +54 -0
  100. pulumi_gcp/compute/region_backend_service_iam_binding.py +488 -0
  101. pulumi_gcp/compute/region_backend_service_iam_member.py +488 -0
  102. pulumi_gcp/compute/region_backend_service_iam_policy.py +488 -0
  103. pulumi_gcp/compute/region_network_endpoint_group.py +1 -3
  104. pulumi_gcp/compute/region_resize_request.py +24 -0
  105. pulumi_gcp/compute/region_url_map.py +75 -0
  106. pulumi_gcp/compute/subnetwork.py +0 -98
  107. pulumi_gcp/compute/wire_group.py +16 -0
  108. pulumi_gcp/config/__init__.pyi +2 -2
  109. pulumi_gcp/config/vars.py +4 -4
  110. pulumi_gcp/container/_inputs.py +466 -18
  111. pulumi_gcp/container/cluster.py +16 -7
  112. pulumi_gcp/container/outputs.py +448 -15
  113. pulumi_gcp/databasemigrationservice/connection_profile.py +4 -2
  114. pulumi_gcp/databasemigrationservice/migration_job.py +4 -2
  115. pulumi_gcp/dataflow/flex_template_job.py +10 -0
  116. pulumi_gcp/dataform/repository.py +16 -0
  117. pulumi_gcp/dataform/repository_release_config.py +16 -0
  118. pulumi_gcp/dataform/repository_workflow_config.py +16 -0
  119. pulumi_gcp/diagflow/_inputs.py +152 -0
  120. pulumi_gcp/diagflow/cx_agent.py +425 -0
  121. pulumi_gcp/diagflow/outputs.py +143 -0
  122. pulumi_gcp/discoveryengine/__init__.py +1 -0
  123. pulumi_gcp/discoveryengine/_inputs.py +94 -0
  124. pulumi_gcp/discoveryengine/acl_config.py +393 -0
  125. pulumi_gcp/discoveryengine/outputs.py +92 -0
  126. pulumi_gcp/firebase/android_app.py +16 -0
  127. pulumi_gcp/firebase/app_check_play_integrity_config.py +4 -8
  128. pulumi_gcp/firebase/app_check_recaptcha_enterprise_config.py +2 -4
  129. pulumi_gcp/firebase/app_check_service_config.py +6 -12
  130. pulumi_gcp/firebase/app_hosting_backend.py +4 -8
  131. pulumi_gcp/firebase/app_hosting_build.py +4 -8
  132. pulumi_gcp/firebase/app_hosting_traffic.py +6 -12
  133. pulumi_gcp/firebase/apple_app.py +16 -0
  134. pulumi_gcp/firebase/data_connect_service.py +4 -8
  135. pulumi_gcp/firebase/database_instance.py +20 -8
  136. pulumi_gcp/firebase/extensions_instance.py +12 -0
  137. pulumi_gcp/firebase/get_android_app.py +4 -2
  138. pulumi_gcp/firebase/get_apple_app.py +4 -2
  139. pulumi_gcp/firebase/get_apple_app_config.py +16 -2
  140. pulumi_gcp/firebase/get_hosting_channel.py +4 -2
  141. pulumi_gcp/firebase/hosting_channel.py +20 -0
  142. pulumi_gcp/firebase/hosting_custom_domain.py +20 -0
  143. pulumi_gcp/firebase/hosting_release.py +16 -0
  144. pulumi_gcp/firebase/hosting_site.py +16 -0
  145. pulumi_gcp/firebase/hosting_version.py +16 -0
  146. pulumi_gcp/firebase/storage_bucket.py +18 -0
  147. pulumi_gcp/firestore/index.py +118 -3
  148. pulumi_gcp/folder/service_identity.py +26 -0
  149. pulumi_gcp/gkehub/_inputs.py +0 -60
  150. pulumi_gcp/gkehub/get_membership.py +1 -12
  151. pulumi_gcp/gkehub/membership.py +0 -70
  152. pulumi_gcp/gkehub/membership_rbac_role_binding.py +16 -0
  153. pulumi_gcp/gkehub/outputs.py +0 -36
  154. pulumi_gcp/healthcare/_inputs.py +205 -0
  155. pulumi_gcp/healthcare/fhir_store.py +128 -0
  156. pulumi_gcp/healthcare/outputs.py +163 -0
  157. pulumi_gcp/iam/workload_identity_pool_iam_binding.py +464 -0
  158. pulumi_gcp/iam/workload_identity_pool_iam_member.py +464 -0
  159. pulumi_gcp/iam/workload_identity_pool_iam_policy.py +464 -0
  160. pulumi_gcp/iam/workload_identity_pool_managed_identity.py +18 -0
  161. pulumi_gcp/iam/workload_identity_pool_namespace.py +20 -0
  162. pulumi_gcp/iap/__init__.py +8 -0
  163. pulumi_gcp/iap/_inputs.py +260 -0
  164. pulumi_gcp/iap/get_web_forwarding_rule_service_iam_policy.py +159 -0
  165. pulumi_gcp/iap/get_web_region_forwarding_rule_service_iam_policy.py +182 -0
  166. pulumi_gcp/iap/outputs.py +152 -0
  167. pulumi_gcp/{beyondcorp/application_iam_binding.py → iap/web_forwarding_rule_service_iam_binding.py} +233 -315
  168. pulumi_gcp/{beyondcorp/application_iam_member.py → iap/web_forwarding_rule_service_iam_member.py} +233 -315
  169. pulumi_gcp/{beyondcorp/application_iam_policy.py → iap/web_forwarding_rule_service_iam_policy.py} +212 -294
  170. pulumi_gcp/iap/web_region_forwarding_rule_service_iam_binding.py +1091 -0
  171. pulumi_gcp/iap/web_region_forwarding_rule_service_iam_member.py +1091 -0
  172. pulumi_gcp/iap/web_region_forwarding_rule_service_iam_policy.py +910 -0
  173. pulumi_gcp/kms/autokey_config.py +0 -2
  174. pulumi_gcp/kms/get_kms_secret_asymmetric.py +22 -0
  175. pulumi_gcp/kms/key_handle.py +0 -2
  176. pulumi_gcp/logging/organization_sink.py +7 -7
  177. pulumi_gcp/managedkafka/connect_cluster.py +4 -0
  178. pulumi_gcp/managedkafka/connector.py +4 -0
  179. pulumi_gcp/memorystore/get_instance.py +1 -12
  180. pulumi_gcp/memorystore/instance.py +14 -84
  181. pulumi_gcp/netapp/storage_pool.py +91 -2
  182. pulumi_gcp/netapp/volume.py +47 -0
  183. pulumi_gcp/networkmanagement/__init__.py +1 -0
  184. pulumi_gcp/networkmanagement/organization_vpc_flow_logs_config.py +1028 -0
  185. pulumi_gcp/networksecurity/authorization_policy.py +12 -0
  186. pulumi_gcp/networkservices/gateway.py +7 -7
  187. pulumi_gcp/networkservices/lb_traffic_extension.py +24 -23
  188. pulumi_gcp/networkservices/service_lb_policies.py +12 -0
  189. pulumi_gcp/notebooks/__init__.py +0 -1
  190. pulumi_gcp/oracledatabase/autonomous_database.py +2 -2
  191. pulumi_gcp/oracledatabase/cloud_vm_cluster.py +3 -3
  192. pulumi_gcp/projects/service.py +2 -11
  193. pulumi_gcp/provider.py +20 -20
  194. pulumi_gcp/pulumi-plugin.json +1 -1
  195. pulumi_gcp/redis/cluster.py +0 -70
  196. pulumi_gcp/redis/get_cluster.py +1 -12
  197. pulumi_gcp/resourcemanager/capability.py +16 -0
  198. pulumi_gcp/runtimeconfig/config.py +16 -0
  199. pulumi_gcp/runtimeconfig/config_iam_binding.py +236 -0
  200. pulumi_gcp/runtimeconfig/config_iam_member.py +236 -0
  201. pulumi_gcp/runtimeconfig/config_iam_policy.py +236 -0
  202. pulumi_gcp/runtimeconfig/variable.py +10 -0
  203. pulumi_gcp/saasruntime/__init__.py +12 -0
  204. pulumi_gcp/saasruntime/_inputs.py +513 -0
  205. pulumi_gcp/saasruntime/outputs.py +431 -0
  206. pulumi_gcp/saasruntime/saa_s.py +819 -0
  207. pulumi_gcp/saasruntime/unit_kind.py +1024 -0
  208. pulumi_gcp/securesourcemanager/_inputs.py +20 -19
  209. pulumi_gcp/securesourcemanager/instance.py +7 -7
  210. pulumi_gcp/securesourcemanager/outputs.py +15 -14
  211. pulumi_gcp/securesourcemanager/repository.py +7 -7
  212. pulumi_gcp/serviceaccount/get_account_key.py +1 -21
  213. pulumi_gcp/servicedirectory/namespace_iam_binding.py +4 -4
  214. pulumi_gcp/servicedirectory/namespace_iam_member.py +4 -4
  215. pulumi_gcp/servicedirectory/namespace_iam_policy.py +4 -4
  216. pulumi_gcp/servicedirectory/service_iam_binding.py +4 -4
  217. pulumi_gcp/servicedirectory/service_iam_member.py +4 -4
  218. pulumi_gcp/servicedirectory/service_iam_policy.py +4 -4
  219. pulumi_gcp/sql/_inputs.py +135 -1
  220. pulumi_gcp/sql/database_instance.py +94 -0
  221. pulumi_gcp/sql/get_database_instance.py +23 -1
  222. pulumi_gcp/sql/outputs.py +276 -3
  223. pulumi_gcp/sql/user.py +61 -0
  224. pulumi_gcp/storage/_inputs.py +253 -7
  225. pulumi_gcp/storage/bucket_object.py +0 -9
  226. pulumi_gcp/storage/outputs.py +198 -8
  227. pulumi_gcp/storage/transfer_job.py +47 -0
  228. pulumi_gcp/tpu/__init__.py +0 -2
  229. pulumi_gcp/tpu/_inputs.py +0 -93
  230. pulumi_gcp/tpu/outputs.py +0 -72
  231. pulumi_gcp/tpu/v2_queued_resource.py +16 -0
  232. pulumi_gcp/tpu/v2_vm.py +16 -0
  233. pulumi_gcp/vertex/_inputs.py +8 -9
  234. pulumi_gcp/vertex/ai_endpoint.py +2 -4
  235. pulumi_gcp/vertex/ai_feature_group_iam_binding.py +236 -0
  236. pulumi_gcp/vertex/ai_feature_group_iam_member.py +236 -0
  237. pulumi_gcp/vertex/ai_feature_group_iam_policy.py +236 -0
  238. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +0 -2
  239. pulumi_gcp/vertex/ai_feature_online_store_featureview_iam_binding.py +248 -0
  240. pulumi_gcp/vertex/ai_feature_online_store_featureview_iam_member.py +248 -0
  241. pulumi_gcp/vertex/ai_feature_online_store_featureview_iam_policy.py +248 -0
  242. pulumi_gcp/vertex/ai_feature_online_store_iam_binding.py +236 -0
  243. pulumi_gcp/vertex/ai_feature_online_store_iam_member.py +236 -0
  244. pulumi_gcp/vertex/ai_feature_online_store_iam_policy.py +236 -0
  245. pulumi_gcp/vertex/ai_feature_store_entity_type_iam_binding.py +238 -0
  246. pulumi_gcp/vertex/ai_feature_store_entity_type_iam_member.py +238 -0
  247. pulumi_gcp/vertex/ai_feature_store_entity_type_iam_policy.py +238 -0
  248. pulumi_gcp/vertex/ai_feature_store_iam_binding.py +248 -0
  249. pulumi_gcp/vertex/ai_feature_store_iam_member.py +248 -0
  250. pulumi_gcp/vertex/ai_feature_store_iam_policy.py +248 -0
  251. pulumi_gcp/vertex/ai_index.py +24 -23
  252. pulumi_gcp/vertex/ai_metadata_store.py +16 -0
  253. pulumi_gcp/vertex/outputs.py +7 -8
  254. pulumi_gcp/workstations/workstation.py +16 -0
  255. pulumi_gcp/workstations/workstation_cluster.py +16 -0
  256. pulumi_gcp/workstations/workstation_config.py +16 -0
  257. pulumi_gcp/workstations/workstation_config_iam_binding.py +260 -0
  258. pulumi_gcp/workstations/workstation_config_iam_member.py +260 -0
  259. pulumi_gcp/workstations/workstation_config_iam_policy.py +260 -0
  260. pulumi_gcp/workstations/workstation_iam_binding.py +272 -0
  261. pulumi_gcp/workstations/workstation_iam_member.py +272 -0
  262. pulumi_gcp/workstations/workstation_iam_policy.py +272 -0
  263. {pulumi_gcp-8.42.0a1758178363.dist-info → pulumi_gcp-9.0.0.dist-info}/METADATA +1 -1
  264. {pulumi_gcp-8.42.0a1758178363.dist-info → pulumi_gcp-9.0.0.dist-info}/RECORD +266 -255
  265. pulumi_gcp/beyondcorp/application.py +0 -746
  266. pulumi_gcp/beyondcorp/get_application_iam_policy.py +0 -182
  267. pulumi_gcp/notebooks/location.py +0 -285
  268. pulumi_gcp/tpu/get_tensorflow_versions.py +0 -184
  269. pulumi_gcp/tpu/node.py +0 -1062
  270. {pulumi_gcp-8.42.0a1758178363.dist-info → pulumi_gcp-9.0.0.dist-info}/WHEEL +0 -0
  271. {pulumi_gcp-8.42.0a1758178363.dist-info → pulumi_gcp-9.0.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,819 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by pulumi-language-python. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import builtins as _builtins
6
+ import warnings
7
+ import sys
8
+ import pulumi
9
+ import pulumi.runtime
10
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
15
+ from .. import _utilities
16
+ from . import outputs
17
+ from ._inputs import *
18
+
19
+ __all__ = ['SaaSArgs', 'SaaS']
20
+
21
+ @pulumi.input_type
22
+ class SaaSArgs:
23
+ def __init__(__self__, *,
24
+ location: pulumi.Input[_builtins.str],
25
+ saas_id: pulumi.Input[_builtins.str],
26
+ annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
27
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
28
+ locations: Optional[pulumi.Input[Sequence[pulumi.Input['SaaSLocationArgs']]]] = None,
29
+ project: Optional[pulumi.Input[_builtins.str]] = None):
30
+ """
31
+ The set of arguments for constructing a SaaS resource.
32
+ :param pulumi.Input[_builtins.str] location: Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
33
+ :param pulumi.Input[_builtins.str] saas_id: The ID value for the new saas.
34
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations is an unstructured key-value map stored with a resource that
35
+ may be set by external tools to store and retrieve arbitrary metadata.
36
+ They are not queryable and should be preserved when modifying objects.
37
+ More info: https://kubernetes.io/docs/user-guide/annotations
38
+ **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
39
+ Please refer to the field `effective_annotations` for all of the annotations present on the resource.
40
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: The labels on the resource, which can be used for categorization.
41
+ similar to Kubernetes resource labels.
42
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
43
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
44
+ :param pulumi.Input[Sequence[pulumi.Input['SaaSLocationArgs']]] locations: List of locations that the service is available in. Rollout refers to the
45
+ list to generate a rollout plan.
46
+ Structure is documented below.
47
+ :param pulumi.Input[_builtins.str] project: The ID of the project in which the resource belongs.
48
+ If it is not provided, the provider project is used.
49
+ """
50
+ pulumi.set(__self__, "location", location)
51
+ pulumi.set(__self__, "saas_id", saas_id)
52
+ if annotations is not None:
53
+ pulumi.set(__self__, "annotations", annotations)
54
+ if labels is not None:
55
+ pulumi.set(__self__, "labels", labels)
56
+ if locations is not None:
57
+ pulumi.set(__self__, "locations", locations)
58
+ if project is not None:
59
+ pulumi.set(__self__, "project", project)
60
+
61
+ @_builtins.property
62
+ @pulumi.getter
63
+ def location(self) -> pulumi.Input[_builtins.str]:
64
+ """
65
+ Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
66
+ """
67
+ return pulumi.get(self, "location")
68
+
69
+ @location.setter
70
+ def location(self, value: pulumi.Input[_builtins.str]):
71
+ pulumi.set(self, "location", value)
72
+
73
+ @_builtins.property
74
+ @pulumi.getter(name="saasId")
75
+ def saas_id(self) -> pulumi.Input[_builtins.str]:
76
+ """
77
+ The ID value for the new saas.
78
+ """
79
+ return pulumi.get(self, "saas_id")
80
+
81
+ @saas_id.setter
82
+ def saas_id(self, value: pulumi.Input[_builtins.str]):
83
+ pulumi.set(self, "saas_id", value)
84
+
85
+ @_builtins.property
86
+ @pulumi.getter
87
+ def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
88
+ """
89
+ Annotations is an unstructured key-value map stored with a resource that
90
+ may be set by external tools to store and retrieve arbitrary metadata.
91
+ They are not queryable and should be preserved when modifying objects.
92
+ More info: https://kubernetes.io/docs/user-guide/annotations
93
+ **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
94
+ Please refer to the field `effective_annotations` for all of the annotations present on the resource.
95
+ """
96
+ return pulumi.get(self, "annotations")
97
+
98
+ @annotations.setter
99
+ def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
100
+ pulumi.set(self, "annotations", value)
101
+
102
+ @_builtins.property
103
+ @pulumi.getter
104
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
105
+ """
106
+ The labels on the resource, which can be used for categorization.
107
+ similar to Kubernetes resource labels.
108
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
109
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
110
+ """
111
+ return pulumi.get(self, "labels")
112
+
113
+ @labels.setter
114
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
115
+ pulumi.set(self, "labels", value)
116
+
117
+ @_builtins.property
118
+ @pulumi.getter
119
+ def locations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['SaaSLocationArgs']]]]:
120
+ """
121
+ List of locations that the service is available in. Rollout refers to the
122
+ list to generate a rollout plan.
123
+ Structure is documented below.
124
+ """
125
+ return pulumi.get(self, "locations")
126
+
127
+ @locations.setter
128
+ def locations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['SaaSLocationArgs']]]]):
129
+ pulumi.set(self, "locations", value)
130
+
131
+ @_builtins.property
132
+ @pulumi.getter
133
+ def project(self) -> Optional[pulumi.Input[_builtins.str]]:
134
+ """
135
+ The ID of the project in which the resource belongs.
136
+ If it is not provided, the provider project is used.
137
+ """
138
+ return pulumi.get(self, "project")
139
+
140
+ @project.setter
141
+ def project(self, value: Optional[pulumi.Input[_builtins.str]]):
142
+ pulumi.set(self, "project", value)
143
+
144
+
145
+ @pulumi.input_type
146
+ class _SaaSState:
147
+ def __init__(__self__, *,
148
+ annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
149
+ create_time: Optional[pulumi.Input[_builtins.str]] = None,
150
+ effective_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
151
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
152
+ etag: Optional[pulumi.Input[_builtins.str]] = None,
153
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
154
+ location: Optional[pulumi.Input[_builtins.str]] = None,
155
+ locations: Optional[pulumi.Input[Sequence[pulumi.Input['SaaSLocationArgs']]]] = None,
156
+ name: Optional[pulumi.Input[_builtins.str]] = None,
157
+ project: Optional[pulumi.Input[_builtins.str]] = None,
158
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
159
+ saas_id: Optional[pulumi.Input[_builtins.str]] = None,
160
+ uid: Optional[pulumi.Input[_builtins.str]] = None,
161
+ update_time: Optional[pulumi.Input[_builtins.str]] = None):
162
+ """
163
+ Input properties used for looking up and filtering SaaS resources.
164
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations is an unstructured key-value map stored with a resource that
165
+ may be set by external tools to store and retrieve arbitrary metadata.
166
+ They are not queryable and should be preserved when modifying objects.
167
+ More info: https://kubernetes.io/docs/user-guide/annotations
168
+ **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
169
+ Please refer to the field `effective_annotations` for all of the annotations present on the resource.
170
+ :param pulumi.Input[_builtins.str] create_time: The timestamp when the resource was created.
171
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
172
+ :param pulumi.Input[_builtins.str] etag: An opaque value that uniquely identifies a version or
173
+ generation of a resource. It can be used to confirm that the client
174
+ and server agree on the ordering of a resource being written.
175
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: The labels on the resource, which can be used for categorization.
176
+ similar to Kubernetes resource labels.
177
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
178
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
179
+ :param pulumi.Input[_builtins.str] location: Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
180
+ :param pulumi.Input[Sequence[pulumi.Input['SaaSLocationArgs']]] locations: List of locations that the service is available in. Rollout refers to the
181
+ list to generate a rollout plan.
182
+ Structure is documented below.
183
+ :param pulumi.Input[_builtins.str] name: Identifier. The resource name (full URI of the resource) following the standard naming
184
+ scheme:
185
+ "projects/{project}/locations/{location}/saas/{saas}"
186
+ :param pulumi.Input[_builtins.str] project: The ID of the project in which the resource belongs.
187
+ If it is not provided, the provider project is used.
188
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] pulumi_labels: The combination of labels configured directly on the resource
189
+ and default labels configured on the provider.
190
+ :param pulumi.Input[_builtins.str] saas_id: The ID value for the new saas.
191
+ :param pulumi.Input[_builtins.str] uid: The unique identifier of the resource. UID is unique in the time
192
+ and space for this resource within the scope of the service. It is
193
+ typically generated by the server on successful creation of a resource
194
+ and must not be changed. UID is used to uniquely identify resources
195
+ with resource name reuses. This should be a UUID4.
196
+ :param pulumi.Input[_builtins.str] update_time: The timestamp when the resource was last updated. Any
197
+ change to the resource made by users must refresh this value.
198
+ Changes to a resource made by the service should refresh this value.
199
+ """
200
+ if annotations is not None:
201
+ pulumi.set(__self__, "annotations", annotations)
202
+ if create_time is not None:
203
+ pulumi.set(__self__, "create_time", create_time)
204
+ if effective_annotations is not None:
205
+ pulumi.set(__self__, "effective_annotations", effective_annotations)
206
+ if effective_labels is not None:
207
+ pulumi.set(__self__, "effective_labels", effective_labels)
208
+ if etag is not None:
209
+ pulumi.set(__self__, "etag", etag)
210
+ if labels is not None:
211
+ pulumi.set(__self__, "labels", labels)
212
+ if location is not None:
213
+ pulumi.set(__self__, "location", location)
214
+ if locations is not None:
215
+ pulumi.set(__self__, "locations", locations)
216
+ if name is not None:
217
+ pulumi.set(__self__, "name", name)
218
+ if project is not None:
219
+ pulumi.set(__self__, "project", project)
220
+ if pulumi_labels is not None:
221
+ pulumi.set(__self__, "pulumi_labels", pulumi_labels)
222
+ if saas_id is not None:
223
+ pulumi.set(__self__, "saas_id", saas_id)
224
+ if uid is not None:
225
+ pulumi.set(__self__, "uid", uid)
226
+ if update_time is not None:
227
+ pulumi.set(__self__, "update_time", update_time)
228
+
229
+ @_builtins.property
230
+ @pulumi.getter
231
+ def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
232
+ """
233
+ Annotations is an unstructured key-value map stored with a resource that
234
+ may be set by external tools to store and retrieve arbitrary metadata.
235
+ They are not queryable and should be preserved when modifying objects.
236
+ More info: https://kubernetes.io/docs/user-guide/annotations
237
+ **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
238
+ Please refer to the field `effective_annotations` for all of the annotations present on the resource.
239
+ """
240
+ return pulumi.get(self, "annotations")
241
+
242
+ @annotations.setter
243
+ def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
244
+ pulumi.set(self, "annotations", value)
245
+
246
+ @_builtins.property
247
+ @pulumi.getter(name="createTime")
248
+ def create_time(self) -> Optional[pulumi.Input[_builtins.str]]:
249
+ """
250
+ The timestamp when the resource was created.
251
+ """
252
+ return pulumi.get(self, "create_time")
253
+
254
+ @create_time.setter
255
+ def create_time(self, value: Optional[pulumi.Input[_builtins.str]]):
256
+ pulumi.set(self, "create_time", value)
257
+
258
+ @_builtins.property
259
+ @pulumi.getter(name="effectiveAnnotations")
260
+ def effective_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
261
+ return pulumi.get(self, "effective_annotations")
262
+
263
+ @effective_annotations.setter
264
+ def effective_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
265
+ pulumi.set(self, "effective_annotations", value)
266
+
267
+ @_builtins.property
268
+ @pulumi.getter(name="effectiveLabels")
269
+ def effective_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
270
+ """
271
+ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
272
+ """
273
+ return pulumi.get(self, "effective_labels")
274
+
275
+ @effective_labels.setter
276
+ def effective_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
277
+ pulumi.set(self, "effective_labels", value)
278
+
279
+ @_builtins.property
280
+ @pulumi.getter
281
+ def etag(self) -> Optional[pulumi.Input[_builtins.str]]:
282
+ """
283
+ An opaque value that uniquely identifies a version or
284
+ generation of a resource. It can be used to confirm that the client
285
+ and server agree on the ordering of a resource being written.
286
+ """
287
+ return pulumi.get(self, "etag")
288
+
289
+ @etag.setter
290
+ def etag(self, value: Optional[pulumi.Input[_builtins.str]]):
291
+ pulumi.set(self, "etag", value)
292
+
293
+ @_builtins.property
294
+ @pulumi.getter
295
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
296
+ """
297
+ The labels on the resource, which can be used for categorization.
298
+ similar to Kubernetes resource labels.
299
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
300
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
301
+ """
302
+ return pulumi.get(self, "labels")
303
+
304
+ @labels.setter
305
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
306
+ pulumi.set(self, "labels", value)
307
+
308
+ @_builtins.property
309
+ @pulumi.getter
310
+ def location(self) -> Optional[pulumi.Input[_builtins.str]]:
311
+ """
312
+ Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
313
+ """
314
+ return pulumi.get(self, "location")
315
+
316
+ @location.setter
317
+ def location(self, value: Optional[pulumi.Input[_builtins.str]]):
318
+ pulumi.set(self, "location", value)
319
+
320
+ @_builtins.property
321
+ @pulumi.getter
322
+ def locations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['SaaSLocationArgs']]]]:
323
+ """
324
+ List of locations that the service is available in. Rollout refers to the
325
+ list to generate a rollout plan.
326
+ Structure is documented below.
327
+ """
328
+ return pulumi.get(self, "locations")
329
+
330
+ @locations.setter
331
+ def locations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['SaaSLocationArgs']]]]):
332
+ pulumi.set(self, "locations", value)
333
+
334
+ @_builtins.property
335
+ @pulumi.getter
336
+ def name(self) -> Optional[pulumi.Input[_builtins.str]]:
337
+ """
338
+ Identifier. The resource name (full URI of the resource) following the standard naming
339
+ scheme:
340
+ "projects/{project}/locations/{location}/saas/{saas}"
341
+ """
342
+ return pulumi.get(self, "name")
343
+
344
+ @name.setter
345
+ def name(self, value: Optional[pulumi.Input[_builtins.str]]):
346
+ pulumi.set(self, "name", value)
347
+
348
+ @_builtins.property
349
+ @pulumi.getter
350
+ def project(self) -> Optional[pulumi.Input[_builtins.str]]:
351
+ """
352
+ The ID of the project in which the resource belongs.
353
+ If it is not provided, the provider project is used.
354
+ """
355
+ return pulumi.get(self, "project")
356
+
357
+ @project.setter
358
+ def project(self, value: Optional[pulumi.Input[_builtins.str]]):
359
+ pulumi.set(self, "project", value)
360
+
361
+ @_builtins.property
362
+ @pulumi.getter(name="pulumiLabels")
363
+ def pulumi_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
364
+ """
365
+ The combination of labels configured directly on the resource
366
+ and default labels configured on the provider.
367
+ """
368
+ return pulumi.get(self, "pulumi_labels")
369
+
370
+ @pulumi_labels.setter
371
+ def pulumi_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
372
+ pulumi.set(self, "pulumi_labels", value)
373
+
374
+ @_builtins.property
375
+ @pulumi.getter(name="saasId")
376
+ def saas_id(self) -> Optional[pulumi.Input[_builtins.str]]:
377
+ """
378
+ The ID value for the new saas.
379
+ """
380
+ return pulumi.get(self, "saas_id")
381
+
382
+ @saas_id.setter
383
+ def saas_id(self, value: Optional[pulumi.Input[_builtins.str]]):
384
+ pulumi.set(self, "saas_id", value)
385
+
386
+ @_builtins.property
387
+ @pulumi.getter
388
+ def uid(self) -> Optional[pulumi.Input[_builtins.str]]:
389
+ """
390
+ The unique identifier of the resource. UID is unique in the time
391
+ and space for this resource within the scope of the service. It is
392
+ typically generated by the server on successful creation of a resource
393
+ and must not be changed. UID is used to uniquely identify resources
394
+ with resource name reuses. This should be a UUID4.
395
+ """
396
+ return pulumi.get(self, "uid")
397
+
398
+ @uid.setter
399
+ def uid(self, value: Optional[pulumi.Input[_builtins.str]]):
400
+ pulumi.set(self, "uid", value)
401
+
402
+ @_builtins.property
403
+ @pulumi.getter(name="updateTime")
404
+ def update_time(self) -> Optional[pulumi.Input[_builtins.str]]:
405
+ """
406
+ The timestamp when the resource was last updated. Any
407
+ change to the resource made by users must refresh this value.
408
+ Changes to a resource made by the service should refresh this value.
409
+ """
410
+ return pulumi.get(self, "update_time")
411
+
412
+ @update_time.setter
413
+ def update_time(self, value: Optional[pulumi.Input[_builtins.str]]):
414
+ pulumi.set(self, "update_time", value)
415
+
416
+
417
+ @pulumi.type_token("gcp:saasruntime/saaS:SaaS")
418
+ class SaaS(pulumi.CustomResource):
419
+ @overload
420
+ def __init__(__self__,
421
+ resource_name: str,
422
+ opts: Optional[pulumi.ResourceOptions] = None,
423
+ annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
424
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
425
+ location: Optional[pulumi.Input[_builtins.str]] = None,
426
+ locations: Optional[pulumi.Input[Sequence[pulumi.Input[Union['SaaSLocationArgs', 'SaaSLocationArgsDict']]]]] = None,
427
+ project: Optional[pulumi.Input[_builtins.str]] = None,
428
+ saas_id: Optional[pulumi.Input[_builtins.str]] = None,
429
+ __props__=None):
430
+ """
431
+ A Saas resource is the top-level representation of a SaaS service managed by a producer. It contains a list of locations where the service is available, which is used by the Rollout system to generate a rollout plan.
432
+
433
+ ## Example Usage
434
+
435
+ ### Saas Runtime Saas Basic
436
+
437
+ ```python
438
+ import pulumi
439
+ import pulumi_gcp as gcp
440
+
441
+ example = gcp.saasruntime.SaaS("example",
442
+ saas_id="test-saas",
443
+ location="global",
444
+ locations=[
445
+ {
446
+ "name": "us-central1",
447
+ },
448
+ {
449
+ "name": "europe-west1",
450
+ },
451
+ ])
452
+ ```
453
+
454
+ ## Import
455
+
456
+ Saas can be imported using any of these accepted formats:
457
+
458
+ * `projects/{{project}}/locations/{{location}}/saas/{{saas_id}}`
459
+
460
+ * `{{project}}/{{location}}/{{saas_id}}`
461
+
462
+ * `{{location}}/{{saas_id}}`
463
+
464
+ When using the `pulumi import` command, Saas can be imported using one of the formats above. For example:
465
+
466
+ ```sh
467
+ $ pulumi import gcp:saasruntime/saaS:SaaS default projects/{{project}}/locations/{{location}}/saas/{{saas_id}}
468
+ ```
469
+
470
+ ```sh
471
+ $ pulumi import gcp:saasruntime/saaS:SaaS default {{project}}/{{location}}/{{saas_id}}
472
+ ```
473
+
474
+ ```sh
475
+ $ pulumi import gcp:saasruntime/saaS:SaaS default {{location}}/{{saas_id}}
476
+ ```
477
+
478
+ :param str resource_name: The name of the resource.
479
+ :param pulumi.ResourceOptions opts: Options for the resource.
480
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations is an unstructured key-value map stored with a resource that
481
+ may be set by external tools to store and retrieve arbitrary metadata.
482
+ They are not queryable and should be preserved when modifying objects.
483
+ More info: https://kubernetes.io/docs/user-guide/annotations
484
+ **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
485
+ Please refer to the field `effective_annotations` for all of the annotations present on the resource.
486
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: The labels on the resource, which can be used for categorization.
487
+ similar to Kubernetes resource labels.
488
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
489
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
490
+ :param pulumi.Input[_builtins.str] location: Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
491
+ :param pulumi.Input[Sequence[pulumi.Input[Union['SaaSLocationArgs', 'SaaSLocationArgsDict']]]] locations: List of locations that the service is available in. Rollout refers to the
492
+ list to generate a rollout plan.
493
+ Structure is documented below.
494
+ :param pulumi.Input[_builtins.str] project: The ID of the project in which the resource belongs.
495
+ If it is not provided, the provider project is used.
496
+ :param pulumi.Input[_builtins.str] saas_id: The ID value for the new saas.
497
+ """
498
+ ...
499
+ @overload
500
+ def __init__(__self__,
501
+ resource_name: str,
502
+ args: SaaSArgs,
503
+ opts: Optional[pulumi.ResourceOptions] = None):
504
+ """
505
+ A Saas resource is the top-level representation of a SaaS service managed by a producer. It contains a list of locations where the service is available, which is used by the Rollout system to generate a rollout plan.
506
+
507
+ ## Example Usage
508
+
509
+ ### Saas Runtime Saas Basic
510
+
511
+ ```python
512
+ import pulumi
513
+ import pulumi_gcp as gcp
514
+
515
+ example = gcp.saasruntime.SaaS("example",
516
+ saas_id="test-saas",
517
+ location="global",
518
+ locations=[
519
+ {
520
+ "name": "us-central1",
521
+ },
522
+ {
523
+ "name": "europe-west1",
524
+ },
525
+ ])
526
+ ```
527
+
528
+ ## Import
529
+
530
+ Saas can be imported using any of these accepted formats:
531
+
532
+ * `projects/{{project}}/locations/{{location}}/saas/{{saas_id}}`
533
+
534
+ * `{{project}}/{{location}}/{{saas_id}}`
535
+
536
+ * `{{location}}/{{saas_id}}`
537
+
538
+ When using the `pulumi import` command, Saas can be imported using one of the formats above. For example:
539
+
540
+ ```sh
541
+ $ pulumi import gcp:saasruntime/saaS:SaaS default projects/{{project}}/locations/{{location}}/saas/{{saas_id}}
542
+ ```
543
+
544
+ ```sh
545
+ $ pulumi import gcp:saasruntime/saaS:SaaS default {{project}}/{{location}}/{{saas_id}}
546
+ ```
547
+
548
+ ```sh
549
+ $ pulumi import gcp:saasruntime/saaS:SaaS default {{location}}/{{saas_id}}
550
+ ```
551
+
552
+ :param str resource_name: The name of the resource.
553
+ :param SaaSArgs args: The arguments to use to populate this resource's properties.
554
+ :param pulumi.ResourceOptions opts: Options for the resource.
555
+ """
556
+ ...
557
+ def __init__(__self__, resource_name: str, *args, **kwargs):
558
+ resource_args, opts = _utilities.get_resource_args_opts(SaaSArgs, pulumi.ResourceOptions, *args, **kwargs)
559
+ if resource_args is not None:
560
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
561
+ else:
562
+ __self__._internal_init(resource_name, *args, **kwargs)
563
+
564
+ def _internal_init(__self__,
565
+ resource_name: str,
566
+ opts: Optional[pulumi.ResourceOptions] = None,
567
+ annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
568
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
569
+ location: Optional[pulumi.Input[_builtins.str]] = None,
570
+ locations: Optional[pulumi.Input[Sequence[pulumi.Input[Union['SaaSLocationArgs', 'SaaSLocationArgsDict']]]]] = None,
571
+ project: Optional[pulumi.Input[_builtins.str]] = None,
572
+ saas_id: Optional[pulumi.Input[_builtins.str]] = None,
573
+ __props__=None):
574
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
575
+ if not isinstance(opts, pulumi.ResourceOptions):
576
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
577
+ if opts.id is None:
578
+ if __props__ is not None:
579
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
580
+ __props__ = SaaSArgs.__new__(SaaSArgs)
581
+
582
+ __props__.__dict__["annotations"] = annotations
583
+ __props__.__dict__["labels"] = labels
584
+ if location is None and not opts.urn:
585
+ raise TypeError("Missing required property 'location'")
586
+ __props__.__dict__["location"] = location
587
+ __props__.__dict__["locations"] = locations
588
+ __props__.__dict__["project"] = project
589
+ if saas_id is None and not opts.urn:
590
+ raise TypeError("Missing required property 'saas_id'")
591
+ __props__.__dict__["saas_id"] = saas_id
592
+ __props__.__dict__["create_time"] = None
593
+ __props__.__dict__["effective_annotations"] = None
594
+ __props__.__dict__["effective_labels"] = None
595
+ __props__.__dict__["etag"] = None
596
+ __props__.__dict__["name"] = None
597
+ __props__.__dict__["pulumi_labels"] = None
598
+ __props__.__dict__["uid"] = None
599
+ __props__.__dict__["update_time"] = None
600
+ secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["effectiveLabels", "pulumiLabels"])
601
+ opts = pulumi.ResourceOptions.merge(opts, secret_opts)
602
+ super(SaaS, __self__).__init__(
603
+ 'gcp:saasruntime/saaS:SaaS',
604
+ resource_name,
605
+ __props__,
606
+ opts)
607
+
608
+ @staticmethod
609
+ def get(resource_name: str,
610
+ id: pulumi.Input[str],
611
+ opts: Optional[pulumi.ResourceOptions] = None,
612
+ annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
613
+ create_time: Optional[pulumi.Input[_builtins.str]] = None,
614
+ effective_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
615
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
616
+ etag: Optional[pulumi.Input[_builtins.str]] = None,
617
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
618
+ location: Optional[pulumi.Input[_builtins.str]] = None,
619
+ locations: Optional[pulumi.Input[Sequence[pulumi.Input[Union['SaaSLocationArgs', 'SaaSLocationArgsDict']]]]] = None,
620
+ name: Optional[pulumi.Input[_builtins.str]] = None,
621
+ project: Optional[pulumi.Input[_builtins.str]] = None,
622
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
623
+ saas_id: Optional[pulumi.Input[_builtins.str]] = None,
624
+ uid: Optional[pulumi.Input[_builtins.str]] = None,
625
+ update_time: Optional[pulumi.Input[_builtins.str]] = None) -> 'SaaS':
626
+ """
627
+ Get an existing SaaS resource's state with the given name, id, and optional extra
628
+ properties used to qualify the lookup.
629
+
630
+ :param str resource_name: The unique name of the resulting resource.
631
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
632
+ :param pulumi.ResourceOptions opts: Options for the resource.
633
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations is an unstructured key-value map stored with a resource that
634
+ may be set by external tools to store and retrieve arbitrary metadata.
635
+ They are not queryable and should be preserved when modifying objects.
636
+ More info: https://kubernetes.io/docs/user-guide/annotations
637
+ **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
638
+ Please refer to the field `effective_annotations` for all of the annotations present on the resource.
639
+ :param pulumi.Input[_builtins.str] create_time: The timestamp when the resource was created.
640
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
641
+ :param pulumi.Input[_builtins.str] etag: An opaque value that uniquely identifies a version or
642
+ generation of a resource. It can be used to confirm that the client
643
+ and server agree on the ordering of a resource being written.
644
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: The labels on the resource, which can be used for categorization.
645
+ similar to Kubernetes resource labels.
646
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
647
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
648
+ :param pulumi.Input[_builtins.str] location: Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
649
+ :param pulumi.Input[Sequence[pulumi.Input[Union['SaaSLocationArgs', 'SaaSLocationArgsDict']]]] locations: List of locations that the service is available in. Rollout refers to the
650
+ list to generate a rollout plan.
651
+ Structure is documented below.
652
+ :param pulumi.Input[_builtins.str] name: Identifier. The resource name (full URI of the resource) following the standard naming
653
+ scheme:
654
+ "projects/{project}/locations/{location}/saas/{saas}"
655
+ :param pulumi.Input[_builtins.str] project: The ID of the project in which the resource belongs.
656
+ If it is not provided, the provider project is used.
657
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] pulumi_labels: The combination of labels configured directly on the resource
658
+ and default labels configured on the provider.
659
+ :param pulumi.Input[_builtins.str] saas_id: The ID value for the new saas.
660
+ :param pulumi.Input[_builtins.str] uid: The unique identifier of the resource. UID is unique in the time
661
+ and space for this resource within the scope of the service. It is
662
+ typically generated by the server on successful creation of a resource
663
+ and must not be changed. UID is used to uniquely identify resources
664
+ with resource name reuses. This should be a UUID4.
665
+ :param pulumi.Input[_builtins.str] update_time: The timestamp when the resource was last updated. Any
666
+ change to the resource made by users must refresh this value.
667
+ Changes to a resource made by the service should refresh this value.
668
+ """
669
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
670
+
671
+ __props__ = _SaaSState.__new__(_SaaSState)
672
+
673
+ __props__.__dict__["annotations"] = annotations
674
+ __props__.__dict__["create_time"] = create_time
675
+ __props__.__dict__["effective_annotations"] = effective_annotations
676
+ __props__.__dict__["effective_labels"] = effective_labels
677
+ __props__.__dict__["etag"] = etag
678
+ __props__.__dict__["labels"] = labels
679
+ __props__.__dict__["location"] = location
680
+ __props__.__dict__["locations"] = locations
681
+ __props__.__dict__["name"] = name
682
+ __props__.__dict__["project"] = project
683
+ __props__.__dict__["pulumi_labels"] = pulumi_labels
684
+ __props__.__dict__["saas_id"] = saas_id
685
+ __props__.__dict__["uid"] = uid
686
+ __props__.__dict__["update_time"] = update_time
687
+ return SaaS(resource_name, opts=opts, __props__=__props__)
688
+
689
+ @_builtins.property
690
+ @pulumi.getter
691
+ def annotations(self) -> pulumi.Output[Optional[Mapping[str, _builtins.str]]]:
692
+ """
693
+ Annotations is an unstructured key-value map stored with a resource that
694
+ may be set by external tools to store and retrieve arbitrary metadata.
695
+ They are not queryable and should be preserved when modifying objects.
696
+ More info: https://kubernetes.io/docs/user-guide/annotations
697
+ **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
698
+ Please refer to the field `effective_annotations` for all of the annotations present on the resource.
699
+ """
700
+ return pulumi.get(self, "annotations")
701
+
702
+ @_builtins.property
703
+ @pulumi.getter(name="createTime")
704
+ def create_time(self) -> pulumi.Output[_builtins.str]:
705
+ """
706
+ The timestamp when the resource was created.
707
+ """
708
+ return pulumi.get(self, "create_time")
709
+
710
+ @_builtins.property
711
+ @pulumi.getter(name="effectiveAnnotations")
712
+ def effective_annotations(self) -> pulumi.Output[Mapping[str, _builtins.str]]:
713
+ return pulumi.get(self, "effective_annotations")
714
+
715
+ @_builtins.property
716
+ @pulumi.getter(name="effectiveLabels")
717
+ def effective_labels(self) -> pulumi.Output[Mapping[str, _builtins.str]]:
718
+ """
719
+ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
720
+ """
721
+ return pulumi.get(self, "effective_labels")
722
+
723
+ @_builtins.property
724
+ @pulumi.getter
725
+ def etag(self) -> pulumi.Output[_builtins.str]:
726
+ """
727
+ An opaque value that uniquely identifies a version or
728
+ generation of a resource. It can be used to confirm that the client
729
+ and server agree on the ordering of a resource being written.
730
+ """
731
+ return pulumi.get(self, "etag")
732
+
733
+ @_builtins.property
734
+ @pulumi.getter
735
+ def labels(self) -> pulumi.Output[Optional[Mapping[str, _builtins.str]]]:
736
+ """
737
+ The labels on the resource, which can be used for categorization.
738
+ similar to Kubernetes resource labels.
739
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
740
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
741
+ """
742
+ return pulumi.get(self, "labels")
743
+
744
+ @_builtins.property
745
+ @pulumi.getter
746
+ def location(self) -> pulumi.Output[_builtins.str]:
747
+ """
748
+ Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
749
+ """
750
+ return pulumi.get(self, "location")
751
+
752
+ @_builtins.property
753
+ @pulumi.getter
754
+ def locations(self) -> pulumi.Output[Optional[Sequence['outputs.SaaSLocation']]]:
755
+ """
756
+ List of locations that the service is available in. Rollout refers to the
757
+ list to generate a rollout plan.
758
+ Structure is documented below.
759
+ """
760
+ return pulumi.get(self, "locations")
761
+
762
+ @_builtins.property
763
+ @pulumi.getter
764
+ def name(self) -> pulumi.Output[_builtins.str]:
765
+ """
766
+ Identifier. The resource name (full URI of the resource) following the standard naming
767
+ scheme:
768
+ "projects/{project}/locations/{location}/saas/{saas}"
769
+ """
770
+ return pulumi.get(self, "name")
771
+
772
+ @_builtins.property
773
+ @pulumi.getter
774
+ def project(self) -> pulumi.Output[_builtins.str]:
775
+ """
776
+ The ID of the project in which the resource belongs.
777
+ If it is not provided, the provider project is used.
778
+ """
779
+ return pulumi.get(self, "project")
780
+
781
+ @_builtins.property
782
+ @pulumi.getter(name="pulumiLabels")
783
+ def pulumi_labels(self) -> pulumi.Output[Mapping[str, _builtins.str]]:
784
+ """
785
+ The combination of labels configured directly on the resource
786
+ and default labels configured on the provider.
787
+ """
788
+ return pulumi.get(self, "pulumi_labels")
789
+
790
+ @_builtins.property
791
+ @pulumi.getter(name="saasId")
792
+ def saas_id(self) -> pulumi.Output[_builtins.str]:
793
+ """
794
+ The ID value for the new saas.
795
+ """
796
+ return pulumi.get(self, "saas_id")
797
+
798
+ @_builtins.property
799
+ @pulumi.getter
800
+ def uid(self) -> pulumi.Output[_builtins.str]:
801
+ """
802
+ The unique identifier of the resource. UID is unique in the time
803
+ and space for this resource within the scope of the service. It is
804
+ typically generated by the server on successful creation of a resource
805
+ and must not be changed. UID is used to uniquely identify resources
806
+ with resource name reuses. This should be a UUID4.
807
+ """
808
+ return pulumi.get(self, "uid")
809
+
810
+ @_builtins.property
811
+ @pulumi.getter(name="updateTime")
812
+ def update_time(self) -> pulumi.Output[_builtins.str]:
813
+ """
814
+ The timestamp when the resource was last updated. Any
815
+ change to the resource made by users must refresh this value.
816
+ Changes to a resource made by the service should refresh this value.
817
+ """
818
+ return pulumi.get(self, "update_time")
819
+