pulumi-digitalocean 4.37.1a1734634395__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.

@@ -61,6 +61,7 @@ __all__ = [
61
61
  'AppSpecJobLogDestinationOpenSearch',
62
62
  'AppSpecJobLogDestinationOpenSearchBasicAuth',
63
63
  'AppSpecJobLogDestinationPapertrail',
64
+ 'AppSpecJobTermination',
64
65
  'AppSpecService',
65
66
  'AppSpecServiceAlert',
66
67
  'AppSpecServiceAutoscaling',
@@ -82,6 +83,7 @@ __all__ = [
82
83
  'AppSpecServiceLogDestinationOpenSearchBasicAuth',
83
84
  'AppSpecServiceLogDestinationPapertrail',
84
85
  'AppSpecServiceRoute',
86
+ 'AppSpecServiceTermination',
85
87
  'AppSpecStaticSite',
86
88
  'AppSpecStaticSiteCors',
87
89
  'AppSpecStaticSiteCorsAllowOrigins',
@@ -92,6 +94,9 @@ __all__ = [
92
94
  'AppSpecStaticSiteRoute',
93
95
  'AppSpecWorker',
94
96
  'AppSpecWorkerAlert',
97
+ 'AppSpecWorkerAutoscaling',
98
+ 'AppSpecWorkerAutoscalingMetrics',
99
+ 'AppSpecWorkerAutoscalingMetricsCpu',
95
100
  'AppSpecWorkerEnv',
96
101
  'AppSpecWorkerGit',
97
102
  'AppSpecWorkerGithub',
@@ -104,6 +109,7 @@ __all__ = [
104
109
  'AppSpecWorkerLogDestinationOpenSearch',
105
110
  'AppSpecWorkerLogDestinationOpenSearchBasicAuth',
106
111
  'AppSpecWorkerLogDestinationPapertrail',
112
+ 'AppSpecWorkerTermination',
107
113
  'DatabaseClusterBackupRestore',
108
114
  'DatabaseClusterMaintenanceWindow',
109
115
  'DatabaseFirewallRule',
@@ -188,6 +194,7 @@ __all__ = [
188
194
  'GetAppSpecJobLogDestinationOpenSearchResult',
189
195
  'GetAppSpecJobLogDestinationOpenSearchBasicAuthResult',
190
196
  'GetAppSpecJobLogDestinationPapertrailResult',
197
+ 'GetAppSpecJobTerminationResult',
191
198
  'GetAppSpecServiceResult',
192
199
  'GetAppSpecServiceAlertResult',
193
200
  'GetAppSpecServiceAutoscalingResult',
@@ -209,6 +216,7 @@ __all__ = [
209
216
  'GetAppSpecServiceLogDestinationOpenSearchBasicAuthResult',
210
217
  'GetAppSpecServiceLogDestinationPapertrailResult',
211
218
  'GetAppSpecServiceRouteResult',
219
+ 'GetAppSpecServiceTerminationResult',
212
220
  'GetAppSpecStaticSiteResult',
213
221
  'GetAppSpecStaticSiteCorsResult',
214
222
  'GetAppSpecStaticSiteCorsAllowOriginsResult',
@@ -219,6 +227,9 @@ __all__ = [
219
227
  'GetAppSpecStaticSiteRouteResult',
220
228
  'GetAppSpecWorkerResult',
221
229
  'GetAppSpecWorkerAlertResult',
230
+ 'GetAppSpecWorkerAutoscalingResult',
231
+ 'GetAppSpecWorkerAutoscalingMetricsResult',
232
+ 'GetAppSpecWorkerAutoscalingMetricsCpuResult',
222
233
  'GetAppSpecWorkerEnvResult',
223
234
  'GetAppSpecWorkerGitResult',
224
235
  'GetAppSpecWorkerGithubResult',
@@ -231,6 +242,7 @@ __all__ = [
231
242
  'GetAppSpecWorkerLogDestinationOpenSearchResult',
232
243
  'GetAppSpecWorkerLogDestinationOpenSearchBasicAuthResult',
233
244
  'GetAppSpecWorkerLogDestinationPapertrailResult',
245
+ 'GetAppSpecWorkerTerminationResult',
234
246
  'GetDatabaseClusterMaintenanceWindowResult',
235
247
  'GetDatabaseUserSettingResult',
236
248
  'GetDatabaseUserSettingAclResult',
@@ -2144,7 +2156,8 @@ class AppSpecJob(dict):
2144
2156
  kind: Optional[str] = None,
2145
2157
  log_destinations: Optional[Sequence['outputs.AppSpecJobLogDestination']] = None,
2146
2158
  run_command: Optional[str] = None,
2147
- source_dir: Optional[str] = None):
2159
+ source_dir: Optional[str] = None,
2160
+ termination: Optional['outputs.AppSpecJobTermination'] = None):
2148
2161
  """
2149
2162
  :param str name: The name of the component.
2150
2163
  :param Sequence['AppSpecJobAlertArgs'] alerts: Describes an alert policy for the component.
@@ -2166,6 +2179,7 @@ class AppSpecJob(dict):
2166
2179
  :param Sequence['AppSpecJobLogDestinationArgs'] log_destinations: Describes a log forwarding destination.
2167
2180
  :param str run_command: An optional run command to override the component's default.
2168
2181
  :param str source_dir: An optional path to the working directory to use for the build.
2182
+ :param 'AppSpecJobTerminationArgs' termination: Contains a component's termination parameters.
2169
2183
  """
2170
2184
  pulumi.set(__self__, "name", name)
2171
2185
  if alerts is not None:
@@ -2198,6 +2212,8 @@ class AppSpecJob(dict):
2198
2212
  pulumi.set(__self__, "run_command", run_command)
2199
2213
  if source_dir is not None:
2200
2214
  pulumi.set(__self__, "source_dir", source_dir)
2215
+ if termination is not None:
2216
+ pulumi.set(__self__, "termination", termination)
2201
2217
 
2202
2218
  @property
2203
2219
  @pulumi.getter
@@ -2331,6 +2347,14 @@ class AppSpecJob(dict):
2331
2347
  """
2332
2348
  return pulumi.get(self, "source_dir")
2333
2349
 
2350
+ @property
2351
+ @pulumi.getter
2352
+ def termination(self) -> Optional['outputs.AppSpecJobTermination']:
2353
+ """
2354
+ Contains a component's termination parameters.
2355
+ """
2356
+ return pulumi.get(self, "termination")
2357
+
2334
2358
 
2335
2359
  @pulumi.output_type
2336
2360
  class AppSpecJobAlert(dict):
@@ -2645,6 +2669,7 @@ class AppSpecJobImage(dict):
2645
2669
  registry_type: str,
2646
2670
  repository: str,
2647
2671
  deploy_on_pushes: Optional[Sequence['outputs.AppSpecJobImageDeployOnPush']] = None,
2672
+ digest: Optional[str] = None,
2648
2673
  registry: Optional[str] = None,
2649
2674
  registry_credentials: Optional[str] = None,
2650
2675
  tag: Optional[str] = None):
@@ -2652,6 +2677,7 @@ class AppSpecJobImage(dict):
2652
2677
  :param str registry_type: The registry type. One of `DOCR` (DigitalOcean container registry) or `DOCKER_HUB`.
2653
2678
  :param str repository: The repository name.
2654
2679
  :param Sequence['AppSpecJobImageDeployOnPushArgs'] deploy_on_pushes: Configures automatically deploying images pushed to DOCR.
2680
+ :param str digest: The image digest. Cannot be specified if `tag` is provided.
2655
2681
  :param str registry: The registry name. Must be left empty for the `DOCR` registry type. Required for the `DOCKER_HUB` registry type.
2656
2682
  :param str registry_credentials: The credentials required to access a private Docker Hub or GitHub registry, in the following syntax `<username>:<token>`.
2657
2683
  :param str tag: The repository tag. Defaults to `latest` if not provided.
@@ -2660,6 +2686,8 @@ class AppSpecJobImage(dict):
2660
2686
  pulumi.set(__self__, "repository", repository)
2661
2687
  if deploy_on_pushes is not None:
2662
2688
  pulumi.set(__self__, "deploy_on_pushes", deploy_on_pushes)
2689
+ if digest is not None:
2690
+ pulumi.set(__self__, "digest", digest)
2663
2691
  if registry is not None:
2664
2692
  pulumi.set(__self__, "registry", registry)
2665
2693
  if registry_credentials is not None:
@@ -2691,6 +2719,14 @@ class AppSpecJobImage(dict):
2691
2719
  """
2692
2720
  return pulumi.get(self, "deploy_on_pushes")
2693
2721
 
2722
+ @property
2723
+ @pulumi.getter
2724
+ def digest(self) -> Optional[str]:
2725
+ """
2726
+ The image digest. Cannot be specified if `tag` is provided.
2727
+ """
2728
+ return pulumi.get(self, "digest")
2729
+
2694
2730
  @property
2695
2731
  @pulumi.getter
2696
2732
  def registry(self) -> Optional[str]:
@@ -3007,6 +3043,46 @@ class AppSpecJobLogDestinationPapertrail(dict):
3007
3043
  return pulumi.get(self, "endpoint")
3008
3044
 
3009
3045
 
3046
+ @pulumi.output_type
3047
+ class AppSpecJobTermination(dict):
3048
+ @staticmethod
3049
+ def __key_warning(key: str):
3050
+ suggest = None
3051
+ if key == "gracePeriodSeconds":
3052
+ suggest = "grace_period_seconds"
3053
+
3054
+ if suggest:
3055
+ pulumi.log.warn(f"Key '{key}' not found in AppSpecJobTermination. Access the value via the '{suggest}' property getter instead.")
3056
+
3057
+ def __getitem__(self, key: str) -> Any:
3058
+ AppSpecJobTermination.__key_warning(key)
3059
+ return super().__getitem__(key)
3060
+
3061
+ def get(self, key: str, default = None) -> Any:
3062
+ AppSpecJobTermination.__key_warning(key)
3063
+ return super().get(key, default)
3064
+
3065
+ def __init__(__self__, *,
3066
+ grace_period_seconds: Optional[int] = None):
3067
+ """
3068
+ :param 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.
3069
+
3070
+ A `function` component can contain:
3071
+ """
3072
+ if grace_period_seconds is not None:
3073
+ pulumi.set(__self__, "grace_period_seconds", grace_period_seconds)
3074
+
3075
+ @property
3076
+ @pulumi.getter(name="gracePeriodSeconds")
3077
+ def grace_period_seconds(self) -> Optional[int]:
3078
+ """
3079
+ 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.
3080
+
3081
+ A `function` component can contain:
3082
+ """
3083
+ return pulumi.get(self, "grace_period_seconds")
3084
+
3085
+
3010
3086
  @pulumi.output_type
3011
3087
  class AppSpecService(dict):
3012
3088
  @staticmethod
@@ -3067,7 +3143,8 @@ class AppSpecService(dict):
3067
3143
  log_destinations: Optional[Sequence['outputs.AppSpecServiceLogDestination']] = None,
3068
3144
  routes: Optional[Sequence['outputs.AppSpecServiceRoute']] = None,
3069
3145
  run_command: Optional[str] = None,
3070
- source_dir: Optional[str] = None):
3146
+ source_dir: Optional[str] = None,
3147
+ termination: Optional['outputs.AppSpecServiceTermination'] = None):
3071
3148
  """
3072
3149
  :param str name: The name of the component.
3073
3150
  :param Sequence['AppSpecServiceAlertArgs'] alerts: Describes an alert policy for the component.
@@ -3090,6 +3167,7 @@ class AppSpecService(dict):
3090
3167
  :param Sequence['AppSpecServiceRouteArgs'] routes: An HTTP paths that should be routed to this component.
3091
3168
  :param str run_command: An optional run command to override the component's default.
3092
3169
  :param str source_dir: An optional path to the working directory to use for the build.
3170
+ :param 'AppSpecServiceTerminationArgs' termination: Contains a component's termination parameters.
3093
3171
  """
3094
3172
  pulumi.set(__self__, "name", name)
3095
3173
  if alerts is not None:
@@ -3132,6 +3210,8 @@ class AppSpecService(dict):
3132
3210
  pulumi.set(__self__, "run_command", run_command)
3133
3211
  if source_dir is not None:
3134
3212
  pulumi.set(__self__, "source_dir", source_dir)
3213
+ if termination is not None:
3214
+ pulumi.set(__self__, "termination", termination)
3135
3215
 
3136
3216
  @property
3137
3217
  @pulumi.getter
@@ -3303,6 +3383,14 @@ class AppSpecService(dict):
3303
3383
  """
3304
3384
  return pulumi.get(self, "source_dir")
3305
3385
 
3386
+ @property
3387
+ @pulumi.getter
3388
+ def termination(self) -> Optional['outputs.AppSpecServiceTermination']:
3389
+ """
3390
+ Contains a component's termination parameters.
3391
+ """
3392
+ return pulumi.get(self, "termination")
3393
+
3306
3394
 
3307
3395
  @pulumi.output_type
3308
3396
  class AppSpecServiceAlert(dict):
@@ -3451,8 +3539,6 @@ class AppSpecServiceAutoscalingMetricsCpu(dict):
3451
3539
  percent: int):
3452
3540
  """
3453
3541
  :param int percent: The average target CPU utilization for the component.
3454
-
3455
- A `static_site` can contain:
3456
3542
  """
3457
3543
  pulumi.set(__self__, "percent", percent)
3458
3544
 
@@ -3461,8 +3547,6 @@ class AppSpecServiceAutoscalingMetricsCpu(dict):
3461
3547
  def percent(self) -> int:
3462
3548
  """
3463
3549
  The average target CPU utilization for the component.
3464
-
3465
- A `static_site` can contain:
3466
3550
  """
3467
3551
  return pulumi.get(self, "percent")
3468
3552
 
@@ -3985,6 +4069,7 @@ class AppSpecServiceImage(dict):
3985
4069
  registry_type: str,
3986
4070
  repository: str,
3987
4071
  deploy_on_pushes: Optional[Sequence['outputs.AppSpecServiceImageDeployOnPush']] = None,
4072
+ digest: Optional[str] = None,
3988
4073
  registry: Optional[str] = None,
3989
4074
  registry_credentials: Optional[str] = None,
3990
4075
  tag: Optional[str] = None):
@@ -3992,6 +4077,7 @@ class AppSpecServiceImage(dict):
3992
4077
  :param str registry_type: The registry type. One of `DOCR` (DigitalOcean container registry) or `DOCKER_HUB`.
3993
4078
  :param str repository: The repository name.
3994
4079
  :param Sequence['AppSpecServiceImageDeployOnPushArgs'] deploy_on_pushes: Configures automatically deploying images pushed to DOCR.
4080
+ :param str digest: The image digest. Cannot be specified if `tag` is provided.
3995
4081
  :param str registry: The registry name. Must be left empty for the `DOCR` registry type. Required for the `DOCKER_HUB` registry type.
3996
4082
  :param str registry_credentials: The credentials required to access a private Docker Hub or GitHub registry, in the following syntax `<username>:<token>`.
3997
4083
  :param str tag: The repository tag. Defaults to `latest` if not provided.
@@ -4000,6 +4086,8 @@ class AppSpecServiceImage(dict):
4000
4086
  pulumi.set(__self__, "repository", repository)
4001
4087
  if deploy_on_pushes is not None:
4002
4088
  pulumi.set(__self__, "deploy_on_pushes", deploy_on_pushes)
4089
+ if digest is not None:
4090
+ pulumi.set(__self__, "digest", digest)
4003
4091
  if registry is not None:
4004
4092
  pulumi.set(__self__, "registry", registry)
4005
4093
  if registry_credentials is not None:
@@ -4031,6 +4119,14 @@ class AppSpecServiceImage(dict):
4031
4119
  """
4032
4120
  return pulumi.get(self, "deploy_on_pushes")
4033
4121
 
4122
+ @property
4123
+ @pulumi.getter
4124
+ def digest(self) -> Optional[str]:
4125
+ """
4126
+ The image digest. Cannot be specified if `tag` is provided.
4127
+ """
4128
+ return pulumi.get(self, "digest")
4129
+
4034
4130
  @property
4035
4131
  @pulumi.getter
4036
4132
  def registry(self) -> Optional[str]:
@@ -4395,6 +4491,64 @@ class AppSpecServiceRoute(dict):
4395
4491
  return pulumi.get(self, "preserve_path_prefix")
4396
4492
 
4397
4493
 
4494
+ @pulumi.output_type
4495
+ class AppSpecServiceTermination(dict):
4496
+ @staticmethod
4497
+ def __key_warning(key: str):
4498
+ suggest = None
4499
+ if key == "drainSeconds":
4500
+ suggest = "drain_seconds"
4501
+ elif key == "gracePeriodSeconds":
4502
+ suggest = "grace_period_seconds"
4503
+
4504
+ if suggest:
4505
+ pulumi.log.warn(f"Key '{key}' not found in AppSpecServiceTermination. Access the value via the '{suggest}' property getter instead.")
4506
+
4507
+ def __getitem__(self, key: str) -> Any:
4508
+ AppSpecServiceTermination.__key_warning(key)
4509
+ return super().__getitem__(key)
4510
+
4511
+ def get(self, key: str, default = None) -> Any:
4512
+ AppSpecServiceTermination.__key_warning(key)
4513
+ return super().get(key, default)
4514
+
4515
+ def __init__(__self__, *,
4516
+ drain_seconds: Optional[int] = None,
4517
+ grace_period_seconds: Optional[int] = None):
4518
+ """
4519
+ :param 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.
4520
+
4521
+ A `static_site` can contain:
4522
+ :param 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.
4523
+
4524
+ A `function` component can contain:
4525
+ """
4526
+ if drain_seconds is not None:
4527
+ pulumi.set(__self__, "drain_seconds", drain_seconds)
4528
+ if grace_period_seconds is not None:
4529
+ pulumi.set(__self__, "grace_period_seconds", grace_period_seconds)
4530
+
4531
+ @property
4532
+ @pulumi.getter(name="drainSeconds")
4533
+ def drain_seconds(self) -> Optional[int]:
4534
+ """
4535
+ 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.
4536
+
4537
+ A `static_site` can contain:
4538
+ """
4539
+ return pulumi.get(self, "drain_seconds")
4540
+
4541
+ @property
4542
+ @pulumi.getter(name="gracePeriodSeconds")
4543
+ def grace_period_seconds(self) -> Optional[int]:
4544
+ """
4545
+ 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.
4546
+
4547
+ A `function` component can contain:
4548
+ """
4549
+ return pulumi.get(self, "grace_period_seconds")
4550
+
4551
+
4398
4552
  @pulumi.output_type
4399
4553
  class AppSpecStaticSite(dict):
4400
4554
  @staticmethod
@@ -5071,6 +5225,7 @@ class AppSpecWorker(dict):
5071
5225
  def __init__(__self__, *,
5072
5226
  name: str,
5073
5227
  alerts: Optional[Sequence['outputs.AppSpecWorkerAlert']] = None,
5228
+ autoscaling: Optional['outputs.AppSpecWorkerAutoscaling'] = None,
5074
5229
  build_command: Optional[str] = None,
5075
5230
  dockerfile_path: Optional[str] = None,
5076
5231
  environment_slug: Optional[str] = None,
@@ -5083,10 +5238,12 @@ class AppSpecWorker(dict):
5083
5238
  instance_size_slug: Optional[str] = None,
5084
5239
  log_destinations: Optional[Sequence['outputs.AppSpecWorkerLogDestination']] = None,
5085
5240
  run_command: Optional[str] = None,
5086
- source_dir: Optional[str] = None):
5241
+ source_dir: Optional[str] = None,
5242
+ termination: Optional['outputs.AppSpecWorkerTermination'] = None):
5087
5243
  """
5088
5244
  :param str name: The name of the component.
5089
5245
  :param Sequence['AppSpecWorkerAlertArgs'] alerts: Describes an alert policy for the component.
5246
+ :param 'AppSpecWorkerAutoscalingArgs' autoscaling: Configuration for automatically scaling this component based on metrics.
5090
5247
  :param str build_command: An optional build command to run while building this component from source.
5091
5248
  :param str dockerfile_path: The path to a Dockerfile relative to the root of the repo. If set, overrides usage of buildpacks.
5092
5249
  :param str environment_slug: An environment slug describing the type of this app.
@@ -5100,10 +5257,13 @@ class AppSpecWorker(dict):
5100
5257
  :param Sequence['AppSpecWorkerLogDestinationArgs'] log_destinations: Describes a log forwarding destination.
5101
5258
  :param str run_command: An optional run command to override the component's default.
5102
5259
  :param str source_dir: An optional path to the working directory to use for the build.
5260
+ :param 'AppSpecWorkerTerminationArgs' termination: Contains a component's termination parameters.
5103
5261
  """
5104
5262
  pulumi.set(__self__, "name", name)
5105
5263
  if alerts is not None:
5106
5264
  pulumi.set(__self__, "alerts", alerts)
5265
+ if autoscaling is not None:
5266
+ pulumi.set(__self__, "autoscaling", autoscaling)
5107
5267
  if build_command is not None:
5108
5268
  pulumi.set(__self__, "build_command", build_command)
5109
5269
  if dockerfile_path is not None:
@@ -5130,6 +5290,8 @@ class AppSpecWorker(dict):
5130
5290
  pulumi.set(__self__, "run_command", run_command)
5131
5291
  if source_dir is not None:
5132
5292
  pulumi.set(__self__, "source_dir", source_dir)
5293
+ if termination is not None:
5294
+ pulumi.set(__self__, "termination", termination)
5133
5295
 
5134
5296
  @property
5135
5297
  @pulumi.getter
@@ -5147,6 +5309,14 @@ class AppSpecWorker(dict):
5147
5309
  """
5148
5310
  return pulumi.get(self, "alerts")
5149
5311
 
5312
+ @property
5313
+ @pulumi.getter
5314
+ def autoscaling(self) -> Optional['outputs.AppSpecWorkerAutoscaling']:
5315
+ """
5316
+ Configuration for automatically scaling this component based on metrics.
5317
+ """
5318
+ return pulumi.get(self, "autoscaling")
5319
+
5150
5320
  @property
5151
5321
  @pulumi.getter(name="buildCommand")
5152
5322
  def build_command(self) -> Optional[str]:
@@ -5251,6 +5421,14 @@ class AppSpecWorker(dict):
5251
5421
  """
5252
5422
  return pulumi.get(self, "source_dir")
5253
5423
 
5424
+ @property
5425
+ @pulumi.getter
5426
+ def termination(self) -> Optional['outputs.AppSpecWorkerTermination']:
5427
+ """
5428
+ Contains a component's termination parameters.
5429
+ """
5430
+ return pulumi.get(self, "termination")
5431
+
5254
5432
 
5255
5433
  @pulumi.output_type
5256
5434
  class AppSpecWorkerAlert(dict):
@@ -5315,6 +5493,102 @@ class AppSpecWorkerAlert(dict):
5315
5493
  return pulumi.get(self, "disabled")
5316
5494
 
5317
5495
 
5496
+ @pulumi.output_type
5497
+ class AppSpecWorkerAutoscaling(dict):
5498
+ @staticmethod
5499
+ def __key_warning(key: str):
5500
+ suggest = None
5501
+ if key == "maxInstanceCount":
5502
+ suggest = "max_instance_count"
5503
+ elif key == "minInstanceCount":
5504
+ suggest = "min_instance_count"
5505
+
5506
+ if suggest:
5507
+ pulumi.log.warn(f"Key '{key}' not found in AppSpecWorkerAutoscaling. Access the value via the '{suggest}' property getter instead.")
5508
+
5509
+ def __getitem__(self, key: str) -> Any:
5510
+ AppSpecWorkerAutoscaling.__key_warning(key)
5511
+ return super().__getitem__(key)
5512
+
5513
+ def get(self, key: str, default = None) -> Any:
5514
+ AppSpecWorkerAutoscaling.__key_warning(key)
5515
+ return super().get(key, default)
5516
+
5517
+ def __init__(__self__, *,
5518
+ max_instance_count: int,
5519
+ metrics: 'outputs.AppSpecWorkerAutoscalingMetrics',
5520
+ min_instance_count: int):
5521
+ """
5522
+ :param int max_instance_count: The maximum amount of instances for this component. Must be more than min_instance_count.
5523
+ :param 'AppSpecWorkerAutoscalingMetricsArgs' metrics: The metrics that the component is scaled on.
5524
+ :param int min_instance_count: The minimum amount of instances for this component. Must be less than max_instance_count.
5525
+ """
5526
+ pulumi.set(__self__, "max_instance_count", max_instance_count)
5527
+ pulumi.set(__self__, "metrics", metrics)
5528
+ pulumi.set(__self__, "min_instance_count", min_instance_count)
5529
+
5530
+ @property
5531
+ @pulumi.getter(name="maxInstanceCount")
5532
+ def max_instance_count(self) -> int:
5533
+ """
5534
+ The maximum amount of instances for this component. Must be more than min_instance_count.
5535
+ """
5536
+ return pulumi.get(self, "max_instance_count")
5537
+
5538
+ @property
5539
+ @pulumi.getter
5540
+ def metrics(self) -> 'outputs.AppSpecWorkerAutoscalingMetrics':
5541
+ """
5542
+ The metrics that the component is scaled on.
5543
+ """
5544
+ return pulumi.get(self, "metrics")
5545
+
5546
+ @property
5547
+ @pulumi.getter(name="minInstanceCount")
5548
+ def min_instance_count(self) -> int:
5549
+ """
5550
+ The minimum amount of instances for this component. Must be less than max_instance_count.
5551
+ """
5552
+ return pulumi.get(self, "min_instance_count")
5553
+
5554
+
5555
+ @pulumi.output_type
5556
+ class AppSpecWorkerAutoscalingMetrics(dict):
5557
+ def __init__(__self__, *,
5558
+ cpu: Optional['outputs.AppSpecWorkerAutoscalingMetricsCpu'] = None):
5559
+ """
5560
+ :param 'AppSpecWorkerAutoscalingMetricsCpuArgs' cpu: Settings for scaling the component based on CPU utilization.
5561
+ """
5562
+ if cpu is not None:
5563
+ pulumi.set(__self__, "cpu", cpu)
5564
+
5565
+ @property
5566
+ @pulumi.getter
5567
+ def cpu(self) -> Optional['outputs.AppSpecWorkerAutoscalingMetricsCpu']:
5568
+ """
5569
+ Settings for scaling the component based on CPU utilization.
5570
+ """
5571
+ return pulumi.get(self, "cpu")
5572
+
5573
+
5574
+ @pulumi.output_type
5575
+ class AppSpecWorkerAutoscalingMetricsCpu(dict):
5576
+ def __init__(__self__, *,
5577
+ percent: int):
5578
+ """
5579
+ :param int percent: The average target CPU utilization for the component.
5580
+ """
5581
+ pulumi.set(__self__, "percent", percent)
5582
+
5583
+ @property
5584
+ @pulumi.getter
5585
+ def percent(self) -> int:
5586
+ """
5587
+ The average target CPU utilization for the component.
5588
+ """
5589
+ return pulumi.get(self, "percent")
5590
+
5591
+
5318
5592
  @pulumi.output_type
5319
5593
  class AppSpecWorkerEnv(dict):
5320
5594
  def __init__(__self__, *,
@@ -5565,6 +5839,7 @@ class AppSpecWorkerImage(dict):
5565
5839
  registry_type: str,
5566
5840
  repository: str,
5567
5841
  deploy_on_pushes: Optional[Sequence['outputs.AppSpecWorkerImageDeployOnPush']] = None,
5842
+ digest: Optional[str] = None,
5568
5843
  registry: Optional[str] = None,
5569
5844
  registry_credentials: Optional[str] = None,
5570
5845
  tag: Optional[str] = None):
@@ -5572,6 +5847,7 @@ class AppSpecWorkerImage(dict):
5572
5847
  :param str registry_type: The registry type. One of `DOCR` (DigitalOcean container registry) or `DOCKER_HUB`.
5573
5848
  :param str repository: The repository name.
5574
5849
  :param Sequence['AppSpecWorkerImageDeployOnPushArgs'] deploy_on_pushes: Configures automatically deploying images pushed to DOCR.
5850
+ :param str digest: The image digest. Cannot be specified if `tag` is provided.
5575
5851
  :param str registry: The registry name. Must be left empty for the `DOCR` registry type. Required for the `DOCKER_HUB` registry type.
5576
5852
  :param str registry_credentials: The credentials required to access a private Docker Hub or GitHub registry, in the following syntax `<username>:<token>`.
5577
5853
  :param str tag: The repository tag. Defaults to `latest` if not provided.
@@ -5580,6 +5856,8 @@ class AppSpecWorkerImage(dict):
5580
5856
  pulumi.set(__self__, "repository", repository)
5581
5857
  if deploy_on_pushes is not None:
5582
5858
  pulumi.set(__self__, "deploy_on_pushes", deploy_on_pushes)
5859
+ if digest is not None:
5860
+ pulumi.set(__self__, "digest", digest)
5583
5861
  if registry is not None:
5584
5862
  pulumi.set(__self__, "registry", registry)
5585
5863
  if registry_credentials is not None:
@@ -5611,6 +5889,14 @@ class AppSpecWorkerImage(dict):
5611
5889
  """
5612
5890
  return pulumi.get(self, "deploy_on_pushes")
5613
5891
 
5892
+ @property
5893
+ @pulumi.getter
5894
+ def digest(self) -> Optional[str]:
5895
+ """
5896
+ The image digest. Cannot be specified if `tag` is provided.
5897
+ """
5898
+ return pulumi.get(self, "digest")
5899
+
5614
5900
  @property
5615
5901
  @pulumi.getter
5616
5902
  def registry(self) -> Optional[str]:
@@ -5927,6 +6213,46 @@ class AppSpecWorkerLogDestinationPapertrail(dict):
5927
6213
  return pulumi.get(self, "endpoint")
5928
6214
 
5929
6215
 
6216
+ @pulumi.output_type
6217
+ class AppSpecWorkerTermination(dict):
6218
+ @staticmethod
6219
+ def __key_warning(key: str):
6220
+ suggest = None
6221
+ if key == "gracePeriodSeconds":
6222
+ suggest = "grace_period_seconds"
6223
+
6224
+ if suggest:
6225
+ pulumi.log.warn(f"Key '{key}' not found in AppSpecWorkerTermination. Access the value via the '{suggest}' property getter instead.")
6226
+
6227
+ def __getitem__(self, key: str) -> Any:
6228
+ AppSpecWorkerTermination.__key_warning(key)
6229
+ return super().__getitem__(key)
6230
+
6231
+ def get(self, key: str, default = None) -> Any:
6232
+ AppSpecWorkerTermination.__key_warning(key)
6233
+ return super().get(key, default)
6234
+
6235
+ def __init__(__self__, *,
6236
+ grace_period_seconds: Optional[int] = None):
6237
+ """
6238
+ :param 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.
6239
+
6240
+ A `function` component can contain:
6241
+ """
6242
+ if grace_period_seconds is not None:
6243
+ pulumi.set(__self__, "grace_period_seconds", grace_period_seconds)
6244
+
6245
+ @property
6246
+ @pulumi.getter(name="gracePeriodSeconds")
6247
+ def grace_period_seconds(self) -> Optional[int]:
6248
+ """
6249
+ 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.
6250
+
6251
+ A `function` component can contain:
6252
+ """
6253
+ return pulumi.get(self, "grace_period_seconds")
6254
+
6255
+
5930
6256
  @pulumi.output_type
5931
6257
  class DatabaseClusterBackupRestore(dict):
5932
6258
  @staticmethod
@@ -10483,7 +10809,8 @@ class GetAppSpecJobResult(dict):
10483
10809
  kind: Optional[str] = None,
10484
10810
  log_destinations: Optional[Sequence['outputs.GetAppSpecJobLogDestinationResult']] = None,
10485
10811
  run_command: Optional[str] = None,
10486
- source_dir: Optional[str] = None):
10812
+ source_dir: Optional[str] = None,
10813
+ termination: Optional['outputs.GetAppSpecJobTerminationResult'] = None):
10487
10814
  """
10488
10815
  :param str name: The name of the component.
10489
10816
  :param Sequence['GetAppSpecJobAlertArgs'] alerts: Describes an alert policy for the component.
@@ -10505,6 +10832,7 @@ class GetAppSpecJobResult(dict):
10505
10832
  :param Sequence['GetAppSpecJobLogDestinationArgs'] log_destinations: Describes a log forwarding destination.
10506
10833
  :param str run_command: An optional run command to override the component's default.
10507
10834
  :param str source_dir: An optional path to the working directory to use for the build.
10835
+ :param 'GetAppSpecJobTerminationArgs' termination: Contains a component's termination parameters.
10508
10836
  """
10509
10837
  pulumi.set(__self__, "name", name)
10510
10838
  if alerts is not None:
@@ -10537,6 +10865,8 @@ class GetAppSpecJobResult(dict):
10537
10865
  pulumi.set(__self__, "run_command", run_command)
10538
10866
  if source_dir is not None:
10539
10867
  pulumi.set(__self__, "source_dir", source_dir)
10868
+ if termination is not None:
10869
+ pulumi.set(__self__, "termination", termination)
10540
10870
 
10541
10871
  @property
10542
10872
  @pulumi.getter
@@ -10670,6 +11000,14 @@ class GetAppSpecJobResult(dict):
10670
11000
  """
10671
11001
  return pulumi.get(self, "source_dir")
10672
11002
 
11003
+ @property
11004
+ @pulumi.getter
11005
+ def termination(self) -> Optional['outputs.GetAppSpecJobTerminationResult']:
11006
+ """
11007
+ Contains a component's termination parameters.
11008
+ """
11009
+ return pulumi.get(self, "termination")
11010
+
10673
11011
 
10674
11012
  @pulumi.output_type
10675
11013
  class GetAppSpecJobAlertResult(dict):
@@ -10911,6 +11249,7 @@ class GetAppSpecJobImageResult(dict):
10911
11249
  deploy_on_pushes: Sequence['outputs.GetAppSpecJobImageDeployOnPushResult'],
10912
11250
  registry_type: str,
10913
11251
  repository: str,
11252
+ digest: Optional[str] = None,
10914
11253
  registry: Optional[str] = None,
10915
11254
  registry_credentials: Optional[str] = None,
10916
11255
  tag: Optional[str] = None):
@@ -10918,6 +11257,7 @@ class GetAppSpecJobImageResult(dict):
10918
11257
  :param Sequence['GetAppSpecJobImageDeployOnPushArgs'] deploy_on_pushes: Whether to automatically deploy new commits made to the repo.
10919
11258
  :param str registry_type: The registry type. One of `DOCR` (DigitalOcean container registry) or `DOCKER_HUB`.
10920
11259
  :param str repository: The repository name.
11260
+ :param str digest: The image digest. Cannot be specified if `tag` is provided.
10921
11261
  :param str registry: The registry name. Must be left empty for the `DOCR` registry type. Required for the `DOCKER_HUB` registry type.
10922
11262
  :param str registry_credentials: Access credentials for third-party registries
10923
11263
  :param str tag: The repository tag. Defaults to `latest` if not provided.
@@ -10925,6 +11265,8 @@ class GetAppSpecJobImageResult(dict):
10925
11265
  pulumi.set(__self__, "deploy_on_pushes", deploy_on_pushes)
10926
11266
  pulumi.set(__self__, "registry_type", registry_type)
10927
11267
  pulumi.set(__self__, "repository", repository)
11268
+ if digest is not None:
11269
+ pulumi.set(__self__, "digest", digest)
10928
11270
  if registry is not None:
10929
11271
  pulumi.set(__self__, "registry", registry)
10930
11272
  if registry_credentials is not None:
@@ -10956,6 +11298,14 @@ class GetAppSpecJobImageResult(dict):
10956
11298
  """
10957
11299
  return pulumi.get(self, "repository")
10958
11300
 
11301
+ @property
11302
+ @pulumi.getter
11303
+ def digest(self) -> Optional[str]:
11304
+ """
11305
+ The image digest. Cannot be specified if `tag` is provided.
11306
+ """
11307
+ return pulumi.get(self, "digest")
11308
+
10959
11309
  @property
10960
11310
  @pulumi.getter
10961
11311
  def registry(self) -> Optional[str]:
@@ -11217,6 +11567,25 @@ class GetAppSpecJobLogDestinationPapertrailResult(dict):
11217
11567
  return pulumi.get(self, "endpoint")
11218
11568
 
11219
11569
 
11570
+ @pulumi.output_type
11571
+ class GetAppSpecJobTerminationResult(dict):
11572
+ def __init__(__self__, *,
11573
+ grace_period_seconds: Optional[int] = None):
11574
+ """
11575
+ :param 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.
11576
+ """
11577
+ if grace_period_seconds is not None:
11578
+ pulumi.set(__self__, "grace_period_seconds", grace_period_seconds)
11579
+
11580
+ @property
11581
+ @pulumi.getter(name="gracePeriodSeconds")
11582
+ def grace_period_seconds(self) -> Optional[int]:
11583
+ """
11584
+ 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.
11585
+ """
11586
+ return pulumi.get(self, "grace_period_seconds")
11587
+
11588
+
11220
11589
  @pulumi.output_type
11221
11590
  class GetAppSpecServiceResult(dict):
11222
11591
  def __init__(__self__, *,
@@ -11240,7 +11609,8 @@ class GetAppSpecServiceResult(dict):
11240
11609
  instance_count: Optional[int] = None,
11241
11610
  instance_size_slug: Optional[str] = None,
11242
11611
  log_destinations: Optional[Sequence['outputs.GetAppSpecServiceLogDestinationResult']] = None,
11243
- source_dir: Optional[str] = None):
11612
+ source_dir: Optional[str] = None,
11613
+ termination: Optional['outputs.GetAppSpecServiceTerminationResult'] = None):
11244
11614
  """
11245
11615
  :param int http_port: The internal port on which this service's run command will listen.
11246
11616
  :param Sequence[int] internal_ports: A list of ports on which this service will listen for internal traffic.
@@ -11262,6 +11632,7 @@ class GetAppSpecServiceResult(dict):
11262
11632
  :param str instance_size_slug: The instance size to use for this component.
11263
11633
  :param Sequence['GetAppSpecServiceLogDestinationArgs'] log_destinations: Describes a log forwarding destination.
11264
11634
  :param str source_dir: An optional path to the working directory to use for the build.
11635
+ :param 'GetAppSpecServiceTerminationArgs' termination: Contains a component's termination parameters.
11265
11636
  """
11266
11637
  pulumi.set(__self__, "http_port", http_port)
11267
11638
  pulumi.set(__self__, "internal_ports", internal_ports)
@@ -11300,6 +11671,8 @@ class GetAppSpecServiceResult(dict):
11300
11671
  pulumi.set(__self__, "log_destinations", log_destinations)
11301
11672
  if source_dir is not None:
11302
11673
  pulumi.set(__self__, "source_dir", source_dir)
11674
+ if termination is not None:
11675
+ pulumi.set(__self__, "termination", termination)
11303
11676
 
11304
11677
  @property
11305
11678
  @pulumi.getter(name="httpPort")
@@ -11468,6 +11841,14 @@ class GetAppSpecServiceResult(dict):
11468
11841
  """
11469
11842
  return pulumi.get(self, "source_dir")
11470
11843
 
11844
+ @property
11845
+ @pulumi.getter
11846
+ def termination(self) -> Optional['outputs.GetAppSpecServiceTerminationResult']:
11847
+ """
11848
+ Contains a component's termination parameters.
11849
+ """
11850
+ return pulumi.get(self, "termination")
11851
+
11471
11852
 
11472
11853
  @pulumi.output_type
11473
11854
  class GetAppSpecServiceAlertResult(dict):
@@ -12000,6 +12381,7 @@ class GetAppSpecServiceImageResult(dict):
12000
12381
  deploy_on_pushes: Sequence['outputs.GetAppSpecServiceImageDeployOnPushResult'],
12001
12382
  registry_type: str,
12002
12383
  repository: str,
12384
+ digest: Optional[str] = None,
12003
12385
  registry: Optional[str] = None,
12004
12386
  registry_credentials: Optional[str] = None,
12005
12387
  tag: Optional[str] = None):
@@ -12007,6 +12389,7 @@ class GetAppSpecServiceImageResult(dict):
12007
12389
  :param Sequence['GetAppSpecServiceImageDeployOnPushArgs'] deploy_on_pushes: Whether to automatically deploy new commits made to the repo.
12008
12390
  :param str registry_type: The registry type. One of `DOCR` (DigitalOcean container registry) or `DOCKER_HUB`.
12009
12391
  :param str repository: The repository name.
12392
+ :param str digest: The image digest. Cannot be specified if `tag` is provided.
12010
12393
  :param str registry: The registry name. Must be left empty for the `DOCR` registry type. Required for the `DOCKER_HUB` registry type.
12011
12394
  :param str registry_credentials: Access credentials for third-party registries
12012
12395
  :param str tag: The repository tag. Defaults to `latest` if not provided.
@@ -12014,6 +12397,8 @@ class GetAppSpecServiceImageResult(dict):
12014
12397
  pulumi.set(__self__, "deploy_on_pushes", deploy_on_pushes)
12015
12398
  pulumi.set(__self__, "registry_type", registry_type)
12016
12399
  pulumi.set(__self__, "repository", repository)
12400
+ if digest is not None:
12401
+ pulumi.set(__self__, "digest", digest)
12017
12402
  if registry is not None:
12018
12403
  pulumi.set(__self__, "registry", registry)
12019
12404
  if registry_credentials is not None:
@@ -12045,6 +12430,14 @@ class GetAppSpecServiceImageResult(dict):
12045
12430
  """
12046
12431
  return pulumi.get(self, "repository")
12047
12432
 
12433
+ @property
12434
+ @pulumi.getter
12435
+ def digest(self) -> Optional[str]:
12436
+ """
12437
+ The image digest. Cannot be specified if `tag` is provided.
12438
+ """
12439
+ return pulumi.get(self, "digest")
12440
+
12048
12441
  @property
12049
12442
  @pulumi.getter
12050
12443
  def registry(self) -> Optional[str]:
@@ -12337,6 +12730,37 @@ class GetAppSpecServiceRouteResult(dict):
12337
12730
  return pulumi.get(self, "preserve_path_prefix")
12338
12731
 
12339
12732
 
12733
+ @pulumi.output_type
12734
+ class GetAppSpecServiceTerminationResult(dict):
12735
+ def __init__(__self__, *,
12736
+ drain_seconds: Optional[int] = None,
12737
+ grace_period_seconds: Optional[int] = None):
12738
+ """
12739
+ :param 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.
12740
+ :param 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.
12741
+ """
12742
+ if drain_seconds is not None:
12743
+ pulumi.set(__self__, "drain_seconds", drain_seconds)
12744
+ if grace_period_seconds is not None:
12745
+ pulumi.set(__self__, "grace_period_seconds", grace_period_seconds)
12746
+
12747
+ @property
12748
+ @pulumi.getter(name="drainSeconds")
12749
+ def drain_seconds(self) -> Optional[int]:
12750
+ """
12751
+ 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.
12752
+ """
12753
+ return pulumi.get(self, "drain_seconds")
12754
+
12755
+ @property
12756
+ @pulumi.getter(name="gracePeriodSeconds")
12757
+ def grace_period_seconds(self) -> Optional[int]:
12758
+ """
12759
+ 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.
12760
+ """
12761
+ return pulumi.get(self, "grace_period_seconds")
12762
+
12763
+
12340
12764
  @pulumi.output_type
12341
12765
  class GetAppSpecStaticSiteResult(dict):
12342
12766
  def __init__(__self__, *,
@@ -12850,6 +13274,7 @@ class GetAppSpecWorkerResult(dict):
12850
13274
  def __init__(__self__, *,
12851
13275
  name: str,
12852
13276
  alerts: Optional[Sequence['outputs.GetAppSpecWorkerAlertResult']] = None,
13277
+ autoscaling: Optional['outputs.GetAppSpecWorkerAutoscalingResult'] = None,
12853
13278
  build_command: Optional[str] = None,
12854
13279
  dockerfile_path: Optional[str] = None,
12855
13280
  environment_slug: Optional[str] = None,
@@ -12862,10 +13287,12 @@ class GetAppSpecWorkerResult(dict):
12862
13287
  instance_size_slug: Optional[str] = None,
12863
13288
  log_destinations: Optional[Sequence['outputs.GetAppSpecWorkerLogDestinationResult']] = None,
12864
13289
  run_command: Optional[str] = None,
12865
- source_dir: Optional[str] = None):
13290
+ source_dir: Optional[str] = None,
13291
+ termination: Optional['outputs.GetAppSpecWorkerTerminationResult'] = None):
12866
13292
  """
12867
13293
  :param str name: The name of the component.
12868
13294
  :param Sequence['GetAppSpecWorkerAlertArgs'] alerts: Describes an alert policy for the component.
13295
+ :param 'GetAppSpecWorkerAutoscalingArgs' autoscaling: Configuration for automatically scaling this component based on metrics.
12869
13296
  :param str build_command: An optional build command to run while building this component from source.
12870
13297
  :param str dockerfile_path: The path to a Dockerfile relative to the root of the repo. If set, overrides usage of buildpacks.
12871
13298
  :param str environment_slug: An environment slug describing the type of this app.
@@ -12879,10 +13306,13 @@ class GetAppSpecWorkerResult(dict):
12879
13306
  :param Sequence['GetAppSpecWorkerLogDestinationArgs'] log_destinations: Describes a log forwarding destination.
12880
13307
  :param str run_command: An optional run command to override the component's default.
12881
13308
  :param str source_dir: An optional path to the working directory to use for the build.
13309
+ :param 'GetAppSpecWorkerTerminationArgs' termination: Contains a component's termination parameters.
12882
13310
  """
12883
13311
  pulumi.set(__self__, "name", name)
12884
13312
  if alerts is not None:
12885
13313
  pulumi.set(__self__, "alerts", alerts)
13314
+ if autoscaling is not None:
13315
+ pulumi.set(__self__, "autoscaling", autoscaling)
12886
13316
  if build_command is not None:
12887
13317
  pulumi.set(__self__, "build_command", build_command)
12888
13318
  if dockerfile_path is not None:
@@ -12909,6 +13339,8 @@ class GetAppSpecWorkerResult(dict):
12909
13339
  pulumi.set(__self__, "run_command", run_command)
12910
13340
  if source_dir is not None:
12911
13341
  pulumi.set(__self__, "source_dir", source_dir)
13342
+ if termination is not None:
13343
+ pulumi.set(__self__, "termination", termination)
12912
13344
 
12913
13345
  @property
12914
13346
  @pulumi.getter
@@ -12926,6 +13358,14 @@ class GetAppSpecWorkerResult(dict):
12926
13358
  """
12927
13359
  return pulumi.get(self, "alerts")
12928
13360
 
13361
+ @property
13362
+ @pulumi.getter
13363
+ def autoscaling(self) -> Optional['outputs.GetAppSpecWorkerAutoscalingResult']:
13364
+ """
13365
+ Configuration for automatically scaling this component based on metrics.
13366
+ """
13367
+ return pulumi.get(self, "autoscaling")
13368
+
12929
13369
  @property
12930
13370
  @pulumi.getter(name="buildCommand")
12931
13371
  def build_command(self) -> Optional[str]:
@@ -13030,6 +13470,14 @@ class GetAppSpecWorkerResult(dict):
13030
13470
  """
13031
13471
  return pulumi.get(self, "source_dir")
13032
13472
 
13473
+ @property
13474
+ @pulumi.getter
13475
+ def termination(self) -> Optional['outputs.GetAppSpecWorkerTerminationResult']:
13476
+ """
13477
+ Contains a component's termination parameters.
13478
+ """
13479
+ return pulumi.get(self, "termination")
13480
+
13033
13481
 
13034
13482
  @pulumi.output_type
13035
13483
  class GetAppSpecWorkerAlertResult(dict):
@@ -13094,6 +13542,83 @@ class GetAppSpecWorkerAlertResult(dict):
13094
13542
  return pulumi.get(self, "disabled")
13095
13543
 
13096
13544
 
13545
+ @pulumi.output_type
13546
+ class GetAppSpecWorkerAutoscalingResult(dict):
13547
+ def __init__(__self__, *,
13548
+ max_instance_count: int,
13549
+ metrics: 'outputs.GetAppSpecWorkerAutoscalingMetricsResult',
13550
+ min_instance_count: int):
13551
+ """
13552
+ :param int max_instance_count: The maximum amount of instances for this component. Must be more than min_instance_count.
13553
+ :param 'GetAppSpecWorkerAutoscalingMetricsArgs' metrics: The metrics that the component is scaled on.
13554
+ :param int min_instance_count: The minimum amount of instances for this component. Must be less than max_instance_count.
13555
+ """
13556
+ pulumi.set(__self__, "max_instance_count", max_instance_count)
13557
+ pulumi.set(__self__, "metrics", metrics)
13558
+ pulumi.set(__self__, "min_instance_count", min_instance_count)
13559
+
13560
+ @property
13561
+ @pulumi.getter(name="maxInstanceCount")
13562
+ def max_instance_count(self) -> int:
13563
+ """
13564
+ The maximum amount of instances for this component. Must be more than min_instance_count.
13565
+ """
13566
+ return pulumi.get(self, "max_instance_count")
13567
+
13568
+ @property
13569
+ @pulumi.getter
13570
+ def metrics(self) -> 'outputs.GetAppSpecWorkerAutoscalingMetricsResult':
13571
+ """
13572
+ The metrics that the component is scaled on.
13573
+ """
13574
+ return pulumi.get(self, "metrics")
13575
+
13576
+ @property
13577
+ @pulumi.getter(name="minInstanceCount")
13578
+ def min_instance_count(self) -> int:
13579
+ """
13580
+ The minimum amount of instances for this component. Must be less than max_instance_count.
13581
+ """
13582
+ return pulumi.get(self, "min_instance_count")
13583
+
13584
+
13585
+ @pulumi.output_type
13586
+ class GetAppSpecWorkerAutoscalingMetricsResult(dict):
13587
+ def __init__(__self__, *,
13588
+ cpu: Optional['outputs.GetAppSpecWorkerAutoscalingMetricsCpuResult'] = None):
13589
+ """
13590
+ :param 'GetAppSpecWorkerAutoscalingMetricsCpuArgs' cpu: Settings for scaling the component based on CPU utilization.
13591
+ """
13592
+ if cpu is not None:
13593
+ pulumi.set(__self__, "cpu", cpu)
13594
+
13595
+ @property
13596
+ @pulumi.getter
13597
+ def cpu(self) -> Optional['outputs.GetAppSpecWorkerAutoscalingMetricsCpuResult']:
13598
+ """
13599
+ Settings for scaling the component based on CPU utilization.
13600
+ """
13601
+ return pulumi.get(self, "cpu")
13602
+
13603
+
13604
+ @pulumi.output_type
13605
+ class GetAppSpecWorkerAutoscalingMetricsCpuResult(dict):
13606
+ def __init__(__self__, *,
13607
+ percent: int):
13608
+ """
13609
+ :param int percent: The average target CPU utilization for the component.
13610
+ """
13611
+ pulumi.set(__self__, "percent", percent)
13612
+
13613
+ @property
13614
+ @pulumi.getter
13615
+ def percent(self) -> int:
13616
+ """
13617
+ The average target CPU utilization for the component.
13618
+ """
13619
+ return pulumi.get(self, "percent")
13620
+
13621
+
13097
13622
  @pulumi.output_type
13098
13623
  class GetAppSpecWorkerEnvResult(dict):
13099
13624
  def __init__(__self__, *,
@@ -13271,6 +13796,7 @@ class GetAppSpecWorkerImageResult(dict):
13271
13796
  deploy_on_pushes: Sequence['outputs.GetAppSpecWorkerImageDeployOnPushResult'],
13272
13797
  registry_type: str,
13273
13798
  repository: str,
13799
+ digest: Optional[str] = None,
13274
13800
  registry: Optional[str] = None,
13275
13801
  registry_credentials: Optional[str] = None,
13276
13802
  tag: Optional[str] = None):
@@ -13278,6 +13804,7 @@ class GetAppSpecWorkerImageResult(dict):
13278
13804
  :param Sequence['GetAppSpecWorkerImageDeployOnPushArgs'] deploy_on_pushes: Whether to automatically deploy new commits made to the repo.
13279
13805
  :param str registry_type: The registry type. One of `DOCR` (DigitalOcean container registry) or `DOCKER_HUB`.
13280
13806
  :param str repository: The repository name.
13807
+ :param str digest: The image digest. Cannot be specified if `tag` is provided.
13281
13808
  :param str registry: The registry name. Must be left empty for the `DOCR` registry type. Required for the `DOCKER_HUB` registry type.
13282
13809
  :param str registry_credentials: Access credentials for third-party registries
13283
13810
  :param str tag: The repository tag. Defaults to `latest` if not provided.
@@ -13285,6 +13812,8 @@ class GetAppSpecWorkerImageResult(dict):
13285
13812
  pulumi.set(__self__, "deploy_on_pushes", deploy_on_pushes)
13286
13813
  pulumi.set(__self__, "registry_type", registry_type)
13287
13814
  pulumi.set(__self__, "repository", repository)
13815
+ if digest is not None:
13816
+ pulumi.set(__self__, "digest", digest)
13288
13817
  if registry is not None:
13289
13818
  pulumi.set(__self__, "registry", registry)
13290
13819
  if registry_credentials is not None:
@@ -13316,6 +13845,14 @@ class GetAppSpecWorkerImageResult(dict):
13316
13845
  """
13317
13846
  return pulumi.get(self, "repository")
13318
13847
 
13848
+ @property
13849
+ @pulumi.getter
13850
+ def digest(self) -> Optional[str]:
13851
+ """
13852
+ The image digest. Cannot be specified if `tag` is provided.
13853
+ """
13854
+ return pulumi.get(self, "digest")
13855
+
13319
13856
  @property
13320
13857
  @pulumi.getter
13321
13858
  def registry(self) -> Optional[str]:
@@ -13577,6 +14114,25 @@ class GetAppSpecWorkerLogDestinationPapertrailResult(dict):
13577
14114
  return pulumi.get(self, "endpoint")
13578
14115
 
13579
14116
 
14117
+ @pulumi.output_type
14118
+ class GetAppSpecWorkerTerminationResult(dict):
14119
+ def __init__(__self__, *,
14120
+ grace_period_seconds: Optional[int] = None):
14121
+ """
14122
+ :param 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.
14123
+ """
14124
+ if grace_period_seconds is not None:
14125
+ pulumi.set(__self__, "grace_period_seconds", grace_period_seconds)
14126
+
14127
+ @property
14128
+ @pulumi.getter(name="gracePeriodSeconds")
14129
+ def grace_period_seconds(self) -> Optional[int]:
14130
+ """
14131
+ 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.
14132
+ """
14133
+ return pulumi.get(self, "grace_period_seconds")
14134
+
14135
+
13580
14136
  @pulumi.output_type
13581
14137
  class GetDatabaseClusterMaintenanceWindowResult(dict):
13582
14138
  def __init__(__self__, *,