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