pulumi-digitalocean 4.37.1__py3-none-any.whl → 4.38.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of pulumi-digitalocean might be problematic. Click here for more details.

@@ -104,6 +104,8 @@ __all__ = [
104
104
  'AppSpecJobLogDestinationOpenSearchBasicAuthArgsDict',
105
105
  'AppSpecJobLogDestinationPapertrailArgs',
106
106
  'AppSpecJobLogDestinationPapertrailArgsDict',
107
+ 'AppSpecJobTerminationArgs',
108
+ 'AppSpecJobTerminationArgsDict',
107
109
  'AppSpecServiceArgs',
108
110
  'AppSpecServiceArgsDict',
109
111
  'AppSpecServiceAlertArgs',
@@ -146,6 +148,8 @@ __all__ = [
146
148
  'AppSpecServiceLogDestinationPapertrailArgsDict',
147
149
  'AppSpecServiceRouteArgs',
148
150
  'AppSpecServiceRouteArgsDict',
151
+ 'AppSpecServiceTerminationArgs',
152
+ 'AppSpecServiceTerminationArgsDict',
149
153
  'AppSpecStaticSiteArgs',
150
154
  'AppSpecStaticSiteArgsDict',
151
155
  'AppSpecStaticSiteCorsArgs',
@@ -166,6 +170,12 @@ __all__ = [
166
170
  'AppSpecWorkerArgsDict',
167
171
  'AppSpecWorkerAlertArgs',
168
172
  'AppSpecWorkerAlertArgsDict',
173
+ 'AppSpecWorkerAutoscalingArgs',
174
+ 'AppSpecWorkerAutoscalingArgsDict',
175
+ 'AppSpecWorkerAutoscalingMetricsArgs',
176
+ 'AppSpecWorkerAutoscalingMetricsArgsDict',
177
+ 'AppSpecWorkerAutoscalingMetricsCpuArgs',
178
+ 'AppSpecWorkerAutoscalingMetricsCpuArgsDict',
169
179
  'AppSpecWorkerEnvArgs',
170
180
  'AppSpecWorkerEnvArgsDict',
171
181
  'AppSpecWorkerGitArgs',
@@ -190,6 +200,8 @@ __all__ = [
190
200
  'AppSpecWorkerLogDestinationOpenSearchBasicAuthArgsDict',
191
201
  'AppSpecWorkerLogDestinationPapertrailArgs',
192
202
  'AppSpecWorkerLogDestinationPapertrailArgsDict',
203
+ 'AppSpecWorkerTerminationArgs',
204
+ 'AppSpecWorkerTerminationArgsDict',
193
205
  'DatabaseClusterBackupRestoreArgs',
194
206
  'DatabaseClusterBackupRestoreArgsDict',
195
207
  'DatabaseClusterMaintenanceWindowArgs',
@@ -2983,6 +2995,10 @@ if not MYPY:
2983
2995
  """
2984
2996
  An optional path to the working directory to use for the build.
2985
2997
  """
2998
+ termination: NotRequired[pulumi.Input['AppSpecJobTerminationArgsDict']]
2999
+ """
3000
+ Contains a component's termination parameters.
3001
+ """
2986
3002
  elif False:
2987
3003
  AppSpecJobArgsDict: TypeAlias = Mapping[str, Any]
2988
3004
 
@@ -3004,7 +3020,8 @@ class AppSpecJobArgs:
3004
3020
  kind: Optional[pulumi.Input[str]] = None,
3005
3021
  log_destinations: Optional[pulumi.Input[Sequence[pulumi.Input['AppSpecJobLogDestinationArgs']]]] = None,
3006
3022
  run_command: Optional[pulumi.Input[str]] = None,
3007
- source_dir: Optional[pulumi.Input[str]] = None):
3023
+ source_dir: Optional[pulumi.Input[str]] = None,
3024
+ termination: Optional[pulumi.Input['AppSpecJobTerminationArgs']] = None):
3008
3025
  """
3009
3026
  :param pulumi.Input[str] name: The name of the component.
3010
3027
  :param pulumi.Input[Sequence[pulumi.Input['AppSpecJobAlertArgs']]] alerts: Describes an alert policy for the component.
@@ -3026,6 +3043,7 @@ class AppSpecJobArgs:
3026
3043
  :param pulumi.Input[Sequence[pulumi.Input['AppSpecJobLogDestinationArgs']]] log_destinations: Describes a log forwarding destination.
3027
3044
  :param pulumi.Input[str] run_command: An optional run command to override the component's default.
3028
3045
  :param pulumi.Input[str] source_dir: An optional path to the working directory to use for the build.
3046
+ :param pulumi.Input['AppSpecJobTerminationArgs'] termination: Contains a component's termination parameters.
3029
3047
  """
3030
3048
  pulumi.set(__self__, "name", name)
3031
3049
  if alerts is not None:
@@ -3058,6 +3076,8 @@ class AppSpecJobArgs:
3058
3076
  pulumi.set(__self__, "run_command", run_command)
3059
3077
  if source_dir is not None:
3060
3078
  pulumi.set(__self__, "source_dir", source_dir)
3079
+ if termination is not None:
3080
+ pulumi.set(__self__, "termination", termination)
3061
3081
 
3062
3082
  @property
3063
3083
  @pulumi.getter
@@ -3255,6 +3275,18 @@ class AppSpecJobArgs:
3255
3275
  def source_dir(self, value: Optional[pulumi.Input[str]]):
3256
3276
  pulumi.set(self, "source_dir", value)
3257
3277
 
3278
+ @property
3279
+ @pulumi.getter
3280
+ def termination(self) -> Optional[pulumi.Input['AppSpecJobTerminationArgs']]:
3281
+ """
3282
+ Contains a component's termination parameters.
3283
+ """
3284
+ return pulumi.get(self, "termination")
3285
+
3286
+ @termination.setter
3287
+ def termination(self, value: Optional[pulumi.Input['AppSpecJobTerminationArgs']]):
3288
+ pulumi.set(self, "termination", value)
3289
+
3258
3290
 
3259
3291
  if not MYPY:
3260
3292
  class AppSpecJobAlertArgsDict(TypedDict):
@@ -3666,6 +3698,10 @@ if not MYPY:
3666
3698
  """
3667
3699
  Configures automatically deploying images pushed to DOCR.
3668
3700
  """
3701
+ digest: NotRequired[pulumi.Input[str]]
3702
+ """
3703
+ The image digest. Cannot be specified if `tag` is provided.
3704
+ """
3669
3705
  registry: NotRequired[pulumi.Input[str]]
3670
3706
  """
3671
3707
  The registry name. Must be left empty for the `DOCR` registry type. Required for the `DOCKER_HUB` registry type.
@@ -3687,6 +3723,7 @@ class AppSpecJobImageArgs:
3687
3723
  registry_type: pulumi.Input[str],
3688
3724
  repository: pulumi.Input[str],
3689
3725
  deploy_on_pushes: Optional[pulumi.Input[Sequence[pulumi.Input['AppSpecJobImageDeployOnPushArgs']]]] = None,
3726
+ digest: Optional[pulumi.Input[str]] = None,
3690
3727
  registry: Optional[pulumi.Input[str]] = None,
3691
3728
  registry_credentials: Optional[pulumi.Input[str]] = None,
3692
3729
  tag: Optional[pulumi.Input[str]] = None):
@@ -3694,6 +3731,7 @@ class AppSpecJobImageArgs:
3694
3731
  :param pulumi.Input[str] registry_type: The registry type. One of `DOCR` (DigitalOcean container registry) or `DOCKER_HUB`.
3695
3732
  :param pulumi.Input[str] repository: The repository name.
3696
3733
  :param pulumi.Input[Sequence[pulumi.Input['AppSpecJobImageDeployOnPushArgs']]] deploy_on_pushes: Configures automatically deploying images pushed to DOCR.
3734
+ :param pulumi.Input[str] digest: The image digest. Cannot be specified if `tag` is provided.
3697
3735
  :param pulumi.Input[str] registry: The registry name. Must be left empty for the `DOCR` registry type. Required for the `DOCKER_HUB` registry type.
3698
3736
  :param pulumi.Input[str] registry_credentials: The credentials required to access a private Docker Hub or GitHub registry, in the following syntax `<username>:<token>`.
3699
3737
  :param pulumi.Input[str] tag: The repository tag. Defaults to `latest` if not provided.
@@ -3702,6 +3740,8 @@ class AppSpecJobImageArgs:
3702
3740
  pulumi.set(__self__, "repository", repository)
3703
3741
  if deploy_on_pushes is not None:
3704
3742
  pulumi.set(__self__, "deploy_on_pushes", deploy_on_pushes)
3743
+ if digest is not None:
3744
+ pulumi.set(__self__, "digest", digest)
3705
3745
  if registry is not None:
3706
3746
  pulumi.set(__self__, "registry", registry)
3707
3747
  if registry_credentials is not None:
@@ -3745,6 +3785,18 @@ class AppSpecJobImageArgs:
3745
3785
  def deploy_on_pushes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AppSpecJobImageDeployOnPushArgs']]]]):
3746
3786
  pulumi.set(self, "deploy_on_pushes", value)
3747
3787
 
3788
+ @property
3789
+ @pulumi.getter
3790
+ def digest(self) -> Optional[pulumi.Input[str]]:
3791
+ """
3792
+ The image digest. Cannot be specified if `tag` is provided.
3793
+ """
3794
+ return pulumi.get(self, "digest")
3795
+
3796
+ @digest.setter
3797
+ def digest(self, value: Optional[pulumi.Input[str]]):
3798
+ pulumi.set(self, "digest", value)
3799
+
3748
3800
  @property
3749
3801
  @pulumi.getter
3750
3802
  def registry(self) -> Optional[pulumi.Input[str]]:
@@ -4181,6 +4233,44 @@ class AppSpecJobLogDestinationPapertrailArgs:
4181
4233
  pulumi.set(self, "endpoint", value)
4182
4234
 
4183
4235
 
4236
+ if not MYPY:
4237
+ class AppSpecJobTerminationArgsDict(TypedDict):
4238
+ grace_period_seconds: NotRequired[pulumi.Input[int]]
4239
+ """
4240
+ The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. Default: 120, Minimum 1, Maximum 600.
4241
+
4242
+ A `function` component can contain:
4243
+ """
4244
+ elif False:
4245
+ AppSpecJobTerminationArgsDict: TypeAlias = Mapping[str, Any]
4246
+
4247
+ @pulumi.input_type
4248
+ class AppSpecJobTerminationArgs:
4249
+ def __init__(__self__, *,
4250
+ grace_period_seconds: Optional[pulumi.Input[int]] = None):
4251
+ """
4252
+ :param pulumi.Input[int] grace_period_seconds: The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. Default: 120, Minimum 1, Maximum 600.
4253
+
4254
+ A `function` component can contain:
4255
+ """
4256
+ if grace_period_seconds is not None:
4257
+ pulumi.set(__self__, "grace_period_seconds", grace_period_seconds)
4258
+
4259
+ @property
4260
+ @pulumi.getter(name="gracePeriodSeconds")
4261
+ def grace_period_seconds(self) -> Optional[pulumi.Input[int]]:
4262
+ """
4263
+ The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. Default: 120, Minimum 1, Maximum 600.
4264
+
4265
+ A `function` component can contain:
4266
+ """
4267
+ return pulumi.get(self, "grace_period_seconds")
4268
+
4269
+ @grace_period_seconds.setter
4270
+ def grace_period_seconds(self, value: Optional[pulumi.Input[int]]):
4271
+ pulumi.set(self, "grace_period_seconds", value)
4272
+
4273
+
4184
4274
  if not MYPY:
4185
4275
  class AppSpecServiceArgsDict(TypedDict):
4186
4276
  name: pulumi.Input[str]
@@ -4267,6 +4357,10 @@ if not MYPY:
4267
4357
  """
4268
4358
  An optional path to the working directory to use for the build.
4269
4359
  """
4360
+ termination: NotRequired[pulumi.Input['AppSpecServiceTerminationArgsDict']]
4361
+ """
4362
+ Contains a component's termination parameters.
4363
+ """
4270
4364
  elif False:
4271
4365
  AppSpecServiceArgsDict: TypeAlias = Mapping[str, Any]
4272
4366
 
@@ -4293,7 +4387,8 @@ class AppSpecServiceArgs:
4293
4387
  log_destinations: Optional[pulumi.Input[Sequence[pulumi.Input['AppSpecServiceLogDestinationArgs']]]] = None,
4294
4388
  routes: Optional[pulumi.Input[Sequence[pulumi.Input['AppSpecServiceRouteArgs']]]] = None,
4295
4389
  run_command: Optional[pulumi.Input[str]] = None,
4296
- source_dir: Optional[pulumi.Input[str]] = None):
4390
+ source_dir: Optional[pulumi.Input[str]] = None,
4391
+ termination: Optional[pulumi.Input['AppSpecServiceTerminationArgs']] = None):
4297
4392
  """
4298
4393
  :param pulumi.Input[str] name: The name of the component.
4299
4394
  :param pulumi.Input[Sequence[pulumi.Input['AppSpecServiceAlertArgs']]] alerts: Describes an alert policy for the component.
@@ -4316,6 +4411,7 @@ class AppSpecServiceArgs:
4316
4411
  :param pulumi.Input[Sequence[pulumi.Input['AppSpecServiceRouteArgs']]] routes: An HTTP paths that should be routed to this component.
4317
4412
  :param pulumi.Input[str] run_command: An optional run command to override the component's default.
4318
4413
  :param pulumi.Input[str] source_dir: An optional path to the working directory to use for the build.
4414
+ :param pulumi.Input['AppSpecServiceTerminationArgs'] termination: Contains a component's termination parameters.
4319
4415
  """
4320
4416
  pulumi.set(__self__, "name", name)
4321
4417
  if alerts is not None:
@@ -4364,6 +4460,8 @@ class AppSpecServiceArgs:
4364
4460
  pulumi.set(__self__, "run_command", run_command)
4365
4461
  if source_dir is not None:
4366
4462
  pulumi.set(__self__, "source_dir", source_dir)
4463
+ if termination is not None:
4464
+ pulumi.set(__self__, "termination", termination)
4367
4465
 
4368
4466
  @property
4369
4467
  @pulumi.getter
@@ -4619,6 +4717,18 @@ class AppSpecServiceArgs:
4619
4717
  def source_dir(self, value: Optional[pulumi.Input[str]]):
4620
4718
  pulumi.set(self, "source_dir", value)
4621
4719
 
4720
+ @property
4721
+ @pulumi.getter
4722
+ def termination(self) -> Optional[pulumi.Input['AppSpecServiceTerminationArgs']]:
4723
+ """
4724
+ Contains a component's termination parameters.
4725
+ """
4726
+ return pulumi.get(self, "termination")
4727
+
4728
+ @termination.setter
4729
+ def termination(self, value: Optional[pulumi.Input['AppSpecServiceTerminationArgs']]):
4730
+ pulumi.set(self, "termination", value)
4731
+
4622
4732
 
4623
4733
  if not MYPY:
4624
4734
  class AppSpecServiceAlertArgsDict(TypedDict):
@@ -4834,8 +4944,6 @@ if not MYPY:
4834
4944
  percent: pulumi.Input[int]
4835
4945
  """
4836
4946
  The average target CPU utilization for the component.
4837
-
4838
- A `static_site` can contain:
4839
4947
  """
4840
4948
  elif False:
4841
4949
  AppSpecServiceAutoscalingMetricsCpuArgsDict: TypeAlias = Mapping[str, Any]
@@ -4846,8 +4954,6 @@ class AppSpecServiceAutoscalingMetricsCpuArgs:
4846
4954
  percent: pulumi.Input[int]):
4847
4955
  """
4848
4956
  :param pulumi.Input[int] percent: The average target CPU utilization for the component.
4849
-
4850
- A `static_site` can contain:
4851
4957
  """
4852
4958
  pulumi.set(__self__, "percent", percent)
4853
4959
 
@@ -4856,8 +4962,6 @@ class AppSpecServiceAutoscalingMetricsCpuArgs:
4856
4962
  def percent(self) -> pulumi.Input[int]:
4857
4963
  """
4858
4964
  The average target CPU utilization for the component.
4859
-
4860
- A `static_site` can contain:
4861
4965
  """
4862
4966
  return pulumi.get(self, "percent")
4863
4967
 
@@ -5528,6 +5632,10 @@ if not MYPY:
5528
5632
  """
5529
5633
  Configures automatically deploying images pushed to DOCR.
5530
5634
  """
5635
+ digest: NotRequired[pulumi.Input[str]]
5636
+ """
5637
+ The image digest. Cannot be specified if `tag` is provided.
5638
+ """
5531
5639
  registry: NotRequired[pulumi.Input[str]]
5532
5640
  """
5533
5641
  The registry name. Must be left empty for the `DOCR` registry type. Required for the `DOCKER_HUB` registry type.
@@ -5549,6 +5657,7 @@ class AppSpecServiceImageArgs:
5549
5657
  registry_type: pulumi.Input[str],
5550
5658
  repository: pulumi.Input[str],
5551
5659
  deploy_on_pushes: Optional[pulumi.Input[Sequence[pulumi.Input['AppSpecServiceImageDeployOnPushArgs']]]] = None,
5660
+ digest: Optional[pulumi.Input[str]] = None,
5552
5661
  registry: Optional[pulumi.Input[str]] = None,
5553
5662
  registry_credentials: Optional[pulumi.Input[str]] = None,
5554
5663
  tag: Optional[pulumi.Input[str]] = None):
@@ -5556,6 +5665,7 @@ class AppSpecServiceImageArgs:
5556
5665
  :param pulumi.Input[str] registry_type: The registry type. One of `DOCR` (DigitalOcean container registry) or `DOCKER_HUB`.
5557
5666
  :param pulumi.Input[str] repository: The repository name.
5558
5667
  :param pulumi.Input[Sequence[pulumi.Input['AppSpecServiceImageDeployOnPushArgs']]] deploy_on_pushes: Configures automatically deploying images pushed to DOCR.
5668
+ :param pulumi.Input[str] digest: The image digest. Cannot be specified if `tag` is provided.
5559
5669
  :param pulumi.Input[str] registry: The registry name. Must be left empty for the `DOCR` registry type. Required for the `DOCKER_HUB` registry type.
5560
5670
  :param pulumi.Input[str] registry_credentials: The credentials required to access a private Docker Hub or GitHub registry, in the following syntax `<username>:<token>`.
5561
5671
  :param pulumi.Input[str] tag: The repository tag. Defaults to `latest` if not provided.
@@ -5564,6 +5674,8 @@ class AppSpecServiceImageArgs:
5564
5674
  pulumi.set(__self__, "repository", repository)
5565
5675
  if deploy_on_pushes is not None:
5566
5676
  pulumi.set(__self__, "deploy_on_pushes", deploy_on_pushes)
5677
+ if digest is not None:
5678
+ pulumi.set(__self__, "digest", digest)
5567
5679
  if registry is not None:
5568
5680
  pulumi.set(__self__, "registry", registry)
5569
5681
  if registry_credentials is not None:
@@ -5607,6 +5719,18 @@ class AppSpecServiceImageArgs:
5607
5719
  def deploy_on_pushes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AppSpecServiceImageDeployOnPushArgs']]]]):
5608
5720
  pulumi.set(self, "deploy_on_pushes", value)
5609
5721
 
5722
+ @property
5723
+ @pulumi.getter
5724
+ def digest(self) -> Optional[pulumi.Input[str]]:
5725
+ """
5726
+ The image digest. Cannot be specified if `tag` is provided.
5727
+ """
5728
+ return pulumi.get(self, "digest")
5729
+
5730
+ @digest.setter
5731
+ def digest(self, value: Optional[pulumi.Input[str]]):
5732
+ pulumi.set(self, "digest", value)
5733
+
5610
5734
  @property
5611
5735
  @pulumi.getter
5612
5736
  def registry(self) -> Optional[pulumi.Input[str]]:
@@ -6095,6 +6219,70 @@ class AppSpecServiceRouteArgs:
6095
6219
  pulumi.set(self, "preserve_path_prefix", value)
6096
6220
 
6097
6221
 
6222
+ if not MYPY:
6223
+ class AppSpecServiceTerminationArgsDict(TypedDict):
6224
+ drain_seconds: NotRequired[pulumi.Input[int]]
6225
+ """
6226
+ The number of seconds to wait between selecting a container instance for termination and issuing the TERM signal. Selecting a container instance for termination begins an asynchronous drain of new requests on upstream load-balancers. Default: 15 seconds, Minimum 1, Maximum 110.
6227
+
6228
+ A `static_site` can contain:
6229
+ """
6230
+ grace_period_seconds: NotRequired[pulumi.Input[int]]
6231
+ """
6232
+ The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. Default: 120, Minimum 1, Maximum 600.
6233
+
6234
+ A `function` component can contain:
6235
+ """
6236
+ elif False:
6237
+ AppSpecServiceTerminationArgsDict: TypeAlias = Mapping[str, Any]
6238
+
6239
+ @pulumi.input_type
6240
+ class AppSpecServiceTerminationArgs:
6241
+ def __init__(__self__, *,
6242
+ drain_seconds: Optional[pulumi.Input[int]] = None,
6243
+ grace_period_seconds: Optional[pulumi.Input[int]] = None):
6244
+ """
6245
+ :param pulumi.Input[int] drain_seconds: The number of seconds to wait between selecting a container instance for termination and issuing the TERM signal. Selecting a container instance for termination begins an asynchronous drain of new requests on upstream load-balancers. Default: 15 seconds, Minimum 1, Maximum 110.
6246
+
6247
+ A `static_site` can contain:
6248
+ :param pulumi.Input[int] grace_period_seconds: The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. Default: 120, Minimum 1, Maximum 600.
6249
+
6250
+ A `function` component can contain:
6251
+ """
6252
+ if drain_seconds is not None:
6253
+ pulumi.set(__self__, "drain_seconds", drain_seconds)
6254
+ if grace_period_seconds is not None:
6255
+ pulumi.set(__self__, "grace_period_seconds", grace_period_seconds)
6256
+
6257
+ @property
6258
+ @pulumi.getter(name="drainSeconds")
6259
+ def drain_seconds(self) -> Optional[pulumi.Input[int]]:
6260
+ """
6261
+ The number of seconds to wait between selecting a container instance for termination and issuing the TERM signal. Selecting a container instance for termination begins an asynchronous drain of new requests on upstream load-balancers. Default: 15 seconds, Minimum 1, Maximum 110.
6262
+
6263
+ A `static_site` can contain:
6264
+ """
6265
+ return pulumi.get(self, "drain_seconds")
6266
+
6267
+ @drain_seconds.setter
6268
+ def drain_seconds(self, value: Optional[pulumi.Input[int]]):
6269
+ pulumi.set(self, "drain_seconds", value)
6270
+
6271
+ @property
6272
+ @pulumi.getter(name="gracePeriodSeconds")
6273
+ def grace_period_seconds(self) -> Optional[pulumi.Input[int]]:
6274
+ """
6275
+ The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. Default: 120, Minimum 1, Maximum 600.
6276
+
6277
+ A `function` component can contain:
6278
+ """
6279
+ return pulumi.get(self, "grace_period_seconds")
6280
+
6281
+ @grace_period_seconds.setter
6282
+ def grace_period_seconds(self, value: Optional[pulumi.Input[int]]):
6283
+ pulumi.set(self, "grace_period_seconds", value)
6284
+
6285
+
6098
6286
  if not MYPY:
6099
6287
  class AppSpecStaticSiteArgsDict(TypedDict):
6100
6288
  name: pulumi.Input[str]
@@ -6972,6 +7160,10 @@ if not MYPY:
6972
7160
  """
6973
7161
  Describes an alert policy for the component.
6974
7162
  """
7163
+ autoscaling: NotRequired[pulumi.Input['AppSpecWorkerAutoscalingArgsDict']]
7164
+ """
7165
+ Configuration for automatically scaling this component based on metrics.
7166
+ """
6975
7167
  build_command: NotRequired[pulumi.Input[str]]
6976
7168
  """
6977
7169
  An optional build command to run while building this component from source.
@@ -7024,6 +7216,10 @@ if not MYPY:
7024
7216
  """
7025
7217
  An optional path to the working directory to use for the build.
7026
7218
  """
7219
+ termination: NotRequired[pulumi.Input['AppSpecWorkerTerminationArgsDict']]
7220
+ """
7221
+ Contains a component's termination parameters.
7222
+ """
7027
7223
  elif False:
7028
7224
  AppSpecWorkerArgsDict: TypeAlias = Mapping[str, Any]
7029
7225
 
@@ -7032,6 +7228,7 @@ class AppSpecWorkerArgs:
7032
7228
  def __init__(__self__, *,
7033
7229
  name: pulumi.Input[str],
7034
7230
  alerts: Optional[pulumi.Input[Sequence[pulumi.Input['AppSpecWorkerAlertArgs']]]] = None,
7231
+ autoscaling: Optional[pulumi.Input['AppSpecWorkerAutoscalingArgs']] = None,
7035
7232
  build_command: Optional[pulumi.Input[str]] = None,
7036
7233
  dockerfile_path: Optional[pulumi.Input[str]] = None,
7037
7234
  environment_slug: Optional[pulumi.Input[str]] = None,
@@ -7044,10 +7241,12 @@ class AppSpecWorkerArgs:
7044
7241
  instance_size_slug: Optional[pulumi.Input[str]] = None,
7045
7242
  log_destinations: Optional[pulumi.Input[Sequence[pulumi.Input['AppSpecWorkerLogDestinationArgs']]]] = None,
7046
7243
  run_command: Optional[pulumi.Input[str]] = None,
7047
- source_dir: Optional[pulumi.Input[str]] = None):
7244
+ source_dir: Optional[pulumi.Input[str]] = None,
7245
+ termination: Optional[pulumi.Input['AppSpecWorkerTerminationArgs']] = None):
7048
7246
  """
7049
7247
  :param pulumi.Input[str] name: The name of the component.
7050
7248
  :param pulumi.Input[Sequence[pulumi.Input['AppSpecWorkerAlertArgs']]] alerts: Describes an alert policy for the component.
7249
+ :param pulumi.Input['AppSpecWorkerAutoscalingArgs'] autoscaling: Configuration for automatically scaling this component based on metrics.
7051
7250
  :param pulumi.Input[str] build_command: An optional build command to run while building this component from source.
7052
7251
  :param pulumi.Input[str] dockerfile_path: The path to a Dockerfile relative to the root of the repo. If set, overrides usage of buildpacks.
7053
7252
  :param pulumi.Input[str] environment_slug: An environment slug describing the type of this app.
@@ -7061,10 +7260,13 @@ class AppSpecWorkerArgs:
7061
7260
  :param pulumi.Input[Sequence[pulumi.Input['AppSpecWorkerLogDestinationArgs']]] log_destinations: Describes a log forwarding destination.
7062
7261
  :param pulumi.Input[str] run_command: An optional run command to override the component's default.
7063
7262
  :param pulumi.Input[str] source_dir: An optional path to the working directory to use for the build.
7263
+ :param pulumi.Input['AppSpecWorkerTerminationArgs'] termination: Contains a component's termination parameters.
7064
7264
  """
7065
7265
  pulumi.set(__self__, "name", name)
7066
7266
  if alerts is not None:
7067
7267
  pulumi.set(__self__, "alerts", alerts)
7268
+ if autoscaling is not None:
7269
+ pulumi.set(__self__, "autoscaling", autoscaling)
7068
7270
  if build_command is not None:
7069
7271
  pulumi.set(__self__, "build_command", build_command)
7070
7272
  if dockerfile_path is not None:
@@ -7091,6 +7293,8 @@ class AppSpecWorkerArgs:
7091
7293
  pulumi.set(__self__, "run_command", run_command)
7092
7294
  if source_dir is not None:
7093
7295
  pulumi.set(__self__, "source_dir", source_dir)
7296
+ if termination is not None:
7297
+ pulumi.set(__self__, "termination", termination)
7094
7298
 
7095
7299
  @property
7096
7300
  @pulumi.getter
@@ -7116,6 +7320,18 @@ class AppSpecWorkerArgs:
7116
7320
  def alerts(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AppSpecWorkerAlertArgs']]]]):
7117
7321
  pulumi.set(self, "alerts", value)
7118
7322
 
7323
+ @property
7324
+ @pulumi.getter
7325
+ def autoscaling(self) -> Optional[pulumi.Input['AppSpecWorkerAutoscalingArgs']]:
7326
+ """
7327
+ Configuration for automatically scaling this component based on metrics.
7328
+ """
7329
+ return pulumi.get(self, "autoscaling")
7330
+
7331
+ @autoscaling.setter
7332
+ def autoscaling(self, value: Optional[pulumi.Input['AppSpecWorkerAutoscalingArgs']]):
7333
+ pulumi.set(self, "autoscaling", value)
7334
+
7119
7335
  @property
7120
7336
  @pulumi.getter(name="buildCommand")
7121
7337
  def build_command(self) -> Optional[pulumi.Input[str]]:
@@ -7272,6 +7488,18 @@ class AppSpecWorkerArgs:
7272
7488
  def source_dir(self, value: Optional[pulumi.Input[str]]):
7273
7489
  pulumi.set(self, "source_dir", value)
7274
7490
 
7491
+ @property
7492
+ @pulumi.getter
7493
+ def termination(self) -> Optional[pulumi.Input['AppSpecWorkerTerminationArgs']]:
7494
+ """
7495
+ Contains a component's termination parameters.
7496
+ """
7497
+ return pulumi.get(self, "termination")
7498
+
7499
+ @termination.setter
7500
+ def termination(self, value: Optional[pulumi.Input['AppSpecWorkerTerminationArgs']]):
7501
+ pulumi.set(self, "termination", value)
7502
+
7275
7503
 
7276
7504
  if not MYPY:
7277
7505
  class AppSpecWorkerAlertArgsDict(TypedDict):
@@ -7381,6 +7609,138 @@ class AppSpecWorkerAlertArgs:
7381
7609
  pulumi.set(self, "disabled", value)
7382
7610
 
7383
7611
 
7612
+ if not MYPY:
7613
+ class AppSpecWorkerAutoscalingArgsDict(TypedDict):
7614
+ max_instance_count: pulumi.Input[int]
7615
+ """
7616
+ The maximum amount of instances for this component. Must be more than min_instance_count.
7617
+ """
7618
+ metrics: pulumi.Input['AppSpecWorkerAutoscalingMetricsArgsDict']
7619
+ """
7620
+ The metrics that the component is scaled on.
7621
+ """
7622
+ min_instance_count: pulumi.Input[int]
7623
+ """
7624
+ The minimum amount of instances for this component. Must be less than max_instance_count.
7625
+ """
7626
+ elif False:
7627
+ AppSpecWorkerAutoscalingArgsDict: TypeAlias = Mapping[str, Any]
7628
+
7629
+ @pulumi.input_type
7630
+ class AppSpecWorkerAutoscalingArgs:
7631
+ def __init__(__self__, *,
7632
+ max_instance_count: pulumi.Input[int],
7633
+ metrics: pulumi.Input['AppSpecWorkerAutoscalingMetricsArgs'],
7634
+ min_instance_count: pulumi.Input[int]):
7635
+ """
7636
+ :param pulumi.Input[int] max_instance_count: The maximum amount of instances for this component. Must be more than min_instance_count.
7637
+ :param pulumi.Input['AppSpecWorkerAutoscalingMetricsArgs'] metrics: The metrics that the component is scaled on.
7638
+ :param pulumi.Input[int] min_instance_count: The minimum amount of instances for this component. Must be less than max_instance_count.
7639
+ """
7640
+ pulumi.set(__self__, "max_instance_count", max_instance_count)
7641
+ pulumi.set(__self__, "metrics", metrics)
7642
+ pulumi.set(__self__, "min_instance_count", min_instance_count)
7643
+
7644
+ @property
7645
+ @pulumi.getter(name="maxInstanceCount")
7646
+ def max_instance_count(self) -> pulumi.Input[int]:
7647
+ """
7648
+ The maximum amount of instances for this component. Must be more than min_instance_count.
7649
+ """
7650
+ return pulumi.get(self, "max_instance_count")
7651
+
7652
+ @max_instance_count.setter
7653
+ def max_instance_count(self, value: pulumi.Input[int]):
7654
+ pulumi.set(self, "max_instance_count", value)
7655
+
7656
+ @property
7657
+ @pulumi.getter
7658
+ def metrics(self) -> pulumi.Input['AppSpecWorkerAutoscalingMetricsArgs']:
7659
+ """
7660
+ The metrics that the component is scaled on.
7661
+ """
7662
+ return pulumi.get(self, "metrics")
7663
+
7664
+ @metrics.setter
7665
+ def metrics(self, value: pulumi.Input['AppSpecWorkerAutoscalingMetricsArgs']):
7666
+ pulumi.set(self, "metrics", value)
7667
+
7668
+ @property
7669
+ @pulumi.getter(name="minInstanceCount")
7670
+ def min_instance_count(self) -> pulumi.Input[int]:
7671
+ """
7672
+ The minimum amount of instances for this component. Must be less than max_instance_count.
7673
+ """
7674
+ return pulumi.get(self, "min_instance_count")
7675
+
7676
+ @min_instance_count.setter
7677
+ def min_instance_count(self, value: pulumi.Input[int]):
7678
+ pulumi.set(self, "min_instance_count", value)
7679
+
7680
+
7681
+ if not MYPY:
7682
+ class AppSpecWorkerAutoscalingMetricsArgsDict(TypedDict):
7683
+ cpu: NotRequired[pulumi.Input['AppSpecWorkerAutoscalingMetricsCpuArgsDict']]
7684
+ """
7685
+ Settings for scaling the component based on CPU utilization.
7686
+ """
7687
+ elif False:
7688
+ AppSpecWorkerAutoscalingMetricsArgsDict: TypeAlias = Mapping[str, Any]
7689
+
7690
+ @pulumi.input_type
7691
+ class AppSpecWorkerAutoscalingMetricsArgs:
7692
+ def __init__(__self__, *,
7693
+ cpu: Optional[pulumi.Input['AppSpecWorkerAutoscalingMetricsCpuArgs']] = None):
7694
+ """
7695
+ :param pulumi.Input['AppSpecWorkerAutoscalingMetricsCpuArgs'] cpu: Settings for scaling the component based on CPU utilization.
7696
+ """
7697
+ if cpu is not None:
7698
+ pulumi.set(__self__, "cpu", cpu)
7699
+
7700
+ @property
7701
+ @pulumi.getter
7702
+ def cpu(self) -> Optional[pulumi.Input['AppSpecWorkerAutoscalingMetricsCpuArgs']]:
7703
+ """
7704
+ Settings for scaling the component based on CPU utilization.
7705
+ """
7706
+ return pulumi.get(self, "cpu")
7707
+
7708
+ @cpu.setter
7709
+ def cpu(self, value: Optional[pulumi.Input['AppSpecWorkerAutoscalingMetricsCpuArgs']]):
7710
+ pulumi.set(self, "cpu", value)
7711
+
7712
+
7713
+ if not MYPY:
7714
+ class AppSpecWorkerAutoscalingMetricsCpuArgsDict(TypedDict):
7715
+ percent: pulumi.Input[int]
7716
+ """
7717
+ The average target CPU utilization for the component.
7718
+ """
7719
+ elif False:
7720
+ AppSpecWorkerAutoscalingMetricsCpuArgsDict: TypeAlias = Mapping[str, Any]
7721
+
7722
+ @pulumi.input_type
7723
+ class AppSpecWorkerAutoscalingMetricsCpuArgs:
7724
+ def __init__(__self__, *,
7725
+ percent: pulumi.Input[int]):
7726
+ """
7727
+ :param pulumi.Input[int] percent: The average target CPU utilization for the component.
7728
+ """
7729
+ pulumi.set(__self__, "percent", percent)
7730
+
7731
+ @property
7732
+ @pulumi.getter
7733
+ def percent(self) -> pulumi.Input[int]:
7734
+ """
7735
+ The average target CPU utilization for the component.
7736
+ """
7737
+ return pulumi.get(self, "percent")
7738
+
7739
+ @percent.setter
7740
+ def percent(self, value: pulumi.Input[int]):
7741
+ pulumi.set(self, "percent", value)
7742
+
7743
+
7384
7744
  if not MYPY:
7385
7745
  class AppSpecWorkerEnvArgsDict(TypedDict):
7386
7746
  key: NotRequired[pulumi.Input[str]]
@@ -7683,6 +8043,10 @@ if not MYPY:
7683
8043
  """
7684
8044
  Configures automatically deploying images pushed to DOCR.
7685
8045
  """
8046
+ digest: NotRequired[pulumi.Input[str]]
8047
+ """
8048
+ The image digest. Cannot be specified if `tag` is provided.
8049
+ """
7686
8050
  registry: NotRequired[pulumi.Input[str]]
7687
8051
  """
7688
8052
  The registry name. Must be left empty for the `DOCR` registry type. Required for the `DOCKER_HUB` registry type.
@@ -7704,6 +8068,7 @@ class AppSpecWorkerImageArgs:
7704
8068
  registry_type: pulumi.Input[str],
7705
8069
  repository: pulumi.Input[str],
7706
8070
  deploy_on_pushes: Optional[pulumi.Input[Sequence[pulumi.Input['AppSpecWorkerImageDeployOnPushArgs']]]] = None,
8071
+ digest: Optional[pulumi.Input[str]] = None,
7707
8072
  registry: Optional[pulumi.Input[str]] = None,
7708
8073
  registry_credentials: Optional[pulumi.Input[str]] = None,
7709
8074
  tag: Optional[pulumi.Input[str]] = None):
@@ -7711,6 +8076,7 @@ class AppSpecWorkerImageArgs:
7711
8076
  :param pulumi.Input[str] registry_type: The registry type. One of `DOCR` (DigitalOcean container registry) or `DOCKER_HUB`.
7712
8077
  :param pulumi.Input[str] repository: The repository name.
7713
8078
  :param pulumi.Input[Sequence[pulumi.Input['AppSpecWorkerImageDeployOnPushArgs']]] deploy_on_pushes: Configures automatically deploying images pushed to DOCR.
8079
+ :param pulumi.Input[str] digest: The image digest. Cannot be specified if `tag` is provided.
7714
8080
  :param pulumi.Input[str] registry: The registry name. Must be left empty for the `DOCR` registry type. Required for the `DOCKER_HUB` registry type.
7715
8081
  :param pulumi.Input[str] registry_credentials: The credentials required to access a private Docker Hub or GitHub registry, in the following syntax `<username>:<token>`.
7716
8082
  :param pulumi.Input[str] tag: The repository tag. Defaults to `latest` if not provided.
@@ -7719,6 +8085,8 @@ class AppSpecWorkerImageArgs:
7719
8085
  pulumi.set(__self__, "repository", repository)
7720
8086
  if deploy_on_pushes is not None:
7721
8087
  pulumi.set(__self__, "deploy_on_pushes", deploy_on_pushes)
8088
+ if digest is not None:
8089
+ pulumi.set(__self__, "digest", digest)
7722
8090
  if registry is not None:
7723
8091
  pulumi.set(__self__, "registry", registry)
7724
8092
  if registry_credentials is not None:
@@ -7762,6 +8130,18 @@ class AppSpecWorkerImageArgs:
7762
8130
  def deploy_on_pushes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AppSpecWorkerImageDeployOnPushArgs']]]]):
7763
8131
  pulumi.set(self, "deploy_on_pushes", value)
7764
8132
 
8133
+ @property
8134
+ @pulumi.getter
8135
+ def digest(self) -> Optional[pulumi.Input[str]]:
8136
+ """
8137
+ The image digest. Cannot be specified if `tag` is provided.
8138
+ """
8139
+ return pulumi.get(self, "digest")
8140
+
8141
+ @digest.setter
8142
+ def digest(self, value: Optional[pulumi.Input[str]]):
8143
+ pulumi.set(self, "digest", value)
8144
+
7765
8145
  @property
7766
8146
  @pulumi.getter
7767
8147
  def registry(self) -> Optional[pulumi.Input[str]]:
@@ -8198,6 +8578,44 @@ class AppSpecWorkerLogDestinationPapertrailArgs:
8198
8578
  pulumi.set(self, "endpoint", value)
8199
8579
 
8200
8580
 
8581
+ if not MYPY:
8582
+ class AppSpecWorkerTerminationArgsDict(TypedDict):
8583
+ grace_period_seconds: NotRequired[pulumi.Input[int]]
8584
+ """
8585
+ The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. Default: 120, Minimum 1, Maximum 600.
8586
+
8587
+ A `function` component can contain:
8588
+ """
8589
+ elif False:
8590
+ AppSpecWorkerTerminationArgsDict: TypeAlias = Mapping[str, Any]
8591
+
8592
+ @pulumi.input_type
8593
+ class AppSpecWorkerTerminationArgs:
8594
+ def __init__(__self__, *,
8595
+ grace_period_seconds: Optional[pulumi.Input[int]] = None):
8596
+ """
8597
+ :param pulumi.Input[int] grace_period_seconds: The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. Default: 120, Minimum 1, Maximum 600.
8598
+
8599
+ A `function` component can contain:
8600
+ """
8601
+ if grace_period_seconds is not None:
8602
+ pulumi.set(__self__, "grace_period_seconds", grace_period_seconds)
8603
+
8604
+ @property
8605
+ @pulumi.getter(name="gracePeriodSeconds")
8606
+ def grace_period_seconds(self) -> Optional[pulumi.Input[int]]:
8607
+ """
8608
+ The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. Default: 120, Minimum 1, Maximum 600.
8609
+
8610
+ A `function` component can contain:
8611
+ """
8612
+ return pulumi.get(self, "grace_period_seconds")
8613
+
8614
+ @grace_period_seconds.setter
8615
+ def grace_period_seconds(self, value: Optional[pulumi.Input[int]]):
8616
+ pulumi.set(self, "grace_period_seconds", value)
8617
+
8618
+
8201
8619
  if not MYPY:
8202
8620
  class DatabaseClusterBackupRestoreArgsDict(TypedDict):
8203
8621
  database_name: pulumi.Input[str]