pulumi-aws 7.15.0__py3-none-any.whl → 7.16.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.
- pulumi_aws/__init__.py +80 -0
- pulumi_aws/alb/listener.py +7 -7
- pulumi_aws/alb/target_group.py +7 -7
- pulumi_aws/alb/target_group_attachment.py +83 -0
- pulumi_aws/apigateway/domain_name.py +86 -7
- pulumi_aws/apigateway/get_domain_name.py +15 -1
- pulumi_aws/apigateway/integration.py +48 -8
- pulumi_aws/athena/_inputs.py +412 -5
- pulumi_aws/athena/outputs.py +342 -2
- pulumi_aws/backup/global_settings.py +15 -7
- pulumi_aws/bedrock/agentcore_memory_strategy.py +8 -0
- pulumi_aws/cleanrooms/collaboration.py +26 -6
- pulumi_aws/cloudfront/__init__.py +6 -0
- pulumi_aws/cloudfront/_inputs.py +3601 -478
- pulumi_aws/cloudfront/connection_function.py +658 -0
- pulumi_aws/cloudfront/connection_group.py +649 -0
- pulumi_aws/cloudfront/distribution.py +142 -0
- pulumi_aws/cloudfront/distribution_tenant.py +857 -0
- pulumi_aws/cloudfront/get_connection_group.py +249 -0
- pulumi_aws/cloudfront/get_distribution_tenant.py +279 -0
- pulumi_aws/cloudfront/multitenant_distribution.py +1181 -0
- pulumi_aws/cloudfront/outputs.py +3034 -376
- pulumi_aws/cloudwatch/log_subscription_filter.py +136 -42
- pulumi_aws/directconnect/gateway.py +78 -3
- pulumi_aws/directconnect/get_gateway.py +24 -4
- pulumi_aws/dlm/_inputs.py +3 -3
- pulumi_aws/dlm/outputs.py +2 -2
- pulumi_aws/dynamodb/__init__.py +1 -0
- pulumi_aws/dynamodb/_inputs.py +370 -0
- pulumi_aws/dynamodb/global_secondary_index.py +666 -0
- pulumi_aws/dynamodb/outputs.py +315 -0
- pulumi_aws/dynamodb/table.py +9 -1
- pulumi_aws/ec2/_inputs.py +44 -4
- pulumi_aws/ec2/get_vpc_endpoint.py +24 -4
- pulumi_aws/ec2/outputs.py +54 -4
- pulumi_aws/ecr/__init__.py +1 -0
- pulumi_aws/ecr/_inputs.py +58 -22
- pulumi_aws/ecr/get_repository_creation_template.py +1 -1
- pulumi_aws/ecr/lifecycle_policy.py +152 -64
- pulumi_aws/ecr/outputs.py +37 -15
- pulumi_aws/ecr/pull_time_update_exclusion.py +363 -0
- pulumi_aws/ecr/repository_creation_template.py +7 -7
- pulumi_aws/ecs/_inputs.py +20 -0
- pulumi_aws/ecs/outputs.py +14 -0
- pulumi_aws/ecs/task_definition.py +28 -28
- pulumi_aws/elasticache/replication_group.py +7 -7
- pulumi_aws/fsx/ontap_file_system.py +14 -0
- pulumi_aws/glue/resource_policy.py +4 -4
- pulumi_aws/guardduty/_inputs.py +41 -1
- pulumi_aws/guardduty/outputs.py +27 -1
- pulumi_aws/iam/get_saml_provider.py +15 -1
- pulumi_aws/iam/outbound_web_identity_federation.py +0 -4
- pulumi_aws/iam/policy.py +47 -0
- pulumi_aws/iam/saml_provider.py +28 -0
- pulumi_aws/iam/virtual_mfa_device.py +66 -38
- pulumi_aws/imagebuilder/_inputs.py +87 -0
- pulumi_aws/imagebuilder/image.py +47 -0
- pulumi_aws/imagebuilder/image_pipeline.py +47 -0
- pulumi_aws/imagebuilder/outputs.py +87 -0
- pulumi_aws/kms/grant.py +18 -18
- pulumi_aws/lambda_/_inputs.py +24 -4
- pulumi_aws/lambda_/event_source_mapping.py +2 -0
- pulumi_aws/lambda_/function.py +28 -0
- pulumi_aws/lambda_/function_url.py +4 -0
- pulumi_aws/lambda_/get_function.py +15 -1
- pulumi_aws/lambda_/outputs.py +17 -3
- pulumi_aws/lambda_/permission.py +47 -0
- pulumi_aws/lb/listener.py +7 -7
- pulumi_aws/lb/target_group.py +7 -7
- pulumi_aws/lb/target_group_attachment.py +83 -0
- pulumi_aws/networkfirewall/_inputs.py +3 -3
- pulumi_aws/networkfirewall/outputs.py +2 -2
- pulumi_aws/networkfirewall/vpc_endpoint_association.py +2 -2
- pulumi_aws/networkmanager/vpc_attachment.py +7 -7
- pulumi_aws/opensearchingest/pipeline.py +47 -0
- pulumi_aws/organizations/__init__.py +1 -0
- pulumi_aws/organizations/tag.py +292 -0
- pulumi_aws/pulumi-plugin.json +1 -1
- pulumi_aws/rds/cluster.py +21 -21
- pulumi_aws/rds/get_proxy.py +29 -1
- pulumi_aws/rds/proxy.py +94 -0
- pulumi_aws/rds/proxy_default_target_group.py +0 -76
- pulumi_aws/rds/proxy_target.py +0 -80
- pulumi_aws/redshift/__init__.py +1 -0
- pulumi_aws/redshift/_inputs.py +329 -0
- pulumi_aws/redshift/idc_application.py +687 -0
- pulumi_aws/redshift/outputs.py +265 -0
- pulumi_aws/route53/get_resolver_firewall_rules.py +9 -0
- pulumi_aws/route53/get_resolver_rule.py +19 -4
- pulumi_aws/route53/outputs.py +108 -1
- pulumi_aws/route53/resolver_firewall_rule.py +199 -32
- pulumi_aws/secretsmanager/__init__.py +1 -0
- pulumi_aws/secretsmanager/tag.py +333 -0
- pulumi_aws/sesv2/__init__.py +1 -0
- pulumi_aws/sesv2/tenant.py +418 -0
- pulumi_aws/sfn/activity.py +0 -4
- pulumi_aws/sfn/alias.py +0 -4
- pulumi_aws/transfer/_inputs.py +126 -0
- pulumi_aws/transfer/outputs.py +97 -0
- pulumi_aws/transfer/web_app.py +54 -7
- pulumi_aws/vpclattice/service_network_resource_association.py +47 -0
- {pulumi_aws-7.15.0.dist-info → pulumi_aws-7.16.0.dist-info}/METADATA +1 -1
- {pulumi_aws-7.15.0.dist-info → pulumi_aws-7.16.0.dist-info}/RECORD +105 -93
- {pulumi_aws-7.15.0.dist-info → pulumi_aws-7.16.0.dist-info}/WHEEL +0 -0
- {pulumi_aws-7.15.0.dist-info → pulumi_aws-7.16.0.dist-info}/top_level.txt +0 -0
pulumi_aws/ec2/outputs.py
CHANGED
|
@@ -17280,6 +17280,10 @@ class VpcEndpointDnsOptions(dict):
|
|
|
17280
17280
|
suggest = "dns_record_ip_type"
|
|
17281
17281
|
elif key == "privateDnsOnlyForInboundResolverEndpoint":
|
|
17282
17282
|
suggest = "private_dns_only_for_inbound_resolver_endpoint"
|
|
17283
|
+
elif key == "privateDnsPreference":
|
|
17284
|
+
suggest = "private_dns_preference"
|
|
17285
|
+
elif key == "privateDnsSpecifiedDomains":
|
|
17286
|
+
suggest = "private_dns_specified_domains"
|
|
17283
17287
|
|
|
17284
17288
|
if suggest:
|
|
17285
17289
|
pulumi.log.warn(f"Key '{key}' not found in VpcEndpointDnsOptions. Access the value via the '{suggest}' property getter instead.")
|
|
@@ -17294,15 +17298,23 @@ class VpcEndpointDnsOptions(dict):
|
|
|
17294
17298
|
|
|
17295
17299
|
def __init__(__self__, *,
|
|
17296
17300
|
dns_record_ip_type: Optional[_builtins.str] = None,
|
|
17297
|
-
private_dns_only_for_inbound_resolver_endpoint: Optional[_builtins.bool] = None
|
|
17301
|
+
private_dns_only_for_inbound_resolver_endpoint: Optional[_builtins.bool] = None,
|
|
17302
|
+
private_dns_preference: Optional[_builtins.str] = None,
|
|
17303
|
+
private_dns_specified_domains: Optional[Sequence[_builtins.str]] = None):
|
|
17298
17304
|
"""
|
|
17299
17305
|
:param _builtins.str dns_record_ip_type: The DNS records created for the endpoint. Valid values are `ipv4`, `dualstack`, `service-defined`, and `ipv6`.
|
|
17300
|
-
:param _builtins.bool private_dns_only_for_inbound_resolver_endpoint:
|
|
17306
|
+
:param _builtins.bool private_dns_only_for_inbound_resolver_endpoint: Boolean indicating whether to enable private DNS only for inbound endpoints. This option is available only for interface endpoints of services that support both gateway and interface endpoints. A gateway endpoint for the same service must be created before an interface endpoint is created. Traffic originating from the VPC is routed to the gateway endpoint, while traffic originating from on-premises is routed to the interface endpoint. Defaults to `false`. This argument can be specified only if `private_dns_enabled` is `true`.
|
|
17307
|
+
:param _builtins.str private_dns_preference: Preference for which private domains have a private hosted zone created for and associated with the specified VPC. Valid values are `ALL_DOMAINS`, `VERIFIED_DOMAINS_ONLY`, `VERIFIED_DOMAINS_AND_SPECIFIED_DOMAINS`, and `SPECIFIED_DOMAINS_ONLY`. Only supported when `private_dns_enabled` is `true` and when the `vpc_endpoint_type` is `ServiceNetwork` or `Resource`.
|
|
17308
|
+
:param Sequence[_builtins.str] private_dns_specified_domains: List of private domains to create private hosted zones for and associate with the specified VPC. Must be specified when `private_dns_enabled` is `true` and `private_dns_preference` is set to either `VERIFIED_DOMAINS_AND_SPECIFIED_DOMAINS` or `SPECIFIED_DOMAINS_ONLY`. In all other cases, this argument must not be specified.
|
|
17301
17309
|
"""
|
|
17302
17310
|
if dns_record_ip_type is not None:
|
|
17303
17311
|
pulumi.set(__self__, "dns_record_ip_type", dns_record_ip_type)
|
|
17304
17312
|
if private_dns_only_for_inbound_resolver_endpoint is not None:
|
|
17305
17313
|
pulumi.set(__self__, "private_dns_only_for_inbound_resolver_endpoint", private_dns_only_for_inbound_resolver_endpoint)
|
|
17314
|
+
if private_dns_preference is not None:
|
|
17315
|
+
pulumi.set(__self__, "private_dns_preference", private_dns_preference)
|
|
17316
|
+
if private_dns_specified_domains is not None:
|
|
17317
|
+
pulumi.set(__self__, "private_dns_specified_domains", private_dns_specified_domains)
|
|
17306
17318
|
|
|
17307
17319
|
@_builtins.property
|
|
17308
17320
|
@pulumi.getter(name="dnsRecordIpType")
|
|
@@ -17316,10 +17328,26 @@ class VpcEndpointDnsOptions(dict):
|
|
|
17316
17328
|
@pulumi.getter(name="privateDnsOnlyForInboundResolverEndpoint")
|
|
17317
17329
|
def private_dns_only_for_inbound_resolver_endpoint(self) -> Optional[_builtins.bool]:
|
|
17318
17330
|
"""
|
|
17319
|
-
|
|
17331
|
+
Boolean indicating whether to enable private DNS only for inbound endpoints. This option is available only for interface endpoints of services that support both gateway and interface endpoints. A gateway endpoint for the same service must be created before an interface endpoint is created. Traffic originating from the VPC is routed to the gateway endpoint, while traffic originating from on-premises is routed to the interface endpoint. Defaults to `false`. This argument can be specified only if `private_dns_enabled` is `true`.
|
|
17320
17332
|
"""
|
|
17321
17333
|
return pulumi.get(self, "private_dns_only_for_inbound_resolver_endpoint")
|
|
17322
17334
|
|
|
17335
|
+
@_builtins.property
|
|
17336
|
+
@pulumi.getter(name="privateDnsPreference")
|
|
17337
|
+
def private_dns_preference(self) -> Optional[_builtins.str]:
|
|
17338
|
+
"""
|
|
17339
|
+
Preference for which private domains have a private hosted zone created for and associated with the specified VPC. Valid values are `ALL_DOMAINS`, `VERIFIED_DOMAINS_ONLY`, `VERIFIED_DOMAINS_AND_SPECIFIED_DOMAINS`, and `SPECIFIED_DOMAINS_ONLY`. Only supported when `private_dns_enabled` is `true` and when the `vpc_endpoint_type` is `ServiceNetwork` or `Resource`.
|
|
17340
|
+
"""
|
|
17341
|
+
return pulumi.get(self, "private_dns_preference")
|
|
17342
|
+
|
|
17343
|
+
@_builtins.property
|
|
17344
|
+
@pulumi.getter(name="privateDnsSpecifiedDomains")
|
|
17345
|
+
def private_dns_specified_domains(self) -> Optional[Sequence[_builtins.str]]:
|
|
17346
|
+
"""
|
|
17347
|
+
List of private domains to create private hosted zones for and associate with the specified VPC. Must be specified when `private_dns_enabled` is `true` and `private_dns_preference` is set to either `VERIFIED_DOMAINS_AND_SPECIFIED_DOMAINS` or `SPECIFIED_DOMAINS_ONLY`. In all other cases, this argument must not be specified.
|
|
17348
|
+
"""
|
|
17349
|
+
return pulumi.get(self, "private_dns_specified_domains")
|
|
17350
|
+
|
|
17323
17351
|
|
|
17324
17352
|
@pulumi.output_type
|
|
17325
17353
|
class VpcEndpointServicePrivateDnsNameConfiguration(dict):
|
|
@@ -25487,13 +25515,19 @@ class GetVpcEndpointDnsEntryResult(dict):
|
|
|
25487
25515
|
class GetVpcEndpointDnsOptionResult(dict):
|
|
25488
25516
|
def __init__(__self__, *,
|
|
25489
25517
|
dns_record_ip_type: _builtins.str,
|
|
25490
|
-
private_dns_only_for_inbound_resolver_endpoint: _builtins.bool
|
|
25518
|
+
private_dns_only_for_inbound_resolver_endpoint: _builtins.bool,
|
|
25519
|
+
private_dns_preference: _builtins.str,
|
|
25520
|
+
private_dns_specified_domains: Sequence[_builtins.str]):
|
|
25491
25521
|
"""
|
|
25492
25522
|
:param _builtins.str dns_record_ip_type: The DNS records created for the endpoint.
|
|
25493
25523
|
:param _builtins.bool private_dns_only_for_inbound_resolver_endpoint: Indicates whether to enable private DNS only for inbound endpoints.
|
|
25524
|
+
:param _builtins.str private_dns_preference: Preference for which private domains have a private hosted zone created for and associated with the specified VPC.
|
|
25525
|
+
:param Sequence[_builtins.str] private_dns_specified_domains: List of private domains to create private hosted zones for and associate with the specified VPC.
|
|
25494
25526
|
"""
|
|
25495
25527
|
pulumi.set(__self__, "dns_record_ip_type", dns_record_ip_type)
|
|
25496
25528
|
pulumi.set(__self__, "private_dns_only_for_inbound_resolver_endpoint", private_dns_only_for_inbound_resolver_endpoint)
|
|
25529
|
+
pulumi.set(__self__, "private_dns_preference", private_dns_preference)
|
|
25530
|
+
pulumi.set(__self__, "private_dns_specified_domains", private_dns_specified_domains)
|
|
25497
25531
|
|
|
25498
25532
|
@_builtins.property
|
|
25499
25533
|
@pulumi.getter(name="dnsRecordIpType")
|
|
@@ -25511,6 +25545,22 @@ class GetVpcEndpointDnsOptionResult(dict):
|
|
|
25511
25545
|
"""
|
|
25512
25546
|
return pulumi.get(self, "private_dns_only_for_inbound_resolver_endpoint")
|
|
25513
25547
|
|
|
25548
|
+
@_builtins.property
|
|
25549
|
+
@pulumi.getter(name="privateDnsPreference")
|
|
25550
|
+
def private_dns_preference(self) -> _builtins.str:
|
|
25551
|
+
"""
|
|
25552
|
+
Preference for which private domains have a private hosted zone created for and associated with the specified VPC.
|
|
25553
|
+
"""
|
|
25554
|
+
return pulumi.get(self, "private_dns_preference")
|
|
25555
|
+
|
|
25556
|
+
@_builtins.property
|
|
25557
|
+
@pulumi.getter(name="privateDnsSpecifiedDomains")
|
|
25558
|
+
def private_dns_specified_domains(self) -> Sequence[_builtins.str]:
|
|
25559
|
+
"""
|
|
25560
|
+
List of private domains to create private hosted zones for and associate with the specified VPC.
|
|
25561
|
+
"""
|
|
25562
|
+
return pulumi.get(self, "private_dns_specified_domains")
|
|
25563
|
+
|
|
25514
25564
|
|
|
25515
25565
|
@pulumi.output_type
|
|
25516
25566
|
class GetVpcEndpointFilterResult(dict):
|
pulumi_aws/ecr/__init__.py
CHANGED
|
@@ -18,6 +18,7 @@ from .get_repository import *
|
|
|
18
18
|
from .get_repository_creation_template import *
|
|
19
19
|
from .lifecycle_policy import *
|
|
20
20
|
from .pull_through_cache_rule import *
|
|
21
|
+
from .pull_time_update_exclusion import *
|
|
21
22
|
from .registry_policy import *
|
|
22
23
|
from .registry_scanning_configuration import *
|
|
23
24
|
from .replication_configuration import *
|
pulumi_aws/ecr/_inputs.py
CHANGED
|
@@ -890,11 +890,11 @@ if not MYPY:
|
|
|
890
890
|
class GetLifecyclePolicyDocumentRuleArgsDict(TypedDict):
|
|
891
891
|
priority: _builtins.int
|
|
892
892
|
"""
|
|
893
|
-
Sets the order in which rules are evaluated, lowest to highest. When you add rules to a lifecycle policy, you must give them each a unique value for `priority`. Values do not need to be sequential across rules in a policy. A rule with a `tag_status` value of
|
|
893
|
+
Sets the order in which rules are evaluated, lowest to highest. When you add rules to a lifecycle policy, you must give them each a unique value for `priority`. Values do not need to be sequential across rules in a policy. A rule with a `tag_status` value of `any` must have the highest value for `priority` and be evaluated last.
|
|
894
894
|
"""
|
|
895
895
|
action: NotRequired['GetLifecyclePolicyDocumentRuleActionArgsDict']
|
|
896
896
|
"""
|
|
897
|
-
Specifies the action
|
|
897
|
+
Specifies the action to take.
|
|
898
898
|
"""
|
|
899
899
|
description: NotRequired[_builtins.str]
|
|
900
900
|
"""
|
|
@@ -915,8 +915,8 @@ class GetLifecyclePolicyDocumentRuleArgs:
|
|
|
915
915
|
description: Optional[_builtins.str] = None,
|
|
916
916
|
selection: Optional['GetLifecyclePolicyDocumentRuleSelectionArgs'] = None):
|
|
917
917
|
"""
|
|
918
|
-
:param _builtins.int priority: Sets the order in which rules are evaluated, lowest to highest. When you add rules to a lifecycle policy, you must give them each a unique value for `priority`. Values do not need to be sequential across rules in a policy. A rule with a `tag_status` value of
|
|
919
|
-
:param 'GetLifecyclePolicyDocumentRuleActionArgs' action: Specifies the action
|
|
918
|
+
:param _builtins.int priority: Sets the order in which rules are evaluated, lowest to highest. When you add rules to a lifecycle policy, you must give them each a unique value for `priority`. Values do not need to be sequential across rules in a policy. A rule with a `tag_status` value of `any` must have the highest value for `priority` and be evaluated last.
|
|
919
|
+
:param 'GetLifecyclePolicyDocumentRuleActionArgs' action: Specifies the action to take.
|
|
920
920
|
:param _builtins.str description: Describes the purpose of a rule within a lifecycle policy.
|
|
921
921
|
:param 'GetLifecyclePolicyDocumentRuleSelectionArgs' selection: Collects parameters describing the selection criteria for the ECR lifecycle policy:
|
|
922
922
|
"""
|
|
@@ -932,7 +932,7 @@ class GetLifecyclePolicyDocumentRuleArgs:
|
|
|
932
932
|
@pulumi.getter
|
|
933
933
|
def priority(self) -> _builtins.int:
|
|
934
934
|
"""
|
|
935
|
-
Sets the order in which rules are evaluated, lowest to highest. When you add rules to a lifecycle policy, you must give them each a unique value for `priority`. Values do not need to be sequential across rules in a policy. A rule with a `tag_status` value of
|
|
935
|
+
Sets the order in which rules are evaluated, lowest to highest. When you add rules to a lifecycle policy, you must give them each a unique value for `priority`. Values do not need to be sequential across rules in a policy. A rule with a `tag_status` value of `any` must have the highest value for `priority` and be evaluated last.
|
|
936
936
|
"""
|
|
937
937
|
return pulumi.get(self, "priority")
|
|
938
938
|
|
|
@@ -944,7 +944,7 @@ class GetLifecyclePolicyDocumentRuleArgs:
|
|
|
944
944
|
@pulumi.getter
|
|
945
945
|
def action(self) -> Optional['GetLifecyclePolicyDocumentRuleActionArgs']:
|
|
946
946
|
"""
|
|
947
|
-
Specifies the action
|
|
947
|
+
Specifies the action to take.
|
|
948
948
|
"""
|
|
949
949
|
return pulumi.get(self, "action")
|
|
950
950
|
|
|
@@ -981,25 +981,32 @@ if not MYPY:
|
|
|
981
981
|
class GetLifecyclePolicyDocumentRuleActionArgsDict(TypedDict):
|
|
982
982
|
type: _builtins.str
|
|
983
983
|
"""
|
|
984
|
-
The supported
|
|
984
|
+
Specify an action type. The supported values are `expire` (to delete images) and `transition` (to move images to archive storage).
|
|
985
|
+
* `targetStorageClass` (Required if `type` is `transition`) - The storage class you want the lifecycle policy to transition the image to. `archive` is the only supported value.
|
|
985
986
|
"""
|
|
987
|
+
target_storage_class: NotRequired[_builtins.str]
|
|
986
988
|
elif False:
|
|
987
989
|
GetLifecyclePolicyDocumentRuleActionArgsDict: TypeAlias = Mapping[str, Any]
|
|
988
990
|
|
|
989
991
|
@pulumi.input_type
|
|
990
992
|
class GetLifecyclePolicyDocumentRuleActionArgs:
|
|
991
993
|
def __init__(__self__, *,
|
|
992
|
-
type: _builtins.str
|
|
994
|
+
type: _builtins.str,
|
|
995
|
+
target_storage_class: Optional[_builtins.str] = None):
|
|
993
996
|
"""
|
|
994
|
-
:param _builtins.str type: The supported
|
|
997
|
+
:param _builtins.str type: Specify an action type. The supported values are `expire` (to delete images) and `transition` (to move images to archive storage).
|
|
998
|
+
* `targetStorageClass` (Required if `type` is `transition`) - The storage class you want the lifecycle policy to transition the image to. `archive` is the only supported value.
|
|
995
999
|
"""
|
|
996
1000
|
pulumi.set(__self__, "type", type)
|
|
1001
|
+
if target_storage_class is not None:
|
|
1002
|
+
pulumi.set(__self__, "target_storage_class", target_storage_class)
|
|
997
1003
|
|
|
998
1004
|
@_builtins.property
|
|
999
1005
|
@pulumi.getter
|
|
1000
1006
|
def type(self) -> _builtins.str:
|
|
1001
1007
|
"""
|
|
1002
|
-
The supported
|
|
1008
|
+
Specify an action type. The supported values are `expire` (to delete images) and `transition` (to move images to archive storage).
|
|
1009
|
+
* `targetStorageClass` (Required if `type` is `transition`) - The storage class you want the lifecycle policy to transition the image to. `archive` is the only supported value.
|
|
1003
1010
|
"""
|
|
1004
1011
|
return pulumi.get(self, "type")
|
|
1005
1012
|
|
|
@@ -1007,24 +1014,37 @@ class GetLifecyclePolicyDocumentRuleActionArgs:
|
|
|
1007
1014
|
def type(self, value: _builtins.str):
|
|
1008
1015
|
pulumi.set(self, "type", value)
|
|
1009
1016
|
|
|
1017
|
+
@_builtins.property
|
|
1018
|
+
@pulumi.getter(name="targetStorageClass")
|
|
1019
|
+
def target_storage_class(self) -> Optional[_builtins.str]:
|
|
1020
|
+
return pulumi.get(self, "target_storage_class")
|
|
1021
|
+
|
|
1022
|
+
@target_storage_class.setter
|
|
1023
|
+
def target_storage_class(self, value: Optional[_builtins.str]):
|
|
1024
|
+
pulumi.set(self, "target_storage_class", value)
|
|
1025
|
+
|
|
1010
1026
|
|
|
1011
1027
|
if not MYPY:
|
|
1012
1028
|
class GetLifecyclePolicyDocumentRuleSelectionArgsDict(TypedDict):
|
|
1013
1029
|
count_number: _builtins.int
|
|
1014
1030
|
"""
|
|
1015
|
-
Specify a count number. If the `count_type` used is
|
|
1031
|
+
Specify a count number. If the `count_type` used is `imageCountMoreThan`, then the value is the maximum number of images that you want to retain in your repository. If the `count_type` used is `sinceImagePushed`, then the value is the maximum age limit for your images. If the `count_type` used is `sinceImagePulled`, then the value is the maximum number of days since the image was last pulled. If the `count_type` used is `sinceImageTransitioned`, then the value is the maximum number of days since the image was archived.
|
|
1016
1032
|
"""
|
|
1017
1033
|
count_type: _builtins.str
|
|
1018
1034
|
"""
|
|
1019
|
-
Specify a count type to apply to the images. If `count_type` is set to
|
|
1035
|
+
Specify a count type to apply to the images. If `count_type` is set to `imageCountMoreThan`, you also specify `count_number` to create a rule that sets a limit on the number of images that exist in your repository. If `count_type` is set to `sinceImagePushed`, `sinceImagePulled`, or `sinceImageTransitioned`, you also specify `count_unit` and `count_number` to specify a time limit on the images that exist in your repository.
|
|
1020
1036
|
"""
|
|
1021
1037
|
tag_status: _builtins.str
|
|
1022
1038
|
"""
|
|
1023
|
-
Determines whether the lifecycle policy rule that you are adding specifies a tag for an image. Acceptable options are
|
|
1039
|
+
Determines whether the lifecycle policy rule that you are adding specifies a tag for an image. Acceptable options are `tagged`, `untagged`, or `any`. If you specify `any`, then all images have the rule evaluated against them. If you specify `tagged`, then you must also specify a `tag_prefix_list` value or a `tag_pattern_list` value. If you specify `untagged`, then you must omit both `tag_prefix_list` and `tag_pattern_list`.
|
|
1024
1040
|
"""
|
|
1025
1041
|
count_unit: NotRequired[_builtins.str]
|
|
1026
1042
|
"""
|
|
1027
|
-
Specify a count unit of days to indicate that as the unit of time, in addition to `count_number`, which is the number of days.
|
|
1043
|
+
Specify a count unit of `days` to indicate that as the unit of time, in addition to `count_number`, which is the number of days.
|
|
1044
|
+
"""
|
|
1045
|
+
storage_class: NotRequired[_builtins.str]
|
|
1046
|
+
"""
|
|
1047
|
+
The rule will only select images of this storage class. When using a `count_type` of `imageCountMoreThan`, `sinceImagePushed`, or `sinceImagePulled`, the only supported value is `standard`. When using a `count_type` of `sinceImageTransitioned`, this is required, and the only supported value is `archive`. If you omit this, the value of `standard` will be used.
|
|
1028
1048
|
"""
|
|
1029
1049
|
tag_pattern_lists: NotRequired[Sequence[_builtins.str]]
|
|
1030
1050
|
"""
|
|
@@ -1044,13 +1064,15 @@ class GetLifecyclePolicyDocumentRuleSelectionArgs:
|
|
|
1044
1064
|
count_type: _builtins.str,
|
|
1045
1065
|
tag_status: _builtins.str,
|
|
1046
1066
|
count_unit: Optional[_builtins.str] = None,
|
|
1067
|
+
storage_class: Optional[_builtins.str] = None,
|
|
1047
1068
|
tag_pattern_lists: Optional[Sequence[_builtins.str]] = None,
|
|
1048
1069
|
tag_prefix_lists: Optional[Sequence[_builtins.str]] = None):
|
|
1049
1070
|
"""
|
|
1050
|
-
:param _builtins.int count_number: Specify a count number. If the `count_type` used is
|
|
1051
|
-
:param _builtins.str count_type: Specify a count type to apply to the images. If `count_type` is set to
|
|
1052
|
-
:param _builtins.str tag_status: Determines whether the lifecycle policy rule that you are adding specifies a tag for an image. Acceptable options are
|
|
1053
|
-
:param _builtins.str count_unit: Specify a count unit of days to indicate that as the unit of time, in addition to `count_number`, which is the number of days.
|
|
1071
|
+
:param _builtins.int count_number: Specify a count number. If the `count_type` used is `imageCountMoreThan`, then the value is the maximum number of images that you want to retain in your repository. If the `count_type` used is `sinceImagePushed`, then the value is the maximum age limit for your images. If the `count_type` used is `sinceImagePulled`, then the value is the maximum number of days since the image was last pulled. If the `count_type` used is `sinceImageTransitioned`, then the value is the maximum number of days since the image was archived.
|
|
1072
|
+
:param _builtins.str count_type: Specify a count type to apply to the images. If `count_type` is set to `imageCountMoreThan`, you also specify `count_number` to create a rule that sets a limit on the number of images that exist in your repository. If `count_type` is set to `sinceImagePushed`, `sinceImagePulled`, or `sinceImageTransitioned`, you also specify `count_unit` and `count_number` to specify a time limit on the images that exist in your repository.
|
|
1073
|
+
:param _builtins.str tag_status: Determines whether the lifecycle policy rule that you are adding specifies a tag for an image. Acceptable options are `tagged`, `untagged`, or `any`. If you specify `any`, then all images have the rule evaluated against them. If you specify `tagged`, then you must also specify a `tag_prefix_list` value or a `tag_pattern_list` value. If you specify `untagged`, then you must omit both `tag_prefix_list` and `tag_pattern_list`.
|
|
1074
|
+
:param _builtins.str count_unit: Specify a count unit of `days` to indicate that as the unit of time, in addition to `count_number`, which is the number of days.
|
|
1075
|
+
:param _builtins.str storage_class: The rule will only select images of this storage class. When using a `count_type` of `imageCountMoreThan`, `sinceImagePushed`, or `sinceImagePulled`, the only supported value is `standard`. When using a `count_type` of `sinceImageTransitioned`, this is required, and the only supported value is `archive`. If you omit this, the value of `standard` will be used.
|
|
1054
1076
|
:param Sequence[_builtins.str] tag_pattern_lists: You must specify a comma-separated list of image tag patterns that may contain wildcards (\\*) on which to take action with your lifecycle policy. For example, if your images are tagged as `prod`, `prod1`, `prod2`, and so on, you would use the tag pattern list `["prod\\*"]` to specify all of them. If you specify multiple tags, only the images with all specified tags are selected. There is a maximum limit of four wildcards (\\*) per string. For example, `["*test*1*2*3", "test*1*2*3*"]` is valid but `["test*1*2*3*4*5*6"]` is invalid.
|
|
1055
1077
|
:param Sequence[_builtins.str] tag_prefix_lists: You must specify a comma-separated list of image tag prefixes on which to take action with your lifecycle policy. For example, if your images are tagged as `prod`, `prod1`, `prod2`, and so on, you would use the tag prefix "prod" to specify all of them. If you specify multiple tags, only images with all specified tags are selected.
|
|
1056
1078
|
"""
|
|
@@ -1059,6 +1081,8 @@ class GetLifecyclePolicyDocumentRuleSelectionArgs:
|
|
|
1059
1081
|
pulumi.set(__self__, "tag_status", tag_status)
|
|
1060
1082
|
if count_unit is not None:
|
|
1061
1083
|
pulumi.set(__self__, "count_unit", count_unit)
|
|
1084
|
+
if storage_class is not None:
|
|
1085
|
+
pulumi.set(__self__, "storage_class", storage_class)
|
|
1062
1086
|
if tag_pattern_lists is not None:
|
|
1063
1087
|
pulumi.set(__self__, "tag_pattern_lists", tag_pattern_lists)
|
|
1064
1088
|
if tag_prefix_lists is not None:
|
|
@@ -1068,7 +1092,7 @@ class GetLifecyclePolicyDocumentRuleSelectionArgs:
|
|
|
1068
1092
|
@pulumi.getter(name="countNumber")
|
|
1069
1093
|
def count_number(self) -> _builtins.int:
|
|
1070
1094
|
"""
|
|
1071
|
-
Specify a count number. If the `count_type` used is
|
|
1095
|
+
Specify a count number. If the `count_type` used is `imageCountMoreThan`, then the value is the maximum number of images that you want to retain in your repository. If the `count_type` used is `sinceImagePushed`, then the value is the maximum age limit for your images. If the `count_type` used is `sinceImagePulled`, then the value is the maximum number of days since the image was last pulled. If the `count_type` used is `sinceImageTransitioned`, then the value is the maximum number of days since the image was archived.
|
|
1072
1096
|
"""
|
|
1073
1097
|
return pulumi.get(self, "count_number")
|
|
1074
1098
|
|
|
@@ -1080,7 +1104,7 @@ class GetLifecyclePolicyDocumentRuleSelectionArgs:
|
|
|
1080
1104
|
@pulumi.getter(name="countType")
|
|
1081
1105
|
def count_type(self) -> _builtins.str:
|
|
1082
1106
|
"""
|
|
1083
|
-
Specify a count type to apply to the images. If `count_type` is set to
|
|
1107
|
+
Specify a count type to apply to the images. If `count_type` is set to `imageCountMoreThan`, you also specify `count_number` to create a rule that sets a limit on the number of images that exist in your repository. If `count_type` is set to `sinceImagePushed`, `sinceImagePulled`, or `sinceImageTransitioned`, you also specify `count_unit` and `count_number` to specify a time limit on the images that exist in your repository.
|
|
1084
1108
|
"""
|
|
1085
1109
|
return pulumi.get(self, "count_type")
|
|
1086
1110
|
|
|
@@ -1092,7 +1116,7 @@ class GetLifecyclePolicyDocumentRuleSelectionArgs:
|
|
|
1092
1116
|
@pulumi.getter(name="tagStatus")
|
|
1093
1117
|
def tag_status(self) -> _builtins.str:
|
|
1094
1118
|
"""
|
|
1095
|
-
Determines whether the lifecycle policy rule that you are adding specifies a tag for an image. Acceptable options are
|
|
1119
|
+
Determines whether the lifecycle policy rule that you are adding specifies a tag for an image. Acceptable options are `tagged`, `untagged`, or `any`. If you specify `any`, then all images have the rule evaluated against them. If you specify `tagged`, then you must also specify a `tag_prefix_list` value or a `tag_pattern_list` value. If you specify `untagged`, then you must omit both `tag_prefix_list` and `tag_pattern_list`.
|
|
1096
1120
|
"""
|
|
1097
1121
|
return pulumi.get(self, "tag_status")
|
|
1098
1122
|
|
|
@@ -1104,7 +1128,7 @@ class GetLifecyclePolicyDocumentRuleSelectionArgs:
|
|
|
1104
1128
|
@pulumi.getter(name="countUnit")
|
|
1105
1129
|
def count_unit(self) -> Optional[_builtins.str]:
|
|
1106
1130
|
"""
|
|
1107
|
-
Specify a count unit of days to indicate that as the unit of time, in addition to `count_number`, which is the number of days.
|
|
1131
|
+
Specify a count unit of `days` to indicate that as the unit of time, in addition to `count_number`, which is the number of days.
|
|
1108
1132
|
"""
|
|
1109
1133
|
return pulumi.get(self, "count_unit")
|
|
1110
1134
|
|
|
@@ -1112,6 +1136,18 @@ class GetLifecyclePolicyDocumentRuleSelectionArgs:
|
|
|
1112
1136
|
def count_unit(self, value: Optional[_builtins.str]):
|
|
1113
1137
|
pulumi.set(self, "count_unit", value)
|
|
1114
1138
|
|
|
1139
|
+
@_builtins.property
|
|
1140
|
+
@pulumi.getter(name="storageClass")
|
|
1141
|
+
def storage_class(self) -> Optional[_builtins.str]:
|
|
1142
|
+
"""
|
|
1143
|
+
The rule will only select images of this storage class. When using a `count_type` of `imageCountMoreThan`, `sinceImagePushed`, or `sinceImagePulled`, the only supported value is `standard`. When using a `count_type` of `sinceImageTransitioned`, this is required, and the only supported value is `archive`. If you omit this, the value of `standard` will be used.
|
|
1144
|
+
"""
|
|
1145
|
+
return pulumi.get(self, "storage_class")
|
|
1146
|
+
|
|
1147
|
+
@storage_class.setter
|
|
1148
|
+
def storage_class(self, value: Optional[_builtins.str]):
|
|
1149
|
+
pulumi.set(self, "storage_class", value)
|
|
1150
|
+
|
|
1115
1151
|
@_builtins.property
|
|
1116
1152
|
@pulumi.getter(name="tagPatternLists")
|
|
1117
1153
|
def tag_pattern_lists(self) -> Optional[Sequence[_builtins.str]]:
|
|
@@ -72,7 +72,7 @@ class GetRepositoryCreationTemplateResult:
|
|
|
72
72
|
@pulumi.getter(name="appliedFors")
|
|
73
73
|
def applied_fors(self) -> Sequence[_builtins.str]:
|
|
74
74
|
"""
|
|
75
|
-
Which features this template applies to. Contains one or more of `PULL_THROUGH_CACHE
|
|
75
|
+
Which features this template applies to. Contains one or more of `CREATE_ON_PUSH`, `PULL_THROUGH_CACHE`, or `REPLICATION`.
|
|
76
76
|
"""
|
|
77
77
|
return pulumi.get(self, "applied_fors")
|
|
78
78
|
|
|
@@ -163,7 +163,7 @@ class LifecyclePolicy(pulumi.CustomResource):
|
|
|
163
163
|
|
|
164
164
|
## Example Usage
|
|
165
165
|
|
|
166
|
-
### Policy on
|
|
166
|
+
### Policy on Untagged Images
|
|
167
167
|
|
|
168
168
|
```python
|
|
169
169
|
import pulumi
|
|
@@ -173,26 +173,26 @@ class LifecyclePolicy(pulumi.CustomResource):
|
|
|
173
173
|
example_lifecycle_policy = aws.ecr.LifecyclePolicy("example",
|
|
174
174
|
repository=example.name,
|
|
175
175
|
policy=\"\"\"{
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
176
|
+
\\"rules\\": [
|
|
177
|
+
{
|
|
178
|
+
\\"rulePriority\\": 1,
|
|
179
|
+
\\"description\\": \\"Expire images older than 14 days\\",
|
|
180
|
+
\\"selection\\": {
|
|
181
|
+
\\"tagStatus\\": \\"untagged\\",
|
|
182
|
+
\\"countType\\": \\"sinceImagePushed\\",
|
|
183
|
+
\\"countUnit\\": \\"days\\",
|
|
184
|
+
\\"countNumber\\": 14
|
|
185
|
+
},
|
|
186
|
+
\\"action\\": {
|
|
187
|
+
\\"type\\": \\"expire\\"
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
]
|
|
191
191
|
}
|
|
192
192
|
\"\"\")
|
|
193
193
|
```
|
|
194
194
|
|
|
195
|
-
### Policy on
|
|
195
|
+
### Policy on Tagged Images
|
|
196
196
|
|
|
197
197
|
```python
|
|
198
198
|
import pulumi
|
|
@@ -202,21 +202,65 @@ class LifecyclePolicy(pulumi.CustomResource):
|
|
|
202
202
|
example_lifecycle_policy = aws.ecr.LifecyclePolicy("example",
|
|
203
203
|
repository=example.name,
|
|
204
204
|
policy=\"\"\"{
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
205
|
+
\\"rules\\": [
|
|
206
|
+
{
|
|
207
|
+
\\"rulePriority\\": 1,
|
|
208
|
+
\\"description\\": \\"Keep last 30 images\\",
|
|
209
|
+
\\"selection\\": {
|
|
210
|
+
\\"tagStatus\\": \\"tagged\\",
|
|
211
|
+
\\"tagPrefixList\\": [\\"v\\"],
|
|
212
|
+
\\"countType\\": \\"imageCountMoreThan\\",
|
|
213
|
+
\\"countNumber\\": 30
|
|
214
|
+
},
|
|
215
|
+
\\"action\\": {
|
|
216
|
+
\\"type\\": \\"expire\\"
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
]
|
|
220
|
+
}
|
|
221
|
+
\"\"\")
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
### Policy to Archive and Delete
|
|
225
|
+
|
|
226
|
+
```python
|
|
227
|
+
import pulumi
|
|
228
|
+
import pulumi_aws as aws
|
|
229
|
+
|
|
230
|
+
example = aws.ecr.Repository("example", name="example-repo")
|
|
231
|
+
example_lifecycle_policy = aws.ecr.LifecyclePolicy("example",
|
|
232
|
+
repository=example.name,
|
|
233
|
+
policy=\"\"\"{
|
|
234
|
+
\\"rules\\": [
|
|
235
|
+
{
|
|
236
|
+
\\"rulePriority\\": 1,
|
|
237
|
+
\\"description\\": \\"Archive images not pulled in 90 days\\",
|
|
238
|
+
\\"selection\\": {
|
|
239
|
+
\\"tagStatus\\": \\"any\\",
|
|
240
|
+
\\"countType\\": \\"sinceImagePulled\\",
|
|
241
|
+
\\"countUnit\\": \\"days\\",
|
|
242
|
+
\\"countNumber\\": 90
|
|
243
|
+
},
|
|
244
|
+
\\"action\\": {
|
|
245
|
+
\\"type\\": \\"transition\\",
|
|
246
|
+
\\"targetStorageClass\\": \\"archive\\"
|
|
247
|
+
}
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
\\"rulePriority\\": 2,
|
|
251
|
+
\\"description\\": \\"Delete images archived for more than 365 days\\",
|
|
252
|
+
\\"selection\\": {
|
|
253
|
+
\\"tagStatus\\": \\"any\\",
|
|
254
|
+
\\"storageClass\\": \\"archive\\",
|
|
255
|
+
\\"countType\\": \\"sinceImageTransitioned\\",
|
|
256
|
+
\\"countUnit\\": \\"days\\",
|
|
257
|
+
\\"countNumber\\": 365
|
|
258
|
+
},
|
|
259
|
+
\\"action\\": {
|
|
260
|
+
\\"type\\": \\"expire\\"
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
]
|
|
220
264
|
}
|
|
221
265
|
\"\"\")
|
|
222
266
|
```
|
|
@@ -260,7 +304,36 @@ class LifecyclePolicy(pulumi.CustomResource):
|
|
|
260
304
|
|
|
261
305
|
## Example Usage
|
|
262
306
|
|
|
263
|
-
### Policy on
|
|
307
|
+
### Policy on Untagged Images
|
|
308
|
+
|
|
309
|
+
```python
|
|
310
|
+
import pulumi
|
|
311
|
+
import pulumi_aws as aws
|
|
312
|
+
|
|
313
|
+
example = aws.ecr.Repository("example", name="example-repo")
|
|
314
|
+
example_lifecycle_policy = aws.ecr.LifecyclePolicy("example",
|
|
315
|
+
repository=example.name,
|
|
316
|
+
policy=\"\"\"{
|
|
317
|
+
\\"rules\\": [
|
|
318
|
+
{
|
|
319
|
+
\\"rulePriority\\": 1,
|
|
320
|
+
\\"description\\": \\"Expire images older than 14 days\\",
|
|
321
|
+
\\"selection\\": {
|
|
322
|
+
\\"tagStatus\\": \\"untagged\\",
|
|
323
|
+
\\"countType\\": \\"sinceImagePushed\\",
|
|
324
|
+
\\"countUnit\\": \\"days\\",
|
|
325
|
+
\\"countNumber\\": 14
|
|
326
|
+
},
|
|
327
|
+
\\"action\\": {
|
|
328
|
+
\\"type\\": \\"expire\\"
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
]
|
|
332
|
+
}
|
|
333
|
+
\"\"\")
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
### Policy on Tagged Images
|
|
264
337
|
|
|
265
338
|
```python
|
|
266
339
|
import pulumi
|
|
@@ -270,26 +343,26 @@ class LifecyclePolicy(pulumi.CustomResource):
|
|
|
270
343
|
example_lifecycle_policy = aws.ecr.LifecyclePolicy("example",
|
|
271
344
|
repository=example.name,
|
|
272
345
|
policy=\"\"\"{
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
346
|
+
\\"rules\\": [
|
|
347
|
+
{
|
|
348
|
+
\\"rulePriority\\": 1,
|
|
349
|
+
\\"description\\": \\"Keep last 30 images\\",
|
|
350
|
+
\\"selection\\": {
|
|
351
|
+
\\"tagStatus\\": \\"tagged\\",
|
|
352
|
+
\\"tagPrefixList\\": [\\"v\\"],
|
|
353
|
+
\\"countType\\": \\"imageCountMoreThan\\",
|
|
354
|
+
\\"countNumber\\": 30
|
|
355
|
+
},
|
|
356
|
+
\\"action\\": {
|
|
357
|
+
\\"type\\": \\"expire\\"
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
]
|
|
288
361
|
}
|
|
289
362
|
\"\"\")
|
|
290
363
|
```
|
|
291
364
|
|
|
292
|
-
### Policy
|
|
365
|
+
### Policy to Archive and Delete
|
|
293
366
|
|
|
294
367
|
```python
|
|
295
368
|
import pulumi
|
|
@@ -299,21 +372,36 @@ class LifecyclePolicy(pulumi.CustomResource):
|
|
|
299
372
|
example_lifecycle_policy = aws.ecr.LifecyclePolicy("example",
|
|
300
373
|
repository=example.name,
|
|
301
374
|
policy=\"\"\"{
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
375
|
+
\\"rules\\": [
|
|
376
|
+
{
|
|
377
|
+
\\"rulePriority\\": 1,
|
|
378
|
+
\\"description\\": \\"Archive images not pulled in 90 days\\",
|
|
379
|
+
\\"selection\\": {
|
|
380
|
+
\\"tagStatus\\": \\"any\\",
|
|
381
|
+
\\"countType\\": \\"sinceImagePulled\\",
|
|
382
|
+
\\"countUnit\\": \\"days\\",
|
|
383
|
+
\\"countNumber\\": 90
|
|
384
|
+
},
|
|
385
|
+
\\"action\\": {
|
|
386
|
+
\\"type\\": \\"transition\\",
|
|
387
|
+
\\"targetStorageClass\\": \\"archive\\"
|
|
388
|
+
}
|
|
389
|
+
},
|
|
390
|
+
{
|
|
391
|
+
\\"rulePriority\\": 2,
|
|
392
|
+
\\"description\\": \\"Delete images archived for more than 365 days\\",
|
|
393
|
+
\\"selection\\": {
|
|
394
|
+
\\"tagStatus\\": \\"any\\",
|
|
395
|
+
\\"storageClass\\": \\"archive\\",
|
|
396
|
+
\\"countType\\": \\"sinceImageTransitioned\\",
|
|
397
|
+
\\"countUnit\\": \\"days\\",
|
|
398
|
+
\\"countNumber\\": 365
|
|
399
|
+
},
|
|
400
|
+
\\"action\\": {
|
|
401
|
+
\\"type\\": \\"expire\\"
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
]
|
|
317
405
|
}
|
|
318
406
|
\"\"\")
|
|
319
407
|
```
|