pulumi-gcp 8.40.0a1754721948__py3-none-any.whl → 8.41.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 (469) hide show
  1. pulumi_gcp/__init__.py +152 -0
  2. pulumi_gcp/accesscontextmanager/_inputs.py +24 -4
  3. pulumi_gcp/accesscontextmanager/access_policy_iam_binding.py +2 -0
  4. pulumi_gcp/accesscontextmanager/access_policy_iam_member.py +2 -0
  5. pulumi_gcp/accesscontextmanager/access_policy_iam_policy.py +2 -0
  6. pulumi_gcp/accesscontextmanager/outputs.py +15 -3
  7. pulumi_gcp/apigateway/api_config_iam_binding.py +2 -0
  8. pulumi_gcp/apigateway/api_config_iam_member.py +2 -0
  9. pulumi_gcp/apigateway/api_config_iam_policy.py +2 -0
  10. pulumi_gcp/apigateway/api_iam_binding.py +2 -0
  11. pulumi_gcp/apigateway/api_iam_member.py +2 -0
  12. pulumi_gcp/apigateway/api_iam_policy.py +2 -0
  13. pulumi_gcp/apigateway/gateway_iam_binding.py +2 -0
  14. pulumi_gcp/apigateway/gateway_iam_member.py +2 -0
  15. pulumi_gcp/apigateway/gateway_iam_policy.py +2 -0
  16. pulumi_gcp/apigee/__init__.py +2 -0
  17. pulumi_gcp/apigee/_inputs.py +1435 -0
  18. pulumi_gcp/apigee/api_product.py +1698 -0
  19. pulumi_gcp/apigee/environment_iam_binding.py +2 -0
  20. pulumi_gcp/apigee/environment_iam_member.py +2 -0
  21. pulumi_gcp/apigee/environment_iam_policy.py +2 -0
  22. pulumi_gcp/apigee/outputs.py +1081 -0
  23. pulumi_gcp/apigee/security_action.py +1010 -0
  24. pulumi_gcp/artifactregistry/__init__.py +6 -0
  25. pulumi_gcp/artifactregistry/get_docker_images.py +164 -0
  26. pulumi_gcp/artifactregistry/get_package.py +220 -0
  27. pulumi_gcp/artifactregistry/get_repositories.py +160 -0
  28. pulumi_gcp/artifactregistry/get_tag.py +187 -0
  29. pulumi_gcp/artifactregistry/get_tags.py +200 -0
  30. pulumi_gcp/artifactregistry/get_version.py +261 -0
  31. pulumi_gcp/artifactregistry/outputs.py +239 -2
  32. pulumi_gcp/artifactregistry/repository.py +6 -6
  33. pulumi_gcp/artifactregistry/repository_iam_binding.py +2 -0
  34. pulumi_gcp/artifactregistry/repository_iam_member.py +2 -0
  35. pulumi_gcp/artifactregistry/repository_iam_policy.py +2 -0
  36. pulumi_gcp/backupdisasterrecovery/backup_plan.py +114 -7
  37. pulumi_gcp/backupdisasterrecovery/backup_vault.py +56 -0
  38. pulumi_gcp/backupdisasterrecovery/get_backup_plan.py +12 -1
  39. pulumi_gcp/backupdisasterrecovery/get_backup_vault.py +12 -1
  40. pulumi_gcp/beyondcorp/application_iam_binding.py +8 -0
  41. pulumi_gcp/beyondcorp/application_iam_member.py +8 -0
  42. pulumi_gcp/beyondcorp/application_iam_policy.py +8 -0
  43. pulumi_gcp/beyondcorp/get_application_iam_policy.py +4 -0
  44. pulumi_gcp/beyondcorp/security_gateway_application_iam_binding.py +2 -0
  45. pulumi_gcp/beyondcorp/security_gateway_application_iam_member.py +2 -0
  46. pulumi_gcp/beyondcorp/security_gateway_application_iam_policy.py +2 -0
  47. pulumi_gcp/beyondcorp/security_gateway_iam_binding.py +2 -0
  48. pulumi_gcp/beyondcorp/security_gateway_iam_member.py +2 -0
  49. pulumi_gcp/beyondcorp/security_gateway_iam_policy.py +2 -0
  50. pulumi_gcp/bigquery/_inputs.py +6 -0
  51. pulumi_gcp/bigquery/connection_iam_binding.py +2 -0
  52. pulumi_gcp/bigquery/connection_iam_member.py +2 -0
  53. pulumi_gcp/bigquery/connection_iam_policy.py +2 -0
  54. pulumi_gcp/bigquery/data_transfer_config.py +2 -0
  55. pulumi_gcp/bigquery/dataset.py +2 -2
  56. pulumi_gcp/bigquery/get_table.py +23 -1
  57. pulumi_gcp/bigquery/iam_binding.py +2 -0
  58. pulumi_gcp/bigquery/iam_member.py +2 -0
  59. pulumi_gcp/bigquery/iam_policy.py +2 -0
  60. pulumi_gcp/bigquery/outputs.py +4 -0
  61. pulumi_gcp/bigquery/reservation.py +535 -0
  62. pulumi_gcp/bigquery/table.py +62 -0
  63. pulumi_gcp/bigqueryanalyticshub/_inputs.py +180 -0
  64. pulumi_gcp/bigqueryanalyticshub/data_exchange.py +80 -0
  65. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_binding.py +2 -0
  66. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_member.py +2 -0
  67. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_policy.py +2 -0
  68. pulumi_gcp/bigqueryanalyticshub/listing.py +322 -2
  69. pulumi_gcp/bigqueryanalyticshub/listing_iam_binding.py +2 -0
  70. pulumi_gcp/bigqueryanalyticshub/listing_iam_member.py +2 -0
  71. pulumi_gcp/bigqueryanalyticshub/listing_iam_policy.py +2 -0
  72. pulumi_gcp/bigqueryanalyticshub/listing_subscription.py +32 -0
  73. pulumi_gcp/bigqueryanalyticshub/outputs.py +159 -0
  74. pulumi_gcp/bigquerydatapolicy/data_policy_iam_binding.py +2 -0
  75. pulumi_gcp/bigquerydatapolicy/data_policy_iam_member.py +2 -0
  76. pulumi_gcp/bigquerydatapolicy/data_policy_iam_policy.py +2 -0
  77. pulumi_gcp/bigtable/__init__.py +1 -0
  78. pulumi_gcp/bigtable/_inputs.py +33 -0
  79. pulumi_gcp/bigtable/outputs.py +36 -0
  80. pulumi_gcp/bigtable/schema_bundle.py +568 -0
  81. pulumi_gcp/binaryauthorization/attestor_iam_binding.py +2 -0
  82. pulumi_gcp/binaryauthorization/attestor_iam_member.py +2 -0
  83. pulumi_gcp/binaryauthorization/attestor_iam_policy.py +2 -0
  84. pulumi_gcp/certificateauthority/ca_pool_iam_binding.py +2 -0
  85. pulumi_gcp/certificateauthority/ca_pool_iam_member.py +2 -0
  86. pulumi_gcp/certificateauthority/ca_pool_iam_policy.py +2 -0
  87. pulumi_gcp/certificateauthority/certificate_template_iam_binding.py +2 -0
  88. pulumi_gcp/certificateauthority/certificate_template_iam_member.py +2 -0
  89. pulumi_gcp/certificateauthority/certificate_template_iam_policy.py +2 -0
  90. pulumi_gcp/cloudbuildv2/connection_iam_binding.py +2 -0
  91. pulumi_gcp/cloudbuildv2/connection_iam_member.py +2 -0
  92. pulumi_gcp/cloudbuildv2/connection_iam_policy.py +2 -0
  93. pulumi_gcp/clouddeploy/_inputs.py +48 -48
  94. pulumi_gcp/clouddeploy/deploy_policy.py +54 -74
  95. pulumi_gcp/clouddeploy/outputs.py +32 -32
  96. pulumi_gcp/cloudfunctions/_inputs.py +48 -0
  97. pulumi_gcp/cloudfunctions/function.py +94 -0
  98. pulumi_gcp/cloudfunctions/function_iam_binding.py +2 -0
  99. pulumi_gcp/cloudfunctions/function_iam_member.py +2 -0
  100. pulumi_gcp/cloudfunctions/function_iam_policy.py +2 -0
  101. pulumi_gcp/cloudfunctions/get_function.py +23 -1
  102. pulumi_gcp/cloudfunctions/outputs.py +70 -0
  103. pulumi_gcp/cloudfunctionsv2/function_iam_binding.py +2 -0
  104. pulumi_gcp/cloudfunctionsv2/function_iam_member.py +2 -0
  105. pulumi_gcp/cloudfunctionsv2/function_iam_policy.py +2 -0
  106. pulumi_gcp/cloudrun/iam_binding.py +2 -0
  107. pulumi_gcp/cloudrun/iam_member.py +2 -0
  108. pulumi_gcp/cloudrun/iam_policy.py +2 -0
  109. pulumi_gcp/cloudrunv2/_inputs.py +20 -0
  110. pulumi_gcp/cloudrunv2/job.py +2 -0
  111. pulumi_gcp/cloudrunv2/job_iam_binding.py +2 -0
  112. pulumi_gcp/cloudrunv2/job_iam_member.py +2 -0
  113. pulumi_gcp/cloudrunv2/job_iam_policy.py +2 -0
  114. pulumi_gcp/cloudrunv2/outputs.py +25 -0
  115. pulumi_gcp/cloudrunv2/service_iam_binding.py +2 -0
  116. pulumi_gcp/cloudrunv2/service_iam_member.py +2 -0
  117. pulumi_gcp/cloudrunv2/service_iam_policy.py +2 -0
  118. pulumi_gcp/cloudrunv2/worker_pool.py +2 -0
  119. pulumi_gcp/cloudrunv2/worker_pool_iam_binding.py +2 -0
  120. pulumi_gcp/cloudrunv2/worker_pool_iam_member.py +2 -0
  121. pulumi_gcp/cloudrunv2/worker_pool_iam_policy.py +2 -0
  122. pulumi_gcp/cloudtasks/queue_iam_binding.py +2 -0
  123. pulumi_gcp/cloudtasks/queue_iam_member.py +2 -0
  124. pulumi_gcp/cloudtasks/queue_iam_policy.py +2 -0
  125. pulumi_gcp/colab/runtime_template_iam_binding.py +2 -0
  126. pulumi_gcp/colab/runtime_template_iam_member.py +2 -0
  127. pulumi_gcp/colab/runtime_template_iam_policy.py +2 -0
  128. pulumi_gcp/composer/user_workloads_config_map.py +26 -2
  129. pulumi_gcp/compute/__init__.py +1 -0
  130. pulumi_gcp/compute/_inputs.py +1068 -22
  131. pulumi_gcp/compute/disk_iam_binding.py +2 -0
  132. pulumi_gcp/compute/disk_iam_member.py +2 -0
  133. pulumi_gcp/compute/disk_iam_policy.py +2 -0
  134. pulumi_gcp/compute/firewall_policy_with_rules.py +66 -0
  135. pulumi_gcp/compute/forwarding_rule.py +0 -21
  136. pulumi_gcp/compute/get_region_backend_service.py +12 -1
  137. pulumi_gcp/compute/get_router.py +12 -1
  138. pulumi_gcp/compute/image_iam_binding.py +2 -0
  139. pulumi_gcp/compute/image_iam_member.py +2 -0
  140. pulumi_gcp/compute/image_iam_policy.py +2 -0
  141. pulumi_gcp/compute/instance_iam_binding.py +2 -0
  142. pulumi_gcp/compute/instance_iam_member.py +2 -0
  143. pulumi_gcp/compute/instance_iam_policy.py +2 -0
  144. pulumi_gcp/compute/instance_template_iam_binding.py +2 -0
  145. pulumi_gcp/compute/instance_template_iam_member.py +2 -0
  146. pulumi_gcp/compute/instance_template_iam_policy.py +2 -0
  147. pulumi_gcp/compute/instant_snapshot_iam_binding.py +2 -0
  148. pulumi_gcp/compute/instant_snapshot_iam_member.py +2 -0
  149. pulumi_gcp/compute/instant_snapshot_iam_policy.py +2 -0
  150. pulumi_gcp/compute/machine_image_iam_binding.py +2 -0
  151. pulumi_gcp/compute/machine_image_iam_member.py +2 -0
  152. pulumi_gcp/compute/machine_image_iam_policy.py +2 -0
  153. pulumi_gcp/compute/outputs.py +966 -22
  154. pulumi_gcp/compute/preview_feature.py +396 -0
  155. pulumi_gcp/compute/region_backend_service.py +257 -0
  156. pulumi_gcp/compute/region_disk_iam_binding.py +2 -0
  157. pulumi_gcp/compute/region_disk_iam_member.py +2 -0
  158. pulumi_gcp/compute/region_disk_iam_policy.py +2 -0
  159. pulumi_gcp/compute/region_security_policy.py +54 -0
  160. pulumi_gcp/compute/region_url_map.py +392 -0
  161. pulumi_gcp/compute/reservation.py +4 -4
  162. pulumi_gcp/compute/router.py +54 -0
  163. pulumi_gcp/compute/service_attachment.py +126 -0
  164. pulumi_gcp/compute/snapshot_iam_binding.py +2 -0
  165. pulumi_gcp/compute/snapshot_iam_member.py +2 -0
  166. pulumi_gcp/compute/snapshot_iam_policy.py +2 -0
  167. pulumi_gcp/compute/storage_pool.py +154 -0
  168. pulumi_gcp/compute/storage_pool_iam_binding.py +2 -0
  169. pulumi_gcp/compute/storage_pool_iam_member.py +2 -0
  170. pulumi_gcp/compute/storage_pool_iam_policy.py +2 -0
  171. pulumi_gcp/compute/subnetwork.py +54 -0
  172. pulumi_gcp/compute/subnetwork_iam_binding.py +2 -0
  173. pulumi_gcp/compute/subnetwork_iam_member.py +2 -0
  174. pulumi_gcp/compute/subnetwork_iam_policy.py +2 -0
  175. pulumi_gcp/config/__init__.pyi +2 -4
  176. pulumi_gcp/config/vars.py +4 -8
  177. pulumi_gcp/container/_inputs.py +2622 -246
  178. pulumi_gcp/container/cluster.py +61 -21
  179. pulumi_gcp/container/get_cluster.py +12 -1
  180. pulumi_gcp/container/outputs.py +2877 -133
  181. pulumi_gcp/containeranalysis/note_iam_binding.py +2 -0
  182. pulumi_gcp/containeranalysis/note_iam_member.py +2 -0
  183. pulumi_gcp/containeranalysis/note_iam_policy.py +2 -0
  184. pulumi_gcp/datacatalog/entry_group_iam_binding.py +2 -0
  185. pulumi_gcp/datacatalog/entry_group_iam_member.py +2 -0
  186. pulumi_gcp/datacatalog/entry_group_iam_policy.py +2 -0
  187. pulumi_gcp/datacatalog/policy_tag_iam_binding.py +2 -0
  188. pulumi_gcp/datacatalog/policy_tag_iam_member.py +2 -0
  189. pulumi_gcp/datacatalog/policy_tag_iam_policy.py +2 -0
  190. pulumi_gcp/datacatalog/tag_template_iam_binding.py +2 -0
  191. pulumi_gcp/datacatalog/tag_template_iam_member.py +2 -0
  192. pulumi_gcp/datacatalog/tag_template_iam_policy.py +2 -0
  193. pulumi_gcp/datacatalog/taxonomy_iam_binding.py +2 -0
  194. pulumi_gcp/datacatalog/taxonomy_iam_member.py +2 -0
  195. pulumi_gcp/datacatalog/taxonomy_iam_policy.py +2 -0
  196. pulumi_gcp/datafusion/instance.py +18 -4
  197. pulumi_gcp/dataplex/aspect_type_iam_binding.py +2 -0
  198. pulumi_gcp/dataplex/aspect_type_iam_member.py +2 -0
  199. pulumi_gcp/dataplex/aspect_type_iam_policy.py +2 -0
  200. pulumi_gcp/dataplex/asset_iam_binding.py +2 -0
  201. pulumi_gcp/dataplex/asset_iam_member.py +2 -0
  202. pulumi_gcp/dataplex/asset_iam_policy.py +2 -0
  203. pulumi_gcp/dataplex/datascan_iam_binding.py +2 -0
  204. pulumi_gcp/dataplex/datascan_iam_member.py +2 -0
  205. pulumi_gcp/dataplex/datascan_iam_policy.py +2 -0
  206. pulumi_gcp/dataplex/entry_group_iam_binding.py +2 -0
  207. pulumi_gcp/dataplex/entry_group_iam_member.py +2 -0
  208. pulumi_gcp/dataplex/entry_group_iam_policy.py +2 -0
  209. pulumi_gcp/dataplex/entry_type_iam_binding.py +2 -0
  210. pulumi_gcp/dataplex/entry_type_iam_member.py +2 -0
  211. pulumi_gcp/dataplex/entry_type_iam_policy.py +2 -0
  212. pulumi_gcp/dataplex/glossary_iam_binding.py +2 -0
  213. pulumi_gcp/dataplex/glossary_iam_member.py +2 -0
  214. pulumi_gcp/dataplex/glossary_iam_policy.py +2 -0
  215. pulumi_gcp/dataplex/lake_iam_binding.py +2 -0
  216. pulumi_gcp/dataplex/lake_iam_member.py +2 -0
  217. pulumi_gcp/dataplex/lake_iam_policy.py +2 -0
  218. pulumi_gcp/dataplex/task_iam_binding.py +2 -0
  219. pulumi_gcp/dataplex/task_iam_member.py +2 -0
  220. pulumi_gcp/dataplex/task_iam_policy.py +2 -0
  221. pulumi_gcp/dataplex/zone_iam_binding.py +2 -0
  222. pulumi_gcp/dataplex/zone_iam_member.py +2 -0
  223. pulumi_gcp/dataplex/zone_iam_policy.py +2 -0
  224. pulumi_gcp/dataproc/_inputs.py +249 -14
  225. pulumi_gcp/dataproc/autoscaling_policy_iam_binding.py +2 -0
  226. pulumi_gcp/dataproc/autoscaling_policy_iam_member.py +2 -0
  227. pulumi_gcp/dataproc/autoscaling_policy_iam_policy.py +2 -0
  228. pulumi_gcp/dataproc/batch.py +6 -0
  229. pulumi_gcp/dataproc/cluster.py +2 -0
  230. pulumi_gcp/dataproc/metastore_database_iam_binding.py +2 -0
  231. pulumi_gcp/dataproc/metastore_database_iam_member.py +2 -0
  232. pulumi_gcp/dataproc/metastore_database_iam_policy.py +2 -0
  233. pulumi_gcp/dataproc/metastore_federation_iam_binding.py +2 -0
  234. pulumi_gcp/dataproc/metastore_federation_iam_member.py +2 -0
  235. pulumi_gcp/dataproc/metastore_federation_iam_policy.py +2 -0
  236. pulumi_gcp/dataproc/metastore_service_iam_binding.py +2 -0
  237. pulumi_gcp/dataproc/metastore_service_iam_member.py +2 -0
  238. pulumi_gcp/dataproc/metastore_service_iam_policy.py +2 -0
  239. pulumi_gcp/dataproc/metastore_table_iam_binding.py +2 -0
  240. pulumi_gcp/dataproc/metastore_table_iam_member.py +2 -0
  241. pulumi_gcp/dataproc/metastore_table_iam_policy.py +2 -0
  242. pulumi_gcp/dataproc/outputs.py +215 -12
  243. pulumi_gcp/dataproc/session_template.py +14 -2
  244. pulumi_gcp/developerconnect/__init__.py +1 -0
  245. pulumi_gcp/developerconnect/_inputs.py +583 -0
  246. pulumi_gcp/developerconnect/insights_config.py +895 -0
  247. pulumi_gcp/developerconnect/outputs.py +442 -0
  248. pulumi_gcp/diagflow/__init__.py +3 -0
  249. pulumi_gcp/diagflow/_inputs.py +11899 -7963
  250. pulumi_gcp/diagflow/conversation_profile.py +959 -0
  251. pulumi_gcp/diagflow/cx_generator.py +636 -0
  252. pulumi_gcp/diagflow/cx_playbook.py +967 -0
  253. pulumi_gcp/diagflow/cx_tool.py +2 -2
  254. pulumi_gcp/diagflow/cx_webhook.py +380 -36
  255. pulumi_gcp/diagflow/outputs.py +9099 -5946
  256. pulumi_gcp/discoveryengine/__init__.py +2 -0
  257. pulumi_gcp/discoveryengine/_inputs.py +465 -0
  258. pulumi_gcp/discoveryengine/cmek_config.py +707 -0
  259. pulumi_gcp/discoveryengine/outputs.py +412 -0
  260. pulumi_gcp/discoveryengine/recommendation_engine.py +813 -0
  261. pulumi_gcp/dns/dns_managed_zone_iam_binding.py +2 -0
  262. pulumi_gcp/dns/dns_managed_zone_iam_member.py +2 -0
  263. pulumi_gcp/dns/dns_managed_zone_iam_policy.py +2 -0
  264. pulumi_gcp/endpoints/service_iam_binding.py +2 -0
  265. pulumi_gcp/endpoints/service_iam_member.py +2 -0
  266. pulumi_gcp/endpoints/service_iam_policy.py +2 -0
  267. pulumi_gcp/firestore/field.py +6 -6
  268. pulumi_gcp/gemini/gemini_gcp_enablement_setting.py +107 -9
  269. pulumi_gcp/gemini/gemini_gcp_enablement_setting_binding.py +2 -2
  270. pulumi_gcp/gemini/repository_group_iam_binding.py +2 -0
  271. pulumi_gcp/gemini/repository_group_iam_member.py +2 -0
  272. pulumi_gcp/gemini/repository_group_iam_policy.py +2 -0
  273. pulumi_gcp/gkebackup/backup_plan_iam_binding.py +2 -0
  274. pulumi_gcp/gkebackup/backup_plan_iam_member.py +2 -0
  275. pulumi_gcp/gkebackup/backup_plan_iam_policy.py +2 -0
  276. pulumi_gcp/gkebackup/restore_plan_iam_binding.py +2 -0
  277. pulumi_gcp/gkebackup/restore_plan_iam_member.py +2 -0
  278. pulumi_gcp/gkebackup/restore_plan_iam_policy.py +2 -0
  279. pulumi_gcp/gkehub/feature_iam_binding.py +2 -0
  280. pulumi_gcp/gkehub/feature_iam_member.py +2 -0
  281. pulumi_gcp/gkehub/feature_iam_policy.py +2 -0
  282. pulumi_gcp/gkehub/membership_binding.py +6 -6
  283. pulumi_gcp/gkehub/membership_iam_binding.py +2 -0
  284. pulumi_gcp/gkehub/membership_iam_member.py +2 -0
  285. pulumi_gcp/gkehub/membership_iam_policy.py +2 -0
  286. pulumi_gcp/gkehub/membership_rbac_role_binding.py +4 -4
  287. pulumi_gcp/gkehub/namespace.py +4 -4
  288. pulumi_gcp/gkehub/scope_iam_binding.py +2 -0
  289. pulumi_gcp/gkehub/scope_iam_member.py +2 -0
  290. pulumi_gcp/gkehub/scope_iam_policy.py +2 -0
  291. pulumi_gcp/gkehub/scope_rbac_role_binding.py +8 -8
  292. pulumi_gcp/gkeonprem/vmware_admin_cluster.py +24 -3
  293. pulumi_gcp/healthcare/consent_store_iam_binding.py +2 -0
  294. pulumi_gcp/healthcare/consent_store_iam_member.py +2 -0
  295. pulumi_gcp/healthcare/consent_store_iam_policy.py +2 -0
  296. pulumi_gcp/iam/__init__.py +4 -0
  297. pulumi_gcp/iam/_inputs.py +98 -0
  298. pulumi_gcp/iam/get_workforce_pool_iam_policy.py +161 -0
  299. pulumi_gcp/iam/outputs.py +56 -0
  300. pulumi_gcp/iam/workforce_pool_iam_binding.py +763 -0
  301. pulumi_gcp/iam/workforce_pool_iam_member.py +763 -0
  302. pulumi_gcp/iam/workforce_pool_iam_policy.py +602 -0
  303. pulumi_gcp/iap/app_engine_service_iam_binding.py +2 -0
  304. pulumi_gcp/iap/app_engine_service_iam_member.py +2 -0
  305. pulumi_gcp/iap/app_engine_service_iam_policy.py +2 -0
  306. pulumi_gcp/iap/app_engine_version_iam_binding.py +2 -0
  307. pulumi_gcp/iap/app_engine_version_iam_member.py +2 -0
  308. pulumi_gcp/iap/app_engine_version_iam_policy.py +2 -0
  309. pulumi_gcp/iap/tunnel_dest_group.py +2 -2
  310. pulumi_gcp/iap/tunnel_dest_group_iam_binding.py +2 -0
  311. pulumi_gcp/iap/tunnel_dest_group_iam_member.py +2 -0
  312. pulumi_gcp/iap/tunnel_dest_group_iam_policy.py +2 -0
  313. pulumi_gcp/iap/tunnel_iam_binding.py +2 -0
  314. pulumi_gcp/iap/tunnel_iam_member.py +2 -0
  315. pulumi_gcp/iap/tunnel_iam_policy.py +2 -0
  316. pulumi_gcp/iap/tunnel_instance_iam_binding.py +2 -0
  317. pulumi_gcp/iap/tunnel_instance_iam_member.py +2 -0
  318. pulumi_gcp/iap/tunnel_instance_iam_policy.py +2 -0
  319. pulumi_gcp/iap/web_backend_service_iam_binding.py +2 -0
  320. pulumi_gcp/iap/web_backend_service_iam_member.py +2 -0
  321. pulumi_gcp/iap/web_backend_service_iam_policy.py +2 -0
  322. pulumi_gcp/iap/web_cloud_run_service_iam_binding.py +2 -0
  323. pulumi_gcp/iap/web_cloud_run_service_iam_member.py +2 -0
  324. pulumi_gcp/iap/web_cloud_run_service_iam_policy.py +2 -0
  325. pulumi_gcp/iap/web_iam_binding.py +2 -0
  326. pulumi_gcp/iap/web_iam_member.py +2 -0
  327. pulumi_gcp/iap/web_iam_policy.py +2 -0
  328. pulumi_gcp/iap/web_region_backend_service_iam_binding.py +2 -0
  329. pulumi_gcp/iap/web_region_backend_service_iam_member.py +2 -0
  330. pulumi_gcp/iap/web_region_backend_service_iam_policy.py +2 -0
  331. pulumi_gcp/iap/web_type_app_enging_iam_binding.py +2 -0
  332. pulumi_gcp/iap/web_type_app_enging_iam_member.py +2 -0
  333. pulumi_gcp/iap/web_type_app_enging_iam_policy.py +2 -0
  334. pulumi_gcp/iap/web_type_compute_iam_binding.py +2 -0
  335. pulumi_gcp/iap/web_type_compute_iam_member.py +2 -0
  336. pulumi_gcp/iap/web_type_compute_iam_policy.py +2 -0
  337. pulumi_gcp/integrationconnectors/managed_zone.py +8 -8
  338. pulumi_gcp/kms/crypto_key.py +7 -0
  339. pulumi_gcp/kms/ekm_connection_iam_binding.py +2 -0
  340. pulumi_gcp/kms/ekm_connection_iam_member.py +2 -0
  341. pulumi_gcp/kms/ekm_connection_iam_policy.py +2 -0
  342. pulumi_gcp/kms/outputs.py +2 -0
  343. pulumi_gcp/logging/log_view_iam_binding.py +2 -0
  344. pulumi_gcp/logging/log_view_iam_member.py +2 -0
  345. pulumi_gcp/logging/log_view_iam_policy.py +2 -0
  346. pulumi_gcp/looker/instance.py +28 -7
  347. pulumi_gcp/managedkafka/_inputs.py +127 -0
  348. pulumi_gcp/managedkafka/cluster.py +131 -1
  349. pulumi_gcp/managedkafka/connect_cluster.py +4 -4
  350. pulumi_gcp/managedkafka/connector.py +4 -4
  351. pulumi_gcp/managedkafka/outputs.py +128 -0
  352. pulumi_gcp/memorystore/get_instance.py +12 -1
  353. pulumi_gcp/memorystore/instance.py +78 -12
  354. pulumi_gcp/modelarmor/__init__.py +1 -0
  355. pulumi_gcp/modelarmor/_inputs.py +683 -0
  356. pulumi_gcp/modelarmor/floorsetting.py +736 -0
  357. pulumi_gcp/modelarmor/outputs.py +618 -0
  358. pulumi_gcp/monitoring/_inputs.py +3 -3
  359. pulumi_gcp/monitoring/outputs.py +2 -2
  360. pulumi_gcp/networkconnectivity/_inputs.py +60 -0
  361. pulumi_gcp/networkconnectivity/internal_range.py +136 -0
  362. pulumi_gcp/networkconnectivity/outputs.py +55 -0
  363. pulumi_gcp/networkconnectivity/spoke.py +14 -14
  364. pulumi_gcp/networkmanagement/vpc_flow_logs_config.py +213 -168
  365. pulumi_gcp/notebooks/instance.py +18 -18
  366. pulumi_gcp/notebooks/instance_iam_binding.py +2 -0
  367. pulumi_gcp/notebooks/instance_iam_member.py +2 -0
  368. pulumi_gcp/notebooks/instance_iam_policy.py +2 -0
  369. pulumi_gcp/notebooks/runtime_iam_binding.py +2 -0
  370. pulumi_gcp/notebooks/runtime_iam_member.py +2 -0
  371. pulumi_gcp/notebooks/runtime_iam_policy.py +2 -0
  372. pulumi_gcp/oracledatabase/__init__.py +2 -0
  373. pulumi_gcp/oracledatabase/autonomous_database.py +262 -38
  374. pulumi_gcp/oracledatabase/cloud_vm_cluster.py +314 -50
  375. pulumi_gcp/oracledatabase/get_autonomous_database.py +23 -1
  376. pulumi_gcp/oracledatabase/get_cloud_vm_cluster.py +34 -1
  377. pulumi_gcp/oracledatabase/odb_network.py +721 -0
  378. pulumi_gcp/oracledatabase/odb_subnet.py +803 -0
  379. pulumi_gcp/oracledatabase/outputs.py +83 -0
  380. pulumi_gcp/organizations/folder.py +56 -0
  381. pulumi_gcp/organizations/get_folder.py +29 -1
  382. pulumi_gcp/orgpolicy/policy.py +2 -2
  383. pulumi_gcp/parametermanager/parameter_version.py +62 -0
  384. pulumi_gcp/parametermanager/regional_parameter_version.py +64 -0
  385. pulumi_gcp/projects/api_key.py +88 -1
  386. pulumi_gcp/provider.py +20 -40
  387. pulumi_gcp/pubsub/schema_iam_binding.py +2 -0
  388. pulumi_gcp/pubsub/schema_iam_member.py +2 -0
  389. pulumi_gcp/pubsub/schema_iam_policy.py +2 -0
  390. pulumi_gcp/pubsub/subscription.py +130 -6
  391. pulumi_gcp/pubsub/topic.py +116 -0
  392. pulumi_gcp/pubsub/topic_iam_binding.py +2 -0
  393. pulumi_gcp/pubsub/topic_iam_member.py +2 -0
  394. pulumi_gcp/pubsub/topic_iam_policy.py +2 -0
  395. pulumi_gcp/pulumi-plugin.json +1 -1
  396. pulumi_gcp/redis/cluster.py +70 -0
  397. pulumi_gcp/redis/get_cluster.py +12 -1
  398. pulumi_gcp/redis/instance.py +8 -12
  399. pulumi_gcp/secretmanager/get_regional_secret.py +12 -1
  400. pulumi_gcp/secretmanager/get_secret.py +12 -1
  401. pulumi_gcp/secretmanager/outputs.py +30 -0
  402. pulumi_gcp/secretmanager/regional_secret.py +61 -0
  403. pulumi_gcp/secretmanager/regional_secret_iam_binding.py +2 -0
  404. pulumi_gcp/secretmanager/regional_secret_iam_member.py +2 -0
  405. pulumi_gcp/secretmanager/regional_secret_iam_policy.py +2 -0
  406. pulumi_gcp/secretmanager/secret.py +61 -0
  407. pulumi_gcp/secretmanager/secret_iam_binding.py +2 -0
  408. pulumi_gcp/secretmanager/secret_iam_member.py +2 -0
  409. pulumi_gcp/secretmanager/secret_iam_policy.py +2 -0
  410. pulumi_gcp/secretmanager/secret_version.py +1 -48
  411. pulumi_gcp/securesourcemanager/branch_rule.py +16 -8
  412. pulumi_gcp/securesourcemanager/instance.py +112 -4
  413. pulumi_gcp/securesourcemanager/repository.py +112 -8
  414. pulumi_gcp/securesourcemanager/repository_iam_binding.py +2 -0
  415. pulumi_gcp/securesourcemanager/repository_iam_member.py +2 -0
  416. pulumi_gcp/securesourcemanager/repository_iam_policy.py +2 -0
  417. pulumi_gcp/securitycenter/instance_iam_binding.py +18 -4
  418. pulumi_gcp/securitycenter/instance_iam_member.py +18 -4
  419. pulumi_gcp/securitycenter/instance_iam_policy.py +18 -4
  420. pulumi_gcp/securitycenter/v2_organization_source_iam_binding.py +2 -0
  421. pulumi_gcp/securitycenter/v2_organization_source_iam_member.py +2 -0
  422. pulumi_gcp/securitycenter/v2_organization_source_iam_policy.py +2 -0
  423. pulumi_gcp/serviceaccount/get_account_key.py +1 -0
  424. pulumi_gcp/servicedirectory/namespace_iam_binding.py +2 -0
  425. pulumi_gcp/servicedirectory/namespace_iam_member.py +2 -0
  426. pulumi_gcp/servicedirectory/namespace_iam_policy.py +2 -0
  427. pulumi_gcp/servicedirectory/service_iam_binding.py +2 -0
  428. pulumi_gcp/servicedirectory/service_iam_member.py +2 -0
  429. pulumi_gcp/servicedirectory/service_iam_policy.py +2 -0
  430. pulumi_gcp/sourcerepo/repository_iam_binding.py +2 -0
  431. pulumi_gcp/sourcerepo/repository_iam_member.py +2 -0
  432. pulumi_gcp/sourcerepo/repository_iam_policy.py +2 -0
  433. pulumi_gcp/sql/_inputs.py +88 -10
  434. pulumi_gcp/sql/database.py +0 -12
  435. pulumi_gcp/sql/database_instance.py +108 -7
  436. pulumi_gcp/sql/get_database_instance.py +12 -1
  437. pulumi_gcp/sql/outputs.py +158 -11
  438. pulumi_gcp/storage/__init__.py +2 -0
  439. pulumi_gcp/storage/_inputs.py +555 -12
  440. pulumi_gcp/storage/bucket.py +7 -7
  441. pulumi_gcp/storage/bucket_object.py +34 -0
  442. pulumi_gcp/storage/get_bucket_object.py +12 -1
  443. pulumi_gcp/storage/get_bucket_object_content.py +12 -1
  444. pulumi_gcp/storage/get_insights_dataset_config.py +363 -0
  445. pulumi_gcp/storage/insights_dataset_config.py +1280 -0
  446. pulumi_gcp/storage/outputs.py +703 -7
  447. pulumi_gcp/tags/tag_key_iam_binding.py +2 -0
  448. pulumi_gcp/tags/tag_key_iam_member.py +2 -0
  449. pulumi_gcp/tags/tag_key_iam_policy.py +2 -0
  450. pulumi_gcp/tags/tag_value_iam_binding.py +2 -0
  451. pulumi_gcp/tags/tag_value_iam_member.py +2 -0
  452. pulumi_gcp/tags/tag_value_iam_policy.py +2 -0
  453. pulumi_gcp/tpu/get_tensorflow_versions.py +10 -0
  454. pulumi_gcp/vertex/__init__.py +2 -0
  455. pulumi_gcp/vertex/_inputs.py +3768 -3
  456. pulumi_gcp/vertex/ai_endpoint.py +4 -4
  457. pulumi_gcp/vertex/ai_endpoint_with_model_garden_deployment.py +940 -0
  458. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +4 -4
  459. pulumi_gcp/vertex/ai_index.py +21 -7
  460. pulumi_gcp/vertex/ai_rag_engine_config.py +354 -0
  461. pulumi_gcp/vertex/outputs.py +2678 -2
  462. pulumi_gcp/vmwareengine/network_peering.py +7 -7
  463. pulumi_gcp/workbench/_inputs.py +118 -0
  464. pulumi_gcp/workbench/instance.py +171 -2
  465. pulumi_gcp/workbench/outputs.py +91 -0
  466. {pulumi_gcp-8.40.0a1754721948.dist-info → pulumi_gcp-8.41.0.dist-info}/METADATA +1 -1
  467. {pulumi_gcp-8.40.0a1754721948.dist-info → pulumi_gcp-8.41.0.dist-info}/RECORD +469 -442
  468. {pulumi_gcp-8.40.0a1754721948.dist-info → pulumi_gcp-8.41.0.dist-info}/WHEEL +0 -0
  469. {pulumi_gcp-8.40.0a1754721948.dist-info → pulumi_gcp-8.41.0.dist-info}/top_level.txt +0 -0
@@ -47,6 +47,64 @@ __all__ = [
47
47
  'AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgsDict',
48
48
  'AiEndpointPrivateServiceConnectConfigArgs',
49
49
  'AiEndpointPrivateServiceConnectConfigArgsDict',
50
+ 'AiEndpointWithModelGardenDeploymentDeployConfigArgs',
51
+ 'AiEndpointWithModelGardenDeploymentDeployConfigArgsDict',
52
+ 'AiEndpointWithModelGardenDeploymentDeployConfigDedicatedResourcesArgs',
53
+ 'AiEndpointWithModelGardenDeploymentDeployConfigDedicatedResourcesArgsDict',
54
+ 'AiEndpointWithModelGardenDeploymentDeployConfigDedicatedResourcesAutoscalingMetricSpecArgs',
55
+ 'AiEndpointWithModelGardenDeploymentDeployConfigDedicatedResourcesAutoscalingMetricSpecArgsDict',
56
+ 'AiEndpointWithModelGardenDeploymentDeployConfigDedicatedResourcesMachineSpecArgs',
57
+ 'AiEndpointWithModelGardenDeploymentDeployConfigDedicatedResourcesMachineSpecArgsDict',
58
+ 'AiEndpointWithModelGardenDeploymentDeployConfigDedicatedResourcesMachineSpecReservationAffinityArgs',
59
+ 'AiEndpointWithModelGardenDeploymentDeployConfigDedicatedResourcesMachineSpecReservationAffinityArgsDict',
60
+ 'AiEndpointWithModelGardenDeploymentEndpointConfigArgs',
61
+ 'AiEndpointWithModelGardenDeploymentEndpointConfigArgsDict',
62
+ 'AiEndpointWithModelGardenDeploymentModelConfigArgs',
63
+ 'AiEndpointWithModelGardenDeploymentModelConfigArgsDict',
64
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecArgs',
65
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecArgsDict',
66
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecEnvArgs',
67
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecEnvArgsDict',
68
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecGrpcPortArgs',
69
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecGrpcPortArgsDict',
70
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeArgs',
71
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeArgsDict',
72
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeExecArgs',
73
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeExecArgsDict',
74
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeGrpcArgs',
75
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeGrpcArgsDict',
76
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeHttpGetArgs',
77
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeHttpGetArgsDict',
78
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeHttpGetHttpHeaderArgs',
79
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeHttpGetHttpHeaderArgsDict',
80
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeTcpSocketArgs',
81
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeTcpSocketArgsDict',
82
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeArgs',
83
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeArgsDict',
84
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeExecArgs',
85
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeExecArgsDict',
86
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeGrpcArgs',
87
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeGrpcArgsDict',
88
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeHttpGetArgs',
89
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeHttpGetArgsDict',
90
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeHttpGetHttpHeaderArgs',
91
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeHttpGetHttpHeaderArgsDict',
92
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeTcpSocketArgs',
93
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeTcpSocketArgsDict',
94
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecPortArgs',
95
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecPortArgsDict',
96
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeArgs',
97
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeArgsDict',
98
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeExecArgs',
99
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeExecArgsDict',
100
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeGrpcArgs',
101
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeGrpcArgsDict',
102
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeHttpGetArgs',
103
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeHttpGetArgsDict',
104
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeHttpGetHttpHeaderArgs',
105
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeHttpGetHttpHeaderArgsDict',
106
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeTcpSocketArgs',
107
+ 'AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeTcpSocketArgsDict',
50
108
  'AiFeatureGroupBigQueryArgs',
51
109
  'AiFeatureGroupBigQueryArgsDict',
52
110
  'AiFeatureGroupBigQueryBigQuerySourceArgs',
@@ -147,6 +205,14 @@ __all__ = [
147
205
  'AiMetadataStoreEncryptionSpecArgsDict',
148
206
  'AiMetadataStoreStateArgs',
149
207
  'AiMetadataStoreStateArgsDict',
208
+ 'AiRagEngineConfigRagManagedDbConfigArgs',
209
+ 'AiRagEngineConfigRagManagedDbConfigArgsDict',
210
+ 'AiRagEngineConfigRagManagedDbConfigBasicArgs',
211
+ 'AiRagEngineConfigRagManagedDbConfigBasicArgsDict',
212
+ 'AiRagEngineConfigRagManagedDbConfigScaledArgs',
213
+ 'AiRagEngineConfigRagManagedDbConfigScaledArgsDict',
214
+ 'AiRagEngineConfigRagManagedDbConfigUnprovisionedArgs',
215
+ 'AiRagEngineConfigRagManagedDbConfigUnprovisionedArgsDict',
150
216
  'AiTensorboardEncryptionSpecArgs',
151
217
  'AiTensorboardEncryptionSpecArgsDict',
152
218
  ]
@@ -942,7 +1008,7 @@ if not MYPY:
942
1008
  machine_type: NotRequired[pulumi.Input[_builtins.str]]
943
1009
  """
944
1010
  (Output)
945
- The type of the machine. See the [list of machine types supported for prediction](https://cloud.google.com/vertex-ai/docs/predictions/configure-compute#machine-types) See the [list of machine types supported for custom training](https://cloud.google.com/vertex-ai/docs/training/configure-compute#machine-types). For DeployedModel this field is optional, and the default value is `n1-standard-2`. For BatchPredictionJob or as part of WorkerPoolSpec this field is required. TODO(rsurowka): Try to better unify the required vs optional.
1011
+ The type of the machine. See the [list of machine types supported for prediction](https://cloud.google.com/vertex-ai/docs/predictions/configure-compute#machine-types) See the [list of machine types supported for custom training](https://cloud.google.com/vertex-ai/docs/training/configure-compute#machine-types). For DeployedModel this field is optional, and the default value is `n1-standard-2`. For BatchPredictionJob or as part of WorkerPoolSpec this field is required. TODO: Try to better unify the required vs optional.
946
1012
  """
947
1013
  elif False:
948
1014
  AiEndpointDeployedModelDedicatedResourceMachineSpecArgsDict: TypeAlias = Mapping[str, Any]
@@ -959,7 +1025,7 @@ class AiEndpointDeployedModelDedicatedResourceMachineSpecArgs:
959
1025
  :param pulumi.Input[_builtins.str] accelerator_type: (Output)
960
1026
  The type of accelerator(s) that may be attached to the machine as per accelerator_count. See possible values [here](https://cloud.google.com/vertex-ai/docs/reference/rest/v1/MachineSpec#AcceleratorType).
961
1027
  :param pulumi.Input[_builtins.str] machine_type: (Output)
962
- The type of the machine. See the [list of machine types supported for prediction](https://cloud.google.com/vertex-ai/docs/predictions/configure-compute#machine-types) See the [list of machine types supported for custom training](https://cloud.google.com/vertex-ai/docs/training/configure-compute#machine-types). For DeployedModel this field is optional, and the default value is `n1-standard-2`. For BatchPredictionJob or as part of WorkerPoolSpec this field is required. TODO(rsurowka): Try to better unify the required vs optional.
1028
+ The type of the machine. See the [list of machine types supported for prediction](https://cloud.google.com/vertex-ai/docs/predictions/configure-compute#machine-types) See the [list of machine types supported for custom training](https://cloud.google.com/vertex-ai/docs/training/configure-compute#machine-types). For DeployedModel this field is optional, and the default value is `n1-standard-2`. For BatchPredictionJob or as part of WorkerPoolSpec this field is required. TODO: Try to better unify the required vs optional.
963
1029
  """
964
1030
  if accelerator_count is not None:
965
1031
  pulumi.set(__self__, "accelerator_count", accelerator_count)
@@ -999,7 +1065,7 @@ class AiEndpointDeployedModelDedicatedResourceMachineSpecArgs:
999
1065
  def machine_type(self) -> Optional[pulumi.Input[_builtins.str]]:
1000
1066
  """
1001
1067
  (Output)
1002
- The type of the machine. See the [list of machine types supported for prediction](https://cloud.google.com/vertex-ai/docs/predictions/configure-compute#machine-types) See the [list of machine types supported for custom training](https://cloud.google.com/vertex-ai/docs/training/configure-compute#machine-types). For DeployedModel this field is optional, and the default value is `n1-standard-2`. For BatchPredictionJob or as part of WorkerPoolSpec this field is required. TODO(rsurowka): Try to better unify the required vs optional.
1068
+ The type of the machine. See the [list of machine types supported for prediction](https://cloud.google.com/vertex-ai/docs/predictions/configure-compute#machine-types) See the [list of machine types supported for custom training](https://cloud.google.com/vertex-ai/docs/training/configure-compute#machine-types). For DeployedModel this field is optional, and the default value is `n1-standard-2`. For BatchPredictionJob or as part of WorkerPoolSpec this field is required. TODO: Try to better unify the required vs optional.
1003
1069
  """
1004
1070
  return pulumi.get(self, "machine_type")
1005
1071
 
@@ -1415,6 +1481,3591 @@ class AiEndpointPrivateServiceConnectConfigArgs:
1415
1481
  pulumi.set(self, "project_allowlists", value)
1416
1482
 
1417
1483
 
1484
+ if not MYPY:
1485
+ class AiEndpointWithModelGardenDeploymentDeployConfigArgsDict(TypedDict):
1486
+ dedicated_resources: NotRequired[pulumi.Input['AiEndpointWithModelGardenDeploymentDeployConfigDedicatedResourcesArgsDict']]
1487
+ """
1488
+ A description of resources that are dedicated to a DeployedModel or
1489
+ DeployedIndex, and that need a higher degree of manual configuration.
1490
+ Structure is documented below.
1491
+ """
1492
+ fast_tryout_enabled: NotRequired[pulumi.Input[_builtins.bool]]
1493
+ """
1494
+ If true, enable the QMT fast tryout feature for this model if possible.
1495
+ """
1496
+ system_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
1497
+ """
1498
+ System labels for Model Garden deployments.
1499
+ These labels are managed by Google and for tracking purposes only.
1500
+ """
1501
+ elif False:
1502
+ AiEndpointWithModelGardenDeploymentDeployConfigArgsDict: TypeAlias = Mapping[str, Any]
1503
+
1504
+ @pulumi.input_type
1505
+ class AiEndpointWithModelGardenDeploymentDeployConfigArgs:
1506
+ def __init__(__self__, *,
1507
+ dedicated_resources: Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentDeployConfigDedicatedResourcesArgs']] = None,
1508
+ fast_tryout_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
1509
+ system_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
1510
+ """
1511
+ :param pulumi.Input['AiEndpointWithModelGardenDeploymentDeployConfigDedicatedResourcesArgs'] dedicated_resources: A description of resources that are dedicated to a DeployedModel or
1512
+ DeployedIndex, and that need a higher degree of manual configuration.
1513
+ Structure is documented below.
1514
+ :param pulumi.Input[_builtins.bool] fast_tryout_enabled: If true, enable the QMT fast tryout feature for this model if possible.
1515
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] system_labels: System labels for Model Garden deployments.
1516
+ These labels are managed by Google and for tracking purposes only.
1517
+ """
1518
+ if dedicated_resources is not None:
1519
+ pulumi.set(__self__, "dedicated_resources", dedicated_resources)
1520
+ if fast_tryout_enabled is not None:
1521
+ pulumi.set(__self__, "fast_tryout_enabled", fast_tryout_enabled)
1522
+ if system_labels is not None:
1523
+ pulumi.set(__self__, "system_labels", system_labels)
1524
+
1525
+ @_builtins.property
1526
+ @pulumi.getter(name="dedicatedResources")
1527
+ def dedicated_resources(self) -> Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentDeployConfigDedicatedResourcesArgs']]:
1528
+ """
1529
+ A description of resources that are dedicated to a DeployedModel or
1530
+ DeployedIndex, and that need a higher degree of manual configuration.
1531
+ Structure is documented below.
1532
+ """
1533
+ return pulumi.get(self, "dedicated_resources")
1534
+
1535
+ @dedicated_resources.setter
1536
+ def dedicated_resources(self, value: Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentDeployConfigDedicatedResourcesArgs']]):
1537
+ pulumi.set(self, "dedicated_resources", value)
1538
+
1539
+ @_builtins.property
1540
+ @pulumi.getter(name="fastTryoutEnabled")
1541
+ def fast_tryout_enabled(self) -> Optional[pulumi.Input[_builtins.bool]]:
1542
+ """
1543
+ If true, enable the QMT fast tryout feature for this model if possible.
1544
+ """
1545
+ return pulumi.get(self, "fast_tryout_enabled")
1546
+
1547
+ @fast_tryout_enabled.setter
1548
+ def fast_tryout_enabled(self, value: Optional[pulumi.Input[_builtins.bool]]):
1549
+ pulumi.set(self, "fast_tryout_enabled", value)
1550
+
1551
+ @_builtins.property
1552
+ @pulumi.getter(name="systemLabels")
1553
+ def system_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
1554
+ """
1555
+ System labels for Model Garden deployments.
1556
+ These labels are managed by Google and for tracking purposes only.
1557
+ """
1558
+ return pulumi.get(self, "system_labels")
1559
+
1560
+ @system_labels.setter
1561
+ def system_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
1562
+ pulumi.set(self, "system_labels", value)
1563
+
1564
+
1565
+ if not MYPY:
1566
+ class AiEndpointWithModelGardenDeploymentDeployConfigDedicatedResourcesArgsDict(TypedDict):
1567
+ machine_spec: pulumi.Input['AiEndpointWithModelGardenDeploymentDeployConfigDedicatedResourcesMachineSpecArgsDict']
1568
+ """
1569
+ Specification of a single machine.
1570
+ Structure is documented below.
1571
+ """
1572
+ min_replica_count: pulumi.Input[_builtins.int]
1573
+ """
1574
+ The minimum number of machine replicas that will be always deployed on.
1575
+ This value must be greater than or equal to 1.
1576
+ If traffic increases, it may dynamically be deployed onto more replicas,
1577
+ and as traffic decreases, some of these extra replicas may be freed.
1578
+ """
1579
+ autoscaling_metric_specs: NotRequired[pulumi.Input[Sequence[pulumi.Input['AiEndpointWithModelGardenDeploymentDeployConfigDedicatedResourcesAutoscalingMetricSpecArgsDict']]]]
1580
+ """
1581
+ The metric specifications that overrides a resource
1582
+ utilization metric (CPU utilization, accelerator's duty cycle, and so on)
1583
+ target value (default to 60 if not set). At most one entry is allowed per
1584
+ metric.
1585
+ If machine_spec.accelerator_count is
1586
+ above 0, the autoscaling will be based on both CPU utilization and
1587
+ accelerator's duty cycle metrics and scale up when either metrics exceeds
1588
+ its target value while scale down if both metrics are under their target
1589
+ value. The default target value is 60 for both metrics.
1590
+ If machine_spec.accelerator_count is
1591
+ 0, the autoscaling will be based on CPU utilization metric only with
1592
+ default target value 60 if not explicitly set.
1593
+ For example, in the case of Online Prediction, if you want to override
1594
+ target CPU utilization to 80, you should set
1595
+ autoscaling_metric_specs.metric_name
1596
+ to `aiplatform.googleapis.com/prediction/online/cpu/utilization` and
1597
+ autoscaling_metric_specs.target to `80`.
1598
+ Structure is documented below.
1599
+ """
1600
+ max_replica_count: NotRequired[pulumi.Input[_builtins.int]]
1601
+ """
1602
+ The maximum number of replicas that may be deployed on when the traffic
1603
+ against it increases. If the requested value is too large, the deployment
1604
+ will error, but if deployment succeeds then the ability to scale to that
1605
+ many replicas is guaranteed (barring service outages). If traffic increases
1606
+ beyond what its replicas at maximum may handle, a portion of the traffic
1607
+ will be dropped. If this value is not provided, will use
1608
+ min_replica_count as the default value.
1609
+ The value of this field impacts the charge against Vertex CPU and GPU
1610
+ quotas. Specifically, you will be charged for (max_replica_count *
1611
+ number of cores in the selected machine type) and (max_replica_count *
1612
+ number of GPUs per replica in the selected machine type).
1613
+ """
1614
+ required_replica_count: NotRequired[pulumi.Input[_builtins.int]]
1615
+ """
1616
+ Number of required available replicas for the deployment to succeed.
1617
+ This field is only needed when partial deployment/mutation is
1618
+ desired. If set, the deploy/mutate operation will succeed once
1619
+ available_replica_count reaches required_replica_count, and the rest of
1620
+ the replicas will be retried. If not set, the default
1621
+ required_replica_count will be min_replica_count.
1622
+ """
1623
+ spot: NotRequired[pulumi.Input[_builtins.bool]]
1624
+ """
1625
+ If true, schedule the deployment workload on [spot
1626
+ VMs](https://cloud.google.com/kubernetes-engine/docs/concepts/spot-vms).
1627
+ """
1628
+ elif False:
1629
+ AiEndpointWithModelGardenDeploymentDeployConfigDedicatedResourcesArgsDict: TypeAlias = Mapping[str, Any]
1630
+
1631
+ @pulumi.input_type
1632
+ class AiEndpointWithModelGardenDeploymentDeployConfigDedicatedResourcesArgs:
1633
+ def __init__(__self__, *,
1634
+ machine_spec: pulumi.Input['AiEndpointWithModelGardenDeploymentDeployConfigDedicatedResourcesMachineSpecArgs'],
1635
+ min_replica_count: pulumi.Input[_builtins.int],
1636
+ autoscaling_metric_specs: Optional[pulumi.Input[Sequence[pulumi.Input['AiEndpointWithModelGardenDeploymentDeployConfigDedicatedResourcesAutoscalingMetricSpecArgs']]]] = None,
1637
+ max_replica_count: Optional[pulumi.Input[_builtins.int]] = None,
1638
+ required_replica_count: Optional[pulumi.Input[_builtins.int]] = None,
1639
+ spot: Optional[pulumi.Input[_builtins.bool]] = None):
1640
+ """
1641
+ :param pulumi.Input['AiEndpointWithModelGardenDeploymentDeployConfigDedicatedResourcesMachineSpecArgs'] machine_spec: Specification of a single machine.
1642
+ Structure is documented below.
1643
+ :param pulumi.Input[_builtins.int] min_replica_count: The minimum number of machine replicas that will be always deployed on.
1644
+ This value must be greater than or equal to 1.
1645
+ If traffic increases, it may dynamically be deployed onto more replicas,
1646
+ and as traffic decreases, some of these extra replicas may be freed.
1647
+ :param pulumi.Input[Sequence[pulumi.Input['AiEndpointWithModelGardenDeploymentDeployConfigDedicatedResourcesAutoscalingMetricSpecArgs']]] autoscaling_metric_specs: The metric specifications that overrides a resource
1648
+ utilization metric (CPU utilization, accelerator's duty cycle, and so on)
1649
+ target value (default to 60 if not set). At most one entry is allowed per
1650
+ metric.
1651
+ If machine_spec.accelerator_count is
1652
+ above 0, the autoscaling will be based on both CPU utilization and
1653
+ accelerator's duty cycle metrics and scale up when either metrics exceeds
1654
+ its target value while scale down if both metrics are under their target
1655
+ value. The default target value is 60 for both metrics.
1656
+ If machine_spec.accelerator_count is
1657
+ 0, the autoscaling will be based on CPU utilization metric only with
1658
+ default target value 60 if not explicitly set.
1659
+ For example, in the case of Online Prediction, if you want to override
1660
+ target CPU utilization to 80, you should set
1661
+ autoscaling_metric_specs.metric_name
1662
+ to `aiplatform.googleapis.com/prediction/online/cpu/utilization` and
1663
+ autoscaling_metric_specs.target to `80`.
1664
+ Structure is documented below.
1665
+ :param pulumi.Input[_builtins.int] max_replica_count: The maximum number of replicas that may be deployed on when the traffic
1666
+ against it increases. If the requested value is too large, the deployment
1667
+ will error, but if deployment succeeds then the ability to scale to that
1668
+ many replicas is guaranteed (barring service outages). If traffic increases
1669
+ beyond what its replicas at maximum may handle, a portion of the traffic
1670
+ will be dropped. If this value is not provided, will use
1671
+ min_replica_count as the default value.
1672
+ The value of this field impacts the charge against Vertex CPU and GPU
1673
+ quotas. Specifically, you will be charged for (max_replica_count *
1674
+ number of cores in the selected machine type) and (max_replica_count *
1675
+ number of GPUs per replica in the selected machine type).
1676
+ :param pulumi.Input[_builtins.int] required_replica_count: Number of required available replicas for the deployment to succeed.
1677
+ This field is only needed when partial deployment/mutation is
1678
+ desired. If set, the deploy/mutate operation will succeed once
1679
+ available_replica_count reaches required_replica_count, and the rest of
1680
+ the replicas will be retried. If not set, the default
1681
+ required_replica_count will be min_replica_count.
1682
+ :param pulumi.Input[_builtins.bool] spot: If true, schedule the deployment workload on [spot
1683
+ VMs](https://cloud.google.com/kubernetes-engine/docs/concepts/spot-vms).
1684
+ """
1685
+ pulumi.set(__self__, "machine_spec", machine_spec)
1686
+ pulumi.set(__self__, "min_replica_count", min_replica_count)
1687
+ if autoscaling_metric_specs is not None:
1688
+ pulumi.set(__self__, "autoscaling_metric_specs", autoscaling_metric_specs)
1689
+ if max_replica_count is not None:
1690
+ pulumi.set(__self__, "max_replica_count", max_replica_count)
1691
+ if required_replica_count is not None:
1692
+ pulumi.set(__self__, "required_replica_count", required_replica_count)
1693
+ if spot is not None:
1694
+ pulumi.set(__self__, "spot", spot)
1695
+
1696
+ @_builtins.property
1697
+ @pulumi.getter(name="machineSpec")
1698
+ def machine_spec(self) -> pulumi.Input['AiEndpointWithModelGardenDeploymentDeployConfigDedicatedResourcesMachineSpecArgs']:
1699
+ """
1700
+ Specification of a single machine.
1701
+ Structure is documented below.
1702
+ """
1703
+ return pulumi.get(self, "machine_spec")
1704
+
1705
+ @machine_spec.setter
1706
+ def machine_spec(self, value: pulumi.Input['AiEndpointWithModelGardenDeploymentDeployConfigDedicatedResourcesMachineSpecArgs']):
1707
+ pulumi.set(self, "machine_spec", value)
1708
+
1709
+ @_builtins.property
1710
+ @pulumi.getter(name="minReplicaCount")
1711
+ def min_replica_count(self) -> pulumi.Input[_builtins.int]:
1712
+ """
1713
+ The minimum number of machine replicas that will be always deployed on.
1714
+ This value must be greater than or equal to 1.
1715
+ If traffic increases, it may dynamically be deployed onto more replicas,
1716
+ and as traffic decreases, some of these extra replicas may be freed.
1717
+ """
1718
+ return pulumi.get(self, "min_replica_count")
1719
+
1720
+ @min_replica_count.setter
1721
+ def min_replica_count(self, value: pulumi.Input[_builtins.int]):
1722
+ pulumi.set(self, "min_replica_count", value)
1723
+
1724
+ @_builtins.property
1725
+ @pulumi.getter(name="autoscalingMetricSpecs")
1726
+ def autoscaling_metric_specs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AiEndpointWithModelGardenDeploymentDeployConfigDedicatedResourcesAutoscalingMetricSpecArgs']]]]:
1727
+ """
1728
+ The metric specifications that overrides a resource
1729
+ utilization metric (CPU utilization, accelerator's duty cycle, and so on)
1730
+ target value (default to 60 if not set). At most one entry is allowed per
1731
+ metric.
1732
+ If machine_spec.accelerator_count is
1733
+ above 0, the autoscaling will be based on both CPU utilization and
1734
+ accelerator's duty cycle metrics and scale up when either metrics exceeds
1735
+ its target value while scale down if both metrics are under their target
1736
+ value. The default target value is 60 for both metrics.
1737
+ If machine_spec.accelerator_count is
1738
+ 0, the autoscaling will be based on CPU utilization metric only with
1739
+ default target value 60 if not explicitly set.
1740
+ For example, in the case of Online Prediction, if you want to override
1741
+ target CPU utilization to 80, you should set
1742
+ autoscaling_metric_specs.metric_name
1743
+ to `aiplatform.googleapis.com/prediction/online/cpu/utilization` and
1744
+ autoscaling_metric_specs.target to `80`.
1745
+ Structure is documented below.
1746
+ """
1747
+ return pulumi.get(self, "autoscaling_metric_specs")
1748
+
1749
+ @autoscaling_metric_specs.setter
1750
+ def autoscaling_metric_specs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AiEndpointWithModelGardenDeploymentDeployConfigDedicatedResourcesAutoscalingMetricSpecArgs']]]]):
1751
+ pulumi.set(self, "autoscaling_metric_specs", value)
1752
+
1753
+ @_builtins.property
1754
+ @pulumi.getter(name="maxReplicaCount")
1755
+ def max_replica_count(self) -> Optional[pulumi.Input[_builtins.int]]:
1756
+ """
1757
+ The maximum number of replicas that may be deployed on when the traffic
1758
+ against it increases. If the requested value is too large, the deployment
1759
+ will error, but if deployment succeeds then the ability to scale to that
1760
+ many replicas is guaranteed (barring service outages). If traffic increases
1761
+ beyond what its replicas at maximum may handle, a portion of the traffic
1762
+ will be dropped. If this value is not provided, will use
1763
+ min_replica_count as the default value.
1764
+ The value of this field impacts the charge against Vertex CPU and GPU
1765
+ quotas. Specifically, you will be charged for (max_replica_count *
1766
+ number of cores in the selected machine type) and (max_replica_count *
1767
+ number of GPUs per replica in the selected machine type).
1768
+ """
1769
+ return pulumi.get(self, "max_replica_count")
1770
+
1771
+ @max_replica_count.setter
1772
+ def max_replica_count(self, value: Optional[pulumi.Input[_builtins.int]]):
1773
+ pulumi.set(self, "max_replica_count", value)
1774
+
1775
+ @_builtins.property
1776
+ @pulumi.getter(name="requiredReplicaCount")
1777
+ def required_replica_count(self) -> Optional[pulumi.Input[_builtins.int]]:
1778
+ """
1779
+ Number of required available replicas for the deployment to succeed.
1780
+ This field is only needed when partial deployment/mutation is
1781
+ desired. If set, the deploy/mutate operation will succeed once
1782
+ available_replica_count reaches required_replica_count, and the rest of
1783
+ the replicas will be retried. If not set, the default
1784
+ required_replica_count will be min_replica_count.
1785
+ """
1786
+ return pulumi.get(self, "required_replica_count")
1787
+
1788
+ @required_replica_count.setter
1789
+ def required_replica_count(self, value: Optional[pulumi.Input[_builtins.int]]):
1790
+ pulumi.set(self, "required_replica_count", value)
1791
+
1792
+ @_builtins.property
1793
+ @pulumi.getter
1794
+ def spot(self) -> Optional[pulumi.Input[_builtins.bool]]:
1795
+ """
1796
+ If true, schedule the deployment workload on [spot
1797
+ VMs](https://cloud.google.com/kubernetes-engine/docs/concepts/spot-vms).
1798
+ """
1799
+ return pulumi.get(self, "spot")
1800
+
1801
+ @spot.setter
1802
+ def spot(self, value: Optional[pulumi.Input[_builtins.bool]]):
1803
+ pulumi.set(self, "spot", value)
1804
+
1805
+
1806
+ if not MYPY:
1807
+ class AiEndpointWithModelGardenDeploymentDeployConfigDedicatedResourcesAutoscalingMetricSpecArgsDict(TypedDict):
1808
+ metric_name: pulumi.Input[_builtins.str]
1809
+ """
1810
+ The resource metric name.
1811
+ Supported metrics:
1812
+ * For Online Prediction:
1813
+ * `aiplatform.googleapis.com/prediction/online/accelerator/duty_cycle`
1814
+ * `aiplatform.googleapis.com/prediction/online/cpu/utilization`
1815
+ """
1816
+ target: NotRequired[pulumi.Input[_builtins.int]]
1817
+ """
1818
+ The target resource utilization in percentage (1% - 100%) for the given
1819
+ metric; once the real usage deviates from the target by a certain
1820
+ percentage, the machine replicas change. The default value is 60
1821
+ (representing 60%) if not provided.
1822
+ """
1823
+ elif False:
1824
+ AiEndpointWithModelGardenDeploymentDeployConfigDedicatedResourcesAutoscalingMetricSpecArgsDict: TypeAlias = Mapping[str, Any]
1825
+
1826
+ @pulumi.input_type
1827
+ class AiEndpointWithModelGardenDeploymentDeployConfigDedicatedResourcesAutoscalingMetricSpecArgs:
1828
+ def __init__(__self__, *,
1829
+ metric_name: pulumi.Input[_builtins.str],
1830
+ target: Optional[pulumi.Input[_builtins.int]] = None):
1831
+ """
1832
+ :param pulumi.Input[_builtins.str] metric_name: The resource metric name.
1833
+ Supported metrics:
1834
+ * For Online Prediction:
1835
+ * `aiplatform.googleapis.com/prediction/online/accelerator/duty_cycle`
1836
+ * `aiplatform.googleapis.com/prediction/online/cpu/utilization`
1837
+ :param pulumi.Input[_builtins.int] target: The target resource utilization in percentage (1% - 100%) for the given
1838
+ metric; once the real usage deviates from the target by a certain
1839
+ percentage, the machine replicas change. The default value is 60
1840
+ (representing 60%) if not provided.
1841
+ """
1842
+ pulumi.set(__self__, "metric_name", metric_name)
1843
+ if target is not None:
1844
+ pulumi.set(__self__, "target", target)
1845
+
1846
+ @_builtins.property
1847
+ @pulumi.getter(name="metricName")
1848
+ def metric_name(self) -> pulumi.Input[_builtins.str]:
1849
+ """
1850
+ The resource metric name.
1851
+ Supported metrics:
1852
+ * For Online Prediction:
1853
+ * `aiplatform.googleapis.com/prediction/online/accelerator/duty_cycle`
1854
+ * `aiplatform.googleapis.com/prediction/online/cpu/utilization`
1855
+ """
1856
+ return pulumi.get(self, "metric_name")
1857
+
1858
+ @metric_name.setter
1859
+ def metric_name(self, value: pulumi.Input[_builtins.str]):
1860
+ pulumi.set(self, "metric_name", value)
1861
+
1862
+ @_builtins.property
1863
+ @pulumi.getter
1864
+ def target(self) -> Optional[pulumi.Input[_builtins.int]]:
1865
+ """
1866
+ The target resource utilization in percentage (1% - 100%) for the given
1867
+ metric; once the real usage deviates from the target by a certain
1868
+ percentage, the machine replicas change. The default value is 60
1869
+ (representing 60%) if not provided.
1870
+ """
1871
+ return pulumi.get(self, "target")
1872
+
1873
+ @target.setter
1874
+ def target(self, value: Optional[pulumi.Input[_builtins.int]]):
1875
+ pulumi.set(self, "target", value)
1876
+
1877
+
1878
+ if not MYPY:
1879
+ class AiEndpointWithModelGardenDeploymentDeployConfigDedicatedResourcesMachineSpecArgsDict(TypedDict):
1880
+ accelerator_count: NotRequired[pulumi.Input[_builtins.int]]
1881
+ """
1882
+ The number of accelerators to attach to the machine.
1883
+ """
1884
+ accelerator_type: NotRequired[pulumi.Input[_builtins.str]]
1885
+ """
1886
+ Possible values:
1887
+ ACCELERATOR_TYPE_UNSPECIFIED
1888
+ NVIDIA_TESLA_K80
1889
+ NVIDIA_TESLA_P100
1890
+ NVIDIA_TESLA_V100
1891
+ NVIDIA_TESLA_P4
1892
+ NVIDIA_TESLA_T4
1893
+ NVIDIA_TESLA_A100
1894
+ NVIDIA_A100_80GB
1895
+ NVIDIA_L4
1896
+ NVIDIA_H100_80GB
1897
+ NVIDIA_H100_MEGA_80GB
1898
+ NVIDIA_H200_141GB
1899
+ NVIDIA_B200
1900
+ TPU_V2
1901
+ TPU_V3
1902
+ TPU_V4_POD
1903
+ TPU_V5_LITEPOD
1904
+ """
1905
+ machine_type: NotRequired[pulumi.Input[_builtins.str]]
1906
+ """
1907
+ The type of the machine.
1908
+ See the [list of machine types supported for
1909
+ prediction](https://cloud.google.com/vertex-ai/docs/predictions/configure-compute#machine-types)
1910
+ See the [list of machine types supported for custom
1911
+ training](https://cloud.google.com/vertex-ai/docs/training/configure-compute#machine-types).
1912
+ For DeployedModel this field is optional, and the default
1913
+ value is `n1-standard-2`. For BatchPredictionJob or as part of
1914
+ WorkerPoolSpec this field is required.
1915
+ """
1916
+ multihost_gpu_node_count: NotRequired[pulumi.Input[_builtins.int]]
1917
+ """
1918
+ The number of nodes per replica for multihost GPU deployments.
1919
+ """
1920
+ reservation_affinity: NotRequired[pulumi.Input['AiEndpointWithModelGardenDeploymentDeployConfigDedicatedResourcesMachineSpecReservationAffinityArgsDict']]
1921
+ """
1922
+ A ReservationAffinity can be used to configure a Vertex AI resource (e.g., a
1923
+ DeployedModel) to draw its Compute Engine resources from a Shared
1924
+ Reservation, or exclusively from on-demand capacity.
1925
+ Structure is documented below.
1926
+ """
1927
+ tpu_topology: NotRequired[pulumi.Input[_builtins.str]]
1928
+ """
1929
+ The topology of the TPUs. Corresponds to the TPU topologies available from
1930
+ GKE. (Example: tpu_topology: "2x2x1").
1931
+ """
1932
+ elif False:
1933
+ AiEndpointWithModelGardenDeploymentDeployConfigDedicatedResourcesMachineSpecArgsDict: TypeAlias = Mapping[str, Any]
1934
+
1935
+ @pulumi.input_type
1936
+ class AiEndpointWithModelGardenDeploymentDeployConfigDedicatedResourcesMachineSpecArgs:
1937
+ def __init__(__self__, *,
1938
+ accelerator_count: Optional[pulumi.Input[_builtins.int]] = None,
1939
+ accelerator_type: Optional[pulumi.Input[_builtins.str]] = None,
1940
+ machine_type: Optional[pulumi.Input[_builtins.str]] = None,
1941
+ multihost_gpu_node_count: Optional[pulumi.Input[_builtins.int]] = None,
1942
+ reservation_affinity: Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentDeployConfigDedicatedResourcesMachineSpecReservationAffinityArgs']] = None,
1943
+ tpu_topology: Optional[pulumi.Input[_builtins.str]] = None):
1944
+ """
1945
+ :param pulumi.Input[_builtins.int] accelerator_count: The number of accelerators to attach to the machine.
1946
+ :param pulumi.Input[_builtins.str] accelerator_type: Possible values:
1947
+ ACCELERATOR_TYPE_UNSPECIFIED
1948
+ NVIDIA_TESLA_K80
1949
+ NVIDIA_TESLA_P100
1950
+ NVIDIA_TESLA_V100
1951
+ NVIDIA_TESLA_P4
1952
+ NVIDIA_TESLA_T4
1953
+ NVIDIA_TESLA_A100
1954
+ NVIDIA_A100_80GB
1955
+ NVIDIA_L4
1956
+ NVIDIA_H100_80GB
1957
+ NVIDIA_H100_MEGA_80GB
1958
+ NVIDIA_H200_141GB
1959
+ NVIDIA_B200
1960
+ TPU_V2
1961
+ TPU_V3
1962
+ TPU_V4_POD
1963
+ TPU_V5_LITEPOD
1964
+ :param pulumi.Input[_builtins.str] machine_type: The type of the machine.
1965
+ See the [list of machine types supported for
1966
+ prediction](https://cloud.google.com/vertex-ai/docs/predictions/configure-compute#machine-types)
1967
+ See the [list of machine types supported for custom
1968
+ training](https://cloud.google.com/vertex-ai/docs/training/configure-compute#machine-types).
1969
+ For DeployedModel this field is optional, and the default
1970
+ value is `n1-standard-2`. For BatchPredictionJob or as part of
1971
+ WorkerPoolSpec this field is required.
1972
+ :param pulumi.Input[_builtins.int] multihost_gpu_node_count: The number of nodes per replica for multihost GPU deployments.
1973
+ :param pulumi.Input['AiEndpointWithModelGardenDeploymentDeployConfigDedicatedResourcesMachineSpecReservationAffinityArgs'] reservation_affinity: A ReservationAffinity can be used to configure a Vertex AI resource (e.g., a
1974
+ DeployedModel) to draw its Compute Engine resources from a Shared
1975
+ Reservation, or exclusively from on-demand capacity.
1976
+ Structure is documented below.
1977
+ :param pulumi.Input[_builtins.str] tpu_topology: The topology of the TPUs. Corresponds to the TPU topologies available from
1978
+ GKE. (Example: tpu_topology: "2x2x1").
1979
+ """
1980
+ if accelerator_count is not None:
1981
+ pulumi.set(__self__, "accelerator_count", accelerator_count)
1982
+ if accelerator_type is not None:
1983
+ pulumi.set(__self__, "accelerator_type", accelerator_type)
1984
+ if machine_type is not None:
1985
+ pulumi.set(__self__, "machine_type", machine_type)
1986
+ if multihost_gpu_node_count is not None:
1987
+ pulumi.set(__self__, "multihost_gpu_node_count", multihost_gpu_node_count)
1988
+ if reservation_affinity is not None:
1989
+ pulumi.set(__self__, "reservation_affinity", reservation_affinity)
1990
+ if tpu_topology is not None:
1991
+ pulumi.set(__self__, "tpu_topology", tpu_topology)
1992
+
1993
+ @_builtins.property
1994
+ @pulumi.getter(name="acceleratorCount")
1995
+ def accelerator_count(self) -> Optional[pulumi.Input[_builtins.int]]:
1996
+ """
1997
+ The number of accelerators to attach to the machine.
1998
+ """
1999
+ return pulumi.get(self, "accelerator_count")
2000
+
2001
+ @accelerator_count.setter
2002
+ def accelerator_count(self, value: Optional[pulumi.Input[_builtins.int]]):
2003
+ pulumi.set(self, "accelerator_count", value)
2004
+
2005
+ @_builtins.property
2006
+ @pulumi.getter(name="acceleratorType")
2007
+ def accelerator_type(self) -> Optional[pulumi.Input[_builtins.str]]:
2008
+ """
2009
+ Possible values:
2010
+ ACCELERATOR_TYPE_UNSPECIFIED
2011
+ NVIDIA_TESLA_K80
2012
+ NVIDIA_TESLA_P100
2013
+ NVIDIA_TESLA_V100
2014
+ NVIDIA_TESLA_P4
2015
+ NVIDIA_TESLA_T4
2016
+ NVIDIA_TESLA_A100
2017
+ NVIDIA_A100_80GB
2018
+ NVIDIA_L4
2019
+ NVIDIA_H100_80GB
2020
+ NVIDIA_H100_MEGA_80GB
2021
+ NVIDIA_H200_141GB
2022
+ NVIDIA_B200
2023
+ TPU_V2
2024
+ TPU_V3
2025
+ TPU_V4_POD
2026
+ TPU_V5_LITEPOD
2027
+ """
2028
+ return pulumi.get(self, "accelerator_type")
2029
+
2030
+ @accelerator_type.setter
2031
+ def accelerator_type(self, value: Optional[pulumi.Input[_builtins.str]]):
2032
+ pulumi.set(self, "accelerator_type", value)
2033
+
2034
+ @_builtins.property
2035
+ @pulumi.getter(name="machineType")
2036
+ def machine_type(self) -> Optional[pulumi.Input[_builtins.str]]:
2037
+ """
2038
+ The type of the machine.
2039
+ See the [list of machine types supported for
2040
+ prediction](https://cloud.google.com/vertex-ai/docs/predictions/configure-compute#machine-types)
2041
+ See the [list of machine types supported for custom
2042
+ training](https://cloud.google.com/vertex-ai/docs/training/configure-compute#machine-types).
2043
+ For DeployedModel this field is optional, and the default
2044
+ value is `n1-standard-2`. For BatchPredictionJob or as part of
2045
+ WorkerPoolSpec this field is required.
2046
+ """
2047
+ return pulumi.get(self, "machine_type")
2048
+
2049
+ @machine_type.setter
2050
+ def machine_type(self, value: Optional[pulumi.Input[_builtins.str]]):
2051
+ pulumi.set(self, "machine_type", value)
2052
+
2053
+ @_builtins.property
2054
+ @pulumi.getter(name="multihostGpuNodeCount")
2055
+ def multihost_gpu_node_count(self) -> Optional[pulumi.Input[_builtins.int]]:
2056
+ """
2057
+ The number of nodes per replica for multihost GPU deployments.
2058
+ """
2059
+ return pulumi.get(self, "multihost_gpu_node_count")
2060
+
2061
+ @multihost_gpu_node_count.setter
2062
+ def multihost_gpu_node_count(self, value: Optional[pulumi.Input[_builtins.int]]):
2063
+ pulumi.set(self, "multihost_gpu_node_count", value)
2064
+
2065
+ @_builtins.property
2066
+ @pulumi.getter(name="reservationAffinity")
2067
+ def reservation_affinity(self) -> Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentDeployConfigDedicatedResourcesMachineSpecReservationAffinityArgs']]:
2068
+ """
2069
+ A ReservationAffinity can be used to configure a Vertex AI resource (e.g., a
2070
+ DeployedModel) to draw its Compute Engine resources from a Shared
2071
+ Reservation, or exclusively from on-demand capacity.
2072
+ Structure is documented below.
2073
+ """
2074
+ return pulumi.get(self, "reservation_affinity")
2075
+
2076
+ @reservation_affinity.setter
2077
+ def reservation_affinity(self, value: Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentDeployConfigDedicatedResourcesMachineSpecReservationAffinityArgs']]):
2078
+ pulumi.set(self, "reservation_affinity", value)
2079
+
2080
+ @_builtins.property
2081
+ @pulumi.getter(name="tpuTopology")
2082
+ def tpu_topology(self) -> Optional[pulumi.Input[_builtins.str]]:
2083
+ """
2084
+ The topology of the TPUs. Corresponds to the TPU topologies available from
2085
+ GKE. (Example: tpu_topology: "2x2x1").
2086
+ """
2087
+ return pulumi.get(self, "tpu_topology")
2088
+
2089
+ @tpu_topology.setter
2090
+ def tpu_topology(self, value: Optional[pulumi.Input[_builtins.str]]):
2091
+ pulumi.set(self, "tpu_topology", value)
2092
+
2093
+
2094
+ if not MYPY:
2095
+ class AiEndpointWithModelGardenDeploymentDeployConfigDedicatedResourcesMachineSpecReservationAffinityArgsDict(TypedDict):
2096
+ reservation_affinity_type: pulumi.Input[_builtins.str]
2097
+ """
2098
+ Specifies the reservation affinity type.
2099
+ Possible values:
2100
+ TYPE_UNSPECIFIED
2101
+ NO_RESERVATION
2102
+ ANY_RESERVATION
2103
+ SPECIFIC_RESERVATION
2104
+ """
2105
+ key: NotRequired[pulumi.Input[_builtins.str]]
2106
+ """
2107
+ Corresponds to the label key of a reservation resource. To target a
2108
+ SPECIFIC_RESERVATION by name, use `compute.googleapis.com/reservation-name`
2109
+ as the key and specify the name of your reservation as its value.
2110
+ """
2111
+ values: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
2112
+ """
2113
+ Corresponds to the label values of a reservation resource. This must be the
2114
+ full resource name of the reservation or reservation block.
2115
+ """
2116
+ elif False:
2117
+ AiEndpointWithModelGardenDeploymentDeployConfigDedicatedResourcesMachineSpecReservationAffinityArgsDict: TypeAlias = Mapping[str, Any]
2118
+
2119
+ @pulumi.input_type
2120
+ class AiEndpointWithModelGardenDeploymentDeployConfigDedicatedResourcesMachineSpecReservationAffinityArgs:
2121
+ def __init__(__self__, *,
2122
+ reservation_affinity_type: pulumi.Input[_builtins.str],
2123
+ key: Optional[pulumi.Input[_builtins.str]] = None,
2124
+ values: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
2125
+ """
2126
+ :param pulumi.Input[_builtins.str] reservation_affinity_type: Specifies the reservation affinity type.
2127
+ Possible values:
2128
+ TYPE_UNSPECIFIED
2129
+ NO_RESERVATION
2130
+ ANY_RESERVATION
2131
+ SPECIFIC_RESERVATION
2132
+ :param pulumi.Input[_builtins.str] key: Corresponds to the label key of a reservation resource. To target a
2133
+ SPECIFIC_RESERVATION by name, use `compute.googleapis.com/reservation-name`
2134
+ as the key and specify the name of your reservation as its value.
2135
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] values: Corresponds to the label values of a reservation resource. This must be the
2136
+ full resource name of the reservation or reservation block.
2137
+ """
2138
+ pulumi.set(__self__, "reservation_affinity_type", reservation_affinity_type)
2139
+ if key is not None:
2140
+ pulumi.set(__self__, "key", key)
2141
+ if values is not None:
2142
+ pulumi.set(__self__, "values", values)
2143
+
2144
+ @_builtins.property
2145
+ @pulumi.getter(name="reservationAffinityType")
2146
+ def reservation_affinity_type(self) -> pulumi.Input[_builtins.str]:
2147
+ """
2148
+ Specifies the reservation affinity type.
2149
+ Possible values:
2150
+ TYPE_UNSPECIFIED
2151
+ NO_RESERVATION
2152
+ ANY_RESERVATION
2153
+ SPECIFIC_RESERVATION
2154
+ """
2155
+ return pulumi.get(self, "reservation_affinity_type")
2156
+
2157
+ @reservation_affinity_type.setter
2158
+ def reservation_affinity_type(self, value: pulumi.Input[_builtins.str]):
2159
+ pulumi.set(self, "reservation_affinity_type", value)
2160
+
2161
+ @_builtins.property
2162
+ @pulumi.getter
2163
+ def key(self) -> Optional[pulumi.Input[_builtins.str]]:
2164
+ """
2165
+ Corresponds to the label key of a reservation resource. To target a
2166
+ SPECIFIC_RESERVATION by name, use `compute.googleapis.com/reservation-name`
2167
+ as the key and specify the name of your reservation as its value.
2168
+ """
2169
+ return pulumi.get(self, "key")
2170
+
2171
+ @key.setter
2172
+ def key(self, value: Optional[pulumi.Input[_builtins.str]]):
2173
+ pulumi.set(self, "key", value)
2174
+
2175
+ @_builtins.property
2176
+ @pulumi.getter
2177
+ def values(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
2178
+ """
2179
+ Corresponds to the label values of a reservation resource. This must be the
2180
+ full resource name of the reservation or reservation block.
2181
+ """
2182
+ return pulumi.get(self, "values")
2183
+
2184
+ @values.setter
2185
+ def values(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
2186
+ pulumi.set(self, "values", value)
2187
+
2188
+
2189
+ if not MYPY:
2190
+ class AiEndpointWithModelGardenDeploymentEndpointConfigArgsDict(TypedDict):
2191
+ dedicated_endpoint_enabled: NotRequired[pulumi.Input[_builtins.bool]]
2192
+ """
2193
+ If true, the endpoint will be exposed through a dedicated
2194
+ DNS [Endpoint.dedicated_endpoint_dns]. Your request to the dedicated DNS
2195
+ will be isolated from other users' traffic and will have better
2196
+ performance and reliability. Note: Once you enabled dedicated endpoint,
2197
+ you won't be able to send request to the shared DNS
2198
+ {region}-aiplatform.googleapis.com. The limitations will be removed soon.
2199
+ """
2200
+ endpoint_display_name: NotRequired[pulumi.Input[_builtins.str]]
2201
+ """
2202
+ The user-specified display name of the endpoint. If not set, a
2203
+ default name will be used.
2204
+ """
2205
+ elif False:
2206
+ AiEndpointWithModelGardenDeploymentEndpointConfigArgsDict: TypeAlias = Mapping[str, Any]
2207
+
2208
+ @pulumi.input_type
2209
+ class AiEndpointWithModelGardenDeploymentEndpointConfigArgs:
2210
+ def __init__(__self__, *,
2211
+ dedicated_endpoint_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
2212
+ endpoint_display_name: Optional[pulumi.Input[_builtins.str]] = None):
2213
+ """
2214
+ :param pulumi.Input[_builtins.bool] dedicated_endpoint_enabled: If true, the endpoint will be exposed through a dedicated
2215
+ DNS [Endpoint.dedicated_endpoint_dns]. Your request to the dedicated DNS
2216
+ will be isolated from other users' traffic and will have better
2217
+ performance and reliability. Note: Once you enabled dedicated endpoint,
2218
+ you won't be able to send request to the shared DNS
2219
+ {region}-aiplatform.googleapis.com. The limitations will be removed soon.
2220
+ :param pulumi.Input[_builtins.str] endpoint_display_name: The user-specified display name of the endpoint. If not set, a
2221
+ default name will be used.
2222
+ """
2223
+ if dedicated_endpoint_enabled is not None:
2224
+ pulumi.set(__self__, "dedicated_endpoint_enabled", dedicated_endpoint_enabled)
2225
+ if endpoint_display_name is not None:
2226
+ pulumi.set(__self__, "endpoint_display_name", endpoint_display_name)
2227
+
2228
+ @_builtins.property
2229
+ @pulumi.getter(name="dedicatedEndpointEnabled")
2230
+ def dedicated_endpoint_enabled(self) -> Optional[pulumi.Input[_builtins.bool]]:
2231
+ """
2232
+ If true, the endpoint will be exposed through a dedicated
2233
+ DNS [Endpoint.dedicated_endpoint_dns]. Your request to the dedicated DNS
2234
+ will be isolated from other users' traffic and will have better
2235
+ performance and reliability. Note: Once you enabled dedicated endpoint,
2236
+ you won't be able to send request to the shared DNS
2237
+ {region}-aiplatform.googleapis.com. The limitations will be removed soon.
2238
+ """
2239
+ return pulumi.get(self, "dedicated_endpoint_enabled")
2240
+
2241
+ @dedicated_endpoint_enabled.setter
2242
+ def dedicated_endpoint_enabled(self, value: Optional[pulumi.Input[_builtins.bool]]):
2243
+ pulumi.set(self, "dedicated_endpoint_enabled", value)
2244
+
2245
+ @_builtins.property
2246
+ @pulumi.getter(name="endpointDisplayName")
2247
+ def endpoint_display_name(self) -> Optional[pulumi.Input[_builtins.str]]:
2248
+ """
2249
+ The user-specified display name of the endpoint. If not set, a
2250
+ default name will be used.
2251
+ """
2252
+ return pulumi.get(self, "endpoint_display_name")
2253
+
2254
+ @endpoint_display_name.setter
2255
+ def endpoint_display_name(self, value: Optional[pulumi.Input[_builtins.str]]):
2256
+ pulumi.set(self, "endpoint_display_name", value)
2257
+
2258
+
2259
+ if not MYPY:
2260
+ class AiEndpointWithModelGardenDeploymentModelConfigArgsDict(TypedDict):
2261
+ accept_eula: NotRequired[pulumi.Input[_builtins.bool]]
2262
+ """
2263
+ Whether the user accepts the End User License Agreement (EULA)
2264
+ for the model.
2265
+ """
2266
+ container_spec: NotRequired[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecArgsDict']]
2267
+ """
2268
+ Specification of a container for serving predictions. Some fields in this
2269
+ message correspond to fields in the [Kubernetes Container v1 core
2270
+ specification](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core).
2271
+ Structure is documented below.
2272
+ """
2273
+ hugging_face_access_token: NotRequired[pulumi.Input[_builtins.str]]
2274
+ """
2275
+ The Hugging Face read access token used to access the model
2276
+ artifacts of gated models.
2277
+ """
2278
+ hugging_face_cache_enabled: NotRequired[pulumi.Input[_builtins.bool]]
2279
+ """
2280
+ If true, the model will deploy with a cached version instead of directly
2281
+ downloading the model artifacts from Hugging Face. This is suitable for
2282
+ VPC-SC users with limited internet access.
2283
+ """
2284
+ model_display_name: NotRequired[pulumi.Input[_builtins.str]]
2285
+ """
2286
+ The user-specified display name of the uploaded model. If not
2287
+ set, a default name will be used.
2288
+ """
2289
+ elif False:
2290
+ AiEndpointWithModelGardenDeploymentModelConfigArgsDict: TypeAlias = Mapping[str, Any]
2291
+
2292
+ @pulumi.input_type
2293
+ class AiEndpointWithModelGardenDeploymentModelConfigArgs:
2294
+ def __init__(__self__, *,
2295
+ accept_eula: Optional[pulumi.Input[_builtins.bool]] = None,
2296
+ container_spec: Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecArgs']] = None,
2297
+ hugging_face_access_token: Optional[pulumi.Input[_builtins.str]] = None,
2298
+ hugging_face_cache_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
2299
+ model_display_name: Optional[pulumi.Input[_builtins.str]] = None):
2300
+ """
2301
+ :param pulumi.Input[_builtins.bool] accept_eula: Whether the user accepts the End User License Agreement (EULA)
2302
+ for the model.
2303
+ :param pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecArgs'] container_spec: Specification of a container for serving predictions. Some fields in this
2304
+ message correspond to fields in the [Kubernetes Container v1 core
2305
+ specification](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core).
2306
+ Structure is documented below.
2307
+ :param pulumi.Input[_builtins.str] hugging_face_access_token: The Hugging Face read access token used to access the model
2308
+ artifacts of gated models.
2309
+ :param pulumi.Input[_builtins.bool] hugging_face_cache_enabled: If true, the model will deploy with a cached version instead of directly
2310
+ downloading the model artifacts from Hugging Face. This is suitable for
2311
+ VPC-SC users with limited internet access.
2312
+ :param pulumi.Input[_builtins.str] model_display_name: The user-specified display name of the uploaded model. If not
2313
+ set, a default name will be used.
2314
+ """
2315
+ if accept_eula is not None:
2316
+ pulumi.set(__self__, "accept_eula", accept_eula)
2317
+ if container_spec is not None:
2318
+ pulumi.set(__self__, "container_spec", container_spec)
2319
+ if hugging_face_access_token is not None:
2320
+ pulumi.set(__self__, "hugging_face_access_token", hugging_face_access_token)
2321
+ if hugging_face_cache_enabled is not None:
2322
+ pulumi.set(__self__, "hugging_face_cache_enabled", hugging_face_cache_enabled)
2323
+ if model_display_name is not None:
2324
+ pulumi.set(__self__, "model_display_name", model_display_name)
2325
+
2326
+ @_builtins.property
2327
+ @pulumi.getter(name="acceptEula")
2328
+ def accept_eula(self) -> Optional[pulumi.Input[_builtins.bool]]:
2329
+ """
2330
+ Whether the user accepts the End User License Agreement (EULA)
2331
+ for the model.
2332
+ """
2333
+ return pulumi.get(self, "accept_eula")
2334
+
2335
+ @accept_eula.setter
2336
+ def accept_eula(self, value: Optional[pulumi.Input[_builtins.bool]]):
2337
+ pulumi.set(self, "accept_eula", value)
2338
+
2339
+ @_builtins.property
2340
+ @pulumi.getter(name="containerSpec")
2341
+ def container_spec(self) -> Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecArgs']]:
2342
+ """
2343
+ Specification of a container for serving predictions. Some fields in this
2344
+ message correspond to fields in the [Kubernetes Container v1 core
2345
+ specification](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core).
2346
+ Structure is documented below.
2347
+ """
2348
+ return pulumi.get(self, "container_spec")
2349
+
2350
+ @container_spec.setter
2351
+ def container_spec(self, value: Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecArgs']]):
2352
+ pulumi.set(self, "container_spec", value)
2353
+
2354
+ @_builtins.property
2355
+ @pulumi.getter(name="huggingFaceAccessToken")
2356
+ def hugging_face_access_token(self) -> Optional[pulumi.Input[_builtins.str]]:
2357
+ """
2358
+ The Hugging Face read access token used to access the model
2359
+ artifacts of gated models.
2360
+ """
2361
+ return pulumi.get(self, "hugging_face_access_token")
2362
+
2363
+ @hugging_face_access_token.setter
2364
+ def hugging_face_access_token(self, value: Optional[pulumi.Input[_builtins.str]]):
2365
+ pulumi.set(self, "hugging_face_access_token", value)
2366
+
2367
+ @_builtins.property
2368
+ @pulumi.getter(name="huggingFaceCacheEnabled")
2369
+ def hugging_face_cache_enabled(self) -> Optional[pulumi.Input[_builtins.bool]]:
2370
+ """
2371
+ If true, the model will deploy with a cached version instead of directly
2372
+ downloading the model artifacts from Hugging Face. This is suitable for
2373
+ VPC-SC users with limited internet access.
2374
+ """
2375
+ return pulumi.get(self, "hugging_face_cache_enabled")
2376
+
2377
+ @hugging_face_cache_enabled.setter
2378
+ def hugging_face_cache_enabled(self, value: Optional[pulumi.Input[_builtins.bool]]):
2379
+ pulumi.set(self, "hugging_face_cache_enabled", value)
2380
+
2381
+ @_builtins.property
2382
+ @pulumi.getter(name="modelDisplayName")
2383
+ def model_display_name(self) -> Optional[pulumi.Input[_builtins.str]]:
2384
+ """
2385
+ The user-specified display name of the uploaded model. If not
2386
+ set, a default name will be used.
2387
+ """
2388
+ return pulumi.get(self, "model_display_name")
2389
+
2390
+ @model_display_name.setter
2391
+ def model_display_name(self, value: Optional[pulumi.Input[_builtins.str]]):
2392
+ pulumi.set(self, "model_display_name", value)
2393
+
2394
+
2395
+ if not MYPY:
2396
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecArgsDict(TypedDict):
2397
+ image_uri: pulumi.Input[_builtins.str]
2398
+ """
2399
+ URI of the Docker image to be used as the custom container for serving
2400
+ predictions. This URI must identify an image in Artifact Registry or
2401
+ Container Registry. Learn more about the [container publishing
2402
+ requirements](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#publishing),
2403
+ including permissions requirements for the Vertex AI Service Agent.
2404
+ The container image is ingested upon ModelService.UploadModel, stored
2405
+ internally, and this original path is afterwards not used.
2406
+ To learn about the requirements for the Docker image itself, see
2407
+ [Custom container
2408
+ requirements](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#).
2409
+ You can use the URI to one of Vertex AI's [pre-built container images for
2410
+ prediction](https://cloud.google.com/vertex-ai/docs/predictions/pre-built-containers)
2411
+ in this field.
2412
+ """
2413
+ args: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
2414
+ """
2415
+ Specifies arguments for the command that runs when the container starts.
2416
+ This overrides the container's
2417
+ [`CMD`](https://docs.docker.com/engine/reference/builder/#cmd). Specify
2418
+ this field as an array of executable and arguments, similar to a Docker
2419
+ `CMD`'s "default parameters" form.
2420
+ If you don't specify this field but do specify the
2421
+ command field, then the command from the
2422
+ `command` field runs without any additional arguments. See the
2423
+ [Kubernetes documentation about how the
2424
+ `command` and `args` fields interact with a container's `ENTRYPOINT` and
2425
+ `CMD`](https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#notes).
2426
+ If you don't specify this field and don't specify the `command` field,
2427
+ then the container's
2428
+ [`ENTRYPOINT`](https://docs.docker.com/engine/reference/builder/#cmd) and
2429
+ `CMD` determine what runs based on their default behavior. See the Docker
2430
+ documentation about [how `CMD` and `ENTRYPOINT`
2431
+ interact](https://docs.docker.com/engine/reference/builder/#understand-how-cmd-and-entrypoint-interact).
2432
+ In this field, you can reference [environment variables
2433
+ set by Vertex
2434
+ AI](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables)
2435
+ and environment variables set in the env field.
2436
+ You cannot reference environment variables set in the Docker image. In
2437
+ order for environment variables to be expanded, reference them by using the
2438
+ following syntax:$(VARIABLE_NAME)
2439
+ Note that this differs from Bash variable expansion, which does not use
2440
+ parentheses. If a variable cannot be resolved, the reference in the input
2441
+ string is used unchanged. To avoid variable expansion, you can escape this
2442
+ syntax with `$$`; for example:$$(VARIABLE_NAME)
2443
+ This field corresponds to the `args` field of the Kubernetes Containers
2444
+ [v1 core
2445
+ API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core).
2446
+ """
2447
+ commands: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
2448
+ """
2449
+ Specifies the command that runs when the container starts. This overrides
2450
+ the container's
2451
+ [ENTRYPOINT](https://docs.docker.com/engine/reference/builder/#entrypoint).
2452
+ Specify this field as an array of executable and arguments, similar to a
2453
+ Docker `ENTRYPOINT`'s "exec" form, not its "shell" form.
2454
+ If you do not specify this field, then the container's `ENTRYPOINT` runs,
2455
+ in conjunction with the args field or the
2456
+ container's [`CMD`](https://docs.docker.com/engine/reference/builder/#cmd),
2457
+ if either exists. If this field is not specified and the container does not
2458
+ have an `ENTRYPOINT`, then refer to the Docker documentation about [how
2459
+ `CMD` and `ENTRYPOINT`
2460
+ interact](https://docs.docker.com/engine/reference/builder/#understand-how-cmd-and-entrypoint-interact).
2461
+ If you specify this field, then you can also specify the `args` field to
2462
+ provide additional arguments for this command. However, if you specify this
2463
+ field, then the container's `CMD` is ignored. See the
2464
+ [Kubernetes documentation about how the
2465
+ `command` and `args` fields interact with a container's `ENTRYPOINT` and
2466
+ `CMD`](https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#notes).
2467
+ In this field, you can reference [environment variables set by Vertex
2468
+ AI](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables)
2469
+ and environment variables set in the env field.
2470
+ You cannot reference environment variables set in the Docker image. In
2471
+ order for environment variables to be expanded, reference them by using the
2472
+ following syntax:$(VARIABLE_NAME)
2473
+ Note that this differs from Bash variable expansion, which does not use
2474
+ parentheses. If a variable cannot be resolved, the reference in the input
2475
+ string is used unchanged. To avoid variable expansion, you can escape this
2476
+ syntax with `$$`; for example:$$(VARIABLE_NAME)
2477
+ This field corresponds to the `command` field of the Kubernetes Containers
2478
+ [v1 core
2479
+ API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core).
2480
+ """
2481
+ deployment_timeout: NotRequired[pulumi.Input[_builtins.str]]
2482
+ """
2483
+ Deployment timeout.
2484
+ Limit for deployment timeout is 2 hours.
2485
+ """
2486
+ envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecEnvArgsDict']]]]
2487
+ """
2488
+ List of environment variables to set in the container. After the container
2489
+ starts running, code running in the container can read these environment
2490
+ variables.
2491
+ Additionally, the command and
2492
+ args fields can reference these variables. Later
2493
+ entries in this list can also reference earlier entries. For example, the
2494
+ following example sets the variable `VAR_2` to have the value `foo bar`:
2495
+ ```json
2496
+ [
2497
+ {
2498
+ "name": "VAR_1",
2499
+ "value": "foo"
2500
+ },
2501
+ {
2502
+ "name": "VAR_2",
2503
+ "value": "$(VAR_1) bar"
2504
+ }
2505
+ ]
2506
+ ```
2507
+ If you switch the order of the variables in the example, then the expansion
2508
+ does not occur.
2509
+ This field corresponds to the `env` field of the Kubernetes Containers
2510
+ [v1 core
2511
+ API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core).
2512
+ Structure is documented below.
2513
+ """
2514
+ grpc_ports: NotRequired[pulumi.Input[Sequence[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecGrpcPortArgsDict']]]]
2515
+ """
2516
+ List of ports to expose from the container. Vertex AI sends gRPC
2517
+ prediction requests that it receives to the first port on this list. Vertex
2518
+ AI also sends liveness and health checks to this port.
2519
+ If you do not specify this field, gRPC requests to the container will be
2520
+ disabled.
2521
+ Vertex AI does not use ports other than the first one listed. This field
2522
+ corresponds to the `ports` field of the Kubernetes Containers v1 core API.
2523
+ Structure is documented below.
2524
+ """
2525
+ health_probe: NotRequired[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeArgsDict']]
2526
+ """
2527
+ Probe describes a health check to be performed against a container to
2528
+ determine whether it is alive or ready to receive traffic.
2529
+ Structure is documented below.
2530
+ """
2531
+ health_route: NotRequired[pulumi.Input[_builtins.str]]
2532
+ """
2533
+ HTTP path on the container to send health checks to. Vertex AI
2534
+ intermittently sends GET requests to this path on the container's IP
2535
+ address and port to check that the container is healthy. Read more about
2536
+ [health
2537
+ checks](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#health).
2538
+ For example, if you set this field to `/bar`, then Vertex AI
2539
+ intermittently sends a GET request to the `/bar` path on the port of your
2540
+ container specified by the first value of this `ModelContainerSpec`'s
2541
+ ports field.
2542
+ If you don't specify this field, it defaults to the following value when
2543
+ you deploy this Model to an Endpoint:/v1/endpoints/ENDPOINT/deployedModels/DEPLOYED_MODEL:predict
2544
+ The placeholders in this value are replaced as follows:
2545
+ * ENDPOINT: The last segment (following `endpoints/`)of the
2546
+ Endpoint.name][] field of the Endpoint where this Model has been
2547
+ deployed. (Vertex AI makes this value available to your container code
2548
+ as the [`AIP_ENDPOINT_ID` environment
2549
+ variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).)
2550
+ * DEPLOYED_MODEL: DeployedModel.id of the `DeployedModel`.
2551
+ (Vertex AI makes this value available to your container code as the
2552
+ [`AIP_DEPLOYED_MODEL_ID` environment
2553
+ variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).)
2554
+ """
2555
+ liveness_probe: NotRequired[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeArgsDict']]
2556
+ """
2557
+ Probe describes a health check to be performed against a container to
2558
+ determine whether it is alive or ready to receive traffic.
2559
+ Structure is documented below.
2560
+ """
2561
+ ports: NotRequired[pulumi.Input[Sequence[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecPortArgsDict']]]]
2562
+ """
2563
+ List of ports to expose from the container. Vertex AI sends any
2564
+ prediction requests that it receives to the first port on this list. Vertex
2565
+ AI also sends
2566
+ [liveness and health
2567
+ checks](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#liveness)
2568
+ to this port.
2569
+ If you do not specify this field, it defaults to following value:
2570
+ ```json
2571
+ [
2572
+ {
2573
+ "containerPort": 8080
2574
+ }
2575
+ ]
2576
+ ```
2577
+ Vertex AI does not use ports other than the first one listed. This field
2578
+ corresponds to the `ports` field of the Kubernetes Containers
2579
+ [v1 core
2580
+ API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core).
2581
+ Structure is documented below.
2582
+ """
2583
+ predict_route: NotRequired[pulumi.Input[_builtins.str]]
2584
+ """
2585
+ HTTP path on the container to send prediction requests to. Vertex AI
2586
+ forwards requests sent using
2587
+ projects.locations.endpoints.predict to this
2588
+ path on the container's IP address and port. Vertex AI then returns the
2589
+ container's response in the API response.
2590
+ For example, if you set this field to `/foo`, then when Vertex AI
2591
+ receives a prediction request, it forwards the request body in a POST
2592
+ request to the `/foo` path on the port of your container specified by the
2593
+ first value of this `ModelContainerSpec`'s
2594
+ ports field.
2595
+ If you don't specify this field, it defaults to the following value when
2596
+ you deploy this Model to an Endpoint:/v1/endpoints/ENDPOINT/deployedModels/DEPLOYED_MODEL:predict
2597
+ The placeholders in this value are replaced as follows:
2598
+ * ENDPOINT: The last segment (following `endpoints/`)of the
2599
+ Endpoint.name][] field of the Endpoint where this Model has been
2600
+ deployed. (Vertex AI makes this value available to your container code
2601
+ as the [`AIP_ENDPOINT_ID` environment
2602
+ variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).)
2603
+ * DEPLOYED_MODEL: DeployedModel.id of the `DeployedModel`.
2604
+ (Vertex AI makes this value available to your container code
2605
+ as the [`AIP_DEPLOYED_MODEL_ID` environment
2606
+ variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).)
2607
+ """
2608
+ shared_memory_size_mb: NotRequired[pulumi.Input[_builtins.str]]
2609
+ """
2610
+ The amount of the VM memory to reserve as the shared memory for the model
2611
+ in megabytes.
2612
+ """
2613
+ startup_probe: NotRequired[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeArgsDict']]
2614
+ """
2615
+ Probe describes a health check to be performed against a container to
2616
+ determine whether it is alive or ready to receive traffic.
2617
+ Structure is documented below.
2618
+ """
2619
+ elif False:
2620
+ AiEndpointWithModelGardenDeploymentModelConfigContainerSpecArgsDict: TypeAlias = Mapping[str, Any]
2621
+
2622
+ @pulumi.input_type
2623
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecArgs:
2624
+ def __init__(__self__, *,
2625
+ image_uri: pulumi.Input[_builtins.str],
2626
+ args: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
2627
+ commands: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
2628
+ deployment_timeout: Optional[pulumi.Input[_builtins.str]] = None,
2629
+ envs: Optional[pulumi.Input[Sequence[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecEnvArgs']]]] = None,
2630
+ grpc_ports: Optional[pulumi.Input[Sequence[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecGrpcPortArgs']]]] = None,
2631
+ health_probe: Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeArgs']] = None,
2632
+ health_route: Optional[pulumi.Input[_builtins.str]] = None,
2633
+ liveness_probe: Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeArgs']] = None,
2634
+ ports: Optional[pulumi.Input[Sequence[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecPortArgs']]]] = None,
2635
+ predict_route: Optional[pulumi.Input[_builtins.str]] = None,
2636
+ shared_memory_size_mb: Optional[pulumi.Input[_builtins.str]] = None,
2637
+ startup_probe: Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeArgs']] = None):
2638
+ """
2639
+ :param pulumi.Input[_builtins.str] image_uri: URI of the Docker image to be used as the custom container for serving
2640
+ predictions. This URI must identify an image in Artifact Registry or
2641
+ Container Registry. Learn more about the [container publishing
2642
+ requirements](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#publishing),
2643
+ including permissions requirements for the Vertex AI Service Agent.
2644
+ The container image is ingested upon ModelService.UploadModel, stored
2645
+ internally, and this original path is afterwards not used.
2646
+ To learn about the requirements for the Docker image itself, see
2647
+ [Custom container
2648
+ requirements](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#).
2649
+ You can use the URI to one of Vertex AI's [pre-built container images for
2650
+ prediction](https://cloud.google.com/vertex-ai/docs/predictions/pre-built-containers)
2651
+ in this field.
2652
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] args: Specifies arguments for the command that runs when the container starts.
2653
+ This overrides the container's
2654
+ [`CMD`](https://docs.docker.com/engine/reference/builder/#cmd). Specify
2655
+ this field as an array of executable and arguments, similar to a Docker
2656
+ `CMD`'s "default parameters" form.
2657
+ If you don't specify this field but do specify the
2658
+ command field, then the command from the
2659
+ `command` field runs without any additional arguments. See the
2660
+ [Kubernetes documentation about how the
2661
+ `command` and `args` fields interact with a container's `ENTRYPOINT` and
2662
+ `CMD`](https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#notes).
2663
+ If you don't specify this field and don't specify the `command` field,
2664
+ then the container's
2665
+ [`ENTRYPOINT`](https://docs.docker.com/engine/reference/builder/#cmd) and
2666
+ `CMD` determine what runs based on their default behavior. See the Docker
2667
+ documentation about [how `CMD` and `ENTRYPOINT`
2668
+ interact](https://docs.docker.com/engine/reference/builder/#understand-how-cmd-and-entrypoint-interact).
2669
+ In this field, you can reference [environment variables
2670
+ set by Vertex
2671
+ AI](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables)
2672
+ and environment variables set in the env field.
2673
+ You cannot reference environment variables set in the Docker image. In
2674
+ order for environment variables to be expanded, reference them by using the
2675
+ following syntax:$(VARIABLE_NAME)
2676
+ Note that this differs from Bash variable expansion, which does not use
2677
+ parentheses. If a variable cannot be resolved, the reference in the input
2678
+ string is used unchanged. To avoid variable expansion, you can escape this
2679
+ syntax with `$$`; for example:$$(VARIABLE_NAME)
2680
+ This field corresponds to the `args` field of the Kubernetes Containers
2681
+ [v1 core
2682
+ API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core).
2683
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] commands: Specifies the command that runs when the container starts. This overrides
2684
+ the container's
2685
+ [ENTRYPOINT](https://docs.docker.com/engine/reference/builder/#entrypoint).
2686
+ Specify this field as an array of executable and arguments, similar to a
2687
+ Docker `ENTRYPOINT`'s "exec" form, not its "shell" form.
2688
+ If you do not specify this field, then the container's `ENTRYPOINT` runs,
2689
+ in conjunction with the args field or the
2690
+ container's [`CMD`](https://docs.docker.com/engine/reference/builder/#cmd),
2691
+ if either exists. If this field is not specified and the container does not
2692
+ have an `ENTRYPOINT`, then refer to the Docker documentation about [how
2693
+ `CMD` and `ENTRYPOINT`
2694
+ interact](https://docs.docker.com/engine/reference/builder/#understand-how-cmd-and-entrypoint-interact).
2695
+ If you specify this field, then you can also specify the `args` field to
2696
+ provide additional arguments for this command. However, if you specify this
2697
+ field, then the container's `CMD` is ignored. See the
2698
+ [Kubernetes documentation about how the
2699
+ `command` and `args` fields interact with a container's `ENTRYPOINT` and
2700
+ `CMD`](https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#notes).
2701
+ In this field, you can reference [environment variables set by Vertex
2702
+ AI](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables)
2703
+ and environment variables set in the env field.
2704
+ You cannot reference environment variables set in the Docker image. In
2705
+ order for environment variables to be expanded, reference them by using the
2706
+ following syntax:$(VARIABLE_NAME)
2707
+ Note that this differs from Bash variable expansion, which does not use
2708
+ parentheses. If a variable cannot be resolved, the reference in the input
2709
+ string is used unchanged. To avoid variable expansion, you can escape this
2710
+ syntax with `$$`; for example:$$(VARIABLE_NAME)
2711
+ This field corresponds to the `command` field of the Kubernetes Containers
2712
+ [v1 core
2713
+ API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core).
2714
+ :param pulumi.Input[_builtins.str] deployment_timeout: Deployment timeout.
2715
+ Limit for deployment timeout is 2 hours.
2716
+ :param pulumi.Input[Sequence[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecEnvArgs']]] envs: List of environment variables to set in the container. After the container
2717
+ starts running, code running in the container can read these environment
2718
+ variables.
2719
+ Additionally, the command and
2720
+ args fields can reference these variables. Later
2721
+ entries in this list can also reference earlier entries. For example, the
2722
+ following example sets the variable `VAR_2` to have the value `foo bar`:
2723
+ ```json
2724
+ [
2725
+ {
2726
+ "name": "VAR_1",
2727
+ "value": "foo"
2728
+ },
2729
+ {
2730
+ "name": "VAR_2",
2731
+ "value": "$(VAR_1) bar"
2732
+ }
2733
+ ]
2734
+ ```
2735
+ If you switch the order of the variables in the example, then the expansion
2736
+ does not occur.
2737
+ This field corresponds to the `env` field of the Kubernetes Containers
2738
+ [v1 core
2739
+ API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core).
2740
+ Structure is documented below.
2741
+ :param pulumi.Input[Sequence[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecGrpcPortArgs']]] grpc_ports: List of ports to expose from the container. Vertex AI sends gRPC
2742
+ prediction requests that it receives to the first port on this list. Vertex
2743
+ AI also sends liveness and health checks to this port.
2744
+ If you do not specify this field, gRPC requests to the container will be
2745
+ disabled.
2746
+ Vertex AI does not use ports other than the first one listed. This field
2747
+ corresponds to the `ports` field of the Kubernetes Containers v1 core API.
2748
+ Structure is documented below.
2749
+ :param pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeArgs'] health_probe: Probe describes a health check to be performed against a container to
2750
+ determine whether it is alive or ready to receive traffic.
2751
+ Structure is documented below.
2752
+ :param pulumi.Input[_builtins.str] health_route: HTTP path on the container to send health checks to. Vertex AI
2753
+ intermittently sends GET requests to this path on the container's IP
2754
+ address and port to check that the container is healthy. Read more about
2755
+ [health
2756
+ checks](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#health).
2757
+ For example, if you set this field to `/bar`, then Vertex AI
2758
+ intermittently sends a GET request to the `/bar` path on the port of your
2759
+ container specified by the first value of this `ModelContainerSpec`'s
2760
+ ports field.
2761
+ If you don't specify this field, it defaults to the following value when
2762
+ you deploy this Model to an Endpoint:/v1/endpoints/ENDPOINT/deployedModels/DEPLOYED_MODEL:predict
2763
+ The placeholders in this value are replaced as follows:
2764
+ * ENDPOINT: The last segment (following `endpoints/`)of the
2765
+ Endpoint.name][] field of the Endpoint where this Model has been
2766
+ deployed. (Vertex AI makes this value available to your container code
2767
+ as the [`AIP_ENDPOINT_ID` environment
2768
+ variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).)
2769
+ * DEPLOYED_MODEL: DeployedModel.id of the `DeployedModel`.
2770
+ (Vertex AI makes this value available to your container code as the
2771
+ [`AIP_DEPLOYED_MODEL_ID` environment
2772
+ variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).)
2773
+ :param pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeArgs'] liveness_probe: Probe describes a health check to be performed against a container to
2774
+ determine whether it is alive or ready to receive traffic.
2775
+ Structure is documented below.
2776
+ :param pulumi.Input[Sequence[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecPortArgs']]] ports: List of ports to expose from the container. Vertex AI sends any
2777
+ prediction requests that it receives to the first port on this list. Vertex
2778
+ AI also sends
2779
+ [liveness and health
2780
+ checks](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#liveness)
2781
+ to this port.
2782
+ If you do not specify this field, it defaults to following value:
2783
+ ```json
2784
+ [
2785
+ {
2786
+ "containerPort": 8080
2787
+ }
2788
+ ]
2789
+ ```
2790
+ Vertex AI does not use ports other than the first one listed. This field
2791
+ corresponds to the `ports` field of the Kubernetes Containers
2792
+ [v1 core
2793
+ API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core).
2794
+ Structure is documented below.
2795
+ :param pulumi.Input[_builtins.str] predict_route: HTTP path on the container to send prediction requests to. Vertex AI
2796
+ forwards requests sent using
2797
+ projects.locations.endpoints.predict to this
2798
+ path on the container's IP address and port. Vertex AI then returns the
2799
+ container's response in the API response.
2800
+ For example, if you set this field to `/foo`, then when Vertex AI
2801
+ receives a prediction request, it forwards the request body in a POST
2802
+ request to the `/foo` path on the port of your container specified by the
2803
+ first value of this `ModelContainerSpec`'s
2804
+ ports field.
2805
+ If you don't specify this field, it defaults to the following value when
2806
+ you deploy this Model to an Endpoint:/v1/endpoints/ENDPOINT/deployedModels/DEPLOYED_MODEL:predict
2807
+ The placeholders in this value are replaced as follows:
2808
+ * ENDPOINT: The last segment (following `endpoints/`)of the
2809
+ Endpoint.name][] field of the Endpoint where this Model has been
2810
+ deployed. (Vertex AI makes this value available to your container code
2811
+ as the [`AIP_ENDPOINT_ID` environment
2812
+ variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).)
2813
+ * DEPLOYED_MODEL: DeployedModel.id of the `DeployedModel`.
2814
+ (Vertex AI makes this value available to your container code
2815
+ as the [`AIP_DEPLOYED_MODEL_ID` environment
2816
+ variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).)
2817
+ :param pulumi.Input[_builtins.str] shared_memory_size_mb: The amount of the VM memory to reserve as the shared memory for the model
2818
+ in megabytes.
2819
+ :param pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeArgs'] startup_probe: Probe describes a health check to be performed against a container to
2820
+ determine whether it is alive or ready to receive traffic.
2821
+ Structure is documented below.
2822
+ """
2823
+ pulumi.set(__self__, "image_uri", image_uri)
2824
+ if args is not None:
2825
+ pulumi.set(__self__, "args", args)
2826
+ if commands is not None:
2827
+ pulumi.set(__self__, "commands", commands)
2828
+ if deployment_timeout is not None:
2829
+ pulumi.set(__self__, "deployment_timeout", deployment_timeout)
2830
+ if envs is not None:
2831
+ pulumi.set(__self__, "envs", envs)
2832
+ if grpc_ports is not None:
2833
+ pulumi.set(__self__, "grpc_ports", grpc_ports)
2834
+ if health_probe is not None:
2835
+ pulumi.set(__self__, "health_probe", health_probe)
2836
+ if health_route is not None:
2837
+ pulumi.set(__self__, "health_route", health_route)
2838
+ if liveness_probe is not None:
2839
+ pulumi.set(__self__, "liveness_probe", liveness_probe)
2840
+ if ports is not None:
2841
+ pulumi.set(__self__, "ports", ports)
2842
+ if predict_route is not None:
2843
+ pulumi.set(__self__, "predict_route", predict_route)
2844
+ if shared_memory_size_mb is not None:
2845
+ pulumi.set(__self__, "shared_memory_size_mb", shared_memory_size_mb)
2846
+ if startup_probe is not None:
2847
+ pulumi.set(__self__, "startup_probe", startup_probe)
2848
+
2849
+ @_builtins.property
2850
+ @pulumi.getter(name="imageUri")
2851
+ def image_uri(self) -> pulumi.Input[_builtins.str]:
2852
+ """
2853
+ URI of the Docker image to be used as the custom container for serving
2854
+ predictions. This URI must identify an image in Artifact Registry or
2855
+ Container Registry. Learn more about the [container publishing
2856
+ requirements](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#publishing),
2857
+ including permissions requirements for the Vertex AI Service Agent.
2858
+ The container image is ingested upon ModelService.UploadModel, stored
2859
+ internally, and this original path is afterwards not used.
2860
+ To learn about the requirements for the Docker image itself, see
2861
+ [Custom container
2862
+ requirements](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#).
2863
+ You can use the URI to one of Vertex AI's [pre-built container images for
2864
+ prediction](https://cloud.google.com/vertex-ai/docs/predictions/pre-built-containers)
2865
+ in this field.
2866
+ """
2867
+ return pulumi.get(self, "image_uri")
2868
+
2869
+ @image_uri.setter
2870
+ def image_uri(self, value: pulumi.Input[_builtins.str]):
2871
+ pulumi.set(self, "image_uri", value)
2872
+
2873
+ @_builtins.property
2874
+ @pulumi.getter
2875
+ def args(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
2876
+ """
2877
+ Specifies arguments for the command that runs when the container starts.
2878
+ This overrides the container's
2879
+ [`CMD`](https://docs.docker.com/engine/reference/builder/#cmd). Specify
2880
+ this field as an array of executable and arguments, similar to a Docker
2881
+ `CMD`'s "default parameters" form.
2882
+ If you don't specify this field but do specify the
2883
+ command field, then the command from the
2884
+ `command` field runs without any additional arguments. See the
2885
+ [Kubernetes documentation about how the
2886
+ `command` and `args` fields interact with a container's `ENTRYPOINT` and
2887
+ `CMD`](https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#notes).
2888
+ If you don't specify this field and don't specify the `command` field,
2889
+ then the container's
2890
+ [`ENTRYPOINT`](https://docs.docker.com/engine/reference/builder/#cmd) and
2891
+ `CMD` determine what runs based on their default behavior. See the Docker
2892
+ documentation about [how `CMD` and `ENTRYPOINT`
2893
+ interact](https://docs.docker.com/engine/reference/builder/#understand-how-cmd-and-entrypoint-interact).
2894
+ In this field, you can reference [environment variables
2895
+ set by Vertex
2896
+ AI](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables)
2897
+ and environment variables set in the env field.
2898
+ You cannot reference environment variables set in the Docker image. In
2899
+ order for environment variables to be expanded, reference them by using the
2900
+ following syntax:$(VARIABLE_NAME)
2901
+ Note that this differs from Bash variable expansion, which does not use
2902
+ parentheses. If a variable cannot be resolved, the reference in the input
2903
+ string is used unchanged. To avoid variable expansion, you can escape this
2904
+ syntax with `$$`; for example:$$(VARIABLE_NAME)
2905
+ This field corresponds to the `args` field of the Kubernetes Containers
2906
+ [v1 core
2907
+ API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core).
2908
+ """
2909
+ return pulumi.get(self, "args")
2910
+
2911
+ @args.setter
2912
+ def args(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
2913
+ pulumi.set(self, "args", value)
2914
+
2915
+ @_builtins.property
2916
+ @pulumi.getter
2917
+ def commands(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
2918
+ """
2919
+ Specifies the command that runs when the container starts. This overrides
2920
+ the container's
2921
+ [ENTRYPOINT](https://docs.docker.com/engine/reference/builder/#entrypoint).
2922
+ Specify this field as an array of executable and arguments, similar to a
2923
+ Docker `ENTRYPOINT`'s "exec" form, not its "shell" form.
2924
+ If you do not specify this field, then the container's `ENTRYPOINT` runs,
2925
+ in conjunction with the args field or the
2926
+ container's [`CMD`](https://docs.docker.com/engine/reference/builder/#cmd),
2927
+ if either exists. If this field is not specified and the container does not
2928
+ have an `ENTRYPOINT`, then refer to the Docker documentation about [how
2929
+ `CMD` and `ENTRYPOINT`
2930
+ interact](https://docs.docker.com/engine/reference/builder/#understand-how-cmd-and-entrypoint-interact).
2931
+ If you specify this field, then you can also specify the `args` field to
2932
+ provide additional arguments for this command. However, if you specify this
2933
+ field, then the container's `CMD` is ignored. See the
2934
+ [Kubernetes documentation about how the
2935
+ `command` and `args` fields interact with a container's `ENTRYPOINT` and
2936
+ `CMD`](https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#notes).
2937
+ In this field, you can reference [environment variables set by Vertex
2938
+ AI](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables)
2939
+ and environment variables set in the env field.
2940
+ You cannot reference environment variables set in the Docker image. In
2941
+ order for environment variables to be expanded, reference them by using the
2942
+ following syntax:$(VARIABLE_NAME)
2943
+ Note that this differs from Bash variable expansion, which does not use
2944
+ parentheses. If a variable cannot be resolved, the reference in the input
2945
+ string is used unchanged. To avoid variable expansion, you can escape this
2946
+ syntax with `$$`; for example:$$(VARIABLE_NAME)
2947
+ This field corresponds to the `command` field of the Kubernetes Containers
2948
+ [v1 core
2949
+ API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core).
2950
+ """
2951
+ return pulumi.get(self, "commands")
2952
+
2953
+ @commands.setter
2954
+ def commands(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
2955
+ pulumi.set(self, "commands", value)
2956
+
2957
+ @_builtins.property
2958
+ @pulumi.getter(name="deploymentTimeout")
2959
+ def deployment_timeout(self) -> Optional[pulumi.Input[_builtins.str]]:
2960
+ """
2961
+ Deployment timeout.
2962
+ Limit for deployment timeout is 2 hours.
2963
+ """
2964
+ return pulumi.get(self, "deployment_timeout")
2965
+
2966
+ @deployment_timeout.setter
2967
+ def deployment_timeout(self, value: Optional[pulumi.Input[_builtins.str]]):
2968
+ pulumi.set(self, "deployment_timeout", value)
2969
+
2970
+ @_builtins.property
2971
+ @pulumi.getter
2972
+ def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecEnvArgs']]]]:
2973
+ """
2974
+ List of environment variables to set in the container. After the container
2975
+ starts running, code running in the container can read these environment
2976
+ variables.
2977
+ Additionally, the command and
2978
+ args fields can reference these variables. Later
2979
+ entries in this list can also reference earlier entries. For example, the
2980
+ following example sets the variable `VAR_2` to have the value `foo bar`:
2981
+ ```json
2982
+ [
2983
+ {
2984
+ "name": "VAR_1",
2985
+ "value": "foo"
2986
+ },
2987
+ {
2988
+ "name": "VAR_2",
2989
+ "value": "$(VAR_1) bar"
2990
+ }
2991
+ ]
2992
+ ```
2993
+ If you switch the order of the variables in the example, then the expansion
2994
+ does not occur.
2995
+ This field corresponds to the `env` field of the Kubernetes Containers
2996
+ [v1 core
2997
+ API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core).
2998
+ Structure is documented below.
2999
+ """
3000
+ return pulumi.get(self, "envs")
3001
+
3002
+ @envs.setter
3003
+ def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecEnvArgs']]]]):
3004
+ pulumi.set(self, "envs", value)
3005
+
3006
+ @_builtins.property
3007
+ @pulumi.getter(name="grpcPorts")
3008
+ def grpc_ports(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecGrpcPortArgs']]]]:
3009
+ """
3010
+ List of ports to expose from the container. Vertex AI sends gRPC
3011
+ prediction requests that it receives to the first port on this list. Vertex
3012
+ AI also sends liveness and health checks to this port.
3013
+ If you do not specify this field, gRPC requests to the container will be
3014
+ disabled.
3015
+ Vertex AI does not use ports other than the first one listed. This field
3016
+ corresponds to the `ports` field of the Kubernetes Containers v1 core API.
3017
+ Structure is documented below.
3018
+ """
3019
+ return pulumi.get(self, "grpc_ports")
3020
+
3021
+ @grpc_ports.setter
3022
+ def grpc_ports(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecGrpcPortArgs']]]]):
3023
+ pulumi.set(self, "grpc_ports", value)
3024
+
3025
+ @_builtins.property
3026
+ @pulumi.getter(name="healthProbe")
3027
+ def health_probe(self) -> Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeArgs']]:
3028
+ """
3029
+ Probe describes a health check to be performed against a container to
3030
+ determine whether it is alive or ready to receive traffic.
3031
+ Structure is documented below.
3032
+ """
3033
+ return pulumi.get(self, "health_probe")
3034
+
3035
+ @health_probe.setter
3036
+ def health_probe(self, value: Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeArgs']]):
3037
+ pulumi.set(self, "health_probe", value)
3038
+
3039
+ @_builtins.property
3040
+ @pulumi.getter(name="healthRoute")
3041
+ def health_route(self) -> Optional[pulumi.Input[_builtins.str]]:
3042
+ """
3043
+ HTTP path on the container to send health checks to. Vertex AI
3044
+ intermittently sends GET requests to this path on the container's IP
3045
+ address and port to check that the container is healthy. Read more about
3046
+ [health
3047
+ checks](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#health).
3048
+ For example, if you set this field to `/bar`, then Vertex AI
3049
+ intermittently sends a GET request to the `/bar` path on the port of your
3050
+ container specified by the first value of this `ModelContainerSpec`'s
3051
+ ports field.
3052
+ If you don't specify this field, it defaults to the following value when
3053
+ you deploy this Model to an Endpoint:/v1/endpoints/ENDPOINT/deployedModels/DEPLOYED_MODEL:predict
3054
+ The placeholders in this value are replaced as follows:
3055
+ * ENDPOINT: The last segment (following `endpoints/`)of the
3056
+ Endpoint.name][] field of the Endpoint where this Model has been
3057
+ deployed. (Vertex AI makes this value available to your container code
3058
+ as the [`AIP_ENDPOINT_ID` environment
3059
+ variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).)
3060
+ * DEPLOYED_MODEL: DeployedModel.id of the `DeployedModel`.
3061
+ (Vertex AI makes this value available to your container code as the
3062
+ [`AIP_DEPLOYED_MODEL_ID` environment
3063
+ variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).)
3064
+ """
3065
+ return pulumi.get(self, "health_route")
3066
+
3067
+ @health_route.setter
3068
+ def health_route(self, value: Optional[pulumi.Input[_builtins.str]]):
3069
+ pulumi.set(self, "health_route", value)
3070
+
3071
+ @_builtins.property
3072
+ @pulumi.getter(name="livenessProbe")
3073
+ def liveness_probe(self) -> Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeArgs']]:
3074
+ """
3075
+ Probe describes a health check to be performed against a container to
3076
+ determine whether it is alive or ready to receive traffic.
3077
+ Structure is documented below.
3078
+ """
3079
+ return pulumi.get(self, "liveness_probe")
3080
+
3081
+ @liveness_probe.setter
3082
+ def liveness_probe(self, value: Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeArgs']]):
3083
+ pulumi.set(self, "liveness_probe", value)
3084
+
3085
+ @_builtins.property
3086
+ @pulumi.getter
3087
+ def ports(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecPortArgs']]]]:
3088
+ """
3089
+ List of ports to expose from the container. Vertex AI sends any
3090
+ prediction requests that it receives to the first port on this list. Vertex
3091
+ AI also sends
3092
+ [liveness and health
3093
+ checks](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#liveness)
3094
+ to this port.
3095
+ If you do not specify this field, it defaults to following value:
3096
+ ```json
3097
+ [
3098
+ {
3099
+ "containerPort": 8080
3100
+ }
3101
+ ]
3102
+ ```
3103
+ Vertex AI does not use ports other than the first one listed. This field
3104
+ corresponds to the `ports` field of the Kubernetes Containers
3105
+ [v1 core
3106
+ API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core).
3107
+ Structure is documented below.
3108
+ """
3109
+ return pulumi.get(self, "ports")
3110
+
3111
+ @ports.setter
3112
+ def ports(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecPortArgs']]]]):
3113
+ pulumi.set(self, "ports", value)
3114
+
3115
+ @_builtins.property
3116
+ @pulumi.getter(name="predictRoute")
3117
+ def predict_route(self) -> Optional[pulumi.Input[_builtins.str]]:
3118
+ """
3119
+ HTTP path on the container to send prediction requests to. Vertex AI
3120
+ forwards requests sent using
3121
+ projects.locations.endpoints.predict to this
3122
+ path on the container's IP address and port. Vertex AI then returns the
3123
+ container's response in the API response.
3124
+ For example, if you set this field to `/foo`, then when Vertex AI
3125
+ receives a prediction request, it forwards the request body in a POST
3126
+ request to the `/foo` path on the port of your container specified by the
3127
+ first value of this `ModelContainerSpec`'s
3128
+ ports field.
3129
+ If you don't specify this field, it defaults to the following value when
3130
+ you deploy this Model to an Endpoint:/v1/endpoints/ENDPOINT/deployedModels/DEPLOYED_MODEL:predict
3131
+ The placeholders in this value are replaced as follows:
3132
+ * ENDPOINT: The last segment (following `endpoints/`)of the
3133
+ Endpoint.name][] field of the Endpoint where this Model has been
3134
+ deployed. (Vertex AI makes this value available to your container code
3135
+ as the [`AIP_ENDPOINT_ID` environment
3136
+ variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).)
3137
+ * DEPLOYED_MODEL: DeployedModel.id of the `DeployedModel`.
3138
+ (Vertex AI makes this value available to your container code
3139
+ as the [`AIP_DEPLOYED_MODEL_ID` environment
3140
+ variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).)
3141
+ """
3142
+ return pulumi.get(self, "predict_route")
3143
+
3144
+ @predict_route.setter
3145
+ def predict_route(self, value: Optional[pulumi.Input[_builtins.str]]):
3146
+ pulumi.set(self, "predict_route", value)
3147
+
3148
+ @_builtins.property
3149
+ @pulumi.getter(name="sharedMemorySizeMb")
3150
+ def shared_memory_size_mb(self) -> Optional[pulumi.Input[_builtins.str]]:
3151
+ """
3152
+ The amount of the VM memory to reserve as the shared memory for the model
3153
+ in megabytes.
3154
+ """
3155
+ return pulumi.get(self, "shared_memory_size_mb")
3156
+
3157
+ @shared_memory_size_mb.setter
3158
+ def shared_memory_size_mb(self, value: Optional[pulumi.Input[_builtins.str]]):
3159
+ pulumi.set(self, "shared_memory_size_mb", value)
3160
+
3161
+ @_builtins.property
3162
+ @pulumi.getter(name="startupProbe")
3163
+ def startup_probe(self) -> Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeArgs']]:
3164
+ """
3165
+ Probe describes a health check to be performed against a container to
3166
+ determine whether it is alive or ready to receive traffic.
3167
+ Structure is documented below.
3168
+ """
3169
+ return pulumi.get(self, "startup_probe")
3170
+
3171
+ @startup_probe.setter
3172
+ def startup_probe(self, value: Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeArgs']]):
3173
+ pulumi.set(self, "startup_probe", value)
3174
+
3175
+
3176
+ if not MYPY:
3177
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecEnvArgsDict(TypedDict):
3178
+ name: pulumi.Input[_builtins.str]
3179
+ """
3180
+ Name of the environment variable. Must be a valid C identifier.
3181
+ """
3182
+ value: pulumi.Input[_builtins.str]
3183
+ """
3184
+ Variables that reference a $(VAR_NAME) are expanded
3185
+ using the previous defined environment variables in the container and
3186
+ any service environment variables. If a variable cannot be resolved,
3187
+ the reference in the input string will be unchanged. The $(VAR_NAME)
3188
+ syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped
3189
+ references will never be expanded, regardless of whether the variable
3190
+ exists or not.
3191
+ """
3192
+ elif False:
3193
+ AiEndpointWithModelGardenDeploymentModelConfigContainerSpecEnvArgsDict: TypeAlias = Mapping[str, Any]
3194
+
3195
+ @pulumi.input_type
3196
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecEnvArgs:
3197
+ def __init__(__self__, *,
3198
+ name: pulumi.Input[_builtins.str],
3199
+ value: pulumi.Input[_builtins.str]):
3200
+ """
3201
+ :param pulumi.Input[_builtins.str] name: Name of the environment variable. Must be a valid C identifier.
3202
+ :param pulumi.Input[_builtins.str] value: Variables that reference a $(VAR_NAME) are expanded
3203
+ using the previous defined environment variables in the container and
3204
+ any service environment variables. If a variable cannot be resolved,
3205
+ the reference in the input string will be unchanged. The $(VAR_NAME)
3206
+ syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped
3207
+ references will never be expanded, regardless of whether the variable
3208
+ exists or not.
3209
+ """
3210
+ pulumi.set(__self__, "name", name)
3211
+ pulumi.set(__self__, "value", value)
3212
+
3213
+ @_builtins.property
3214
+ @pulumi.getter
3215
+ def name(self) -> pulumi.Input[_builtins.str]:
3216
+ """
3217
+ Name of the environment variable. Must be a valid C identifier.
3218
+ """
3219
+ return pulumi.get(self, "name")
3220
+
3221
+ @name.setter
3222
+ def name(self, value: pulumi.Input[_builtins.str]):
3223
+ pulumi.set(self, "name", value)
3224
+
3225
+ @_builtins.property
3226
+ @pulumi.getter
3227
+ def value(self) -> pulumi.Input[_builtins.str]:
3228
+ """
3229
+ Variables that reference a $(VAR_NAME) are expanded
3230
+ using the previous defined environment variables in the container and
3231
+ any service environment variables. If a variable cannot be resolved,
3232
+ the reference in the input string will be unchanged. The $(VAR_NAME)
3233
+ syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped
3234
+ references will never be expanded, regardless of whether the variable
3235
+ exists or not.
3236
+ """
3237
+ return pulumi.get(self, "value")
3238
+
3239
+ @value.setter
3240
+ def value(self, value: pulumi.Input[_builtins.str]):
3241
+ pulumi.set(self, "value", value)
3242
+
3243
+
3244
+ if not MYPY:
3245
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecGrpcPortArgsDict(TypedDict):
3246
+ container_port: NotRequired[pulumi.Input[_builtins.int]]
3247
+ """
3248
+ The number of the port to expose on the pod's IP address.
3249
+ Must be a valid port number, between 1 and 65535 inclusive.
3250
+ """
3251
+ elif False:
3252
+ AiEndpointWithModelGardenDeploymentModelConfigContainerSpecGrpcPortArgsDict: TypeAlias = Mapping[str, Any]
3253
+
3254
+ @pulumi.input_type
3255
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecGrpcPortArgs:
3256
+ def __init__(__self__, *,
3257
+ container_port: Optional[pulumi.Input[_builtins.int]] = None):
3258
+ """
3259
+ :param pulumi.Input[_builtins.int] container_port: The number of the port to expose on the pod's IP address.
3260
+ Must be a valid port number, between 1 and 65535 inclusive.
3261
+ """
3262
+ if container_port is not None:
3263
+ pulumi.set(__self__, "container_port", container_port)
3264
+
3265
+ @_builtins.property
3266
+ @pulumi.getter(name="containerPort")
3267
+ def container_port(self) -> Optional[pulumi.Input[_builtins.int]]:
3268
+ """
3269
+ The number of the port to expose on the pod's IP address.
3270
+ Must be a valid port number, between 1 and 65535 inclusive.
3271
+ """
3272
+ return pulumi.get(self, "container_port")
3273
+
3274
+ @container_port.setter
3275
+ def container_port(self, value: Optional[pulumi.Input[_builtins.int]]):
3276
+ pulumi.set(self, "container_port", value)
3277
+
3278
+
3279
+ if not MYPY:
3280
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeArgsDict(TypedDict):
3281
+ exec_: NotRequired[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeExecArgsDict']]
3282
+ """
3283
+ ExecAction specifies a command to execute.
3284
+ Structure is documented below.
3285
+ """
3286
+ failure_threshold: NotRequired[pulumi.Input[_builtins.int]]
3287
+ """
3288
+ Number of consecutive failures before the probe is considered failed.
3289
+ Defaults to 3. Minimum value is 1.
3290
+ Maps to Kubernetes probe argument 'failureThreshold'.
3291
+ """
3292
+ grpc: NotRequired[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeGrpcArgsDict']]
3293
+ """
3294
+ GrpcAction checks the health of a container using a gRPC service.
3295
+ Structure is documented below.
3296
+ """
3297
+ http_get: NotRequired[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeHttpGetArgsDict']]
3298
+ """
3299
+ HttpGetAction describes an action based on HTTP Get requests.
3300
+ Structure is documented below.
3301
+ """
3302
+ initial_delay_seconds: NotRequired[pulumi.Input[_builtins.int]]
3303
+ """
3304
+ Number of seconds to wait before starting the probe. Defaults to 0.
3305
+ Minimum value is 0.
3306
+ Maps to Kubernetes probe argument 'initialDelaySeconds'.
3307
+ """
3308
+ period_seconds: NotRequired[pulumi.Input[_builtins.int]]
3309
+ """
3310
+ How often (in seconds) to perform the probe. Default to 10 seconds.
3311
+ Minimum value is 1. Must be less than timeout_seconds.
3312
+ Maps to Kubernetes probe argument 'periodSeconds'.
3313
+ """
3314
+ success_threshold: NotRequired[pulumi.Input[_builtins.int]]
3315
+ """
3316
+ Number of consecutive successes before the probe is considered successful.
3317
+ Defaults to 1. Minimum value is 1.
3318
+ Maps to Kubernetes probe argument 'successThreshold'.
3319
+ """
3320
+ tcp_socket: NotRequired[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeTcpSocketArgsDict']]
3321
+ """
3322
+ TcpSocketAction probes the health of a container by opening a TCP socket
3323
+ connection.
3324
+ Structure is documented below.
3325
+ """
3326
+ timeout_seconds: NotRequired[pulumi.Input[_builtins.int]]
3327
+ """
3328
+ Number of seconds after which the probe times out. Defaults to 1 second.
3329
+ Minimum value is 1. Must be greater or equal to period_seconds.
3330
+ Maps to Kubernetes probe argument 'timeoutSeconds'.
3331
+ """
3332
+ elif False:
3333
+ AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeArgsDict: TypeAlias = Mapping[str, Any]
3334
+
3335
+ @pulumi.input_type
3336
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeArgs:
3337
+ def __init__(__self__, *,
3338
+ exec_: Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeExecArgs']] = None,
3339
+ failure_threshold: Optional[pulumi.Input[_builtins.int]] = None,
3340
+ grpc: Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeGrpcArgs']] = None,
3341
+ http_get: Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeHttpGetArgs']] = None,
3342
+ initial_delay_seconds: Optional[pulumi.Input[_builtins.int]] = None,
3343
+ period_seconds: Optional[pulumi.Input[_builtins.int]] = None,
3344
+ success_threshold: Optional[pulumi.Input[_builtins.int]] = None,
3345
+ tcp_socket: Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeTcpSocketArgs']] = None,
3346
+ timeout_seconds: Optional[pulumi.Input[_builtins.int]] = None):
3347
+ """
3348
+ :param pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeExecArgs'] exec_: ExecAction specifies a command to execute.
3349
+ Structure is documented below.
3350
+ :param pulumi.Input[_builtins.int] failure_threshold: Number of consecutive failures before the probe is considered failed.
3351
+ Defaults to 3. Minimum value is 1.
3352
+ Maps to Kubernetes probe argument 'failureThreshold'.
3353
+ :param pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeGrpcArgs'] grpc: GrpcAction checks the health of a container using a gRPC service.
3354
+ Structure is documented below.
3355
+ :param pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeHttpGetArgs'] http_get: HttpGetAction describes an action based on HTTP Get requests.
3356
+ Structure is documented below.
3357
+ :param pulumi.Input[_builtins.int] initial_delay_seconds: Number of seconds to wait before starting the probe. Defaults to 0.
3358
+ Minimum value is 0.
3359
+ Maps to Kubernetes probe argument 'initialDelaySeconds'.
3360
+ :param pulumi.Input[_builtins.int] period_seconds: How often (in seconds) to perform the probe. Default to 10 seconds.
3361
+ Minimum value is 1. Must be less than timeout_seconds.
3362
+ Maps to Kubernetes probe argument 'periodSeconds'.
3363
+ :param pulumi.Input[_builtins.int] success_threshold: Number of consecutive successes before the probe is considered successful.
3364
+ Defaults to 1. Minimum value is 1.
3365
+ Maps to Kubernetes probe argument 'successThreshold'.
3366
+ :param pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeTcpSocketArgs'] tcp_socket: TcpSocketAction probes the health of a container by opening a TCP socket
3367
+ connection.
3368
+ Structure is documented below.
3369
+ :param pulumi.Input[_builtins.int] timeout_seconds: Number of seconds after which the probe times out. Defaults to 1 second.
3370
+ Minimum value is 1. Must be greater or equal to period_seconds.
3371
+ Maps to Kubernetes probe argument 'timeoutSeconds'.
3372
+ """
3373
+ if exec_ is not None:
3374
+ pulumi.set(__self__, "exec_", exec_)
3375
+ if failure_threshold is not None:
3376
+ pulumi.set(__self__, "failure_threshold", failure_threshold)
3377
+ if grpc is not None:
3378
+ pulumi.set(__self__, "grpc", grpc)
3379
+ if http_get is not None:
3380
+ pulumi.set(__self__, "http_get", http_get)
3381
+ if initial_delay_seconds is not None:
3382
+ pulumi.set(__self__, "initial_delay_seconds", initial_delay_seconds)
3383
+ if period_seconds is not None:
3384
+ pulumi.set(__self__, "period_seconds", period_seconds)
3385
+ if success_threshold is not None:
3386
+ pulumi.set(__self__, "success_threshold", success_threshold)
3387
+ if tcp_socket is not None:
3388
+ pulumi.set(__self__, "tcp_socket", tcp_socket)
3389
+ if timeout_seconds is not None:
3390
+ pulumi.set(__self__, "timeout_seconds", timeout_seconds)
3391
+
3392
+ @_builtins.property
3393
+ @pulumi.getter(name="exec")
3394
+ def exec_(self) -> Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeExecArgs']]:
3395
+ """
3396
+ ExecAction specifies a command to execute.
3397
+ Structure is documented below.
3398
+ """
3399
+ return pulumi.get(self, "exec_")
3400
+
3401
+ @exec_.setter
3402
+ def exec_(self, value: Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeExecArgs']]):
3403
+ pulumi.set(self, "exec_", value)
3404
+
3405
+ @_builtins.property
3406
+ @pulumi.getter(name="failureThreshold")
3407
+ def failure_threshold(self) -> Optional[pulumi.Input[_builtins.int]]:
3408
+ """
3409
+ Number of consecutive failures before the probe is considered failed.
3410
+ Defaults to 3. Minimum value is 1.
3411
+ Maps to Kubernetes probe argument 'failureThreshold'.
3412
+ """
3413
+ return pulumi.get(self, "failure_threshold")
3414
+
3415
+ @failure_threshold.setter
3416
+ def failure_threshold(self, value: Optional[pulumi.Input[_builtins.int]]):
3417
+ pulumi.set(self, "failure_threshold", value)
3418
+
3419
+ @_builtins.property
3420
+ @pulumi.getter
3421
+ def grpc(self) -> Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeGrpcArgs']]:
3422
+ """
3423
+ GrpcAction checks the health of a container using a gRPC service.
3424
+ Structure is documented below.
3425
+ """
3426
+ return pulumi.get(self, "grpc")
3427
+
3428
+ @grpc.setter
3429
+ def grpc(self, value: Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeGrpcArgs']]):
3430
+ pulumi.set(self, "grpc", value)
3431
+
3432
+ @_builtins.property
3433
+ @pulumi.getter(name="httpGet")
3434
+ def http_get(self) -> Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeHttpGetArgs']]:
3435
+ """
3436
+ HttpGetAction describes an action based on HTTP Get requests.
3437
+ Structure is documented below.
3438
+ """
3439
+ return pulumi.get(self, "http_get")
3440
+
3441
+ @http_get.setter
3442
+ def http_get(self, value: Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeHttpGetArgs']]):
3443
+ pulumi.set(self, "http_get", value)
3444
+
3445
+ @_builtins.property
3446
+ @pulumi.getter(name="initialDelaySeconds")
3447
+ def initial_delay_seconds(self) -> Optional[pulumi.Input[_builtins.int]]:
3448
+ """
3449
+ Number of seconds to wait before starting the probe. Defaults to 0.
3450
+ Minimum value is 0.
3451
+ Maps to Kubernetes probe argument 'initialDelaySeconds'.
3452
+ """
3453
+ return pulumi.get(self, "initial_delay_seconds")
3454
+
3455
+ @initial_delay_seconds.setter
3456
+ def initial_delay_seconds(self, value: Optional[pulumi.Input[_builtins.int]]):
3457
+ pulumi.set(self, "initial_delay_seconds", value)
3458
+
3459
+ @_builtins.property
3460
+ @pulumi.getter(name="periodSeconds")
3461
+ def period_seconds(self) -> Optional[pulumi.Input[_builtins.int]]:
3462
+ """
3463
+ How often (in seconds) to perform the probe. Default to 10 seconds.
3464
+ Minimum value is 1. Must be less than timeout_seconds.
3465
+ Maps to Kubernetes probe argument 'periodSeconds'.
3466
+ """
3467
+ return pulumi.get(self, "period_seconds")
3468
+
3469
+ @period_seconds.setter
3470
+ def period_seconds(self, value: Optional[pulumi.Input[_builtins.int]]):
3471
+ pulumi.set(self, "period_seconds", value)
3472
+
3473
+ @_builtins.property
3474
+ @pulumi.getter(name="successThreshold")
3475
+ def success_threshold(self) -> Optional[pulumi.Input[_builtins.int]]:
3476
+ """
3477
+ Number of consecutive successes before the probe is considered successful.
3478
+ Defaults to 1. Minimum value is 1.
3479
+ Maps to Kubernetes probe argument 'successThreshold'.
3480
+ """
3481
+ return pulumi.get(self, "success_threshold")
3482
+
3483
+ @success_threshold.setter
3484
+ def success_threshold(self, value: Optional[pulumi.Input[_builtins.int]]):
3485
+ pulumi.set(self, "success_threshold", value)
3486
+
3487
+ @_builtins.property
3488
+ @pulumi.getter(name="tcpSocket")
3489
+ def tcp_socket(self) -> Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeTcpSocketArgs']]:
3490
+ """
3491
+ TcpSocketAction probes the health of a container by opening a TCP socket
3492
+ connection.
3493
+ Structure is documented below.
3494
+ """
3495
+ return pulumi.get(self, "tcp_socket")
3496
+
3497
+ @tcp_socket.setter
3498
+ def tcp_socket(self, value: Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeTcpSocketArgs']]):
3499
+ pulumi.set(self, "tcp_socket", value)
3500
+
3501
+ @_builtins.property
3502
+ @pulumi.getter(name="timeoutSeconds")
3503
+ def timeout_seconds(self) -> Optional[pulumi.Input[_builtins.int]]:
3504
+ """
3505
+ Number of seconds after which the probe times out. Defaults to 1 second.
3506
+ Minimum value is 1. Must be greater or equal to period_seconds.
3507
+ Maps to Kubernetes probe argument 'timeoutSeconds'.
3508
+ """
3509
+ return pulumi.get(self, "timeout_seconds")
3510
+
3511
+ @timeout_seconds.setter
3512
+ def timeout_seconds(self, value: Optional[pulumi.Input[_builtins.int]]):
3513
+ pulumi.set(self, "timeout_seconds", value)
3514
+
3515
+
3516
+ if not MYPY:
3517
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeExecArgsDict(TypedDict):
3518
+ commands: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
3519
+ """
3520
+ Command is the command line to execute inside the container, the working
3521
+ directory for the command is root ('/') in the container's filesystem.
3522
+ The command is simply exec'd, it is not run inside a shell, so
3523
+ traditional shell instructions ('|', etc) won't work. To use a shell, you
3524
+ need to explicitly call out to that shell. Exit status of 0 is treated as
3525
+ live/healthy and non-zero is unhealthy.
3526
+ """
3527
+ elif False:
3528
+ AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeExecArgsDict: TypeAlias = Mapping[str, Any]
3529
+
3530
+ @pulumi.input_type
3531
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeExecArgs:
3532
+ def __init__(__self__, *,
3533
+ commands: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
3534
+ """
3535
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] commands: Command is the command line to execute inside the container, the working
3536
+ directory for the command is root ('/') in the container's filesystem.
3537
+ The command is simply exec'd, it is not run inside a shell, so
3538
+ traditional shell instructions ('|', etc) won't work. To use a shell, you
3539
+ need to explicitly call out to that shell. Exit status of 0 is treated as
3540
+ live/healthy and non-zero is unhealthy.
3541
+ """
3542
+ if commands is not None:
3543
+ pulumi.set(__self__, "commands", commands)
3544
+
3545
+ @_builtins.property
3546
+ @pulumi.getter
3547
+ def commands(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
3548
+ """
3549
+ Command is the command line to execute inside the container, the working
3550
+ directory for the command is root ('/') in the container's filesystem.
3551
+ The command is simply exec'd, it is not run inside a shell, so
3552
+ traditional shell instructions ('|', etc) won't work. To use a shell, you
3553
+ need to explicitly call out to that shell. Exit status of 0 is treated as
3554
+ live/healthy and non-zero is unhealthy.
3555
+ """
3556
+ return pulumi.get(self, "commands")
3557
+
3558
+ @commands.setter
3559
+ def commands(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
3560
+ pulumi.set(self, "commands", value)
3561
+
3562
+
3563
+ if not MYPY:
3564
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeGrpcArgsDict(TypedDict):
3565
+ port: NotRequired[pulumi.Input[_builtins.int]]
3566
+ """
3567
+ Port number of the gRPC service. Number must be in the range 1 to 65535.
3568
+ """
3569
+ service: NotRequired[pulumi.Input[_builtins.str]]
3570
+ """
3571
+ Service is the name of the service to place in the gRPC
3572
+ HealthCheckRequest. See
3573
+ https://github.com/grpc/grpc/blob/master/doc/health-checking.md.
3574
+ If this is not specified, the default behavior is defined by gRPC.
3575
+ """
3576
+ elif False:
3577
+ AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeGrpcArgsDict: TypeAlias = Mapping[str, Any]
3578
+
3579
+ @pulumi.input_type
3580
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeGrpcArgs:
3581
+ def __init__(__self__, *,
3582
+ port: Optional[pulumi.Input[_builtins.int]] = None,
3583
+ service: Optional[pulumi.Input[_builtins.str]] = None):
3584
+ """
3585
+ :param pulumi.Input[_builtins.int] port: Port number of the gRPC service. Number must be in the range 1 to 65535.
3586
+ :param pulumi.Input[_builtins.str] service: Service is the name of the service to place in the gRPC
3587
+ HealthCheckRequest. See
3588
+ https://github.com/grpc/grpc/blob/master/doc/health-checking.md.
3589
+ If this is not specified, the default behavior is defined by gRPC.
3590
+ """
3591
+ if port is not None:
3592
+ pulumi.set(__self__, "port", port)
3593
+ if service is not None:
3594
+ pulumi.set(__self__, "service", service)
3595
+
3596
+ @_builtins.property
3597
+ @pulumi.getter
3598
+ def port(self) -> Optional[pulumi.Input[_builtins.int]]:
3599
+ """
3600
+ Port number of the gRPC service. Number must be in the range 1 to 65535.
3601
+ """
3602
+ return pulumi.get(self, "port")
3603
+
3604
+ @port.setter
3605
+ def port(self, value: Optional[pulumi.Input[_builtins.int]]):
3606
+ pulumi.set(self, "port", value)
3607
+
3608
+ @_builtins.property
3609
+ @pulumi.getter
3610
+ def service(self) -> Optional[pulumi.Input[_builtins.str]]:
3611
+ """
3612
+ Service is the name of the service to place in the gRPC
3613
+ HealthCheckRequest. See
3614
+ https://github.com/grpc/grpc/blob/master/doc/health-checking.md.
3615
+ If this is not specified, the default behavior is defined by gRPC.
3616
+ """
3617
+ return pulumi.get(self, "service")
3618
+
3619
+ @service.setter
3620
+ def service(self, value: Optional[pulumi.Input[_builtins.str]]):
3621
+ pulumi.set(self, "service", value)
3622
+
3623
+
3624
+ if not MYPY:
3625
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeHttpGetArgsDict(TypedDict):
3626
+ host: NotRequired[pulumi.Input[_builtins.str]]
3627
+ """
3628
+ Host name to connect to, defaults to the model serving container's IP.
3629
+ You probably want to set "Host" in httpHeaders instead.
3630
+ """
3631
+ http_headers: NotRequired[pulumi.Input[Sequence[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeHttpGetHttpHeaderArgsDict']]]]
3632
+ """
3633
+ Custom headers to set in the request. HTTP allows repeated headers.
3634
+ Structure is documented below.
3635
+ """
3636
+ path: NotRequired[pulumi.Input[_builtins.str]]
3637
+ """
3638
+ Path to access on the HTTP server.
3639
+ """
3640
+ port: NotRequired[pulumi.Input[_builtins.int]]
3641
+ """
3642
+ Number of the port to access on the container.
3643
+ Number must be in the range 1 to 65535.
3644
+ """
3645
+ scheme: NotRequired[pulumi.Input[_builtins.str]]
3646
+ """
3647
+ Scheme to use for connecting to the host.
3648
+ Defaults to HTTP. Acceptable values are "HTTP" or "HTTPS".
3649
+ """
3650
+ elif False:
3651
+ AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeHttpGetArgsDict: TypeAlias = Mapping[str, Any]
3652
+
3653
+ @pulumi.input_type
3654
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeHttpGetArgs:
3655
+ def __init__(__self__, *,
3656
+ host: Optional[pulumi.Input[_builtins.str]] = None,
3657
+ http_headers: Optional[pulumi.Input[Sequence[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeHttpGetHttpHeaderArgs']]]] = None,
3658
+ path: Optional[pulumi.Input[_builtins.str]] = None,
3659
+ port: Optional[pulumi.Input[_builtins.int]] = None,
3660
+ scheme: Optional[pulumi.Input[_builtins.str]] = None):
3661
+ """
3662
+ :param pulumi.Input[_builtins.str] host: Host name to connect to, defaults to the model serving container's IP.
3663
+ You probably want to set "Host" in httpHeaders instead.
3664
+ :param pulumi.Input[Sequence[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeHttpGetHttpHeaderArgs']]] http_headers: Custom headers to set in the request. HTTP allows repeated headers.
3665
+ Structure is documented below.
3666
+ :param pulumi.Input[_builtins.str] path: Path to access on the HTTP server.
3667
+ :param pulumi.Input[_builtins.int] port: Number of the port to access on the container.
3668
+ Number must be in the range 1 to 65535.
3669
+ :param pulumi.Input[_builtins.str] scheme: Scheme to use for connecting to the host.
3670
+ Defaults to HTTP. Acceptable values are "HTTP" or "HTTPS".
3671
+ """
3672
+ if host is not None:
3673
+ pulumi.set(__self__, "host", host)
3674
+ if http_headers is not None:
3675
+ pulumi.set(__self__, "http_headers", http_headers)
3676
+ if path is not None:
3677
+ pulumi.set(__self__, "path", path)
3678
+ if port is not None:
3679
+ pulumi.set(__self__, "port", port)
3680
+ if scheme is not None:
3681
+ pulumi.set(__self__, "scheme", scheme)
3682
+
3683
+ @_builtins.property
3684
+ @pulumi.getter
3685
+ def host(self) -> Optional[pulumi.Input[_builtins.str]]:
3686
+ """
3687
+ Host name to connect to, defaults to the model serving container's IP.
3688
+ You probably want to set "Host" in httpHeaders instead.
3689
+ """
3690
+ return pulumi.get(self, "host")
3691
+
3692
+ @host.setter
3693
+ def host(self, value: Optional[pulumi.Input[_builtins.str]]):
3694
+ pulumi.set(self, "host", value)
3695
+
3696
+ @_builtins.property
3697
+ @pulumi.getter(name="httpHeaders")
3698
+ def http_headers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeHttpGetHttpHeaderArgs']]]]:
3699
+ """
3700
+ Custom headers to set in the request. HTTP allows repeated headers.
3701
+ Structure is documented below.
3702
+ """
3703
+ return pulumi.get(self, "http_headers")
3704
+
3705
+ @http_headers.setter
3706
+ def http_headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeHttpGetHttpHeaderArgs']]]]):
3707
+ pulumi.set(self, "http_headers", value)
3708
+
3709
+ @_builtins.property
3710
+ @pulumi.getter
3711
+ def path(self) -> Optional[pulumi.Input[_builtins.str]]:
3712
+ """
3713
+ Path to access on the HTTP server.
3714
+ """
3715
+ return pulumi.get(self, "path")
3716
+
3717
+ @path.setter
3718
+ def path(self, value: Optional[pulumi.Input[_builtins.str]]):
3719
+ pulumi.set(self, "path", value)
3720
+
3721
+ @_builtins.property
3722
+ @pulumi.getter
3723
+ def port(self) -> Optional[pulumi.Input[_builtins.int]]:
3724
+ """
3725
+ Number of the port to access on the container.
3726
+ Number must be in the range 1 to 65535.
3727
+ """
3728
+ return pulumi.get(self, "port")
3729
+
3730
+ @port.setter
3731
+ def port(self, value: Optional[pulumi.Input[_builtins.int]]):
3732
+ pulumi.set(self, "port", value)
3733
+
3734
+ @_builtins.property
3735
+ @pulumi.getter
3736
+ def scheme(self) -> Optional[pulumi.Input[_builtins.str]]:
3737
+ """
3738
+ Scheme to use for connecting to the host.
3739
+ Defaults to HTTP. Acceptable values are "HTTP" or "HTTPS".
3740
+ """
3741
+ return pulumi.get(self, "scheme")
3742
+
3743
+ @scheme.setter
3744
+ def scheme(self, value: Optional[pulumi.Input[_builtins.str]]):
3745
+ pulumi.set(self, "scheme", value)
3746
+
3747
+
3748
+ if not MYPY:
3749
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeHttpGetHttpHeaderArgsDict(TypedDict):
3750
+ name: NotRequired[pulumi.Input[_builtins.str]]
3751
+ """
3752
+ The header field name.
3753
+ This will be canonicalized upon output, so case-variant names will be
3754
+ understood as the same header.
3755
+ """
3756
+ value: NotRequired[pulumi.Input[_builtins.str]]
3757
+ """
3758
+ The header field value
3759
+ """
3760
+ elif False:
3761
+ AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeHttpGetHttpHeaderArgsDict: TypeAlias = Mapping[str, Any]
3762
+
3763
+ @pulumi.input_type
3764
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeHttpGetHttpHeaderArgs:
3765
+ def __init__(__self__, *,
3766
+ name: Optional[pulumi.Input[_builtins.str]] = None,
3767
+ value: Optional[pulumi.Input[_builtins.str]] = None):
3768
+ """
3769
+ :param pulumi.Input[_builtins.str] name: The header field name.
3770
+ This will be canonicalized upon output, so case-variant names will be
3771
+ understood as the same header.
3772
+ :param pulumi.Input[_builtins.str] value: The header field value
3773
+ """
3774
+ if name is not None:
3775
+ pulumi.set(__self__, "name", name)
3776
+ if value is not None:
3777
+ pulumi.set(__self__, "value", value)
3778
+
3779
+ @_builtins.property
3780
+ @pulumi.getter
3781
+ def name(self) -> Optional[pulumi.Input[_builtins.str]]:
3782
+ """
3783
+ The header field name.
3784
+ This will be canonicalized upon output, so case-variant names will be
3785
+ understood as the same header.
3786
+ """
3787
+ return pulumi.get(self, "name")
3788
+
3789
+ @name.setter
3790
+ def name(self, value: Optional[pulumi.Input[_builtins.str]]):
3791
+ pulumi.set(self, "name", value)
3792
+
3793
+ @_builtins.property
3794
+ @pulumi.getter
3795
+ def value(self) -> Optional[pulumi.Input[_builtins.str]]:
3796
+ """
3797
+ The header field value
3798
+ """
3799
+ return pulumi.get(self, "value")
3800
+
3801
+ @value.setter
3802
+ def value(self, value: Optional[pulumi.Input[_builtins.str]]):
3803
+ pulumi.set(self, "value", value)
3804
+
3805
+
3806
+ if not MYPY:
3807
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeTcpSocketArgsDict(TypedDict):
3808
+ host: NotRequired[pulumi.Input[_builtins.str]]
3809
+ """
3810
+ Optional: Host name to connect to, defaults to the model serving
3811
+ container's IP.
3812
+ """
3813
+ port: NotRequired[pulumi.Input[_builtins.int]]
3814
+ """
3815
+ Number of the port to access on the container.
3816
+ Number must be in the range 1 to 65535.
3817
+ """
3818
+ elif False:
3819
+ AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeTcpSocketArgsDict: TypeAlias = Mapping[str, Any]
3820
+
3821
+ @pulumi.input_type
3822
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecHealthProbeTcpSocketArgs:
3823
+ def __init__(__self__, *,
3824
+ host: Optional[pulumi.Input[_builtins.str]] = None,
3825
+ port: Optional[pulumi.Input[_builtins.int]] = None):
3826
+ """
3827
+ :param pulumi.Input[_builtins.str] host: Optional: Host name to connect to, defaults to the model serving
3828
+ container's IP.
3829
+ :param pulumi.Input[_builtins.int] port: Number of the port to access on the container.
3830
+ Number must be in the range 1 to 65535.
3831
+ """
3832
+ if host is not None:
3833
+ pulumi.set(__self__, "host", host)
3834
+ if port is not None:
3835
+ pulumi.set(__self__, "port", port)
3836
+
3837
+ @_builtins.property
3838
+ @pulumi.getter
3839
+ def host(self) -> Optional[pulumi.Input[_builtins.str]]:
3840
+ """
3841
+ Optional: Host name to connect to, defaults to the model serving
3842
+ container's IP.
3843
+ """
3844
+ return pulumi.get(self, "host")
3845
+
3846
+ @host.setter
3847
+ def host(self, value: Optional[pulumi.Input[_builtins.str]]):
3848
+ pulumi.set(self, "host", value)
3849
+
3850
+ @_builtins.property
3851
+ @pulumi.getter
3852
+ def port(self) -> Optional[pulumi.Input[_builtins.int]]:
3853
+ """
3854
+ Number of the port to access on the container.
3855
+ Number must be in the range 1 to 65535.
3856
+ """
3857
+ return pulumi.get(self, "port")
3858
+
3859
+ @port.setter
3860
+ def port(self, value: Optional[pulumi.Input[_builtins.int]]):
3861
+ pulumi.set(self, "port", value)
3862
+
3863
+
3864
+ if not MYPY:
3865
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeArgsDict(TypedDict):
3866
+ exec_: NotRequired[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeExecArgsDict']]
3867
+ """
3868
+ ExecAction specifies a command to execute.
3869
+ Structure is documented below.
3870
+ """
3871
+ failure_threshold: NotRequired[pulumi.Input[_builtins.int]]
3872
+ """
3873
+ Number of consecutive failures before the probe is considered failed.
3874
+ Defaults to 3. Minimum value is 1.
3875
+ Maps to Kubernetes probe argument 'failureThreshold'.
3876
+ """
3877
+ grpc: NotRequired[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeGrpcArgsDict']]
3878
+ """
3879
+ GrpcAction checks the health of a container using a gRPC service.
3880
+ Structure is documented below.
3881
+ """
3882
+ http_get: NotRequired[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeHttpGetArgsDict']]
3883
+ """
3884
+ HttpGetAction describes an action based on HTTP Get requests.
3885
+ Structure is documented below.
3886
+ """
3887
+ initial_delay_seconds: NotRequired[pulumi.Input[_builtins.int]]
3888
+ """
3889
+ Number of seconds to wait before starting the probe. Defaults to 0.
3890
+ Minimum value is 0.
3891
+ Maps to Kubernetes probe argument 'initialDelaySeconds'.
3892
+ """
3893
+ period_seconds: NotRequired[pulumi.Input[_builtins.int]]
3894
+ """
3895
+ How often (in seconds) to perform the probe. Default to 10 seconds.
3896
+ Minimum value is 1. Must be less than timeout_seconds.
3897
+ Maps to Kubernetes probe argument 'periodSeconds'.
3898
+ """
3899
+ success_threshold: NotRequired[pulumi.Input[_builtins.int]]
3900
+ """
3901
+ Number of consecutive successes before the probe is considered successful.
3902
+ Defaults to 1. Minimum value is 1.
3903
+ Maps to Kubernetes probe argument 'successThreshold'.
3904
+ """
3905
+ tcp_socket: NotRequired[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeTcpSocketArgsDict']]
3906
+ """
3907
+ TcpSocketAction probes the health of a container by opening a TCP socket
3908
+ connection.
3909
+ Structure is documented below.
3910
+ """
3911
+ timeout_seconds: NotRequired[pulumi.Input[_builtins.int]]
3912
+ """
3913
+ Number of seconds after which the probe times out. Defaults to 1 second.
3914
+ Minimum value is 1. Must be greater or equal to period_seconds.
3915
+ Maps to Kubernetes probe argument 'timeoutSeconds'.
3916
+ """
3917
+ elif False:
3918
+ AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeArgsDict: TypeAlias = Mapping[str, Any]
3919
+
3920
+ @pulumi.input_type
3921
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeArgs:
3922
+ def __init__(__self__, *,
3923
+ exec_: Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeExecArgs']] = None,
3924
+ failure_threshold: Optional[pulumi.Input[_builtins.int]] = None,
3925
+ grpc: Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeGrpcArgs']] = None,
3926
+ http_get: Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeHttpGetArgs']] = None,
3927
+ initial_delay_seconds: Optional[pulumi.Input[_builtins.int]] = None,
3928
+ period_seconds: Optional[pulumi.Input[_builtins.int]] = None,
3929
+ success_threshold: Optional[pulumi.Input[_builtins.int]] = None,
3930
+ tcp_socket: Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeTcpSocketArgs']] = None,
3931
+ timeout_seconds: Optional[pulumi.Input[_builtins.int]] = None):
3932
+ """
3933
+ :param pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeExecArgs'] exec_: ExecAction specifies a command to execute.
3934
+ Structure is documented below.
3935
+ :param pulumi.Input[_builtins.int] failure_threshold: Number of consecutive failures before the probe is considered failed.
3936
+ Defaults to 3. Minimum value is 1.
3937
+ Maps to Kubernetes probe argument 'failureThreshold'.
3938
+ :param pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeGrpcArgs'] grpc: GrpcAction checks the health of a container using a gRPC service.
3939
+ Structure is documented below.
3940
+ :param pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeHttpGetArgs'] http_get: HttpGetAction describes an action based on HTTP Get requests.
3941
+ Structure is documented below.
3942
+ :param pulumi.Input[_builtins.int] initial_delay_seconds: Number of seconds to wait before starting the probe. Defaults to 0.
3943
+ Minimum value is 0.
3944
+ Maps to Kubernetes probe argument 'initialDelaySeconds'.
3945
+ :param pulumi.Input[_builtins.int] period_seconds: How often (in seconds) to perform the probe. Default to 10 seconds.
3946
+ Minimum value is 1. Must be less than timeout_seconds.
3947
+ Maps to Kubernetes probe argument 'periodSeconds'.
3948
+ :param pulumi.Input[_builtins.int] success_threshold: Number of consecutive successes before the probe is considered successful.
3949
+ Defaults to 1. Minimum value is 1.
3950
+ Maps to Kubernetes probe argument 'successThreshold'.
3951
+ :param pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeTcpSocketArgs'] tcp_socket: TcpSocketAction probes the health of a container by opening a TCP socket
3952
+ connection.
3953
+ Structure is documented below.
3954
+ :param pulumi.Input[_builtins.int] timeout_seconds: Number of seconds after which the probe times out. Defaults to 1 second.
3955
+ Minimum value is 1. Must be greater or equal to period_seconds.
3956
+ Maps to Kubernetes probe argument 'timeoutSeconds'.
3957
+ """
3958
+ if exec_ is not None:
3959
+ pulumi.set(__self__, "exec_", exec_)
3960
+ if failure_threshold is not None:
3961
+ pulumi.set(__self__, "failure_threshold", failure_threshold)
3962
+ if grpc is not None:
3963
+ pulumi.set(__self__, "grpc", grpc)
3964
+ if http_get is not None:
3965
+ pulumi.set(__self__, "http_get", http_get)
3966
+ if initial_delay_seconds is not None:
3967
+ pulumi.set(__self__, "initial_delay_seconds", initial_delay_seconds)
3968
+ if period_seconds is not None:
3969
+ pulumi.set(__self__, "period_seconds", period_seconds)
3970
+ if success_threshold is not None:
3971
+ pulumi.set(__self__, "success_threshold", success_threshold)
3972
+ if tcp_socket is not None:
3973
+ pulumi.set(__self__, "tcp_socket", tcp_socket)
3974
+ if timeout_seconds is not None:
3975
+ pulumi.set(__self__, "timeout_seconds", timeout_seconds)
3976
+
3977
+ @_builtins.property
3978
+ @pulumi.getter(name="exec")
3979
+ def exec_(self) -> Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeExecArgs']]:
3980
+ """
3981
+ ExecAction specifies a command to execute.
3982
+ Structure is documented below.
3983
+ """
3984
+ return pulumi.get(self, "exec_")
3985
+
3986
+ @exec_.setter
3987
+ def exec_(self, value: Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeExecArgs']]):
3988
+ pulumi.set(self, "exec_", value)
3989
+
3990
+ @_builtins.property
3991
+ @pulumi.getter(name="failureThreshold")
3992
+ def failure_threshold(self) -> Optional[pulumi.Input[_builtins.int]]:
3993
+ """
3994
+ Number of consecutive failures before the probe is considered failed.
3995
+ Defaults to 3. Minimum value is 1.
3996
+ Maps to Kubernetes probe argument 'failureThreshold'.
3997
+ """
3998
+ return pulumi.get(self, "failure_threshold")
3999
+
4000
+ @failure_threshold.setter
4001
+ def failure_threshold(self, value: Optional[pulumi.Input[_builtins.int]]):
4002
+ pulumi.set(self, "failure_threshold", value)
4003
+
4004
+ @_builtins.property
4005
+ @pulumi.getter
4006
+ def grpc(self) -> Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeGrpcArgs']]:
4007
+ """
4008
+ GrpcAction checks the health of a container using a gRPC service.
4009
+ Structure is documented below.
4010
+ """
4011
+ return pulumi.get(self, "grpc")
4012
+
4013
+ @grpc.setter
4014
+ def grpc(self, value: Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeGrpcArgs']]):
4015
+ pulumi.set(self, "grpc", value)
4016
+
4017
+ @_builtins.property
4018
+ @pulumi.getter(name="httpGet")
4019
+ def http_get(self) -> Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeHttpGetArgs']]:
4020
+ """
4021
+ HttpGetAction describes an action based on HTTP Get requests.
4022
+ Structure is documented below.
4023
+ """
4024
+ return pulumi.get(self, "http_get")
4025
+
4026
+ @http_get.setter
4027
+ def http_get(self, value: Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeHttpGetArgs']]):
4028
+ pulumi.set(self, "http_get", value)
4029
+
4030
+ @_builtins.property
4031
+ @pulumi.getter(name="initialDelaySeconds")
4032
+ def initial_delay_seconds(self) -> Optional[pulumi.Input[_builtins.int]]:
4033
+ """
4034
+ Number of seconds to wait before starting the probe. Defaults to 0.
4035
+ Minimum value is 0.
4036
+ Maps to Kubernetes probe argument 'initialDelaySeconds'.
4037
+ """
4038
+ return pulumi.get(self, "initial_delay_seconds")
4039
+
4040
+ @initial_delay_seconds.setter
4041
+ def initial_delay_seconds(self, value: Optional[pulumi.Input[_builtins.int]]):
4042
+ pulumi.set(self, "initial_delay_seconds", value)
4043
+
4044
+ @_builtins.property
4045
+ @pulumi.getter(name="periodSeconds")
4046
+ def period_seconds(self) -> Optional[pulumi.Input[_builtins.int]]:
4047
+ """
4048
+ How often (in seconds) to perform the probe. Default to 10 seconds.
4049
+ Minimum value is 1. Must be less than timeout_seconds.
4050
+ Maps to Kubernetes probe argument 'periodSeconds'.
4051
+ """
4052
+ return pulumi.get(self, "period_seconds")
4053
+
4054
+ @period_seconds.setter
4055
+ def period_seconds(self, value: Optional[pulumi.Input[_builtins.int]]):
4056
+ pulumi.set(self, "period_seconds", value)
4057
+
4058
+ @_builtins.property
4059
+ @pulumi.getter(name="successThreshold")
4060
+ def success_threshold(self) -> Optional[pulumi.Input[_builtins.int]]:
4061
+ """
4062
+ Number of consecutive successes before the probe is considered successful.
4063
+ Defaults to 1. Minimum value is 1.
4064
+ Maps to Kubernetes probe argument 'successThreshold'.
4065
+ """
4066
+ return pulumi.get(self, "success_threshold")
4067
+
4068
+ @success_threshold.setter
4069
+ def success_threshold(self, value: Optional[pulumi.Input[_builtins.int]]):
4070
+ pulumi.set(self, "success_threshold", value)
4071
+
4072
+ @_builtins.property
4073
+ @pulumi.getter(name="tcpSocket")
4074
+ def tcp_socket(self) -> Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeTcpSocketArgs']]:
4075
+ """
4076
+ TcpSocketAction probes the health of a container by opening a TCP socket
4077
+ connection.
4078
+ Structure is documented below.
4079
+ """
4080
+ return pulumi.get(self, "tcp_socket")
4081
+
4082
+ @tcp_socket.setter
4083
+ def tcp_socket(self, value: Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeTcpSocketArgs']]):
4084
+ pulumi.set(self, "tcp_socket", value)
4085
+
4086
+ @_builtins.property
4087
+ @pulumi.getter(name="timeoutSeconds")
4088
+ def timeout_seconds(self) -> Optional[pulumi.Input[_builtins.int]]:
4089
+ """
4090
+ Number of seconds after which the probe times out. Defaults to 1 second.
4091
+ Minimum value is 1. Must be greater or equal to period_seconds.
4092
+ Maps to Kubernetes probe argument 'timeoutSeconds'.
4093
+ """
4094
+ return pulumi.get(self, "timeout_seconds")
4095
+
4096
+ @timeout_seconds.setter
4097
+ def timeout_seconds(self, value: Optional[pulumi.Input[_builtins.int]]):
4098
+ pulumi.set(self, "timeout_seconds", value)
4099
+
4100
+
4101
+ if not MYPY:
4102
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeExecArgsDict(TypedDict):
4103
+ commands: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
4104
+ """
4105
+ Command is the command line to execute inside the container, the working
4106
+ directory for the command is root ('/') in the container's filesystem.
4107
+ The command is simply exec'd, it is not run inside a shell, so
4108
+ traditional shell instructions ('|', etc) won't work. To use a shell, you
4109
+ need to explicitly call out to that shell. Exit status of 0 is treated as
4110
+ live/healthy and non-zero is unhealthy.
4111
+ """
4112
+ elif False:
4113
+ AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeExecArgsDict: TypeAlias = Mapping[str, Any]
4114
+
4115
+ @pulumi.input_type
4116
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeExecArgs:
4117
+ def __init__(__self__, *,
4118
+ commands: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
4119
+ """
4120
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] commands: Command is the command line to execute inside the container, the working
4121
+ directory for the command is root ('/') in the container's filesystem.
4122
+ The command is simply exec'd, it is not run inside a shell, so
4123
+ traditional shell instructions ('|', etc) won't work. To use a shell, you
4124
+ need to explicitly call out to that shell. Exit status of 0 is treated as
4125
+ live/healthy and non-zero is unhealthy.
4126
+ """
4127
+ if commands is not None:
4128
+ pulumi.set(__self__, "commands", commands)
4129
+
4130
+ @_builtins.property
4131
+ @pulumi.getter
4132
+ def commands(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
4133
+ """
4134
+ Command is the command line to execute inside the container, the working
4135
+ directory for the command is root ('/') in the container's filesystem.
4136
+ The command is simply exec'd, it is not run inside a shell, so
4137
+ traditional shell instructions ('|', etc) won't work. To use a shell, you
4138
+ need to explicitly call out to that shell. Exit status of 0 is treated as
4139
+ live/healthy and non-zero is unhealthy.
4140
+ """
4141
+ return pulumi.get(self, "commands")
4142
+
4143
+ @commands.setter
4144
+ def commands(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
4145
+ pulumi.set(self, "commands", value)
4146
+
4147
+
4148
+ if not MYPY:
4149
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeGrpcArgsDict(TypedDict):
4150
+ port: NotRequired[pulumi.Input[_builtins.int]]
4151
+ """
4152
+ Port number of the gRPC service. Number must be in the range 1 to 65535.
4153
+ """
4154
+ service: NotRequired[pulumi.Input[_builtins.str]]
4155
+ """
4156
+ Service is the name of the service to place in the gRPC
4157
+ HealthCheckRequest. See
4158
+ https://github.com/grpc/grpc/blob/master/doc/health-checking.md.
4159
+ If this is not specified, the default behavior is defined by gRPC.
4160
+ """
4161
+ elif False:
4162
+ AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeGrpcArgsDict: TypeAlias = Mapping[str, Any]
4163
+
4164
+ @pulumi.input_type
4165
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeGrpcArgs:
4166
+ def __init__(__self__, *,
4167
+ port: Optional[pulumi.Input[_builtins.int]] = None,
4168
+ service: Optional[pulumi.Input[_builtins.str]] = None):
4169
+ """
4170
+ :param pulumi.Input[_builtins.int] port: Port number of the gRPC service. Number must be in the range 1 to 65535.
4171
+ :param pulumi.Input[_builtins.str] service: Service is the name of the service to place in the gRPC
4172
+ HealthCheckRequest. See
4173
+ https://github.com/grpc/grpc/blob/master/doc/health-checking.md.
4174
+ If this is not specified, the default behavior is defined by gRPC.
4175
+ """
4176
+ if port is not None:
4177
+ pulumi.set(__self__, "port", port)
4178
+ if service is not None:
4179
+ pulumi.set(__self__, "service", service)
4180
+
4181
+ @_builtins.property
4182
+ @pulumi.getter
4183
+ def port(self) -> Optional[pulumi.Input[_builtins.int]]:
4184
+ """
4185
+ Port number of the gRPC service. Number must be in the range 1 to 65535.
4186
+ """
4187
+ return pulumi.get(self, "port")
4188
+
4189
+ @port.setter
4190
+ def port(self, value: Optional[pulumi.Input[_builtins.int]]):
4191
+ pulumi.set(self, "port", value)
4192
+
4193
+ @_builtins.property
4194
+ @pulumi.getter
4195
+ def service(self) -> Optional[pulumi.Input[_builtins.str]]:
4196
+ """
4197
+ Service is the name of the service to place in the gRPC
4198
+ HealthCheckRequest. See
4199
+ https://github.com/grpc/grpc/blob/master/doc/health-checking.md.
4200
+ If this is not specified, the default behavior is defined by gRPC.
4201
+ """
4202
+ return pulumi.get(self, "service")
4203
+
4204
+ @service.setter
4205
+ def service(self, value: Optional[pulumi.Input[_builtins.str]]):
4206
+ pulumi.set(self, "service", value)
4207
+
4208
+
4209
+ if not MYPY:
4210
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeHttpGetArgsDict(TypedDict):
4211
+ host: NotRequired[pulumi.Input[_builtins.str]]
4212
+ """
4213
+ Host name to connect to, defaults to the model serving container's IP.
4214
+ You probably want to set "Host" in httpHeaders instead.
4215
+ """
4216
+ http_headers: NotRequired[pulumi.Input[Sequence[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeHttpGetHttpHeaderArgsDict']]]]
4217
+ """
4218
+ Custom headers to set in the request. HTTP allows repeated headers.
4219
+ Structure is documented below.
4220
+ """
4221
+ path: NotRequired[pulumi.Input[_builtins.str]]
4222
+ """
4223
+ Path to access on the HTTP server.
4224
+ """
4225
+ port: NotRequired[pulumi.Input[_builtins.int]]
4226
+ """
4227
+ Number of the port to access on the container.
4228
+ Number must be in the range 1 to 65535.
4229
+ """
4230
+ scheme: NotRequired[pulumi.Input[_builtins.str]]
4231
+ """
4232
+ Scheme to use for connecting to the host.
4233
+ Defaults to HTTP. Acceptable values are "HTTP" or "HTTPS".
4234
+ """
4235
+ elif False:
4236
+ AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeHttpGetArgsDict: TypeAlias = Mapping[str, Any]
4237
+
4238
+ @pulumi.input_type
4239
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeHttpGetArgs:
4240
+ def __init__(__self__, *,
4241
+ host: Optional[pulumi.Input[_builtins.str]] = None,
4242
+ http_headers: Optional[pulumi.Input[Sequence[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeHttpGetHttpHeaderArgs']]]] = None,
4243
+ path: Optional[pulumi.Input[_builtins.str]] = None,
4244
+ port: Optional[pulumi.Input[_builtins.int]] = None,
4245
+ scheme: Optional[pulumi.Input[_builtins.str]] = None):
4246
+ """
4247
+ :param pulumi.Input[_builtins.str] host: Host name to connect to, defaults to the model serving container's IP.
4248
+ You probably want to set "Host" in httpHeaders instead.
4249
+ :param pulumi.Input[Sequence[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeHttpGetHttpHeaderArgs']]] http_headers: Custom headers to set in the request. HTTP allows repeated headers.
4250
+ Structure is documented below.
4251
+ :param pulumi.Input[_builtins.str] path: Path to access on the HTTP server.
4252
+ :param pulumi.Input[_builtins.int] port: Number of the port to access on the container.
4253
+ Number must be in the range 1 to 65535.
4254
+ :param pulumi.Input[_builtins.str] scheme: Scheme to use for connecting to the host.
4255
+ Defaults to HTTP. Acceptable values are "HTTP" or "HTTPS".
4256
+ """
4257
+ if host is not None:
4258
+ pulumi.set(__self__, "host", host)
4259
+ if http_headers is not None:
4260
+ pulumi.set(__self__, "http_headers", http_headers)
4261
+ if path is not None:
4262
+ pulumi.set(__self__, "path", path)
4263
+ if port is not None:
4264
+ pulumi.set(__self__, "port", port)
4265
+ if scheme is not None:
4266
+ pulumi.set(__self__, "scheme", scheme)
4267
+
4268
+ @_builtins.property
4269
+ @pulumi.getter
4270
+ def host(self) -> Optional[pulumi.Input[_builtins.str]]:
4271
+ """
4272
+ Host name to connect to, defaults to the model serving container's IP.
4273
+ You probably want to set "Host" in httpHeaders instead.
4274
+ """
4275
+ return pulumi.get(self, "host")
4276
+
4277
+ @host.setter
4278
+ def host(self, value: Optional[pulumi.Input[_builtins.str]]):
4279
+ pulumi.set(self, "host", value)
4280
+
4281
+ @_builtins.property
4282
+ @pulumi.getter(name="httpHeaders")
4283
+ def http_headers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeHttpGetHttpHeaderArgs']]]]:
4284
+ """
4285
+ Custom headers to set in the request. HTTP allows repeated headers.
4286
+ Structure is documented below.
4287
+ """
4288
+ return pulumi.get(self, "http_headers")
4289
+
4290
+ @http_headers.setter
4291
+ def http_headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeHttpGetHttpHeaderArgs']]]]):
4292
+ pulumi.set(self, "http_headers", value)
4293
+
4294
+ @_builtins.property
4295
+ @pulumi.getter
4296
+ def path(self) -> Optional[pulumi.Input[_builtins.str]]:
4297
+ """
4298
+ Path to access on the HTTP server.
4299
+ """
4300
+ return pulumi.get(self, "path")
4301
+
4302
+ @path.setter
4303
+ def path(self, value: Optional[pulumi.Input[_builtins.str]]):
4304
+ pulumi.set(self, "path", value)
4305
+
4306
+ @_builtins.property
4307
+ @pulumi.getter
4308
+ def port(self) -> Optional[pulumi.Input[_builtins.int]]:
4309
+ """
4310
+ Number of the port to access on the container.
4311
+ Number must be in the range 1 to 65535.
4312
+ """
4313
+ return pulumi.get(self, "port")
4314
+
4315
+ @port.setter
4316
+ def port(self, value: Optional[pulumi.Input[_builtins.int]]):
4317
+ pulumi.set(self, "port", value)
4318
+
4319
+ @_builtins.property
4320
+ @pulumi.getter
4321
+ def scheme(self) -> Optional[pulumi.Input[_builtins.str]]:
4322
+ """
4323
+ Scheme to use for connecting to the host.
4324
+ Defaults to HTTP. Acceptable values are "HTTP" or "HTTPS".
4325
+ """
4326
+ return pulumi.get(self, "scheme")
4327
+
4328
+ @scheme.setter
4329
+ def scheme(self, value: Optional[pulumi.Input[_builtins.str]]):
4330
+ pulumi.set(self, "scheme", value)
4331
+
4332
+
4333
+ if not MYPY:
4334
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeHttpGetHttpHeaderArgsDict(TypedDict):
4335
+ name: NotRequired[pulumi.Input[_builtins.str]]
4336
+ """
4337
+ The header field name.
4338
+ This will be canonicalized upon output, so case-variant names will be
4339
+ understood as the same header.
4340
+ """
4341
+ value: NotRequired[pulumi.Input[_builtins.str]]
4342
+ """
4343
+ The header field value
4344
+ """
4345
+ elif False:
4346
+ AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeHttpGetHttpHeaderArgsDict: TypeAlias = Mapping[str, Any]
4347
+
4348
+ @pulumi.input_type
4349
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeHttpGetHttpHeaderArgs:
4350
+ def __init__(__self__, *,
4351
+ name: Optional[pulumi.Input[_builtins.str]] = None,
4352
+ value: Optional[pulumi.Input[_builtins.str]] = None):
4353
+ """
4354
+ :param pulumi.Input[_builtins.str] name: The header field name.
4355
+ This will be canonicalized upon output, so case-variant names will be
4356
+ understood as the same header.
4357
+ :param pulumi.Input[_builtins.str] value: The header field value
4358
+ """
4359
+ if name is not None:
4360
+ pulumi.set(__self__, "name", name)
4361
+ if value is not None:
4362
+ pulumi.set(__self__, "value", value)
4363
+
4364
+ @_builtins.property
4365
+ @pulumi.getter
4366
+ def name(self) -> Optional[pulumi.Input[_builtins.str]]:
4367
+ """
4368
+ The header field name.
4369
+ This will be canonicalized upon output, so case-variant names will be
4370
+ understood as the same header.
4371
+ """
4372
+ return pulumi.get(self, "name")
4373
+
4374
+ @name.setter
4375
+ def name(self, value: Optional[pulumi.Input[_builtins.str]]):
4376
+ pulumi.set(self, "name", value)
4377
+
4378
+ @_builtins.property
4379
+ @pulumi.getter
4380
+ def value(self) -> Optional[pulumi.Input[_builtins.str]]:
4381
+ """
4382
+ The header field value
4383
+ """
4384
+ return pulumi.get(self, "value")
4385
+
4386
+ @value.setter
4387
+ def value(self, value: Optional[pulumi.Input[_builtins.str]]):
4388
+ pulumi.set(self, "value", value)
4389
+
4390
+
4391
+ if not MYPY:
4392
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeTcpSocketArgsDict(TypedDict):
4393
+ host: NotRequired[pulumi.Input[_builtins.str]]
4394
+ """
4395
+ Optional: Host name to connect to, defaults to the model serving
4396
+ container's IP.
4397
+ """
4398
+ port: NotRequired[pulumi.Input[_builtins.int]]
4399
+ """
4400
+ Number of the port to access on the container.
4401
+ Number must be in the range 1 to 65535.
4402
+ """
4403
+ elif False:
4404
+ AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeTcpSocketArgsDict: TypeAlias = Mapping[str, Any]
4405
+
4406
+ @pulumi.input_type
4407
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecLivenessProbeTcpSocketArgs:
4408
+ def __init__(__self__, *,
4409
+ host: Optional[pulumi.Input[_builtins.str]] = None,
4410
+ port: Optional[pulumi.Input[_builtins.int]] = None):
4411
+ """
4412
+ :param pulumi.Input[_builtins.str] host: Optional: Host name to connect to, defaults to the model serving
4413
+ container's IP.
4414
+ :param pulumi.Input[_builtins.int] port: Number of the port to access on the container.
4415
+ Number must be in the range 1 to 65535.
4416
+ """
4417
+ if host is not None:
4418
+ pulumi.set(__self__, "host", host)
4419
+ if port is not None:
4420
+ pulumi.set(__self__, "port", port)
4421
+
4422
+ @_builtins.property
4423
+ @pulumi.getter
4424
+ def host(self) -> Optional[pulumi.Input[_builtins.str]]:
4425
+ """
4426
+ Optional: Host name to connect to, defaults to the model serving
4427
+ container's IP.
4428
+ """
4429
+ return pulumi.get(self, "host")
4430
+
4431
+ @host.setter
4432
+ def host(self, value: Optional[pulumi.Input[_builtins.str]]):
4433
+ pulumi.set(self, "host", value)
4434
+
4435
+ @_builtins.property
4436
+ @pulumi.getter
4437
+ def port(self) -> Optional[pulumi.Input[_builtins.int]]:
4438
+ """
4439
+ Number of the port to access on the container.
4440
+ Number must be in the range 1 to 65535.
4441
+ """
4442
+ return pulumi.get(self, "port")
4443
+
4444
+ @port.setter
4445
+ def port(self, value: Optional[pulumi.Input[_builtins.int]]):
4446
+ pulumi.set(self, "port", value)
4447
+
4448
+
4449
+ if not MYPY:
4450
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecPortArgsDict(TypedDict):
4451
+ container_port: NotRequired[pulumi.Input[_builtins.int]]
4452
+ """
4453
+ The number of the port to expose on the pod's IP address.
4454
+ Must be a valid port number, between 1 and 65535 inclusive.
4455
+ """
4456
+ elif False:
4457
+ AiEndpointWithModelGardenDeploymentModelConfigContainerSpecPortArgsDict: TypeAlias = Mapping[str, Any]
4458
+
4459
+ @pulumi.input_type
4460
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecPortArgs:
4461
+ def __init__(__self__, *,
4462
+ container_port: Optional[pulumi.Input[_builtins.int]] = None):
4463
+ """
4464
+ :param pulumi.Input[_builtins.int] container_port: The number of the port to expose on the pod's IP address.
4465
+ Must be a valid port number, between 1 and 65535 inclusive.
4466
+ """
4467
+ if container_port is not None:
4468
+ pulumi.set(__self__, "container_port", container_port)
4469
+
4470
+ @_builtins.property
4471
+ @pulumi.getter(name="containerPort")
4472
+ def container_port(self) -> Optional[pulumi.Input[_builtins.int]]:
4473
+ """
4474
+ The number of the port to expose on the pod's IP address.
4475
+ Must be a valid port number, between 1 and 65535 inclusive.
4476
+ """
4477
+ return pulumi.get(self, "container_port")
4478
+
4479
+ @container_port.setter
4480
+ def container_port(self, value: Optional[pulumi.Input[_builtins.int]]):
4481
+ pulumi.set(self, "container_port", value)
4482
+
4483
+
4484
+ if not MYPY:
4485
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeArgsDict(TypedDict):
4486
+ exec_: NotRequired[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeExecArgsDict']]
4487
+ """
4488
+ ExecAction specifies a command to execute.
4489
+ Structure is documented below.
4490
+ """
4491
+ failure_threshold: NotRequired[pulumi.Input[_builtins.int]]
4492
+ """
4493
+ Number of consecutive failures before the probe is considered failed.
4494
+ Defaults to 3. Minimum value is 1.
4495
+ Maps to Kubernetes probe argument 'failureThreshold'.
4496
+ """
4497
+ grpc: NotRequired[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeGrpcArgsDict']]
4498
+ """
4499
+ GrpcAction checks the health of a container using a gRPC service.
4500
+ Structure is documented below.
4501
+ """
4502
+ http_get: NotRequired[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeHttpGetArgsDict']]
4503
+ """
4504
+ HttpGetAction describes an action based on HTTP Get requests.
4505
+ Structure is documented below.
4506
+ """
4507
+ initial_delay_seconds: NotRequired[pulumi.Input[_builtins.int]]
4508
+ """
4509
+ Number of seconds to wait before starting the probe. Defaults to 0.
4510
+ Minimum value is 0.
4511
+ Maps to Kubernetes probe argument 'initialDelaySeconds'.
4512
+ """
4513
+ period_seconds: NotRequired[pulumi.Input[_builtins.int]]
4514
+ """
4515
+ How often (in seconds) to perform the probe. Default to 10 seconds.
4516
+ Minimum value is 1. Must be less than timeout_seconds.
4517
+ Maps to Kubernetes probe argument 'periodSeconds'.
4518
+ """
4519
+ success_threshold: NotRequired[pulumi.Input[_builtins.int]]
4520
+ """
4521
+ Number of consecutive successes before the probe is considered successful.
4522
+ Defaults to 1. Minimum value is 1.
4523
+ Maps to Kubernetes probe argument 'successThreshold'.
4524
+ """
4525
+ tcp_socket: NotRequired[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeTcpSocketArgsDict']]
4526
+ """
4527
+ TcpSocketAction probes the health of a container by opening a TCP socket
4528
+ connection.
4529
+ Structure is documented below.
4530
+ """
4531
+ timeout_seconds: NotRequired[pulumi.Input[_builtins.int]]
4532
+ """
4533
+ Number of seconds after which the probe times out. Defaults to 1 second.
4534
+ Minimum value is 1. Must be greater or equal to period_seconds.
4535
+ Maps to Kubernetes probe argument 'timeoutSeconds'.
4536
+ """
4537
+ elif False:
4538
+ AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeArgsDict: TypeAlias = Mapping[str, Any]
4539
+
4540
+ @pulumi.input_type
4541
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeArgs:
4542
+ def __init__(__self__, *,
4543
+ exec_: Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeExecArgs']] = None,
4544
+ failure_threshold: Optional[pulumi.Input[_builtins.int]] = None,
4545
+ grpc: Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeGrpcArgs']] = None,
4546
+ http_get: Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeHttpGetArgs']] = None,
4547
+ initial_delay_seconds: Optional[pulumi.Input[_builtins.int]] = None,
4548
+ period_seconds: Optional[pulumi.Input[_builtins.int]] = None,
4549
+ success_threshold: Optional[pulumi.Input[_builtins.int]] = None,
4550
+ tcp_socket: Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeTcpSocketArgs']] = None,
4551
+ timeout_seconds: Optional[pulumi.Input[_builtins.int]] = None):
4552
+ """
4553
+ :param pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeExecArgs'] exec_: ExecAction specifies a command to execute.
4554
+ Structure is documented below.
4555
+ :param pulumi.Input[_builtins.int] failure_threshold: Number of consecutive failures before the probe is considered failed.
4556
+ Defaults to 3. Minimum value is 1.
4557
+ Maps to Kubernetes probe argument 'failureThreshold'.
4558
+ :param pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeGrpcArgs'] grpc: GrpcAction checks the health of a container using a gRPC service.
4559
+ Structure is documented below.
4560
+ :param pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeHttpGetArgs'] http_get: HttpGetAction describes an action based on HTTP Get requests.
4561
+ Structure is documented below.
4562
+ :param pulumi.Input[_builtins.int] initial_delay_seconds: Number of seconds to wait before starting the probe. Defaults to 0.
4563
+ Minimum value is 0.
4564
+ Maps to Kubernetes probe argument 'initialDelaySeconds'.
4565
+ :param pulumi.Input[_builtins.int] period_seconds: How often (in seconds) to perform the probe. Default to 10 seconds.
4566
+ Minimum value is 1. Must be less than timeout_seconds.
4567
+ Maps to Kubernetes probe argument 'periodSeconds'.
4568
+ :param pulumi.Input[_builtins.int] success_threshold: Number of consecutive successes before the probe is considered successful.
4569
+ Defaults to 1. Minimum value is 1.
4570
+ Maps to Kubernetes probe argument 'successThreshold'.
4571
+ :param pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeTcpSocketArgs'] tcp_socket: TcpSocketAction probes the health of a container by opening a TCP socket
4572
+ connection.
4573
+ Structure is documented below.
4574
+ :param pulumi.Input[_builtins.int] timeout_seconds: Number of seconds after which the probe times out. Defaults to 1 second.
4575
+ Minimum value is 1. Must be greater or equal to period_seconds.
4576
+ Maps to Kubernetes probe argument 'timeoutSeconds'.
4577
+ """
4578
+ if exec_ is not None:
4579
+ pulumi.set(__self__, "exec_", exec_)
4580
+ if failure_threshold is not None:
4581
+ pulumi.set(__self__, "failure_threshold", failure_threshold)
4582
+ if grpc is not None:
4583
+ pulumi.set(__self__, "grpc", grpc)
4584
+ if http_get is not None:
4585
+ pulumi.set(__self__, "http_get", http_get)
4586
+ if initial_delay_seconds is not None:
4587
+ pulumi.set(__self__, "initial_delay_seconds", initial_delay_seconds)
4588
+ if period_seconds is not None:
4589
+ pulumi.set(__self__, "period_seconds", period_seconds)
4590
+ if success_threshold is not None:
4591
+ pulumi.set(__self__, "success_threshold", success_threshold)
4592
+ if tcp_socket is not None:
4593
+ pulumi.set(__self__, "tcp_socket", tcp_socket)
4594
+ if timeout_seconds is not None:
4595
+ pulumi.set(__self__, "timeout_seconds", timeout_seconds)
4596
+
4597
+ @_builtins.property
4598
+ @pulumi.getter(name="exec")
4599
+ def exec_(self) -> Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeExecArgs']]:
4600
+ """
4601
+ ExecAction specifies a command to execute.
4602
+ Structure is documented below.
4603
+ """
4604
+ return pulumi.get(self, "exec_")
4605
+
4606
+ @exec_.setter
4607
+ def exec_(self, value: Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeExecArgs']]):
4608
+ pulumi.set(self, "exec_", value)
4609
+
4610
+ @_builtins.property
4611
+ @pulumi.getter(name="failureThreshold")
4612
+ def failure_threshold(self) -> Optional[pulumi.Input[_builtins.int]]:
4613
+ """
4614
+ Number of consecutive failures before the probe is considered failed.
4615
+ Defaults to 3. Minimum value is 1.
4616
+ Maps to Kubernetes probe argument 'failureThreshold'.
4617
+ """
4618
+ return pulumi.get(self, "failure_threshold")
4619
+
4620
+ @failure_threshold.setter
4621
+ def failure_threshold(self, value: Optional[pulumi.Input[_builtins.int]]):
4622
+ pulumi.set(self, "failure_threshold", value)
4623
+
4624
+ @_builtins.property
4625
+ @pulumi.getter
4626
+ def grpc(self) -> Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeGrpcArgs']]:
4627
+ """
4628
+ GrpcAction checks the health of a container using a gRPC service.
4629
+ Structure is documented below.
4630
+ """
4631
+ return pulumi.get(self, "grpc")
4632
+
4633
+ @grpc.setter
4634
+ def grpc(self, value: Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeGrpcArgs']]):
4635
+ pulumi.set(self, "grpc", value)
4636
+
4637
+ @_builtins.property
4638
+ @pulumi.getter(name="httpGet")
4639
+ def http_get(self) -> Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeHttpGetArgs']]:
4640
+ """
4641
+ HttpGetAction describes an action based on HTTP Get requests.
4642
+ Structure is documented below.
4643
+ """
4644
+ return pulumi.get(self, "http_get")
4645
+
4646
+ @http_get.setter
4647
+ def http_get(self, value: Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeHttpGetArgs']]):
4648
+ pulumi.set(self, "http_get", value)
4649
+
4650
+ @_builtins.property
4651
+ @pulumi.getter(name="initialDelaySeconds")
4652
+ def initial_delay_seconds(self) -> Optional[pulumi.Input[_builtins.int]]:
4653
+ """
4654
+ Number of seconds to wait before starting the probe. Defaults to 0.
4655
+ Minimum value is 0.
4656
+ Maps to Kubernetes probe argument 'initialDelaySeconds'.
4657
+ """
4658
+ return pulumi.get(self, "initial_delay_seconds")
4659
+
4660
+ @initial_delay_seconds.setter
4661
+ def initial_delay_seconds(self, value: Optional[pulumi.Input[_builtins.int]]):
4662
+ pulumi.set(self, "initial_delay_seconds", value)
4663
+
4664
+ @_builtins.property
4665
+ @pulumi.getter(name="periodSeconds")
4666
+ def period_seconds(self) -> Optional[pulumi.Input[_builtins.int]]:
4667
+ """
4668
+ How often (in seconds) to perform the probe. Default to 10 seconds.
4669
+ Minimum value is 1. Must be less than timeout_seconds.
4670
+ Maps to Kubernetes probe argument 'periodSeconds'.
4671
+ """
4672
+ return pulumi.get(self, "period_seconds")
4673
+
4674
+ @period_seconds.setter
4675
+ def period_seconds(self, value: Optional[pulumi.Input[_builtins.int]]):
4676
+ pulumi.set(self, "period_seconds", value)
4677
+
4678
+ @_builtins.property
4679
+ @pulumi.getter(name="successThreshold")
4680
+ def success_threshold(self) -> Optional[pulumi.Input[_builtins.int]]:
4681
+ """
4682
+ Number of consecutive successes before the probe is considered successful.
4683
+ Defaults to 1. Minimum value is 1.
4684
+ Maps to Kubernetes probe argument 'successThreshold'.
4685
+ """
4686
+ return pulumi.get(self, "success_threshold")
4687
+
4688
+ @success_threshold.setter
4689
+ def success_threshold(self, value: Optional[pulumi.Input[_builtins.int]]):
4690
+ pulumi.set(self, "success_threshold", value)
4691
+
4692
+ @_builtins.property
4693
+ @pulumi.getter(name="tcpSocket")
4694
+ def tcp_socket(self) -> Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeTcpSocketArgs']]:
4695
+ """
4696
+ TcpSocketAction probes the health of a container by opening a TCP socket
4697
+ connection.
4698
+ Structure is documented below.
4699
+ """
4700
+ return pulumi.get(self, "tcp_socket")
4701
+
4702
+ @tcp_socket.setter
4703
+ def tcp_socket(self, value: Optional[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeTcpSocketArgs']]):
4704
+ pulumi.set(self, "tcp_socket", value)
4705
+
4706
+ @_builtins.property
4707
+ @pulumi.getter(name="timeoutSeconds")
4708
+ def timeout_seconds(self) -> Optional[pulumi.Input[_builtins.int]]:
4709
+ """
4710
+ Number of seconds after which the probe times out. Defaults to 1 second.
4711
+ Minimum value is 1. Must be greater or equal to period_seconds.
4712
+ Maps to Kubernetes probe argument 'timeoutSeconds'.
4713
+ """
4714
+ return pulumi.get(self, "timeout_seconds")
4715
+
4716
+ @timeout_seconds.setter
4717
+ def timeout_seconds(self, value: Optional[pulumi.Input[_builtins.int]]):
4718
+ pulumi.set(self, "timeout_seconds", value)
4719
+
4720
+
4721
+ if not MYPY:
4722
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeExecArgsDict(TypedDict):
4723
+ commands: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
4724
+ """
4725
+ Command is the command line to execute inside the container, the working
4726
+ directory for the command is root ('/') in the container's filesystem.
4727
+ The command is simply exec'd, it is not run inside a shell, so
4728
+ traditional shell instructions ('|', etc) won't work. To use a shell, you
4729
+ need to explicitly call out to that shell. Exit status of 0 is treated as
4730
+ live/healthy and non-zero is unhealthy.
4731
+ """
4732
+ elif False:
4733
+ AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeExecArgsDict: TypeAlias = Mapping[str, Any]
4734
+
4735
+ @pulumi.input_type
4736
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeExecArgs:
4737
+ def __init__(__self__, *,
4738
+ commands: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
4739
+ """
4740
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] commands: Command is the command line to execute inside the container, the working
4741
+ directory for the command is root ('/') in the container's filesystem.
4742
+ The command is simply exec'd, it is not run inside a shell, so
4743
+ traditional shell instructions ('|', etc) won't work. To use a shell, you
4744
+ need to explicitly call out to that shell. Exit status of 0 is treated as
4745
+ live/healthy and non-zero is unhealthy.
4746
+ """
4747
+ if commands is not None:
4748
+ pulumi.set(__self__, "commands", commands)
4749
+
4750
+ @_builtins.property
4751
+ @pulumi.getter
4752
+ def commands(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
4753
+ """
4754
+ Command is the command line to execute inside the container, the working
4755
+ directory for the command is root ('/') in the container's filesystem.
4756
+ The command is simply exec'd, it is not run inside a shell, so
4757
+ traditional shell instructions ('|', etc) won't work. To use a shell, you
4758
+ need to explicitly call out to that shell. Exit status of 0 is treated as
4759
+ live/healthy and non-zero is unhealthy.
4760
+ """
4761
+ return pulumi.get(self, "commands")
4762
+
4763
+ @commands.setter
4764
+ def commands(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
4765
+ pulumi.set(self, "commands", value)
4766
+
4767
+
4768
+ if not MYPY:
4769
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeGrpcArgsDict(TypedDict):
4770
+ port: NotRequired[pulumi.Input[_builtins.int]]
4771
+ """
4772
+ Port number of the gRPC service. Number must be in the range 1 to 65535.
4773
+ """
4774
+ service: NotRequired[pulumi.Input[_builtins.str]]
4775
+ """
4776
+ Service is the name of the service to place in the gRPC
4777
+ HealthCheckRequest. See
4778
+ https://github.com/grpc/grpc/blob/master/doc/health-checking.md.
4779
+ If this is not specified, the default behavior is defined by gRPC.
4780
+ """
4781
+ elif False:
4782
+ AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeGrpcArgsDict: TypeAlias = Mapping[str, Any]
4783
+
4784
+ @pulumi.input_type
4785
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeGrpcArgs:
4786
+ def __init__(__self__, *,
4787
+ port: Optional[pulumi.Input[_builtins.int]] = None,
4788
+ service: Optional[pulumi.Input[_builtins.str]] = None):
4789
+ """
4790
+ :param pulumi.Input[_builtins.int] port: Port number of the gRPC service. Number must be in the range 1 to 65535.
4791
+ :param pulumi.Input[_builtins.str] service: Service is the name of the service to place in the gRPC
4792
+ HealthCheckRequest. See
4793
+ https://github.com/grpc/grpc/blob/master/doc/health-checking.md.
4794
+ If this is not specified, the default behavior is defined by gRPC.
4795
+ """
4796
+ if port is not None:
4797
+ pulumi.set(__self__, "port", port)
4798
+ if service is not None:
4799
+ pulumi.set(__self__, "service", service)
4800
+
4801
+ @_builtins.property
4802
+ @pulumi.getter
4803
+ def port(self) -> Optional[pulumi.Input[_builtins.int]]:
4804
+ """
4805
+ Port number of the gRPC service. Number must be in the range 1 to 65535.
4806
+ """
4807
+ return pulumi.get(self, "port")
4808
+
4809
+ @port.setter
4810
+ def port(self, value: Optional[pulumi.Input[_builtins.int]]):
4811
+ pulumi.set(self, "port", value)
4812
+
4813
+ @_builtins.property
4814
+ @pulumi.getter
4815
+ def service(self) -> Optional[pulumi.Input[_builtins.str]]:
4816
+ """
4817
+ Service is the name of the service to place in the gRPC
4818
+ HealthCheckRequest. See
4819
+ https://github.com/grpc/grpc/blob/master/doc/health-checking.md.
4820
+ If this is not specified, the default behavior is defined by gRPC.
4821
+ """
4822
+ return pulumi.get(self, "service")
4823
+
4824
+ @service.setter
4825
+ def service(self, value: Optional[pulumi.Input[_builtins.str]]):
4826
+ pulumi.set(self, "service", value)
4827
+
4828
+
4829
+ if not MYPY:
4830
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeHttpGetArgsDict(TypedDict):
4831
+ host: NotRequired[pulumi.Input[_builtins.str]]
4832
+ """
4833
+ Host name to connect to, defaults to the model serving container's IP.
4834
+ You probably want to set "Host" in httpHeaders instead.
4835
+ """
4836
+ http_headers: NotRequired[pulumi.Input[Sequence[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeHttpGetHttpHeaderArgsDict']]]]
4837
+ """
4838
+ Custom headers to set in the request. HTTP allows repeated headers.
4839
+ Structure is documented below.
4840
+ """
4841
+ path: NotRequired[pulumi.Input[_builtins.str]]
4842
+ """
4843
+ Path to access on the HTTP server.
4844
+ """
4845
+ port: NotRequired[pulumi.Input[_builtins.int]]
4846
+ """
4847
+ Number of the port to access on the container.
4848
+ Number must be in the range 1 to 65535.
4849
+ """
4850
+ scheme: NotRequired[pulumi.Input[_builtins.str]]
4851
+ """
4852
+ Scheme to use for connecting to the host.
4853
+ Defaults to HTTP. Acceptable values are "HTTP" or "HTTPS".
4854
+ """
4855
+ elif False:
4856
+ AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeHttpGetArgsDict: TypeAlias = Mapping[str, Any]
4857
+
4858
+ @pulumi.input_type
4859
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeHttpGetArgs:
4860
+ def __init__(__self__, *,
4861
+ host: Optional[pulumi.Input[_builtins.str]] = None,
4862
+ http_headers: Optional[pulumi.Input[Sequence[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeHttpGetHttpHeaderArgs']]]] = None,
4863
+ path: Optional[pulumi.Input[_builtins.str]] = None,
4864
+ port: Optional[pulumi.Input[_builtins.int]] = None,
4865
+ scheme: Optional[pulumi.Input[_builtins.str]] = None):
4866
+ """
4867
+ :param pulumi.Input[_builtins.str] host: Host name to connect to, defaults to the model serving container's IP.
4868
+ You probably want to set "Host" in httpHeaders instead.
4869
+ :param pulumi.Input[Sequence[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeHttpGetHttpHeaderArgs']]] http_headers: Custom headers to set in the request. HTTP allows repeated headers.
4870
+ Structure is documented below.
4871
+ :param pulumi.Input[_builtins.str] path: Path to access on the HTTP server.
4872
+ :param pulumi.Input[_builtins.int] port: Number of the port to access on the container.
4873
+ Number must be in the range 1 to 65535.
4874
+ :param pulumi.Input[_builtins.str] scheme: Scheme to use for connecting to the host.
4875
+ Defaults to HTTP. Acceptable values are "HTTP" or "HTTPS".
4876
+ """
4877
+ if host is not None:
4878
+ pulumi.set(__self__, "host", host)
4879
+ if http_headers is not None:
4880
+ pulumi.set(__self__, "http_headers", http_headers)
4881
+ if path is not None:
4882
+ pulumi.set(__self__, "path", path)
4883
+ if port is not None:
4884
+ pulumi.set(__self__, "port", port)
4885
+ if scheme is not None:
4886
+ pulumi.set(__self__, "scheme", scheme)
4887
+
4888
+ @_builtins.property
4889
+ @pulumi.getter
4890
+ def host(self) -> Optional[pulumi.Input[_builtins.str]]:
4891
+ """
4892
+ Host name to connect to, defaults to the model serving container's IP.
4893
+ You probably want to set "Host" in httpHeaders instead.
4894
+ """
4895
+ return pulumi.get(self, "host")
4896
+
4897
+ @host.setter
4898
+ def host(self, value: Optional[pulumi.Input[_builtins.str]]):
4899
+ pulumi.set(self, "host", value)
4900
+
4901
+ @_builtins.property
4902
+ @pulumi.getter(name="httpHeaders")
4903
+ def http_headers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeHttpGetHttpHeaderArgs']]]]:
4904
+ """
4905
+ Custom headers to set in the request. HTTP allows repeated headers.
4906
+ Structure is documented below.
4907
+ """
4908
+ return pulumi.get(self, "http_headers")
4909
+
4910
+ @http_headers.setter
4911
+ def http_headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeHttpGetHttpHeaderArgs']]]]):
4912
+ pulumi.set(self, "http_headers", value)
4913
+
4914
+ @_builtins.property
4915
+ @pulumi.getter
4916
+ def path(self) -> Optional[pulumi.Input[_builtins.str]]:
4917
+ """
4918
+ Path to access on the HTTP server.
4919
+ """
4920
+ return pulumi.get(self, "path")
4921
+
4922
+ @path.setter
4923
+ def path(self, value: Optional[pulumi.Input[_builtins.str]]):
4924
+ pulumi.set(self, "path", value)
4925
+
4926
+ @_builtins.property
4927
+ @pulumi.getter
4928
+ def port(self) -> Optional[pulumi.Input[_builtins.int]]:
4929
+ """
4930
+ Number of the port to access on the container.
4931
+ Number must be in the range 1 to 65535.
4932
+ """
4933
+ return pulumi.get(self, "port")
4934
+
4935
+ @port.setter
4936
+ def port(self, value: Optional[pulumi.Input[_builtins.int]]):
4937
+ pulumi.set(self, "port", value)
4938
+
4939
+ @_builtins.property
4940
+ @pulumi.getter
4941
+ def scheme(self) -> Optional[pulumi.Input[_builtins.str]]:
4942
+ """
4943
+ Scheme to use for connecting to the host.
4944
+ Defaults to HTTP. Acceptable values are "HTTP" or "HTTPS".
4945
+ """
4946
+ return pulumi.get(self, "scheme")
4947
+
4948
+ @scheme.setter
4949
+ def scheme(self, value: Optional[pulumi.Input[_builtins.str]]):
4950
+ pulumi.set(self, "scheme", value)
4951
+
4952
+
4953
+ if not MYPY:
4954
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeHttpGetHttpHeaderArgsDict(TypedDict):
4955
+ name: NotRequired[pulumi.Input[_builtins.str]]
4956
+ """
4957
+ The header field name.
4958
+ This will be canonicalized upon output, so case-variant names will be
4959
+ understood as the same header.
4960
+ """
4961
+ value: NotRequired[pulumi.Input[_builtins.str]]
4962
+ """
4963
+ The header field value
4964
+ """
4965
+ elif False:
4966
+ AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeHttpGetHttpHeaderArgsDict: TypeAlias = Mapping[str, Any]
4967
+
4968
+ @pulumi.input_type
4969
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeHttpGetHttpHeaderArgs:
4970
+ def __init__(__self__, *,
4971
+ name: Optional[pulumi.Input[_builtins.str]] = None,
4972
+ value: Optional[pulumi.Input[_builtins.str]] = None):
4973
+ """
4974
+ :param pulumi.Input[_builtins.str] name: The header field name.
4975
+ This will be canonicalized upon output, so case-variant names will be
4976
+ understood as the same header.
4977
+ :param pulumi.Input[_builtins.str] value: The header field value
4978
+ """
4979
+ if name is not None:
4980
+ pulumi.set(__self__, "name", name)
4981
+ if value is not None:
4982
+ pulumi.set(__self__, "value", value)
4983
+
4984
+ @_builtins.property
4985
+ @pulumi.getter
4986
+ def name(self) -> Optional[pulumi.Input[_builtins.str]]:
4987
+ """
4988
+ The header field name.
4989
+ This will be canonicalized upon output, so case-variant names will be
4990
+ understood as the same header.
4991
+ """
4992
+ return pulumi.get(self, "name")
4993
+
4994
+ @name.setter
4995
+ def name(self, value: Optional[pulumi.Input[_builtins.str]]):
4996
+ pulumi.set(self, "name", value)
4997
+
4998
+ @_builtins.property
4999
+ @pulumi.getter
5000
+ def value(self) -> Optional[pulumi.Input[_builtins.str]]:
5001
+ """
5002
+ The header field value
5003
+ """
5004
+ return pulumi.get(self, "value")
5005
+
5006
+ @value.setter
5007
+ def value(self, value: Optional[pulumi.Input[_builtins.str]]):
5008
+ pulumi.set(self, "value", value)
5009
+
5010
+
5011
+ if not MYPY:
5012
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeTcpSocketArgsDict(TypedDict):
5013
+ host: NotRequired[pulumi.Input[_builtins.str]]
5014
+ """
5015
+ Optional: Host name to connect to, defaults to the model serving
5016
+ container's IP.
5017
+ """
5018
+ port: NotRequired[pulumi.Input[_builtins.int]]
5019
+ """
5020
+ Number of the port to access on the container.
5021
+ Number must be in the range 1 to 65535.
5022
+ """
5023
+ elif False:
5024
+ AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeTcpSocketArgsDict: TypeAlias = Mapping[str, Any]
5025
+
5026
+ @pulumi.input_type
5027
+ class AiEndpointWithModelGardenDeploymentModelConfigContainerSpecStartupProbeTcpSocketArgs:
5028
+ def __init__(__self__, *,
5029
+ host: Optional[pulumi.Input[_builtins.str]] = None,
5030
+ port: Optional[pulumi.Input[_builtins.int]] = None):
5031
+ """
5032
+ :param pulumi.Input[_builtins.str] host: Optional: Host name to connect to, defaults to the model serving
5033
+ container's IP.
5034
+ :param pulumi.Input[_builtins.int] port: Number of the port to access on the container.
5035
+ Number must be in the range 1 to 65535.
5036
+ """
5037
+ if host is not None:
5038
+ pulumi.set(__self__, "host", host)
5039
+ if port is not None:
5040
+ pulumi.set(__self__, "port", port)
5041
+
5042
+ @_builtins.property
5043
+ @pulumi.getter
5044
+ def host(self) -> Optional[pulumi.Input[_builtins.str]]:
5045
+ """
5046
+ Optional: Host name to connect to, defaults to the model serving
5047
+ container's IP.
5048
+ """
5049
+ return pulumi.get(self, "host")
5050
+
5051
+ @host.setter
5052
+ def host(self, value: Optional[pulumi.Input[_builtins.str]]):
5053
+ pulumi.set(self, "host", value)
5054
+
5055
+ @_builtins.property
5056
+ @pulumi.getter
5057
+ def port(self) -> Optional[pulumi.Input[_builtins.int]]:
5058
+ """
5059
+ Number of the port to access on the container.
5060
+ Number must be in the range 1 to 65535.
5061
+ """
5062
+ return pulumi.get(self, "port")
5063
+
5064
+ @port.setter
5065
+ def port(self, value: Optional[pulumi.Input[_builtins.int]]):
5066
+ pulumi.set(self, "port", value)
5067
+
5068
+
1418
5069
  if not MYPY:
1419
5070
  class AiFeatureGroupBigQueryArgsDict(TypedDict):
1420
5071
  big_query_source: pulumi.Input['AiFeatureGroupBigQueryBigQuerySourceArgsDict']
@@ -4178,6 +7829,120 @@ class AiMetadataStoreStateArgs:
4178
7829
  pulumi.set(self, "disk_utilization_bytes", value)
4179
7830
 
4180
7831
 
7832
+ if not MYPY:
7833
+ class AiRagEngineConfigRagManagedDbConfigArgsDict(TypedDict):
7834
+ basic: NotRequired[pulumi.Input['AiRagEngineConfigRagManagedDbConfigBasicArgsDict']]
7835
+ """
7836
+ Basic tier is a cost-effective and low compute tier suitable for the following cases: Experimenting with RagManagedDb, Small data size, Latency insensitive workload, Only using RAG Engine with external vector DBs.
7837
+ NOTE: This is the default tier if not explicitly chosen.
7838
+ """
7839
+ scaled: NotRequired[pulumi.Input['AiRagEngineConfigRagManagedDbConfigScaledArgsDict']]
7840
+ """
7841
+ Scaled tier offers production grade performance along with autoscaling functionality. It is suitable for customers with large amounts of data or performance sensitive workloads.
7842
+ """
7843
+ unprovisioned: NotRequired[pulumi.Input['AiRagEngineConfigRagManagedDbConfigUnprovisionedArgsDict']]
7844
+ """
7845
+ Disables the RAG Engine service and deletes all your data held within this service. This will halt the billing of the service.
7846
+ NOTE: Once deleted the data cannot be recovered. To start using RAG Engine again, you will need to update the tier by calling the UpdateRagEngineConfig API.
7847
+ """
7848
+ elif False:
7849
+ AiRagEngineConfigRagManagedDbConfigArgsDict: TypeAlias = Mapping[str, Any]
7850
+
7851
+ @pulumi.input_type
7852
+ class AiRagEngineConfigRagManagedDbConfigArgs:
7853
+ def __init__(__self__, *,
7854
+ basic: Optional[pulumi.Input['AiRagEngineConfigRagManagedDbConfigBasicArgs']] = None,
7855
+ scaled: Optional[pulumi.Input['AiRagEngineConfigRagManagedDbConfigScaledArgs']] = None,
7856
+ unprovisioned: Optional[pulumi.Input['AiRagEngineConfigRagManagedDbConfigUnprovisionedArgs']] = None):
7857
+ """
7858
+ :param pulumi.Input['AiRagEngineConfigRagManagedDbConfigBasicArgs'] basic: Basic tier is a cost-effective and low compute tier suitable for the following cases: Experimenting with RagManagedDb, Small data size, Latency insensitive workload, Only using RAG Engine with external vector DBs.
7859
+ NOTE: This is the default tier if not explicitly chosen.
7860
+ :param pulumi.Input['AiRagEngineConfigRagManagedDbConfigScaledArgs'] scaled: Scaled tier offers production grade performance along with autoscaling functionality. It is suitable for customers with large amounts of data or performance sensitive workloads.
7861
+ :param pulumi.Input['AiRagEngineConfigRagManagedDbConfigUnprovisionedArgs'] unprovisioned: Disables the RAG Engine service and deletes all your data held within this service. This will halt the billing of the service.
7862
+ NOTE: Once deleted the data cannot be recovered. To start using RAG Engine again, you will need to update the tier by calling the UpdateRagEngineConfig API.
7863
+ """
7864
+ if basic is not None:
7865
+ pulumi.set(__self__, "basic", basic)
7866
+ if scaled is not None:
7867
+ pulumi.set(__self__, "scaled", scaled)
7868
+ if unprovisioned is not None:
7869
+ pulumi.set(__self__, "unprovisioned", unprovisioned)
7870
+
7871
+ @_builtins.property
7872
+ @pulumi.getter
7873
+ def basic(self) -> Optional[pulumi.Input['AiRagEngineConfigRagManagedDbConfigBasicArgs']]:
7874
+ """
7875
+ Basic tier is a cost-effective and low compute tier suitable for the following cases: Experimenting with RagManagedDb, Small data size, Latency insensitive workload, Only using RAG Engine with external vector DBs.
7876
+ NOTE: This is the default tier if not explicitly chosen.
7877
+ """
7878
+ return pulumi.get(self, "basic")
7879
+
7880
+ @basic.setter
7881
+ def basic(self, value: Optional[pulumi.Input['AiRagEngineConfigRagManagedDbConfigBasicArgs']]):
7882
+ pulumi.set(self, "basic", value)
7883
+
7884
+ @_builtins.property
7885
+ @pulumi.getter
7886
+ def scaled(self) -> Optional[pulumi.Input['AiRagEngineConfigRagManagedDbConfigScaledArgs']]:
7887
+ """
7888
+ Scaled tier offers production grade performance along with autoscaling functionality. It is suitable for customers with large amounts of data or performance sensitive workloads.
7889
+ """
7890
+ return pulumi.get(self, "scaled")
7891
+
7892
+ @scaled.setter
7893
+ def scaled(self, value: Optional[pulumi.Input['AiRagEngineConfigRagManagedDbConfigScaledArgs']]):
7894
+ pulumi.set(self, "scaled", value)
7895
+
7896
+ @_builtins.property
7897
+ @pulumi.getter
7898
+ def unprovisioned(self) -> Optional[pulumi.Input['AiRagEngineConfigRagManagedDbConfigUnprovisionedArgs']]:
7899
+ """
7900
+ Disables the RAG Engine service and deletes all your data held within this service. This will halt the billing of the service.
7901
+ NOTE: Once deleted the data cannot be recovered. To start using RAG Engine again, you will need to update the tier by calling the UpdateRagEngineConfig API.
7902
+ """
7903
+ return pulumi.get(self, "unprovisioned")
7904
+
7905
+ @unprovisioned.setter
7906
+ def unprovisioned(self, value: Optional[pulumi.Input['AiRagEngineConfigRagManagedDbConfigUnprovisionedArgs']]):
7907
+ pulumi.set(self, "unprovisioned", value)
7908
+
7909
+
7910
+ if not MYPY:
7911
+ class AiRagEngineConfigRagManagedDbConfigBasicArgsDict(TypedDict):
7912
+ pass
7913
+ elif False:
7914
+ AiRagEngineConfigRagManagedDbConfigBasicArgsDict: TypeAlias = Mapping[str, Any]
7915
+
7916
+ @pulumi.input_type
7917
+ class AiRagEngineConfigRagManagedDbConfigBasicArgs:
7918
+ def __init__(__self__):
7919
+ pass
7920
+
7921
+
7922
+ if not MYPY:
7923
+ class AiRagEngineConfigRagManagedDbConfigScaledArgsDict(TypedDict):
7924
+ pass
7925
+ elif False:
7926
+ AiRagEngineConfigRagManagedDbConfigScaledArgsDict: TypeAlias = Mapping[str, Any]
7927
+
7928
+ @pulumi.input_type
7929
+ class AiRagEngineConfigRagManagedDbConfigScaledArgs:
7930
+ def __init__(__self__):
7931
+ pass
7932
+
7933
+
7934
+ if not MYPY:
7935
+ class AiRagEngineConfigRagManagedDbConfigUnprovisionedArgsDict(TypedDict):
7936
+ pass
7937
+ elif False:
7938
+ AiRagEngineConfigRagManagedDbConfigUnprovisionedArgsDict: TypeAlias = Mapping[str, Any]
7939
+
7940
+ @pulumi.input_type
7941
+ class AiRagEngineConfigRagManagedDbConfigUnprovisionedArgs:
7942
+ def __init__(__self__):
7943
+ pass
7944
+
7945
+
4181
7946
  if not MYPY:
4182
7947
  class AiTensorboardEncryptionSpecArgsDict(TypedDict):
4183
7948
  kms_key_name: pulumi.Input[_builtins.str]