pulumi-gcp 8.41.0a1755723613__py3-none-any.whl → 8.41.0a1755891135__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 (314) hide show
  1. pulumi_gcp/__init__.py +8 -0
  2. pulumi_gcp/accesscontextmanager/access_policy_iam_binding.py +2 -0
  3. pulumi_gcp/accesscontextmanager/access_policy_iam_member.py +2 -0
  4. pulumi_gcp/accesscontextmanager/access_policy_iam_policy.py +2 -0
  5. pulumi_gcp/apigateway/api_config_iam_binding.py +2 -0
  6. pulumi_gcp/apigateway/api_config_iam_member.py +2 -0
  7. pulumi_gcp/apigateway/api_config_iam_policy.py +2 -0
  8. pulumi_gcp/apigateway/api_iam_binding.py +2 -0
  9. pulumi_gcp/apigateway/api_iam_member.py +2 -0
  10. pulumi_gcp/apigateway/api_iam_policy.py +2 -0
  11. pulumi_gcp/apigateway/gateway_iam_binding.py +2 -0
  12. pulumi_gcp/apigateway/gateway_iam_member.py +2 -0
  13. pulumi_gcp/apigateway/gateway_iam_policy.py +2 -0
  14. pulumi_gcp/apigee/environment_iam_binding.py +2 -0
  15. pulumi_gcp/apigee/environment_iam_member.py +2 -0
  16. pulumi_gcp/apigee/environment_iam_policy.py +2 -0
  17. pulumi_gcp/artifactregistry/__init__.py +2 -0
  18. pulumi_gcp/artifactregistry/get_tag.py +187 -0
  19. pulumi_gcp/artifactregistry/get_tags.py +200 -0
  20. pulumi_gcp/artifactregistry/outputs.py +30 -0
  21. pulumi_gcp/artifactregistry/repository_iam_binding.py +2 -0
  22. pulumi_gcp/artifactregistry/repository_iam_member.py +2 -0
  23. pulumi_gcp/artifactregistry/repository_iam_policy.py +2 -0
  24. pulumi_gcp/beyondcorp/application_iam_binding.py +8 -0
  25. pulumi_gcp/beyondcorp/application_iam_member.py +8 -0
  26. pulumi_gcp/beyondcorp/application_iam_policy.py +8 -0
  27. pulumi_gcp/beyondcorp/get_application_iam_policy.py +4 -0
  28. pulumi_gcp/beyondcorp/security_gateway_application_iam_binding.py +2 -0
  29. pulumi_gcp/beyondcorp/security_gateway_application_iam_member.py +2 -0
  30. pulumi_gcp/beyondcorp/security_gateway_application_iam_policy.py +2 -0
  31. pulumi_gcp/beyondcorp/security_gateway_iam_binding.py +2 -0
  32. pulumi_gcp/beyondcorp/security_gateway_iam_member.py +2 -0
  33. pulumi_gcp/beyondcorp/security_gateway_iam_policy.py +2 -0
  34. pulumi_gcp/bigquery/connection_iam_binding.py +2 -0
  35. pulumi_gcp/bigquery/connection_iam_member.py +2 -0
  36. pulumi_gcp/bigquery/connection_iam_policy.py +2 -0
  37. pulumi_gcp/bigquery/data_transfer_config.py +2 -0
  38. pulumi_gcp/bigquery/iam_binding.py +2 -0
  39. pulumi_gcp/bigquery/iam_member.py +2 -0
  40. pulumi_gcp/bigquery/iam_policy.py +2 -0
  41. pulumi_gcp/bigquery/reservation.py +535 -0
  42. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_binding.py +2 -0
  43. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_member.py +2 -0
  44. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_policy.py +2 -0
  45. pulumi_gcp/bigqueryanalyticshub/listing_iam_binding.py +2 -0
  46. pulumi_gcp/bigqueryanalyticshub/listing_iam_member.py +2 -0
  47. pulumi_gcp/bigqueryanalyticshub/listing_iam_policy.py +2 -0
  48. pulumi_gcp/bigquerydatapolicy/data_policy_iam_binding.py +2 -0
  49. pulumi_gcp/bigquerydatapolicy/data_policy_iam_member.py +2 -0
  50. pulumi_gcp/bigquerydatapolicy/data_policy_iam_policy.py +2 -0
  51. pulumi_gcp/binaryauthorization/attestor_iam_binding.py +2 -0
  52. pulumi_gcp/binaryauthorization/attestor_iam_member.py +2 -0
  53. pulumi_gcp/binaryauthorization/attestor_iam_policy.py +2 -0
  54. pulumi_gcp/certificateauthority/ca_pool_iam_binding.py +2 -0
  55. pulumi_gcp/certificateauthority/ca_pool_iam_member.py +2 -0
  56. pulumi_gcp/certificateauthority/ca_pool_iam_policy.py +2 -0
  57. pulumi_gcp/certificateauthority/certificate_template_iam_binding.py +2 -0
  58. pulumi_gcp/certificateauthority/certificate_template_iam_member.py +2 -0
  59. pulumi_gcp/certificateauthority/certificate_template_iam_policy.py +2 -0
  60. pulumi_gcp/cloudbuildv2/connection_iam_binding.py +2 -0
  61. pulumi_gcp/cloudbuildv2/connection_iam_member.py +2 -0
  62. pulumi_gcp/cloudbuildv2/connection_iam_policy.py +2 -0
  63. pulumi_gcp/clouddeploy/_inputs.py +48 -48
  64. pulumi_gcp/clouddeploy/deploy_policy.py +54 -74
  65. pulumi_gcp/clouddeploy/outputs.py +32 -32
  66. pulumi_gcp/cloudfunctions/function_iam_binding.py +2 -0
  67. pulumi_gcp/cloudfunctions/function_iam_member.py +2 -0
  68. pulumi_gcp/cloudfunctions/function_iam_policy.py +2 -0
  69. pulumi_gcp/cloudfunctionsv2/function_iam_binding.py +2 -0
  70. pulumi_gcp/cloudfunctionsv2/function_iam_member.py +2 -0
  71. pulumi_gcp/cloudfunctionsv2/function_iam_policy.py +2 -0
  72. pulumi_gcp/cloudrun/iam_binding.py +2 -0
  73. pulumi_gcp/cloudrun/iam_member.py +2 -0
  74. pulumi_gcp/cloudrun/iam_policy.py +2 -0
  75. pulumi_gcp/cloudrunv2/job_iam_binding.py +2 -0
  76. pulumi_gcp/cloudrunv2/job_iam_member.py +2 -0
  77. pulumi_gcp/cloudrunv2/job_iam_policy.py +2 -0
  78. pulumi_gcp/cloudrunv2/service_iam_binding.py +2 -0
  79. pulumi_gcp/cloudrunv2/service_iam_member.py +2 -0
  80. pulumi_gcp/cloudrunv2/service_iam_policy.py +2 -0
  81. pulumi_gcp/cloudrunv2/worker_pool_iam_binding.py +2 -0
  82. pulumi_gcp/cloudrunv2/worker_pool_iam_member.py +2 -0
  83. pulumi_gcp/cloudrunv2/worker_pool_iam_policy.py +2 -0
  84. pulumi_gcp/cloudtasks/queue_iam_binding.py +2 -0
  85. pulumi_gcp/cloudtasks/queue_iam_member.py +2 -0
  86. pulumi_gcp/cloudtasks/queue_iam_policy.py +2 -0
  87. pulumi_gcp/colab/runtime_template_iam_binding.py +2 -0
  88. pulumi_gcp/colab/runtime_template_iam_member.py +2 -0
  89. pulumi_gcp/colab/runtime_template_iam_policy.py +2 -0
  90. pulumi_gcp/compute/disk_iam_binding.py +2 -0
  91. pulumi_gcp/compute/disk_iam_member.py +2 -0
  92. pulumi_gcp/compute/disk_iam_policy.py +2 -0
  93. pulumi_gcp/compute/image_iam_binding.py +2 -0
  94. pulumi_gcp/compute/image_iam_member.py +2 -0
  95. pulumi_gcp/compute/image_iam_policy.py +2 -0
  96. pulumi_gcp/compute/instance_iam_binding.py +2 -0
  97. pulumi_gcp/compute/instance_iam_member.py +2 -0
  98. pulumi_gcp/compute/instance_iam_policy.py +2 -0
  99. pulumi_gcp/compute/instance_template_iam_binding.py +2 -0
  100. pulumi_gcp/compute/instance_template_iam_member.py +2 -0
  101. pulumi_gcp/compute/instance_template_iam_policy.py +2 -0
  102. pulumi_gcp/compute/instant_snapshot_iam_binding.py +2 -0
  103. pulumi_gcp/compute/instant_snapshot_iam_member.py +2 -0
  104. pulumi_gcp/compute/instant_snapshot_iam_policy.py +2 -0
  105. pulumi_gcp/compute/machine_image_iam_binding.py +2 -0
  106. pulumi_gcp/compute/machine_image_iam_member.py +2 -0
  107. pulumi_gcp/compute/machine_image_iam_policy.py +2 -0
  108. pulumi_gcp/compute/region_disk_iam_binding.py +2 -0
  109. pulumi_gcp/compute/region_disk_iam_member.py +2 -0
  110. pulumi_gcp/compute/region_disk_iam_policy.py +2 -0
  111. pulumi_gcp/compute/snapshot_iam_binding.py +2 -0
  112. pulumi_gcp/compute/snapshot_iam_member.py +2 -0
  113. pulumi_gcp/compute/snapshot_iam_policy.py +2 -0
  114. pulumi_gcp/compute/storage_pool_iam_binding.py +2 -0
  115. pulumi_gcp/compute/storage_pool_iam_member.py +2 -0
  116. pulumi_gcp/compute/storage_pool_iam_policy.py +2 -0
  117. pulumi_gcp/compute/subnetwork_iam_binding.py +2 -0
  118. pulumi_gcp/compute/subnetwork_iam_member.py +2 -0
  119. pulumi_gcp/compute/subnetwork_iam_policy.py +2 -0
  120. pulumi_gcp/config/__init__.pyi +0 -4
  121. pulumi_gcp/config/vars.py +0 -8
  122. pulumi_gcp/container/_inputs.py +1728 -42
  123. pulumi_gcp/container/outputs.py +1935 -16
  124. pulumi_gcp/containeranalysis/note_iam_binding.py +2 -0
  125. pulumi_gcp/containeranalysis/note_iam_member.py +2 -0
  126. pulumi_gcp/containeranalysis/note_iam_policy.py +2 -0
  127. pulumi_gcp/datacatalog/entry_group_iam_binding.py +2 -0
  128. pulumi_gcp/datacatalog/entry_group_iam_member.py +2 -0
  129. pulumi_gcp/datacatalog/entry_group_iam_policy.py +2 -0
  130. pulumi_gcp/datacatalog/policy_tag_iam_binding.py +2 -0
  131. pulumi_gcp/datacatalog/policy_tag_iam_member.py +2 -0
  132. pulumi_gcp/datacatalog/policy_tag_iam_policy.py +2 -0
  133. pulumi_gcp/datacatalog/tag_template_iam_binding.py +2 -0
  134. pulumi_gcp/datacatalog/tag_template_iam_member.py +2 -0
  135. pulumi_gcp/datacatalog/tag_template_iam_policy.py +2 -0
  136. pulumi_gcp/datacatalog/taxonomy_iam_binding.py +2 -0
  137. pulumi_gcp/datacatalog/taxonomy_iam_member.py +2 -0
  138. pulumi_gcp/datacatalog/taxonomy_iam_policy.py +2 -0
  139. pulumi_gcp/datafusion/instance.py +18 -4
  140. pulumi_gcp/dataplex/aspect_type_iam_binding.py +2 -0
  141. pulumi_gcp/dataplex/aspect_type_iam_member.py +2 -0
  142. pulumi_gcp/dataplex/aspect_type_iam_policy.py +2 -0
  143. pulumi_gcp/dataplex/asset_iam_binding.py +2 -0
  144. pulumi_gcp/dataplex/asset_iam_member.py +2 -0
  145. pulumi_gcp/dataplex/asset_iam_policy.py +2 -0
  146. pulumi_gcp/dataplex/datascan_iam_binding.py +2 -0
  147. pulumi_gcp/dataplex/datascan_iam_member.py +2 -0
  148. pulumi_gcp/dataplex/datascan_iam_policy.py +2 -0
  149. pulumi_gcp/dataplex/entry_group_iam_binding.py +2 -0
  150. pulumi_gcp/dataplex/entry_group_iam_member.py +2 -0
  151. pulumi_gcp/dataplex/entry_group_iam_policy.py +2 -0
  152. pulumi_gcp/dataplex/entry_type_iam_binding.py +2 -0
  153. pulumi_gcp/dataplex/entry_type_iam_member.py +2 -0
  154. pulumi_gcp/dataplex/entry_type_iam_policy.py +2 -0
  155. pulumi_gcp/dataplex/glossary_iam_binding.py +2 -0
  156. pulumi_gcp/dataplex/glossary_iam_member.py +2 -0
  157. pulumi_gcp/dataplex/glossary_iam_policy.py +2 -0
  158. pulumi_gcp/dataplex/lake_iam_binding.py +2 -0
  159. pulumi_gcp/dataplex/lake_iam_member.py +2 -0
  160. pulumi_gcp/dataplex/lake_iam_policy.py +2 -0
  161. pulumi_gcp/dataplex/task_iam_binding.py +2 -0
  162. pulumi_gcp/dataplex/task_iam_member.py +2 -0
  163. pulumi_gcp/dataplex/task_iam_policy.py +2 -0
  164. pulumi_gcp/dataplex/zone_iam_binding.py +2 -0
  165. pulumi_gcp/dataplex/zone_iam_member.py +2 -0
  166. pulumi_gcp/dataplex/zone_iam_policy.py +2 -0
  167. pulumi_gcp/dataproc/autoscaling_policy_iam_binding.py +2 -0
  168. pulumi_gcp/dataproc/autoscaling_policy_iam_member.py +2 -0
  169. pulumi_gcp/dataproc/autoscaling_policy_iam_policy.py +2 -0
  170. pulumi_gcp/dataproc/metastore_database_iam_binding.py +2 -0
  171. pulumi_gcp/dataproc/metastore_database_iam_member.py +2 -0
  172. pulumi_gcp/dataproc/metastore_database_iam_policy.py +2 -0
  173. pulumi_gcp/dataproc/metastore_federation_iam_binding.py +2 -0
  174. pulumi_gcp/dataproc/metastore_federation_iam_member.py +2 -0
  175. pulumi_gcp/dataproc/metastore_federation_iam_policy.py +2 -0
  176. pulumi_gcp/dataproc/metastore_service_iam_binding.py +2 -0
  177. pulumi_gcp/dataproc/metastore_service_iam_member.py +2 -0
  178. pulumi_gcp/dataproc/metastore_service_iam_policy.py +2 -0
  179. pulumi_gcp/dataproc/metastore_table_iam_binding.py +2 -0
  180. pulumi_gcp/dataproc/metastore_table_iam_member.py +2 -0
  181. pulumi_gcp/dataproc/metastore_table_iam_policy.py +2 -0
  182. pulumi_gcp/diagflow/__init__.py +1 -0
  183. pulumi_gcp/diagflow/_inputs.py +2661 -0
  184. pulumi_gcp/diagflow/conversation_profile.py +959 -0
  185. pulumi_gcp/diagflow/outputs.py +2213 -0
  186. pulumi_gcp/dns/dns_managed_zone_iam_binding.py +2 -0
  187. pulumi_gcp/dns/dns_managed_zone_iam_member.py +2 -0
  188. pulumi_gcp/dns/dns_managed_zone_iam_policy.py +2 -0
  189. pulumi_gcp/endpoints/service_iam_binding.py +2 -0
  190. pulumi_gcp/endpoints/service_iam_member.py +2 -0
  191. pulumi_gcp/endpoints/service_iam_policy.py +2 -0
  192. pulumi_gcp/gemini/repository_group_iam_binding.py +2 -0
  193. pulumi_gcp/gemini/repository_group_iam_member.py +2 -0
  194. pulumi_gcp/gemini/repository_group_iam_policy.py +2 -0
  195. pulumi_gcp/gkebackup/backup_plan_iam_binding.py +2 -0
  196. pulumi_gcp/gkebackup/backup_plan_iam_member.py +2 -0
  197. pulumi_gcp/gkebackup/backup_plan_iam_policy.py +2 -0
  198. pulumi_gcp/gkebackup/restore_plan_iam_binding.py +2 -0
  199. pulumi_gcp/gkebackup/restore_plan_iam_member.py +2 -0
  200. pulumi_gcp/gkebackup/restore_plan_iam_policy.py +2 -0
  201. pulumi_gcp/gkehub/feature_iam_binding.py +2 -0
  202. pulumi_gcp/gkehub/feature_iam_member.py +2 -0
  203. pulumi_gcp/gkehub/feature_iam_policy.py +2 -0
  204. pulumi_gcp/gkehub/membership_iam_binding.py +2 -0
  205. pulumi_gcp/gkehub/membership_iam_member.py +2 -0
  206. pulumi_gcp/gkehub/membership_iam_policy.py +2 -0
  207. pulumi_gcp/gkehub/scope_iam_binding.py +2 -0
  208. pulumi_gcp/gkehub/scope_iam_member.py +2 -0
  209. pulumi_gcp/gkehub/scope_iam_policy.py +2 -0
  210. pulumi_gcp/healthcare/consent_store_iam_binding.py +2 -0
  211. pulumi_gcp/healthcare/consent_store_iam_member.py +2 -0
  212. pulumi_gcp/healthcare/consent_store_iam_policy.py +2 -0
  213. pulumi_gcp/iam/workforce_pool_iam_binding.py +2 -0
  214. pulumi_gcp/iam/workforce_pool_iam_member.py +2 -0
  215. pulumi_gcp/iam/workforce_pool_iam_policy.py +2 -0
  216. pulumi_gcp/iap/app_engine_service_iam_binding.py +2 -0
  217. pulumi_gcp/iap/app_engine_service_iam_member.py +2 -0
  218. pulumi_gcp/iap/app_engine_service_iam_policy.py +2 -0
  219. pulumi_gcp/iap/app_engine_version_iam_binding.py +2 -0
  220. pulumi_gcp/iap/app_engine_version_iam_member.py +2 -0
  221. pulumi_gcp/iap/app_engine_version_iam_policy.py +2 -0
  222. pulumi_gcp/iap/tunnel_dest_group_iam_binding.py +2 -0
  223. pulumi_gcp/iap/tunnel_dest_group_iam_member.py +2 -0
  224. pulumi_gcp/iap/tunnel_dest_group_iam_policy.py +2 -0
  225. pulumi_gcp/iap/tunnel_iam_binding.py +2 -0
  226. pulumi_gcp/iap/tunnel_iam_member.py +2 -0
  227. pulumi_gcp/iap/tunnel_iam_policy.py +2 -0
  228. pulumi_gcp/iap/tunnel_instance_iam_binding.py +2 -0
  229. pulumi_gcp/iap/tunnel_instance_iam_member.py +2 -0
  230. pulumi_gcp/iap/tunnel_instance_iam_policy.py +2 -0
  231. pulumi_gcp/iap/web_backend_service_iam_binding.py +2 -0
  232. pulumi_gcp/iap/web_backend_service_iam_member.py +2 -0
  233. pulumi_gcp/iap/web_backend_service_iam_policy.py +2 -0
  234. pulumi_gcp/iap/web_cloud_run_service_iam_binding.py +2 -0
  235. pulumi_gcp/iap/web_cloud_run_service_iam_member.py +2 -0
  236. pulumi_gcp/iap/web_cloud_run_service_iam_policy.py +2 -0
  237. pulumi_gcp/iap/web_iam_binding.py +2 -0
  238. pulumi_gcp/iap/web_iam_member.py +2 -0
  239. pulumi_gcp/iap/web_iam_policy.py +2 -0
  240. pulumi_gcp/iap/web_region_backend_service_iam_binding.py +2 -0
  241. pulumi_gcp/iap/web_region_backend_service_iam_member.py +2 -0
  242. pulumi_gcp/iap/web_region_backend_service_iam_policy.py +2 -0
  243. pulumi_gcp/iap/web_type_app_enging_iam_binding.py +2 -0
  244. pulumi_gcp/iap/web_type_app_enging_iam_member.py +2 -0
  245. pulumi_gcp/iap/web_type_app_enging_iam_policy.py +2 -0
  246. pulumi_gcp/iap/web_type_compute_iam_binding.py +2 -0
  247. pulumi_gcp/iap/web_type_compute_iam_member.py +2 -0
  248. pulumi_gcp/iap/web_type_compute_iam_policy.py +2 -0
  249. pulumi_gcp/kms/crypto_key.py +7 -0
  250. pulumi_gcp/kms/ekm_connection_iam_binding.py +2 -0
  251. pulumi_gcp/kms/ekm_connection_iam_member.py +2 -0
  252. pulumi_gcp/kms/ekm_connection_iam_policy.py +2 -0
  253. pulumi_gcp/kms/outputs.py +2 -0
  254. pulumi_gcp/logging/log_view_iam_binding.py +2 -0
  255. pulumi_gcp/logging/log_view_iam_member.py +2 -0
  256. pulumi_gcp/logging/log_view_iam_policy.py +2 -0
  257. pulumi_gcp/monitoring/_inputs.py +3 -3
  258. pulumi_gcp/monitoring/outputs.py +2 -2
  259. pulumi_gcp/networkmanagement/vpc_flow_logs_config.py +213 -168
  260. pulumi_gcp/notebooks/instance.py +18 -18
  261. pulumi_gcp/notebooks/instance_iam_binding.py +2 -0
  262. pulumi_gcp/notebooks/instance_iam_member.py +2 -0
  263. pulumi_gcp/notebooks/instance_iam_policy.py +2 -0
  264. pulumi_gcp/notebooks/runtime_iam_binding.py +2 -0
  265. pulumi_gcp/notebooks/runtime_iam_member.py +2 -0
  266. pulumi_gcp/notebooks/runtime_iam_policy.py +2 -0
  267. pulumi_gcp/organizations/folder.py +56 -0
  268. pulumi_gcp/organizations/get_folder.py +29 -1
  269. pulumi_gcp/projects/api_key.py +88 -1
  270. pulumi_gcp/provider.py +0 -40
  271. pulumi_gcp/pubsub/schema_iam_binding.py +2 -0
  272. pulumi_gcp/pubsub/schema_iam_member.py +2 -0
  273. pulumi_gcp/pubsub/schema_iam_policy.py +2 -0
  274. pulumi_gcp/pubsub/topic_iam_binding.py +2 -0
  275. pulumi_gcp/pubsub/topic_iam_member.py +2 -0
  276. pulumi_gcp/pubsub/topic_iam_policy.py +2 -0
  277. pulumi_gcp/pulumi-plugin.json +1 -1
  278. pulumi_gcp/secretmanager/regional_secret_iam_binding.py +2 -0
  279. pulumi_gcp/secretmanager/regional_secret_iam_member.py +2 -0
  280. pulumi_gcp/secretmanager/regional_secret_iam_policy.py +2 -0
  281. pulumi_gcp/secretmanager/secret_iam_binding.py +2 -0
  282. pulumi_gcp/secretmanager/secret_iam_member.py +2 -0
  283. pulumi_gcp/secretmanager/secret_iam_policy.py +2 -0
  284. pulumi_gcp/secretmanager/secret_version.py +1 -48
  285. pulumi_gcp/securesourcemanager/repository_iam_binding.py +2 -0
  286. pulumi_gcp/securesourcemanager/repository_iam_member.py +2 -0
  287. pulumi_gcp/securesourcemanager/repository_iam_policy.py +2 -0
  288. pulumi_gcp/securitycenter/instance_iam_binding.py +18 -4
  289. pulumi_gcp/securitycenter/instance_iam_member.py +18 -4
  290. pulumi_gcp/securitycenter/instance_iam_policy.py +18 -4
  291. pulumi_gcp/securitycenter/v2_organization_source_iam_binding.py +2 -0
  292. pulumi_gcp/securitycenter/v2_organization_source_iam_member.py +2 -0
  293. pulumi_gcp/securitycenter/v2_organization_source_iam_policy.py +2 -0
  294. pulumi_gcp/servicedirectory/namespace_iam_binding.py +2 -0
  295. pulumi_gcp/servicedirectory/namespace_iam_member.py +2 -0
  296. pulumi_gcp/servicedirectory/namespace_iam_policy.py +2 -0
  297. pulumi_gcp/servicedirectory/service_iam_binding.py +2 -0
  298. pulumi_gcp/servicedirectory/service_iam_member.py +2 -0
  299. pulumi_gcp/servicedirectory/service_iam_policy.py +2 -0
  300. pulumi_gcp/sourcerepo/repository_iam_binding.py +2 -0
  301. pulumi_gcp/sourcerepo/repository_iam_member.py +2 -0
  302. pulumi_gcp/sourcerepo/repository_iam_policy.py +2 -0
  303. pulumi_gcp/tags/tag_key_iam_binding.py +2 -0
  304. pulumi_gcp/tags/tag_key_iam_member.py +2 -0
  305. pulumi_gcp/tags/tag_key_iam_policy.py +2 -0
  306. pulumi_gcp/tags/tag_value_iam_binding.py +2 -0
  307. pulumi_gcp/tags/tag_value_iam_member.py +2 -0
  308. pulumi_gcp/tags/tag_value_iam_policy.py +2 -0
  309. pulumi_gcp/tpu/get_tensorflow_versions.py +10 -0
  310. pulumi_gcp/vertex/ai_index.py +21 -7
  311. {pulumi_gcp-8.41.0a1755723613.dist-info → pulumi_gcp-8.41.0a1755891135.dist-info}/METADATA +1 -1
  312. {pulumi_gcp-8.41.0a1755723613.dist-info → pulumi_gcp-8.41.0a1755891135.dist-info}/RECORD +314 -311
  313. {pulumi_gcp-8.41.0a1755723613.dist-info → pulumi_gcp-8.41.0a1755891135.dist-info}/WHEEL +0 -0
  314. {pulumi_gcp-8.41.0a1755723613.dist-info → pulumi_gcp-8.41.0a1755891135.dist-info}/top_level.txt +0 -0
@@ -27,8 +27,10 @@ class ReservationArgs:
27
27
  edition: Optional[pulumi.Input[_builtins.str]] = None,
28
28
  ignore_idle_slots: Optional[pulumi.Input[_builtins.bool]] = None,
29
29
  location: Optional[pulumi.Input[_builtins.str]] = None,
30
+ max_slots: Optional[pulumi.Input[_builtins.int]] = None,
30
31
  name: Optional[pulumi.Input[_builtins.str]] = None,
31
32
  project: Optional[pulumi.Input[_builtins.str]] = None,
33
+ scaling_mode: Optional[pulumi.Input[_builtins.str]] = None,
32
34
  secondary_location: Optional[pulumi.Input[_builtins.str]] = None):
33
35
  """
34
36
  The set of arguments for constructing a Reservation resource.
@@ -43,9 +45,74 @@ class ReservationArgs:
43
45
  capacity specified above at most.
44
46
  :param pulumi.Input[_builtins.str] location: The geographic location where the transfer config should reside.
45
47
  Examples: US, EU, asia-northeast1. The default value is US.
48
+ :param pulumi.Input[_builtins.int] max_slots: The overall max slots for the reservation, covering slotCapacity (baseline), idle slots
49
+ (if ignoreIdleSlots is false) and scaled slots. If present, the reservation won't use
50
+ more than the specified number of slots, even if there is demand and supply (from idle
51
+ slots). NOTE: capping a reservation's idle slot usage is best effort and its usage may
52
+ exceed the maxSlots value. However, in terms of autoscale.current_slots (which accounts
53
+ for the additional added slots), it will never exceed the maxSlots - baseline.
54
+ This field must be set together with the scalingMode enum value, otherwise the request
55
+ will be rejected with error code google.rpc.Code.INVALID_ARGUMENT.
56
+ If the maxSlots and scalingMode are set, the autoscale or autoscale.max_slots field
57
+ must be unset. Otherwise the request will be rejected with error code
58
+ google.rpc.Code.INVALID_ARGUMENT. However, the autoscale field may still be in the
59
+ output. The autopscale.max_slots will always show as 0 and the autoscaler.current_slots
60
+ will represent the current slots from autoscaler excluding idle slots. For example,
61
+ if the maxSlots is 1000 and scalingMode is AUTOSCALE_ONLY, then in the output, the
62
+ autoscaler.max_slots will be 0 and the autoscaler.current_slots may be any value
63
+ between 0 and 1000.
64
+ If the maxSlots is 1000, scalingMode is ALL_SLOTS, the baseline is 100 and idle slots
65
+ usage is 200, then in the output, the autoscaler.max_slots will be 0 and the
66
+ autoscaler.current_slots will not be higher than 700.
67
+ If the maxSlots is 1000, scalingMode is IDLE_SLOTS_ONLY, then in the output, the
68
+ autoscaler field will be null.
69
+ If the maxSlots and scalingMode are set, then the ignoreIdleSlots field must be
70
+ aligned with the scalingMode enum value.(See details in ScalingMode comments).
71
+ Otherwise the request will be rejected with error code google.rpc.Code.INVALID_ARGUMENT.
72
+ Please note, the maxSlots is for user to manage the part of slots greater than the
73
+ baseline. Therefore, we don't allow users to set maxSlots smaller or equal to the
74
+ baseline as it will not be meaningful. If the field is present and
75
+ slotCapacity>=maxSlots, requests will be rejected with error code
76
+ google.rpc.Code.INVALID_ARGUMENT.
77
+ Please note that if maxSlots is set to 0, we will treat it as unset. Customers can set
78
+ maxSlots to 0 and set scalingMode to SCALING_MODE_UNSPECIFIED to disable the maxSlots
79
+ feature.
46
80
  :param pulumi.Input[_builtins.str] name: The name of the reservation. This field must only contain alphanumeric characters or dash.
47
81
  :param pulumi.Input[_builtins.str] project: The ID of the project in which the resource belongs.
48
82
  If it is not provided, the provider project is used.
83
+ :param pulumi.Input[_builtins.str] scaling_mode: The scaling mode for the reservation. If the field is present but maxSlots is not present,
84
+ requests will be rejected with error code google.rpc.Code.INVALID_ARGUMENT.
85
+ Enum values:
86
+ `SCALING_MODE_UNSPECIFIED`: Default value of ScalingMode.
87
+ `AUTOSCALE_ONLY`: The reservation will scale up only using slots from autoscaling. It will
88
+ not use any idle slots even if there may be some available. The upper limit that autoscaling
89
+ can scale up to will be maxSlots - baseline. For example, if maxSlots is 1000, baseline is 200
90
+ and customer sets ScalingMode to AUTOSCALE_ONLY, then autoscalerg will scale up to 800 slots
91
+ and no idle slots will be used. Please note, in this mode, the ignoreIdleSlots field must be
92
+ set to true. Otherwise the request will be rejected with error code
93
+ google.rpc.Code.INVALID_ARGUMENT.
94
+ `IDLE_SLOTS_ONLY`: The reservation will scale up using only idle slots contributed by other
95
+ reservations or from unassigned commitments. If no idle slots are available it will not scale
96
+ up further. If the idle slots which it is using are reclaimed by the contributing reservation(s)
97
+ it may be forced to scale down. The max idle slots the reservation can be maxSlots - baseline
98
+ capacity. For example, if maxSlots is 1000, baseline is 200 and customer sets ScalingMode to
99
+ IDLE_SLOTS_ONLY, 1. if there are 1000 idle slots available in other reservations, the
100
+ reservation will scale up to 1000 slots with 200 baseline and 800 idle slots. 2. if there are
101
+ 500 idle slots available in other reservations, the reservation will scale up to 700 slots with
102
+ 200 baseline and 300 idle slots. Please note, in this mode, the reservation might not be able to
103
+ scale up to maxSlots. Please note, in this mode, the ignoreIdleSlots field must be set to false.
104
+ Otherwise the request will be rejected with error code google.rpc.Code.INVALID_ARGUMENT
105
+ `ALL_SLOTS`: The reservation will scale up using all slots available to it. It will use idle slots
106
+ contributed by other reservations or from unassigned commitments first. If no idle slots are
107
+ available it will scale up using autoscaling. For example, if maxSlots is 1000, baseline is 200
108
+ and customer sets ScalingMode to ALL_SLOTS, 1. if there are 800 idle slots available in other
109
+ reservations, the reservation will scale up to 1000 slots with 200 baseline and 800 idle slots. 2.
110
+ if there are 500 idle slots available in other reservations, the reservation will scale up to 1000
111
+ slots with 200 baseline, 500 idle slots and 300 autoscaling slots. 3. if there are no idle slots
112
+ available in other reservations, it will scale up to 1000 slots with 200 baseline and 800
113
+ autoscaling slots. Please note, in this mode, the ignoreIdleSlots field must be set to false.
114
+ Otherwise the request will be rejected with error code google.rpc.Code.INVALID_ARGUMENT.
115
+ Possible values are: `SCALING_MODE_UNSPECIFIED`, `AUTOSCALE_ONLY`, `IDLE_SLOTS_ONLY`, `ALL_SLOTS`.
49
116
  :param pulumi.Input[_builtins.str] secondary_location: The current location of the reservation's secondary replica. This field is only set for
50
117
  reservations using the managed disaster recovery feature. Users can set this in create
51
118
  reservation calls to create a failover reservation or in update reservation calls to convert
@@ -62,10 +129,14 @@ class ReservationArgs:
62
129
  pulumi.set(__self__, "ignore_idle_slots", ignore_idle_slots)
63
130
  if location is not None:
64
131
  pulumi.set(__self__, "location", location)
132
+ if max_slots is not None:
133
+ pulumi.set(__self__, "max_slots", max_slots)
65
134
  if name is not None:
66
135
  pulumi.set(__self__, "name", name)
67
136
  if project is not None:
68
137
  pulumi.set(__self__, "project", project)
138
+ if scaling_mode is not None:
139
+ pulumi.set(__self__, "scaling_mode", scaling_mode)
69
140
  if secondary_location is not None:
70
141
  pulumi.set(__self__, "secondary_location", secondary_location)
71
142
 
@@ -146,6 +217,49 @@ class ReservationArgs:
146
217
  def location(self, value: Optional[pulumi.Input[_builtins.str]]):
147
218
  pulumi.set(self, "location", value)
148
219
 
220
+ @_builtins.property
221
+ @pulumi.getter(name="maxSlots")
222
+ def max_slots(self) -> Optional[pulumi.Input[_builtins.int]]:
223
+ """
224
+ The overall max slots for the reservation, covering slotCapacity (baseline), idle slots
225
+ (if ignoreIdleSlots is false) and scaled slots. If present, the reservation won't use
226
+ more than the specified number of slots, even if there is demand and supply (from idle
227
+ slots). NOTE: capping a reservation's idle slot usage is best effort and its usage may
228
+ exceed the maxSlots value. However, in terms of autoscale.current_slots (which accounts
229
+ for the additional added slots), it will never exceed the maxSlots - baseline.
230
+ This field must be set together with the scalingMode enum value, otherwise the request
231
+ will be rejected with error code google.rpc.Code.INVALID_ARGUMENT.
232
+ If the maxSlots and scalingMode are set, the autoscale or autoscale.max_slots field
233
+ must be unset. Otherwise the request will be rejected with error code
234
+ google.rpc.Code.INVALID_ARGUMENT. However, the autoscale field may still be in the
235
+ output. The autopscale.max_slots will always show as 0 and the autoscaler.current_slots
236
+ will represent the current slots from autoscaler excluding idle slots. For example,
237
+ if the maxSlots is 1000 and scalingMode is AUTOSCALE_ONLY, then in the output, the
238
+ autoscaler.max_slots will be 0 and the autoscaler.current_slots may be any value
239
+ between 0 and 1000.
240
+ If the maxSlots is 1000, scalingMode is ALL_SLOTS, the baseline is 100 and idle slots
241
+ usage is 200, then in the output, the autoscaler.max_slots will be 0 and the
242
+ autoscaler.current_slots will not be higher than 700.
243
+ If the maxSlots is 1000, scalingMode is IDLE_SLOTS_ONLY, then in the output, the
244
+ autoscaler field will be null.
245
+ If the maxSlots and scalingMode are set, then the ignoreIdleSlots field must be
246
+ aligned with the scalingMode enum value.(See details in ScalingMode comments).
247
+ Otherwise the request will be rejected with error code google.rpc.Code.INVALID_ARGUMENT.
248
+ Please note, the maxSlots is for user to manage the part of slots greater than the
249
+ baseline. Therefore, we don't allow users to set maxSlots smaller or equal to the
250
+ baseline as it will not be meaningful. If the field is present and
251
+ slotCapacity>=maxSlots, requests will be rejected with error code
252
+ google.rpc.Code.INVALID_ARGUMENT.
253
+ Please note that if maxSlots is set to 0, we will treat it as unset. Customers can set
254
+ maxSlots to 0 and set scalingMode to SCALING_MODE_UNSPECIFIED to disable the maxSlots
255
+ feature.
256
+ """
257
+ return pulumi.get(self, "max_slots")
258
+
259
+ @max_slots.setter
260
+ def max_slots(self, value: Optional[pulumi.Input[_builtins.int]]):
261
+ pulumi.set(self, "max_slots", value)
262
+
149
263
  @_builtins.property
150
264
  @pulumi.getter
151
265
  def name(self) -> Optional[pulumi.Input[_builtins.str]]:
@@ -171,6 +285,50 @@ class ReservationArgs:
171
285
  def project(self, value: Optional[pulumi.Input[_builtins.str]]):
172
286
  pulumi.set(self, "project", value)
173
287
 
288
+ @_builtins.property
289
+ @pulumi.getter(name="scalingMode")
290
+ def scaling_mode(self) -> Optional[pulumi.Input[_builtins.str]]:
291
+ """
292
+ The scaling mode for the reservation. If the field is present but maxSlots is not present,
293
+ requests will be rejected with error code google.rpc.Code.INVALID_ARGUMENT.
294
+ Enum values:
295
+ `SCALING_MODE_UNSPECIFIED`: Default value of ScalingMode.
296
+ `AUTOSCALE_ONLY`: The reservation will scale up only using slots from autoscaling. It will
297
+ not use any idle slots even if there may be some available. The upper limit that autoscaling
298
+ can scale up to will be maxSlots - baseline. For example, if maxSlots is 1000, baseline is 200
299
+ and customer sets ScalingMode to AUTOSCALE_ONLY, then autoscalerg will scale up to 800 slots
300
+ and no idle slots will be used. Please note, in this mode, the ignoreIdleSlots field must be
301
+ set to true. Otherwise the request will be rejected with error code
302
+ google.rpc.Code.INVALID_ARGUMENT.
303
+ `IDLE_SLOTS_ONLY`: The reservation will scale up using only idle slots contributed by other
304
+ reservations or from unassigned commitments. If no idle slots are available it will not scale
305
+ up further. If the idle slots which it is using are reclaimed by the contributing reservation(s)
306
+ it may be forced to scale down. The max idle slots the reservation can be maxSlots - baseline
307
+ capacity. For example, if maxSlots is 1000, baseline is 200 and customer sets ScalingMode to
308
+ IDLE_SLOTS_ONLY, 1. if there are 1000 idle slots available in other reservations, the
309
+ reservation will scale up to 1000 slots with 200 baseline and 800 idle slots. 2. if there are
310
+ 500 idle slots available in other reservations, the reservation will scale up to 700 slots with
311
+ 200 baseline and 300 idle slots. Please note, in this mode, the reservation might not be able to
312
+ scale up to maxSlots. Please note, in this mode, the ignoreIdleSlots field must be set to false.
313
+ Otherwise the request will be rejected with error code google.rpc.Code.INVALID_ARGUMENT
314
+ `ALL_SLOTS`: The reservation will scale up using all slots available to it. It will use idle slots
315
+ contributed by other reservations or from unassigned commitments first. If no idle slots are
316
+ available it will scale up using autoscaling. For example, if maxSlots is 1000, baseline is 200
317
+ and customer sets ScalingMode to ALL_SLOTS, 1. if there are 800 idle slots available in other
318
+ reservations, the reservation will scale up to 1000 slots with 200 baseline and 800 idle slots. 2.
319
+ if there are 500 idle slots available in other reservations, the reservation will scale up to 1000
320
+ slots with 200 baseline, 500 idle slots and 300 autoscaling slots. 3. if there are no idle slots
321
+ available in other reservations, it will scale up to 1000 slots with 200 baseline and 800
322
+ autoscaling slots. Please note, in this mode, the ignoreIdleSlots field must be set to false.
323
+ Otherwise the request will be rejected with error code google.rpc.Code.INVALID_ARGUMENT.
324
+ Possible values are: `SCALING_MODE_UNSPECIFIED`, `AUTOSCALE_ONLY`, `IDLE_SLOTS_ONLY`, `ALL_SLOTS`.
325
+ """
326
+ return pulumi.get(self, "scaling_mode")
327
+
328
+ @scaling_mode.setter
329
+ def scaling_mode(self, value: Optional[pulumi.Input[_builtins.str]]):
330
+ pulumi.set(self, "scaling_mode", value)
331
+
174
332
  @_builtins.property
175
333
  @pulumi.getter(name="secondaryLocation")
176
334
  def secondary_location(self) -> Optional[pulumi.Input[_builtins.str]]:
@@ -195,11 +353,13 @@ class _ReservationState:
195
353
  edition: Optional[pulumi.Input[_builtins.str]] = None,
196
354
  ignore_idle_slots: Optional[pulumi.Input[_builtins.bool]] = None,
197
355
  location: Optional[pulumi.Input[_builtins.str]] = None,
356
+ max_slots: Optional[pulumi.Input[_builtins.int]] = None,
198
357
  name: Optional[pulumi.Input[_builtins.str]] = None,
199
358
  original_primary_location: Optional[pulumi.Input[_builtins.str]] = None,
200
359
  primary_location: Optional[pulumi.Input[_builtins.str]] = None,
201
360
  project: Optional[pulumi.Input[_builtins.str]] = None,
202
361
  replication_statuses: Optional[pulumi.Input[Sequence[pulumi.Input['ReservationReplicationStatusArgs']]]] = None,
362
+ scaling_mode: Optional[pulumi.Input[_builtins.str]] = None,
203
363
  secondary_location: Optional[pulumi.Input[_builtins.str]] = None,
204
364
  slot_capacity: Optional[pulumi.Input[_builtins.int]] = None):
205
365
  """
@@ -213,6 +373,38 @@ class _ReservationState:
213
373
  capacity specified above at most.
214
374
  :param pulumi.Input[_builtins.str] location: The geographic location where the transfer config should reside.
215
375
  Examples: US, EU, asia-northeast1. The default value is US.
376
+ :param pulumi.Input[_builtins.int] max_slots: The overall max slots for the reservation, covering slotCapacity (baseline), idle slots
377
+ (if ignoreIdleSlots is false) and scaled slots. If present, the reservation won't use
378
+ more than the specified number of slots, even if there is demand and supply (from idle
379
+ slots). NOTE: capping a reservation's idle slot usage is best effort and its usage may
380
+ exceed the maxSlots value. However, in terms of autoscale.current_slots (which accounts
381
+ for the additional added slots), it will never exceed the maxSlots - baseline.
382
+ This field must be set together with the scalingMode enum value, otherwise the request
383
+ will be rejected with error code google.rpc.Code.INVALID_ARGUMENT.
384
+ If the maxSlots and scalingMode are set, the autoscale or autoscale.max_slots field
385
+ must be unset. Otherwise the request will be rejected with error code
386
+ google.rpc.Code.INVALID_ARGUMENT. However, the autoscale field may still be in the
387
+ output. The autopscale.max_slots will always show as 0 and the autoscaler.current_slots
388
+ will represent the current slots from autoscaler excluding idle slots. For example,
389
+ if the maxSlots is 1000 and scalingMode is AUTOSCALE_ONLY, then in the output, the
390
+ autoscaler.max_slots will be 0 and the autoscaler.current_slots may be any value
391
+ between 0 and 1000.
392
+ If the maxSlots is 1000, scalingMode is ALL_SLOTS, the baseline is 100 and idle slots
393
+ usage is 200, then in the output, the autoscaler.max_slots will be 0 and the
394
+ autoscaler.current_slots will not be higher than 700.
395
+ If the maxSlots is 1000, scalingMode is IDLE_SLOTS_ONLY, then in the output, the
396
+ autoscaler field will be null.
397
+ If the maxSlots and scalingMode are set, then the ignoreIdleSlots field must be
398
+ aligned with the scalingMode enum value.(See details in ScalingMode comments).
399
+ Otherwise the request will be rejected with error code google.rpc.Code.INVALID_ARGUMENT.
400
+ Please note, the maxSlots is for user to manage the part of slots greater than the
401
+ baseline. Therefore, we don't allow users to set maxSlots smaller or equal to the
402
+ baseline as it will not be meaningful. If the field is present and
403
+ slotCapacity>=maxSlots, requests will be rejected with error code
404
+ google.rpc.Code.INVALID_ARGUMENT.
405
+ Please note that if maxSlots is set to 0, we will treat it as unset. Customers can set
406
+ maxSlots to 0 and set scalingMode to SCALING_MODE_UNSPECIFIED to disable the maxSlots
407
+ feature.
216
408
  :param pulumi.Input[_builtins.str] name: The name of the reservation. This field must only contain alphanumeric characters or dash.
217
409
  :param pulumi.Input[_builtins.str] original_primary_location: The location where the reservation was originally created. This is set only during the
218
410
  failover reservation's creation. All billing charges for the failover reservation will be
@@ -228,6 +420,39 @@ class _ReservationState:
228
420
  either not a DR reservation or the reservation is a DR secondary or that any replication
229
421
  operations on the reservation have succeeded.
230
422
  Structure is documented below.
423
+ :param pulumi.Input[_builtins.str] scaling_mode: The scaling mode for the reservation. If the field is present but maxSlots is not present,
424
+ requests will be rejected with error code google.rpc.Code.INVALID_ARGUMENT.
425
+ Enum values:
426
+ `SCALING_MODE_UNSPECIFIED`: Default value of ScalingMode.
427
+ `AUTOSCALE_ONLY`: The reservation will scale up only using slots from autoscaling. It will
428
+ not use any idle slots even if there may be some available. The upper limit that autoscaling
429
+ can scale up to will be maxSlots - baseline. For example, if maxSlots is 1000, baseline is 200
430
+ and customer sets ScalingMode to AUTOSCALE_ONLY, then autoscalerg will scale up to 800 slots
431
+ and no idle slots will be used. Please note, in this mode, the ignoreIdleSlots field must be
432
+ set to true. Otherwise the request will be rejected with error code
433
+ google.rpc.Code.INVALID_ARGUMENT.
434
+ `IDLE_SLOTS_ONLY`: The reservation will scale up using only idle slots contributed by other
435
+ reservations or from unassigned commitments. If no idle slots are available it will not scale
436
+ up further. If the idle slots which it is using are reclaimed by the contributing reservation(s)
437
+ it may be forced to scale down. The max idle slots the reservation can be maxSlots - baseline
438
+ capacity. For example, if maxSlots is 1000, baseline is 200 and customer sets ScalingMode to
439
+ IDLE_SLOTS_ONLY, 1. if there are 1000 idle slots available in other reservations, the
440
+ reservation will scale up to 1000 slots with 200 baseline and 800 idle slots. 2. if there are
441
+ 500 idle slots available in other reservations, the reservation will scale up to 700 slots with
442
+ 200 baseline and 300 idle slots. Please note, in this mode, the reservation might not be able to
443
+ scale up to maxSlots. Please note, in this mode, the ignoreIdleSlots field must be set to false.
444
+ Otherwise the request will be rejected with error code google.rpc.Code.INVALID_ARGUMENT
445
+ `ALL_SLOTS`: The reservation will scale up using all slots available to it. It will use idle slots
446
+ contributed by other reservations or from unassigned commitments first. If no idle slots are
447
+ available it will scale up using autoscaling. For example, if maxSlots is 1000, baseline is 200
448
+ and customer sets ScalingMode to ALL_SLOTS, 1. if there are 800 idle slots available in other
449
+ reservations, the reservation will scale up to 1000 slots with 200 baseline and 800 idle slots. 2.
450
+ if there are 500 idle slots available in other reservations, the reservation will scale up to 1000
451
+ slots with 200 baseline, 500 idle slots and 300 autoscaling slots. 3. if there are no idle slots
452
+ available in other reservations, it will scale up to 1000 slots with 200 baseline and 800
453
+ autoscaling slots. Please note, in this mode, the ignoreIdleSlots field must be set to false.
454
+ Otherwise the request will be rejected with error code google.rpc.Code.INVALID_ARGUMENT.
455
+ Possible values are: `SCALING_MODE_UNSPECIFIED`, `AUTOSCALE_ONLY`, `IDLE_SLOTS_ONLY`, `ALL_SLOTS`.
231
456
  :param pulumi.Input[_builtins.str] secondary_location: The current location of the reservation's secondary replica. This field is only set for
232
457
  reservations using the managed disaster recovery feature. Users can set this in create
233
458
  reservation calls to create a failover reservation or in update reservation calls to convert
@@ -245,6 +470,8 @@ class _ReservationState:
245
470
  pulumi.set(__self__, "ignore_idle_slots", ignore_idle_slots)
246
471
  if location is not None:
247
472
  pulumi.set(__self__, "location", location)
473
+ if max_slots is not None:
474
+ pulumi.set(__self__, "max_slots", max_slots)
248
475
  if name is not None:
249
476
  pulumi.set(__self__, "name", name)
250
477
  if original_primary_location is not None:
@@ -255,6 +482,8 @@ class _ReservationState:
255
482
  pulumi.set(__self__, "project", project)
256
483
  if replication_statuses is not None:
257
484
  pulumi.set(__self__, "replication_statuses", replication_statuses)
485
+ if scaling_mode is not None:
486
+ pulumi.set(__self__, "scaling_mode", scaling_mode)
258
487
  if secondary_location is not None:
259
488
  pulumi.set(__self__, "secondary_location", secondary_location)
260
489
  if slot_capacity is not None:
@@ -324,6 +553,49 @@ class _ReservationState:
324
553
  def location(self, value: Optional[pulumi.Input[_builtins.str]]):
325
554
  pulumi.set(self, "location", value)
326
555
 
556
+ @_builtins.property
557
+ @pulumi.getter(name="maxSlots")
558
+ def max_slots(self) -> Optional[pulumi.Input[_builtins.int]]:
559
+ """
560
+ The overall max slots for the reservation, covering slotCapacity (baseline), idle slots
561
+ (if ignoreIdleSlots is false) and scaled slots. If present, the reservation won't use
562
+ more than the specified number of slots, even if there is demand and supply (from idle
563
+ slots). NOTE: capping a reservation's idle slot usage is best effort and its usage may
564
+ exceed the maxSlots value. However, in terms of autoscale.current_slots (which accounts
565
+ for the additional added slots), it will never exceed the maxSlots - baseline.
566
+ This field must be set together with the scalingMode enum value, otherwise the request
567
+ will be rejected with error code google.rpc.Code.INVALID_ARGUMENT.
568
+ If the maxSlots and scalingMode are set, the autoscale or autoscale.max_slots field
569
+ must be unset. Otherwise the request will be rejected with error code
570
+ google.rpc.Code.INVALID_ARGUMENT. However, the autoscale field may still be in the
571
+ output. The autopscale.max_slots will always show as 0 and the autoscaler.current_slots
572
+ will represent the current slots from autoscaler excluding idle slots. For example,
573
+ if the maxSlots is 1000 and scalingMode is AUTOSCALE_ONLY, then in the output, the
574
+ autoscaler.max_slots will be 0 and the autoscaler.current_slots may be any value
575
+ between 0 and 1000.
576
+ If the maxSlots is 1000, scalingMode is ALL_SLOTS, the baseline is 100 and idle slots
577
+ usage is 200, then in the output, the autoscaler.max_slots will be 0 and the
578
+ autoscaler.current_slots will not be higher than 700.
579
+ If the maxSlots is 1000, scalingMode is IDLE_SLOTS_ONLY, then in the output, the
580
+ autoscaler field will be null.
581
+ If the maxSlots and scalingMode are set, then the ignoreIdleSlots field must be
582
+ aligned with the scalingMode enum value.(See details in ScalingMode comments).
583
+ Otherwise the request will be rejected with error code google.rpc.Code.INVALID_ARGUMENT.
584
+ Please note, the maxSlots is for user to manage the part of slots greater than the
585
+ baseline. Therefore, we don't allow users to set maxSlots smaller or equal to the
586
+ baseline as it will not be meaningful. If the field is present and
587
+ slotCapacity>=maxSlots, requests will be rejected with error code
588
+ google.rpc.Code.INVALID_ARGUMENT.
589
+ Please note that if maxSlots is set to 0, we will treat it as unset. Customers can set
590
+ maxSlots to 0 and set scalingMode to SCALING_MODE_UNSPECIFIED to disable the maxSlots
591
+ feature.
592
+ """
593
+ return pulumi.get(self, "max_slots")
594
+
595
+ @max_slots.setter
596
+ def max_slots(self, value: Optional[pulumi.Input[_builtins.int]]):
597
+ pulumi.set(self, "max_slots", value)
598
+
327
599
  @_builtins.property
328
600
  @pulumi.getter
329
601
  def name(self) -> Optional[pulumi.Input[_builtins.str]]:
@@ -394,6 +666,50 @@ class _ReservationState:
394
666
  def replication_statuses(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ReservationReplicationStatusArgs']]]]):
395
667
  pulumi.set(self, "replication_statuses", value)
396
668
 
669
+ @_builtins.property
670
+ @pulumi.getter(name="scalingMode")
671
+ def scaling_mode(self) -> Optional[pulumi.Input[_builtins.str]]:
672
+ """
673
+ The scaling mode for the reservation. If the field is present but maxSlots is not present,
674
+ requests will be rejected with error code google.rpc.Code.INVALID_ARGUMENT.
675
+ Enum values:
676
+ `SCALING_MODE_UNSPECIFIED`: Default value of ScalingMode.
677
+ `AUTOSCALE_ONLY`: The reservation will scale up only using slots from autoscaling. It will
678
+ not use any idle slots even if there may be some available. The upper limit that autoscaling
679
+ can scale up to will be maxSlots - baseline. For example, if maxSlots is 1000, baseline is 200
680
+ and customer sets ScalingMode to AUTOSCALE_ONLY, then autoscalerg will scale up to 800 slots
681
+ and no idle slots will be used. Please note, in this mode, the ignoreIdleSlots field must be
682
+ set to true. Otherwise the request will be rejected with error code
683
+ google.rpc.Code.INVALID_ARGUMENT.
684
+ `IDLE_SLOTS_ONLY`: The reservation will scale up using only idle slots contributed by other
685
+ reservations or from unassigned commitments. If no idle slots are available it will not scale
686
+ up further. If the idle slots which it is using are reclaimed by the contributing reservation(s)
687
+ it may be forced to scale down. The max idle slots the reservation can be maxSlots - baseline
688
+ capacity. For example, if maxSlots is 1000, baseline is 200 and customer sets ScalingMode to
689
+ IDLE_SLOTS_ONLY, 1. if there are 1000 idle slots available in other reservations, the
690
+ reservation will scale up to 1000 slots with 200 baseline and 800 idle slots. 2. if there are
691
+ 500 idle slots available in other reservations, the reservation will scale up to 700 slots with
692
+ 200 baseline and 300 idle slots. Please note, in this mode, the reservation might not be able to
693
+ scale up to maxSlots. Please note, in this mode, the ignoreIdleSlots field must be set to false.
694
+ Otherwise the request will be rejected with error code google.rpc.Code.INVALID_ARGUMENT
695
+ `ALL_SLOTS`: The reservation will scale up using all slots available to it. It will use idle slots
696
+ contributed by other reservations or from unassigned commitments first. If no idle slots are
697
+ available it will scale up using autoscaling. For example, if maxSlots is 1000, baseline is 200
698
+ and customer sets ScalingMode to ALL_SLOTS, 1. if there are 800 idle slots available in other
699
+ reservations, the reservation will scale up to 1000 slots with 200 baseline and 800 idle slots. 2.
700
+ if there are 500 idle slots available in other reservations, the reservation will scale up to 1000
701
+ slots with 200 baseline, 500 idle slots and 300 autoscaling slots. 3. if there are no idle slots
702
+ available in other reservations, it will scale up to 1000 slots with 200 baseline and 800
703
+ autoscaling slots. Please note, in this mode, the ignoreIdleSlots field must be set to false.
704
+ Otherwise the request will be rejected with error code google.rpc.Code.INVALID_ARGUMENT.
705
+ Possible values are: `SCALING_MODE_UNSPECIFIED`, `AUTOSCALE_ONLY`, `IDLE_SLOTS_ONLY`, `ALL_SLOTS`.
706
+ """
707
+ return pulumi.get(self, "scaling_mode")
708
+
709
+ @scaling_mode.setter
710
+ def scaling_mode(self, value: Optional[pulumi.Input[_builtins.str]]):
711
+ pulumi.set(self, "scaling_mode", value)
712
+
397
713
  @_builtins.property
398
714
  @pulumi.getter(name="secondaryLocation")
399
715
  def secondary_location(self) -> Optional[pulumi.Input[_builtins.str]]:
@@ -434,8 +750,10 @@ class Reservation(pulumi.CustomResource):
434
750
  edition: Optional[pulumi.Input[_builtins.str]] = None,
435
751
  ignore_idle_slots: Optional[pulumi.Input[_builtins.bool]] = None,
436
752
  location: Optional[pulumi.Input[_builtins.str]] = None,
753
+ max_slots: Optional[pulumi.Input[_builtins.int]] = None,
437
754
  name: Optional[pulumi.Input[_builtins.str]] = None,
438
755
  project: Optional[pulumi.Input[_builtins.str]] = None,
756
+ scaling_mode: Optional[pulumi.Input[_builtins.str]] = None,
439
757
  secondary_location: Optional[pulumi.Input[_builtins.str]] = None,
440
758
  slot_capacity: Optional[pulumi.Input[_builtins.int]] = None,
441
759
  __props__=None):
@@ -503,9 +821,74 @@ class Reservation(pulumi.CustomResource):
503
821
  capacity specified above at most.
504
822
  :param pulumi.Input[_builtins.str] location: The geographic location where the transfer config should reside.
505
823
  Examples: US, EU, asia-northeast1. The default value is US.
824
+ :param pulumi.Input[_builtins.int] max_slots: The overall max slots for the reservation, covering slotCapacity (baseline), idle slots
825
+ (if ignoreIdleSlots is false) and scaled slots. If present, the reservation won't use
826
+ more than the specified number of slots, even if there is demand and supply (from idle
827
+ slots). NOTE: capping a reservation's idle slot usage is best effort and its usage may
828
+ exceed the maxSlots value. However, in terms of autoscale.current_slots (which accounts
829
+ for the additional added slots), it will never exceed the maxSlots - baseline.
830
+ This field must be set together with the scalingMode enum value, otherwise the request
831
+ will be rejected with error code google.rpc.Code.INVALID_ARGUMENT.
832
+ If the maxSlots and scalingMode are set, the autoscale or autoscale.max_slots field
833
+ must be unset. Otherwise the request will be rejected with error code
834
+ google.rpc.Code.INVALID_ARGUMENT. However, the autoscale field may still be in the
835
+ output. The autopscale.max_slots will always show as 0 and the autoscaler.current_slots
836
+ will represent the current slots from autoscaler excluding idle slots. For example,
837
+ if the maxSlots is 1000 and scalingMode is AUTOSCALE_ONLY, then in the output, the
838
+ autoscaler.max_slots will be 0 and the autoscaler.current_slots may be any value
839
+ between 0 and 1000.
840
+ If the maxSlots is 1000, scalingMode is ALL_SLOTS, the baseline is 100 and idle slots
841
+ usage is 200, then in the output, the autoscaler.max_slots will be 0 and the
842
+ autoscaler.current_slots will not be higher than 700.
843
+ If the maxSlots is 1000, scalingMode is IDLE_SLOTS_ONLY, then in the output, the
844
+ autoscaler field will be null.
845
+ If the maxSlots and scalingMode are set, then the ignoreIdleSlots field must be
846
+ aligned with the scalingMode enum value.(See details in ScalingMode comments).
847
+ Otherwise the request will be rejected with error code google.rpc.Code.INVALID_ARGUMENT.
848
+ Please note, the maxSlots is for user to manage the part of slots greater than the
849
+ baseline. Therefore, we don't allow users to set maxSlots smaller or equal to the
850
+ baseline as it will not be meaningful. If the field is present and
851
+ slotCapacity>=maxSlots, requests will be rejected with error code
852
+ google.rpc.Code.INVALID_ARGUMENT.
853
+ Please note that if maxSlots is set to 0, we will treat it as unset. Customers can set
854
+ maxSlots to 0 and set scalingMode to SCALING_MODE_UNSPECIFIED to disable the maxSlots
855
+ feature.
506
856
  :param pulumi.Input[_builtins.str] name: The name of the reservation. This field must only contain alphanumeric characters or dash.
507
857
  :param pulumi.Input[_builtins.str] project: The ID of the project in which the resource belongs.
508
858
  If it is not provided, the provider project is used.
859
+ :param pulumi.Input[_builtins.str] scaling_mode: The scaling mode for the reservation. If the field is present but maxSlots is not present,
860
+ requests will be rejected with error code google.rpc.Code.INVALID_ARGUMENT.
861
+ Enum values:
862
+ `SCALING_MODE_UNSPECIFIED`: Default value of ScalingMode.
863
+ `AUTOSCALE_ONLY`: The reservation will scale up only using slots from autoscaling. It will
864
+ not use any idle slots even if there may be some available. The upper limit that autoscaling
865
+ can scale up to will be maxSlots - baseline. For example, if maxSlots is 1000, baseline is 200
866
+ and customer sets ScalingMode to AUTOSCALE_ONLY, then autoscalerg will scale up to 800 slots
867
+ and no idle slots will be used. Please note, in this mode, the ignoreIdleSlots field must be
868
+ set to true. Otherwise the request will be rejected with error code
869
+ google.rpc.Code.INVALID_ARGUMENT.
870
+ `IDLE_SLOTS_ONLY`: The reservation will scale up using only idle slots contributed by other
871
+ reservations or from unassigned commitments. If no idle slots are available it will not scale
872
+ up further. If the idle slots which it is using are reclaimed by the contributing reservation(s)
873
+ it may be forced to scale down. The max idle slots the reservation can be maxSlots - baseline
874
+ capacity. For example, if maxSlots is 1000, baseline is 200 and customer sets ScalingMode to
875
+ IDLE_SLOTS_ONLY, 1. if there are 1000 idle slots available in other reservations, the
876
+ reservation will scale up to 1000 slots with 200 baseline and 800 idle slots. 2. if there are
877
+ 500 idle slots available in other reservations, the reservation will scale up to 700 slots with
878
+ 200 baseline and 300 idle slots. Please note, in this mode, the reservation might not be able to
879
+ scale up to maxSlots. Please note, in this mode, the ignoreIdleSlots field must be set to false.
880
+ Otherwise the request will be rejected with error code google.rpc.Code.INVALID_ARGUMENT
881
+ `ALL_SLOTS`: The reservation will scale up using all slots available to it. It will use idle slots
882
+ contributed by other reservations or from unassigned commitments first. If no idle slots are
883
+ available it will scale up using autoscaling. For example, if maxSlots is 1000, baseline is 200
884
+ and customer sets ScalingMode to ALL_SLOTS, 1. if there are 800 idle slots available in other
885
+ reservations, the reservation will scale up to 1000 slots with 200 baseline and 800 idle slots. 2.
886
+ if there are 500 idle slots available in other reservations, the reservation will scale up to 1000
887
+ slots with 200 baseline, 500 idle slots and 300 autoscaling slots. 3. if there are no idle slots
888
+ available in other reservations, it will scale up to 1000 slots with 200 baseline and 800
889
+ autoscaling slots. Please note, in this mode, the ignoreIdleSlots field must be set to false.
890
+ Otherwise the request will be rejected with error code google.rpc.Code.INVALID_ARGUMENT.
891
+ Possible values are: `SCALING_MODE_UNSPECIFIED`, `AUTOSCALE_ONLY`, `IDLE_SLOTS_ONLY`, `ALL_SLOTS`.
509
892
  :param pulumi.Input[_builtins.str] secondary_location: The current location of the reservation's secondary replica. This field is only set for
510
893
  reservations using the managed disaster recovery feature. Users can set this in create
511
894
  reservation calls to create a failover reservation or in update reservation calls to convert
@@ -592,8 +975,10 @@ class Reservation(pulumi.CustomResource):
592
975
  edition: Optional[pulumi.Input[_builtins.str]] = None,
593
976
  ignore_idle_slots: Optional[pulumi.Input[_builtins.bool]] = None,
594
977
  location: Optional[pulumi.Input[_builtins.str]] = None,
978
+ max_slots: Optional[pulumi.Input[_builtins.int]] = None,
595
979
  name: Optional[pulumi.Input[_builtins.str]] = None,
596
980
  project: Optional[pulumi.Input[_builtins.str]] = None,
981
+ scaling_mode: Optional[pulumi.Input[_builtins.str]] = None,
597
982
  secondary_location: Optional[pulumi.Input[_builtins.str]] = None,
598
983
  slot_capacity: Optional[pulumi.Input[_builtins.int]] = None,
599
984
  __props__=None):
@@ -610,8 +995,10 @@ class Reservation(pulumi.CustomResource):
610
995
  __props__.__dict__["edition"] = edition
611
996
  __props__.__dict__["ignore_idle_slots"] = ignore_idle_slots
612
997
  __props__.__dict__["location"] = location
998
+ __props__.__dict__["max_slots"] = max_slots
613
999
  __props__.__dict__["name"] = name
614
1000
  __props__.__dict__["project"] = project
1001
+ __props__.__dict__["scaling_mode"] = scaling_mode
615
1002
  __props__.__dict__["secondary_location"] = secondary_location
616
1003
  if slot_capacity is None and not opts.urn:
617
1004
  raise TypeError("Missing required property 'slot_capacity'")
@@ -634,11 +1021,13 @@ class Reservation(pulumi.CustomResource):
634
1021
  edition: Optional[pulumi.Input[_builtins.str]] = None,
635
1022
  ignore_idle_slots: Optional[pulumi.Input[_builtins.bool]] = None,
636
1023
  location: Optional[pulumi.Input[_builtins.str]] = None,
1024
+ max_slots: Optional[pulumi.Input[_builtins.int]] = None,
637
1025
  name: Optional[pulumi.Input[_builtins.str]] = None,
638
1026
  original_primary_location: Optional[pulumi.Input[_builtins.str]] = None,
639
1027
  primary_location: Optional[pulumi.Input[_builtins.str]] = None,
640
1028
  project: Optional[pulumi.Input[_builtins.str]] = None,
641
1029
  replication_statuses: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ReservationReplicationStatusArgs', 'ReservationReplicationStatusArgsDict']]]]] = None,
1030
+ scaling_mode: Optional[pulumi.Input[_builtins.str]] = None,
642
1031
  secondary_location: Optional[pulumi.Input[_builtins.str]] = None,
643
1032
  slot_capacity: Optional[pulumi.Input[_builtins.int]] = None) -> 'Reservation':
644
1033
  """
@@ -657,6 +1046,38 @@ class Reservation(pulumi.CustomResource):
657
1046
  capacity specified above at most.
658
1047
  :param pulumi.Input[_builtins.str] location: The geographic location where the transfer config should reside.
659
1048
  Examples: US, EU, asia-northeast1. The default value is US.
1049
+ :param pulumi.Input[_builtins.int] max_slots: The overall max slots for the reservation, covering slotCapacity (baseline), idle slots
1050
+ (if ignoreIdleSlots is false) and scaled slots. If present, the reservation won't use
1051
+ more than the specified number of slots, even if there is demand and supply (from idle
1052
+ slots). NOTE: capping a reservation's idle slot usage is best effort and its usage may
1053
+ exceed the maxSlots value. However, in terms of autoscale.current_slots (which accounts
1054
+ for the additional added slots), it will never exceed the maxSlots - baseline.
1055
+ This field must be set together with the scalingMode enum value, otherwise the request
1056
+ will be rejected with error code google.rpc.Code.INVALID_ARGUMENT.
1057
+ If the maxSlots and scalingMode are set, the autoscale or autoscale.max_slots field
1058
+ must be unset. Otherwise the request will be rejected with error code
1059
+ google.rpc.Code.INVALID_ARGUMENT. However, the autoscale field may still be in the
1060
+ output. The autopscale.max_slots will always show as 0 and the autoscaler.current_slots
1061
+ will represent the current slots from autoscaler excluding idle slots. For example,
1062
+ if the maxSlots is 1000 and scalingMode is AUTOSCALE_ONLY, then in the output, the
1063
+ autoscaler.max_slots will be 0 and the autoscaler.current_slots may be any value
1064
+ between 0 and 1000.
1065
+ If the maxSlots is 1000, scalingMode is ALL_SLOTS, the baseline is 100 and idle slots
1066
+ usage is 200, then in the output, the autoscaler.max_slots will be 0 and the
1067
+ autoscaler.current_slots will not be higher than 700.
1068
+ If the maxSlots is 1000, scalingMode is IDLE_SLOTS_ONLY, then in the output, the
1069
+ autoscaler field will be null.
1070
+ If the maxSlots and scalingMode are set, then the ignoreIdleSlots field must be
1071
+ aligned with the scalingMode enum value.(See details in ScalingMode comments).
1072
+ Otherwise the request will be rejected with error code google.rpc.Code.INVALID_ARGUMENT.
1073
+ Please note, the maxSlots is for user to manage the part of slots greater than the
1074
+ baseline. Therefore, we don't allow users to set maxSlots smaller or equal to the
1075
+ baseline as it will not be meaningful. If the field is present and
1076
+ slotCapacity>=maxSlots, requests will be rejected with error code
1077
+ google.rpc.Code.INVALID_ARGUMENT.
1078
+ Please note that if maxSlots is set to 0, we will treat it as unset. Customers can set
1079
+ maxSlots to 0 and set scalingMode to SCALING_MODE_UNSPECIFIED to disable the maxSlots
1080
+ feature.
660
1081
  :param pulumi.Input[_builtins.str] name: The name of the reservation. This field must only contain alphanumeric characters or dash.
661
1082
  :param pulumi.Input[_builtins.str] original_primary_location: The location where the reservation was originally created. This is set only during the
662
1083
  failover reservation's creation. All billing charges for the failover reservation will be
@@ -672,6 +1093,39 @@ class Reservation(pulumi.CustomResource):
672
1093
  either not a DR reservation or the reservation is a DR secondary or that any replication
673
1094
  operations on the reservation have succeeded.
674
1095
  Structure is documented below.
1096
+ :param pulumi.Input[_builtins.str] scaling_mode: The scaling mode for the reservation. If the field is present but maxSlots is not present,
1097
+ requests will be rejected with error code google.rpc.Code.INVALID_ARGUMENT.
1098
+ Enum values:
1099
+ `SCALING_MODE_UNSPECIFIED`: Default value of ScalingMode.
1100
+ `AUTOSCALE_ONLY`: The reservation will scale up only using slots from autoscaling. It will
1101
+ not use any idle slots even if there may be some available. The upper limit that autoscaling
1102
+ can scale up to will be maxSlots - baseline. For example, if maxSlots is 1000, baseline is 200
1103
+ and customer sets ScalingMode to AUTOSCALE_ONLY, then autoscalerg will scale up to 800 slots
1104
+ and no idle slots will be used. Please note, in this mode, the ignoreIdleSlots field must be
1105
+ set to true. Otherwise the request will be rejected with error code
1106
+ google.rpc.Code.INVALID_ARGUMENT.
1107
+ `IDLE_SLOTS_ONLY`: The reservation will scale up using only idle slots contributed by other
1108
+ reservations or from unassigned commitments. If no idle slots are available it will not scale
1109
+ up further. If the idle slots which it is using are reclaimed by the contributing reservation(s)
1110
+ it may be forced to scale down. The max idle slots the reservation can be maxSlots - baseline
1111
+ capacity. For example, if maxSlots is 1000, baseline is 200 and customer sets ScalingMode to
1112
+ IDLE_SLOTS_ONLY, 1. if there are 1000 idle slots available in other reservations, the
1113
+ reservation will scale up to 1000 slots with 200 baseline and 800 idle slots. 2. if there are
1114
+ 500 idle slots available in other reservations, the reservation will scale up to 700 slots with
1115
+ 200 baseline and 300 idle slots. Please note, in this mode, the reservation might not be able to
1116
+ scale up to maxSlots. Please note, in this mode, the ignoreIdleSlots field must be set to false.
1117
+ Otherwise the request will be rejected with error code google.rpc.Code.INVALID_ARGUMENT
1118
+ `ALL_SLOTS`: The reservation will scale up using all slots available to it. It will use idle slots
1119
+ contributed by other reservations or from unassigned commitments first. If no idle slots are
1120
+ available it will scale up using autoscaling. For example, if maxSlots is 1000, baseline is 200
1121
+ and customer sets ScalingMode to ALL_SLOTS, 1. if there are 800 idle slots available in other
1122
+ reservations, the reservation will scale up to 1000 slots with 200 baseline and 800 idle slots. 2.
1123
+ if there are 500 idle slots available in other reservations, the reservation will scale up to 1000
1124
+ slots with 200 baseline, 500 idle slots and 300 autoscaling slots. 3. if there are no idle slots
1125
+ available in other reservations, it will scale up to 1000 slots with 200 baseline and 800
1126
+ autoscaling slots. Please note, in this mode, the ignoreIdleSlots field must be set to false.
1127
+ Otherwise the request will be rejected with error code google.rpc.Code.INVALID_ARGUMENT.
1128
+ Possible values are: `SCALING_MODE_UNSPECIFIED`, `AUTOSCALE_ONLY`, `IDLE_SLOTS_ONLY`, `ALL_SLOTS`.
675
1129
  :param pulumi.Input[_builtins.str] secondary_location: The current location of the reservation's secondary replica. This field is only set for
676
1130
  reservations using the managed disaster recovery feature. Users can set this in create
677
1131
  reservation calls to create a failover reservation or in update reservation calls to convert
@@ -688,11 +1142,13 @@ class Reservation(pulumi.CustomResource):
688
1142
  __props__.__dict__["edition"] = edition
689
1143
  __props__.__dict__["ignore_idle_slots"] = ignore_idle_slots
690
1144
  __props__.__dict__["location"] = location
1145
+ __props__.__dict__["max_slots"] = max_slots
691
1146
  __props__.__dict__["name"] = name
692
1147
  __props__.__dict__["original_primary_location"] = original_primary_location
693
1148
  __props__.__dict__["primary_location"] = primary_location
694
1149
  __props__.__dict__["project"] = project
695
1150
  __props__.__dict__["replication_statuses"] = replication_statuses
1151
+ __props__.__dict__["scaling_mode"] = scaling_mode
696
1152
  __props__.__dict__["secondary_location"] = secondary_location
697
1153
  __props__.__dict__["slot_capacity"] = slot_capacity
698
1154
  return Reservation(resource_name, opts=opts, __props__=__props__)
@@ -741,6 +1197,45 @@ class Reservation(pulumi.CustomResource):
741
1197
  """
742
1198
  return pulumi.get(self, "location")
743
1199
 
1200
+ @_builtins.property
1201
+ @pulumi.getter(name="maxSlots")
1202
+ def max_slots(self) -> pulumi.Output[Optional[_builtins.int]]:
1203
+ """
1204
+ The overall max slots for the reservation, covering slotCapacity (baseline), idle slots
1205
+ (if ignoreIdleSlots is false) and scaled slots. If present, the reservation won't use
1206
+ more than the specified number of slots, even if there is demand and supply (from idle
1207
+ slots). NOTE: capping a reservation's idle slot usage is best effort and its usage may
1208
+ exceed the maxSlots value. However, in terms of autoscale.current_slots (which accounts
1209
+ for the additional added slots), it will never exceed the maxSlots - baseline.
1210
+ This field must be set together with the scalingMode enum value, otherwise the request
1211
+ will be rejected with error code google.rpc.Code.INVALID_ARGUMENT.
1212
+ If the maxSlots and scalingMode are set, the autoscale or autoscale.max_slots field
1213
+ must be unset. Otherwise the request will be rejected with error code
1214
+ google.rpc.Code.INVALID_ARGUMENT. However, the autoscale field may still be in the
1215
+ output. The autopscale.max_slots will always show as 0 and the autoscaler.current_slots
1216
+ will represent the current slots from autoscaler excluding idle slots. For example,
1217
+ if the maxSlots is 1000 and scalingMode is AUTOSCALE_ONLY, then in the output, the
1218
+ autoscaler.max_slots will be 0 and the autoscaler.current_slots may be any value
1219
+ between 0 and 1000.
1220
+ If the maxSlots is 1000, scalingMode is ALL_SLOTS, the baseline is 100 and idle slots
1221
+ usage is 200, then in the output, the autoscaler.max_slots will be 0 and the
1222
+ autoscaler.current_slots will not be higher than 700.
1223
+ If the maxSlots is 1000, scalingMode is IDLE_SLOTS_ONLY, then in the output, the
1224
+ autoscaler field will be null.
1225
+ If the maxSlots and scalingMode are set, then the ignoreIdleSlots field must be
1226
+ aligned with the scalingMode enum value.(See details in ScalingMode comments).
1227
+ Otherwise the request will be rejected with error code google.rpc.Code.INVALID_ARGUMENT.
1228
+ Please note, the maxSlots is for user to manage the part of slots greater than the
1229
+ baseline. Therefore, we don't allow users to set maxSlots smaller or equal to the
1230
+ baseline as it will not be meaningful. If the field is present and
1231
+ slotCapacity>=maxSlots, requests will be rejected with error code
1232
+ google.rpc.Code.INVALID_ARGUMENT.
1233
+ Please note that if maxSlots is set to 0, we will treat it as unset. Customers can set
1234
+ maxSlots to 0 and set scalingMode to SCALING_MODE_UNSPECIFIED to disable the maxSlots
1235
+ feature.
1236
+ """
1237
+ return pulumi.get(self, "max_slots")
1238
+
744
1239
  @_builtins.property
745
1240
  @pulumi.getter
746
1241
  def name(self) -> pulumi.Output[_builtins.str]:
@@ -791,6 +1286,46 @@ class Reservation(pulumi.CustomResource):
791
1286
  """
792
1287
  return pulumi.get(self, "replication_statuses")
793
1288
 
1289
+ @_builtins.property
1290
+ @pulumi.getter(name="scalingMode")
1291
+ def scaling_mode(self) -> pulumi.Output[Optional[_builtins.str]]:
1292
+ """
1293
+ The scaling mode for the reservation. If the field is present but maxSlots is not present,
1294
+ requests will be rejected with error code google.rpc.Code.INVALID_ARGUMENT.
1295
+ Enum values:
1296
+ `SCALING_MODE_UNSPECIFIED`: Default value of ScalingMode.
1297
+ `AUTOSCALE_ONLY`: The reservation will scale up only using slots from autoscaling. It will
1298
+ not use any idle slots even if there may be some available. The upper limit that autoscaling
1299
+ can scale up to will be maxSlots - baseline. For example, if maxSlots is 1000, baseline is 200
1300
+ and customer sets ScalingMode to AUTOSCALE_ONLY, then autoscalerg will scale up to 800 slots
1301
+ and no idle slots will be used. Please note, in this mode, the ignoreIdleSlots field must be
1302
+ set to true. Otherwise the request will be rejected with error code
1303
+ google.rpc.Code.INVALID_ARGUMENT.
1304
+ `IDLE_SLOTS_ONLY`: The reservation will scale up using only idle slots contributed by other
1305
+ reservations or from unassigned commitments. If no idle slots are available it will not scale
1306
+ up further. If the idle slots which it is using are reclaimed by the contributing reservation(s)
1307
+ it may be forced to scale down. The max idle slots the reservation can be maxSlots - baseline
1308
+ capacity. For example, if maxSlots is 1000, baseline is 200 and customer sets ScalingMode to
1309
+ IDLE_SLOTS_ONLY, 1. if there are 1000 idle slots available in other reservations, the
1310
+ reservation will scale up to 1000 slots with 200 baseline and 800 idle slots. 2. if there are
1311
+ 500 idle slots available in other reservations, the reservation will scale up to 700 slots with
1312
+ 200 baseline and 300 idle slots. Please note, in this mode, the reservation might not be able to
1313
+ scale up to maxSlots. Please note, in this mode, the ignoreIdleSlots field must be set to false.
1314
+ Otherwise the request will be rejected with error code google.rpc.Code.INVALID_ARGUMENT
1315
+ `ALL_SLOTS`: The reservation will scale up using all slots available to it. It will use idle slots
1316
+ contributed by other reservations or from unassigned commitments first. If no idle slots are
1317
+ available it will scale up using autoscaling. For example, if maxSlots is 1000, baseline is 200
1318
+ and customer sets ScalingMode to ALL_SLOTS, 1. if there are 800 idle slots available in other
1319
+ reservations, the reservation will scale up to 1000 slots with 200 baseline and 800 idle slots. 2.
1320
+ if there are 500 idle slots available in other reservations, the reservation will scale up to 1000
1321
+ slots with 200 baseline, 500 idle slots and 300 autoscaling slots. 3. if there are no idle slots
1322
+ available in other reservations, it will scale up to 1000 slots with 200 baseline and 800
1323
+ autoscaling slots. Please note, in this mode, the ignoreIdleSlots field must be set to false.
1324
+ Otherwise the request will be rejected with error code google.rpc.Code.INVALID_ARGUMENT.
1325
+ Possible values are: `SCALING_MODE_UNSPECIFIED`, `AUTOSCALE_ONLY`, `IDLE_SLOTS_ONLY`, `ALL_SLOTS`.
1326
+ """
1327
+ return pulumi.get(self, "scaling_mode")
1328
+
794
1329
  @_builtins.property
795
1330
  @pulumi.getter(name="secondaryLocation")
796
1331
  def secondary_location(self) -> pulumi.Output[Optional[_builtins.str]]: