r'''
# `aws_ec2_allowed_images_settings`

Refer to the Terraform Registry for docs: [`aws_ec2_allowed_images_settings`](https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/ec2_allowed_images_settings).
'''
from pkgutil import extend_path
__path__ = extend_path(__path__, __name__)

import abc
import builtins
import datetime
import enum
import typing

import jsii
import publication
import typing_extensions

import typeguard
from importlib.metadata import version as _metadata_package_version
TYPEGUARD_MAJOR_VERSION = int(_metadata_package_version('typeguard').split('.')[0])

def check_type(argname: str, value: object, expected_type: typing.Any) -> typing.Any:
    if TYPEGUARD_MAJOR_VERSION <= 2:
        return typeguard.check_type(argname=argname, value=value, expected_type=expected_type) # type:ignore
    else:
        if isinstance(value, jsii._reference_map.InterfaceDynamicProxy): # pyright: ignore [reportAttributeAccessIssue]
           pass
        else:
            if TYPEGUARD_MAJOR_VERSION == 3:
                typeguard.config.collection_check_strategy = typeguard.CollectionCheckStrategy.ALL_ITEMS # type:ignore
                typeguard.check_type(value=value, expected_type=expected_type) # type:ignore
            else:
                typeguard.check_type(value=value, expected_type=expected_type, collection_check_strategy=typeguard.CollectionCheckStrategy.ALL_ITEMS) # type:ignore

from .._jsii import *

import cdktn as _cdktn_78ede62e
import constructs as _constructs_77d1e7e8


class Ec2AllowedImagesSettings(
    _cdktn_78ede62e.TerraformResource,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.ec2AllowedImagesSettings.Ec2AllowedImagesSettings",
):
    '''Represents a {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/ec2_allowed_images_settings aws_ec2_allowed_images_settings}.'''

    def __init__(
        self,
        scope: "_constructs_77d1e7e8.Construct",
        id: builtins.str,
        *,
        state: builtins.str,
        image_criterion: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["Ec2AllowedImagesSettingsImageCriterion", typing.Dict[builtins.str, typing.Any]]]]] = None,
        region: typing.Optional[builtins.str] = None,
        connection: typing.Optional[typing.Union[typing.Union["_cdktn_78ede62e.SSHProvisionerConnection", typing.Dict[builtins.str, typing.Any]], typing.Union["_cdktn_78ede62e.WinrmProvisionerConnection", typing.Dict[builtins.str, typing.Any]]]] = None,
        count: typing.Optional[typing.Union[jsii.Number, "_cdktn_78ede62e.TerraformCount"]] = None,
        depends_on: typing.Optional[typing.Sequence["_cdktn_78ede62e.ITerraformDependable"]] = None,
        for_each: typing.Optional["_cdktn_78ede62e.ITerraformIterator"] = None,
        lifecycle: typing.Optional[typing.Union["_cdktn_78ede62e.TerraformResourceLifecycle", typing.Dict[builtins.str, typing.Any]]] = None,
        provider: typing.Optional["_cdktn_78ede62e.TerraformProvider"] = None,
        provisioners: typing.Optional[typing.Sequence[typing.Union[typing.Union["_cdktn_78ede62e.FileProvisioner", typing.Dict[builtins.str, typing.Any]], typing.Union["_cdktn_78ede62e.LocalExecProvisioner", typing.Dict[builtins.str, typing.Any]], typing.Union["_cdktn_78ede62e.RemoteExecProvisioner", typing.Dict[builtins.str, typing.Any]]]]] = None,
    ) -> None:
        '''Create a new {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/ec2_allowed_images_settings aws_ec2_allowed_images_settings} Resource.

        :param scope: The scope in which to define this construct.
        :param id: The scoped construct ID. Must be unique amongst siblings in the same scope
        :param state: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/ec2_allowed_images_settings#state Ec2AllowedImagesSettings#state}.
        :param image_criterion: image_criterion block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/ec2_allowed_images_settings#image_criterion Ec2AllowedImagesSettings#image_criterion}
        :param region: Region where this resource will be `managed <https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints>`_. Defaults to the Region set in the `provider configuration <https://registry.terraform.io/providers/hashicorp/aws/latest/docs#aws-configuration-reference>`_. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/ec2_allowed_images_settings#region Ec2AllowedImagesSettings#region}
        :param connection: 
        :param count: 
        :param depends_on: 
        :param for_each: 
        :param lifecycle: 
        :param provider: 
        :param provisioners: 
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__766bb83c6189bea15af7b681e63c826f33bc047319a73e5e36671ce870ff5c2a)
            check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
            check_type(argname="argument id", value=id, expected_type=type_hints["id"])
        config = Ec2AllowedImagesSettingsConfig(
            state=state,
            image_criterion=image_criterion,
            region=region,
            connection=connection,
            count=count,
            depends_on=depends_on,
            for_each=for_each,
            lifecycle=lifecycle,
            provider=provider,
            provisioners=provisioners,
        )

        jsii.create(self.__class__, self, [scope, id, config])

    @jsii.member(jsii_name="generateConfigForImport")
    @builtins.classmethod
    def generate_config_for_import(
        cls,
        scope: "_constructs_77d1e7e8.Construct",
        import_to_id: builtins.str,
        import_from_id: builtins.str,
        provider: typing.Optional["_cdktn_78ede62e.TerraformProvider"] = None,
    ) -> "_cdktn_78ede62e.ImportableResource":
        '''Generates CDKTN code for importing a Ec2AllowedImagesSettings resource upon running "cdktn plan ".

        :param scope: The scope in which to define this construct.
        :param import_to_id: The construct id used in the generated config for the Ec2AllowedImagesSettings to import.
        :param import_from_id: The id of the existing Ec2AllowedImagesSettings that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/ec2_allowed_images_settings#import import section} in the documentation of this resource for the id to use
        :param provider: ? Optional instance of the provider where the Ec2AllowedImagesSettings to import is found.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__00d0d39173b7fa7b59081c393089ed90c3d35fb77f2f792941baffd3e2e9542a)
            check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
            check_type(argname="argument import_to_id", value=import_to_id, expected_type=type_hints["import_to_id"])
            check_type(argname="argument import_from_id", value=import_from_id, expected_type=type_hints["import_from_id"])
            check_type(argname="argument provider", value=provider, expected_type=type_hints["provider"])
        return typing.cast("_cdktn_78ede62e.ImportableResource", jsii.sinvoke(cls, "generateConfigForImport", [scope, import_to_id, import_from_id, provider]))

    @jsii.member(jsii_name="putImageCriterion")
    def put_image_criterion(
        self,
        value: typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["Ec2AllowedImagesSettingsImageCriterion", typing.Dict[builtins.str, typing.Any]]]],
    ) -> None:
        '''
        :param value: -
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__42fc621897a1fd531d552b75c5fd9522105cf081ba161f80d62a29b7c0e08696)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        return typing.cast(None, jsii.invoke(self, "putImageCriterion", [value]))

    @jsii.member(jsii_name="resetImageCriterion")
    def reset_image_criterion(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetImageCriterion", []))

    @jsii.member(jsii_name="resetRegion")
    def reset_region(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetRegion", []))

    @jsii.member(jsii_name="synthesizeAttributes")
    def _synthesize_attributes(self) -> typing.Mapping[builtins.str, typing.Any]:
        return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "synthesizeAttributes", []))

    @jsii.member(jsii_name="synthesizeHclAttributes")
    def _synthesize_hcl_attributes(self) -> typing.Mapping[builtins.str, typing.Any]:
        return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "synthesizeHclAttributes", []))

    @jsii.python.classproperty
    @jsii.member(jsii_name="tfResourceType")
    def TF_RESOURCE_TYPE(cls) -> builtins.str:
        return typing.cast(builtins.str, jsii.sget(cls, "tfResourceType"))

    @builtins.property
    @jsii.member(jsii_name="imageCriterion")
    def image_criterion(self) -> "Ec2AllowedImagesSettingsImageCriterionList":
        return typing.cast("Ec2AllowedImagesSettingsImageCriterionList", jsii.get(self, "imageCriterion"))

    @builtins.property
    @jsii.member(jsii_name="imageCriterionInput")
    def image_criterion_input(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["Ec2AllowedImagesSettingsImageCriterion"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["Ec2AllowedImagesSettingsImageCriterion"]]], jsii.get(self, "imageCriterionInput"))

    @builtins.property
    @jsii.member(jsii_name="regionInput")
    def region_input(self) -> typing.Optional[builtins.str]:
        return typing.cast(typing.Optional[builtins.str], jsii.get(self, "regionInput"))

    @builtins.property
    @jsii.member(jsii_name="stateInput")
    def state_input(self) -> typing.Optional[builtins.str]:
        return typing.cast(typing.Optional[builtins.str], jsii.get(self, "stateInput"))

    @builtins.property
    @jsii.member(jsii_name="region")
    def region(self) -> builtins.str:
        return typing.cast(builtins.str, jsii.get(self, "region"))

    @region.setter
    def region(self, value: builtins.str) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__980de5bf79a96cdff3b4e6f7da23de41ba2bfdd30d99ca5412120edc3a6ffb47)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "region", value) # pyright: ignore[reportArgumentType]

    @builtins.property
    @jsii.member(jsii_name="state")
    def state(self) -> builtins.str:
        return typing.cast(builtins.str, jsii.get(self, "state"))

    @state.setter
    def state(self, value: builtins.str) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__5f40b11d3cd823cbe4bf37ac3c57b4c05cbbf759c5cf9aa089b2fbae5f44e51e)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "state", value) # pyright: ignore[reportArgumentType]


@jsii.data_type(
    jsii_type="@cdktn/provider-aws.ec2AllowedImagesSettings.Ec2AllowedImagesSettingsConfig",
    jsii_struct_bases=[_cdktn_78ede62e.TerraformMetaArguments],
    name_mapping={
        "connection": "connection",
        "count": "count",
        "depends_on": "dependsOn",
        "for_each": "forEach",
        "lifecycle": "lifecycle",
        "provider": "provider",
        "provisioners": "provisioners",
        "state": "state",
        "image_criterion": "imageCriterion",
        "region": "region",
    },
)
class Ec2AllowedImagesSettingsConfig(_cdktn_78ede62e.TerraformMetaArguments):
    def __init__(
        self,
        *,
        connection: typing.Optional[typing.Union[typing.Union["_cdktn_78ede62e.SSHProvisionerConnection", typing.Dict[builtins.str, typing.Any]], typing.Union["_cdktn_78ede62e.WinrmProvisionerConnection", typing.Dict[builtins.str, typing.Any]]]] = None,
        count: typing.Optional[typing.Union[jsii.Number, "_cdktn_78ede62e.TerraformCount"]] = None,
        depends_on: typing.Optional[typing.Sequence["_cdktn_78ede62e.ITerraformDependable"]] = None,
        for_each: typing.Optional["_cdktn_78ede62e.ITerraformIterator"] = None,
        lifecycle: typing.Optional[typing.Union["_cdktn_78ede62e.TerraformResourceLifecycle", typing.Dict[builtins.str, typing.Any]]] = None,
        provider: typing.Optional["_cdktn_78ede62e.TerraformProvider"] = None,
        provisioners: typing.Optional[typing.Sequence[typing.Union[typing.Union["_cdktn_78ede62e.FileProvisioner", typing.Dict[builtins.str, typing.Any]], typing.Union["_cdktn_78ede62e.LocalExecProvisioner", typing.Dict[builtins.str, typing.Any]], typing.Union["_cdktn_78ede62e.RemoteExecProvisioner", typing.Dict[builtins.str, typing.Any]]]]] = None,
        state: builtins.str,
        image_criterion: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["Ec2AllowedImagesSettingsImageCriterion", typing.Dict[builtins.str, typing.Any]]]]] = None,
        region: typing.Optional[builtins.str] = None,
    ) -> None:
        '''
        :param connection: 
        :param count: 
        :param depends_on: 
        :param for_each: 
        :param lifecycle: 
        :param provider: 
        :param provisioners: 
        :param state: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/ec2_allowed_images_settings#state Ec2AllowedImagesSettings#state}.
        :param image_criterion: image_criterion block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/ec2_allowed_images_settings#image_criterion Ec2AllowedImagesSettings#image_criterion}
        :param region: Region where this resource will be `managed <https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints>`_. Defaults to the Region set in the `provider configuration <https://registry.terraform.io/providers/hashicorp/aws/latest/docs#aws-configuration-reference>`_. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/ec2_allowed_images_settings#region Ec2AllowedImagesSettings#region}
        '''
        if isinstance(lifecycle, dict):
            lifecycle = _cdktn_78ede62e.TerraformResourceLifecycle(**lifecycle)
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__e3f8123f2264b7c8befebf2ebc68c28dad711fbeca073d1eedac64dbb9ed97f8)
            check_type(argname="argument connection", value=connection, expected_type=type_hints["connection"])
            check_type(argname="argument count", value=count, expected_type=type_hints["count"])
            check_type(argname="argument depends_on", value=depends_on, expected_type=type_hints["depends_on"])
            check_type(argname="argument for_each", value=for_each, expected_type=type_hints["for_each"])
            check_type(argname="argument lifecycle", value=lifecycle, expected_type=type_hints["lifecycle"])
            check_type(argname="argument provider", value=provider, expected_type=type_hints["provider"])
            check_type(argname="argument provisioners", value=provisioners, expected_type=type_hints["provisioners"])
            check_type(argname="argument state", value=state, expected_type=type_hints["state"])
            check_type(argname="argument image_criterion", value=image_criterion, expected_type=type_hints["image_criterion"])
            check_type(argname="argument region", value=region, expected_type=type_hints["region"])
        self._values: typing.Dict[builtins.str, typing.Any] = {
            "state": state,
        }
        if connection is not None:
            self._values["connection"] = connection
        if count is not None:
            self._values["count"] = count
        if depends_on is not None:
            self._values["depends_on"] = depends_on
        if for_each is not None:
            self._values["for_each"] = for_each
        if lifecycle is not None:
            self._values["lifecycle"] = lifecycle
        if provider is not None:
            self._values["provider"] = provider
        if provisioners is not None:
            self._values["provisioners"] = provisioners
        if image_criterion is not None:
            self._values["image_criterion"] = image_criterion
        if region is not None:
            self._values["region"] = region

    @builtins.property
    def connection(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.SSHProvisionerConnection", "_cdktn_78ede62e.WinrmProvisionerConnection"]]:
        '''
        :stability: experimental
        '''
        result = self._values.get("connection")
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.SSHProvisionerConnection", "_cdktn_78ede62e.WinrmProvisionerConnection"]], result)

    @builtins.property
    def count(
        self,
    ) -> typing.Optional[typing.Union[jsii.Number, "_cdktn_78ede62e.TerraformCount"]]:
        '''
        :stability: experimental
        '''
        result = self._values.get("count")
        return typing.cast(typing.Optional[typing.Union[jsii.Number, "_cdktn_78ede62e.TerraformCount"]], result)

    @builtins.property
    def depends_on(
        self,
    ) -> typing.Optional[typing.List["_cdktn_78ede62e.ITerraformDependable"]]:
        '''
        :stability: experimental
        '''
        result = self._values.get("depends_on")
        return typing.cast(typing.Optional[typing.List["_cdktn_78ede62e.ITerraformDependable"]], result)

    @builtins.property
    def for_each(self) -> typing.Optional["_cdktn_78ede62e.ITerraformIterator"]:
        '''
        :stability: experimental
        '''
        result = self._values.get("for_each")
        return typing.cast(typing.Optional["_cdktn_78ede62e.ITerraformIterator"], result)

    @builtins.property
    def lifecycle(
        self,
    ) -> typing.Optional["_cdktn_78ede62e.TerraformResourceLifecycle"]:
        '''
        :stability: experimental
        '''
        result = self._values.get("lifecycle")
        return typing.cast(typing.Optional["_cdktn_78ede62e.TerraformResourceLifecycle"], result)

    @builtins.property
    def provider(self) -> typing.Optional["_cdktn_78ede62e.TerraformProvider"]:
        '''
        :stability: experimental
        '''
        result = self._values.get("provider")
        return typing.cast(typing.Optional["_cdktn_78ede62e.TerraformProvider"], result)

    @builtins.property
    def provisioners(
        self,
    ) -> typing.Optional[typing.List[typing.Union["_cdktn_78ede62e.FileProvisioner", "_cdktn_78ede62e.LocalExecProvisioner", "_cdktn_78ede62e.RemoteExecProvisioner"]]]:
        '''
        :stability: experimental
        '''
        result = self._values.get("provisioners")
        return typing.cast(typing.Optional[typing.List[typing.Union["_cdktn_78ede62e.FileProvisioner", "_cdktn_78ede62e.LocalExecProvisioner", "_cdktn_78ede62e.RemoteExecProvisioner"]]], result)

    @builtins.property
    def state(self) -> builtins.str:
        '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/ec2_allowed_images_settings#state Ec2AllowedImagesSettings#state}.'''
        result = self._values.get("state")
        assert result is not None, "Required property 'state' is missing"
        return typing.cast(builtins.str, result)

    @builtins.property
    def image_criterion(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["Ec2AllowedImagesSettingsImageCriterion"]]]:
        '''image_criterion block.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/ec2_allowed_images_settings#image_criterion Ec2AllowedImagesSettings#image_criterion}
        '''
        result = self._values.get("image_criterion")
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["Ec2AllowedImagesSettingsImageCriterion"]]], result)

    @builtins.property
    def region(self) -> typing.Optional[builtins.str]:
        '''Region where this resource will be `managed <https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints>`_. Defaults to the Region set in the `provider configuration <https://registry.terraform.io/providers/hashicorp/aws/latest/docs#aws-configuration-reference>`_.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/ec2_allowed_images_settings#region Ec2AllowedImagesSettings#region}
        '''
        result = self._values.get("region")
        return typing.cast(typing.Optional[builtins.str], result)

    def __eq__(self, rhs: typing.Any) -> builtins.bool:
        return isinstance(rhs, self.__class__) and rhs._values == self._values

    def __ne__(self, rhs: typing.Any) -> builtins.bool:
        return not (rhs == self)

    def __repr__(self) -> str:
        return "Ec2AllowedImagesSettingsConfig(%s)" % ", ".join(
            k + "=" + repr(v) for k, v in self._values.items()
        )


@jsii.data_type(
    jsii_type="@cdktn/provider-aws.ec2AllowedImagesSettings.Ec2AllowedImagesSettingsImageCriterion",
    jsii_struct_bases=[],
    name_mapping={
        "creation_date_condition": "creationDateCondition",
        "deprecation_time_condition": "deprecationTimeCondition",
        "image_names": "imageNames",
        "image_providers": "imageProviders",
        "marketplace_product_codes": "marketplaceProductCodes",
    },
)
class Ec2AllowedImagesSettingsImageCriterion:
    def __init__(
        self,
        *,
        creation_date_condition: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["Ec2AllowedImagesSettingsImageCriterionCreationDateCondition", typing.Dict[builtins.str, typing.Any]]]]] = None,
        deprecation_time_condition: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["Ec2AllowedImagesSettingsImageCriterionDeprecationTimeCondition", typing.Dict[builtins.str, typing.Any]]]]] = None,
        image_names: typing.Optional[typing.Sequence[builtins.str]] = None,
        image_providers: typing.Optional[typing.Sequence[builtins.str]] = None,
        marketplace_product_codes: typing.Optional[typing.Sequence[builtins.str]] = None,
    ) -> None:
        '''
        :param creation_date_condition: creation_date_condition block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/ec2_allowed_images_settings#creation_date_condition Ec2AllowedImagesSettings#creation_date_condition}
        :param deprecation_time_condition: deprecation_time_condition block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/ec2_allowed_images_settings#deprecation_time_condition Ec2AllowedImagesSettings#deprecation_time_condition}
        :param image_names: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/ec2_allowed_images_settings#image_names Ec2AllowedImagesSettings#image_names}.
        :param image_providers: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/ec2_allowed_images_settings#image_providers Ec2AllowedImagesSettings#image_providers}.
        :param marketplace_product_codes: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/ec2_allowed_images_settings#marketplace_product_codes Ec2AllowedImagesSettings#marketplace_product_codes}.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__7629e7d0254dbf6f688eda10e655849f92c845b50f24bbb7e09b612fed718033)
            check_type(argname="argument creation_date_condition", value=creation_date_condition, expected_type=type_hints["creation_date_condition"])
            check_type(argname="argument deprecation_time_condition", value=deprecation_time_condition, expected_type=type_hints["deprecation_time_condition"])
            check_type(argname="argument image_names", value=image_names, expected_type=type_hints["image_names"])
            check_type(argname="argument image_providers", value=image_providers, expected_type=type_hints["image_providers"])
            check_type(argname="argument marketplace_product_codes", value=marketplace_product_codes, expected_type=type_hints["marketplace_product_codes"])
        self._values: typing.Dict[builtins.str, typing.Any] = {}
        if creation_date_condition is not None:
            self._values["creation_date_condition"] = creation_date_condition
        if deprecation_time_condition is not None:
            self._values["deprecation_time_condition"] = deprecation_time_condition
        if image_names is not None:
            self._values["image_names"] = image_names
        if image_providers is not None:
            self._values["image_providers"] = image_providers
        if marketplace_product_codes is not None:
            self._values["marketplace_product_codes"] = marketplace_product_codes

    @builtins.property
    def creation_date_condition(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["Ec2AllowedImagesSettingsImageCriterionCreationDateCondition"]]]:
        '''creation_date_condition block.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/ec2_allowed_images_settings#creation_date_condition Ec2AllowedImagesSettings#creation_date_condition}
        '''
        result = self._values.get("creation_date_condition")
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["Ec2AllowedImagesSettingsImageCriterionCreationDateCondition"]]], result)

    @builtins.property
    def deprecation_time_condition(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["Ec2AllowedImagesSettingsImageCriterionDeprecationTimeCondition"]]]:
        '''deprecation_time_condition block.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/ec2_allowed_images_settings#deprecation_time_condition Ec2AllowedImagesSettings#deprecation_time_condition}
        '''
        result = self._values.get("deprecation_time_condition")
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["Ec2AllowedImagesSettingsImageCriterionDeprecationTimeCondition"]]], result)

    @builtins.property
    def image_names(self) -> typing.Optional[typing.List[builtins.str]]:
        '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/ec2_allowed_images_settings#image_names Ec2AllowedImagesSettings#image_names}.'''
        result = self._values.get("image_names")
        return typing.cast(typing.Optional[typing.List[builtins.str]], result)

    @builtins.property
    def image_providers(self) -> typing.Optional[typing.List[builtins.str]]:
        '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/ec2_allowed_images_settings#image_providers Ec2AllowedImagesSettings#image_providers}.'''
        result = self._values.get("image_providers")
        return typing.cast(typing.Optional[typing.List[builtins.str]], result)

    @builtins.property
    def marketplace_product_codes(self) -> typing.Optional[typing.List[builtins.str]]:
        '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/ec2_allowed_images_settings#marketplace_product_codes Ec2AllowedImagesSettings#marketplace_product_codes}.'''
        result = self._values.get("marketplace_product_codes")
        return typing.cast(typing.Optional[typing.List[builtins.str]], result)

    def __eq__(self, rhs: typing.Any) -> builtins.bool:
        return isinstance(rhs, self.__class__) and rhs._values == self._values

    def __ne__(self, rhs: typing.Any) -> builtins.bool:
        return not (rhs == self)

    def __repr__(self) -> str:
        return "Ec2AllowedImagesSettingsImageCriterion(%s)" % ", ".join(
            k + "=" + repr(v) for k, v in self._values.items()
        )


@jsii.data_type(
    jsii_type="@cdktn/provider-aws.ec2AllowedImagesSettings.Ec2AllowedImagesSettingsImageCriterionCreationDateCondition",
    jsii_struct_bases=[],
    name_mapping={"maximum_days_since_created": "maximumDaysSinceCreated"},
)
class Ec2AllowedImagesSettingsImageCriterionCreationDateCondition:
    def __init__(
        self,
        *,
        maximum_days_since_created: typing.Optional[jsii.Number] = None,
    ) -> None:
        '''
        :param maximum_days_since_created: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/ec2_allowed_images_settings#maximum_days_since_created Ec2AllowedImagesSettings#maximum_days_since_created}.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__419c7532d47db78d5ee0c692fa5a37fa8daeaca4571ee12bb4f013b358ed2dd0)
            check_type(argname="argument maximum_days_since_created", value=maximum_days_since_created, expected_type=type_hints["maximum_days_since_created"])
        self._values: typing.Dict[builtins.str, typing.Any] = {}
        if maximum_days_since_created is not None:
            self._values["maximum_days_since_created"] = maximum_days_since_created

    @builtins.property
    def maximum_days_since_created(self) -> typing.Optional[jsii.Number]:
        '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/ec2_allowed_images_settings#maximum_days_since_created Ec2AllowedImagesSettings#maximum_days_since_created}.'''
        result = self._values.get("maximum_days_since_created")
        return typing.cast(typing.Optional[jsii.Number], result)

    def __eq__(self, rhs: typing.Any) -> builtins.bool:
        return isinstance(rhs, self.__class__) and rhs._values == self._values

    def __ne__(self, rhs: typing.Any) -> builtins.bool:
        return not (rhs == self)

    def __repr__(self) -> str:
        return "Ec2AllowedImagesSettingsImageCriterionCreationDateCondition(%s)" % ", ".join(
            k + "=" + repr(v) for k, v in self._values.items()
        )


class Ec2AllowedImagesSettingsImageCriterionCreationDateConditionList(
    _cdktn_78ede62e.ComplexList,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.ec2AllowedImagesSettings.Ec2AllowedImagesSettingsImageCriterionCreationDateConditionList",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        wraps_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param wraps_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__7ef1bc9fd6fd50a812c4206caed82f80ac208f2fdd4f4c22b0c5bd23a7e2768d)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument wraps_set", value=wraps_set, expected_type=type_hints["wraps_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, wraps_set])

    @jsii.member(jsii_name="get")
    def get(
        self,
        index: jsii.Number,
    ) -> "Ec2AllowedImagesSettingsImageCriterionCreationDateConditionOutputReference":
        '''
        :param index: the index of the item to return.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__879ea1bf7976a95f7d72b1d248fc19ca89b79b1d28a755f4c94adf6c3a58cd3e)
            check_type(argname="argument index", value=index, expected_type=type_hints["index"])
        return typing.cast("Ec2AllowedImagesSettingsImageCriterionCreationDateConditionOutputReference", jsii.invoke(self, "get", [index]))

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["Ec2AllowedImagesSettingsImageCriterionCreationDateCondition"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["Ec2AllowedImagesSettingsImageCriterionCreationDateCondition"]]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["Ec2AllowedImagesSettingsImageCriterionCreationDateCondition"]]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__3d5932593f6a29c364e3cf056bbe9ab61a6a720fb9354b2be32f737231d5dbe8)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


class Ec2AllowedImagesSettingsImageCriterionCreationDateConditionOutputReference(
    _cdktn_78ede62e.ComplexObject,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.ec2AllowedImagesSettings.Ec2AllowedImagesSettingsImageCriterionCreationDateConditionOutputReference",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        complex_object_index: jsii.Number,
        complex_object_is_from_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param complex_object_index: the index of this item in the list.
        :param complex_object_is_from_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__e5ed1e3abf05306db1d212f5c90f619b9bce3e3966e26edc6bb210af9e261ac4)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument complex_object_index", value=complex_object_index, expected_type=type_hints["complex_object_index"])
            check_type(argname="argument complex_object_is_from_set", value=complex_object_is_from_set, expected_type=type_hints["complex_object_is_from_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, complex_object_index, complex_object_is_from_set])

    @jsii.member(jsii_name="resetMaximumDaysSinceCreated")
    def reset_maximum_days_since_created(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetMaximumDaysSinceCreated", []))

    @builtins.property
    @jsii.member(jsii_name="maximumDaysSinceCreatedInput")
    def maximum_days_since_created_input(self) -> typing.Optional[jsii.Number]:
        return typing.cast(typing.Optional[jsii.Number], jsii.get(self, "maximumDaysSinceCreatedInput"))

    @builtins.property
    @jsii.member(jsii_name="maximumDaysSinceCreated")
    def maximum_days_since_created(self) -> jsii.Number:
        return typing.cast(jsii.Number, jsii.get(self, "maximumDaysSinceCreated"))

    @maximum_days_since_created.setter
    def maximum_days_since_created(self, value: jsii.Number) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__d038412d8bab000c0045d3f95522be248aecb94b806c681e08fbec26e8bf4b18)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "maximumDaysSinceCreated", value) # pyright: ignore[reportArgumentType]

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "Ec2AllowedImagesSettingsImageCriterionCreationDateCondition"]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "Ec2AllowedImagesSettingsImageCriterionCreationDateCondition"]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "Ec2AllowedImagesSettingsImageCriterionCreationDateCondition"]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__591f0a5f9dcc0c82a7f68ad15b7a85ee154690d720083466448425f093e3642d)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


@jsii.data_type(
    jsii_type="@cdktn/provider-aws.ec2AllowedImagesSettings.Ec2AllowedImagesSettingsImageCriterionDeprecationTimeCondition",
    jsii_struct_bases=[],
    name_mapping={"maximum_days_since_deprecated": "maximumDaysSinceDeprecated"},
)
class Ec2AllowedImagesSettingsImageCriterionDeprecationTimeCondition:
    def __init__(
        self,
        *,
        maximum_days_since_deprecated: typing.Optional[jsii.Number] = None,
    ) -> None:
        '''
        :param maximum_days_since_deprecated: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/ec2_allowed_images_settings#maximum_days_since_deprecated Ec2AllowedImagesSettings#maximum_days_since_deprecated}.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__1a261d4f9318b6230aad4a8d3f16825dcfa1c317dcc5196a54477416453b0fd5)
            check_type(argname="argument maximum_days_since_deprecated", value=maximum_days_since_deprecated, expected_type=type_hints["maximum_days_since_deprecated"])
        self._values: typing.Dict[builtins.str, typing.Any] = {}
        if maximum_days_since_deprecated is not None:
            self._values["maximum_days_since_deprecated"] = maximum_days_since_deprecated

    @builtins.property
    def maximum_days_since_deprecated(self) -> typing.Optional[jsii.Number]:
        '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/ec2_allowed_images_settings#maximum_days_since_deprecated Ec2AllowedImagesSettings#maximum_days_since_deprecated}.'''
        result = self._values.get("maximum_days_since_deprecated")
        return typing.cast(typing.Optional[jsii.Number], result)

    def __eq__(self, rhs: typing.Any) -> builtins.bool:
        return isinstance(rhs, self.__class__) and rhs._values == self._values

    def __ne__(self, rhs: typing.Any) -> builtins.bool:
        return not (rhs == self)

    def __repr__(self) -> str:
        return "Ec2AllowedImagesSettingsImageCriterionDeprecationTimeCondition(%s)" % ", ".join(
            k + "=" + repr(v) for k, v in self._values.items()
        )


class Ec2AllowedImagesSettingsImageCriterionDeprecationTimeConditionList(
    _cdktn_78ede62e.ComplexList,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.ec2AllowedImagesSettings.Ec2AllowedImagesSettingsImageCriterionDeprecationTimeConditionList",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        wraps_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param wraps_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__62c12990e8c4a07401e0cb9e84652fdd3d9ebbffdb986bf65514e76c12e6be73)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument wraps_set", value=wraps_set, expected_type=type_hints["wraps_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, wraps_set])

    @jsii.member(jsii_name="get")
    def get(
        self,
        index: jsii.Number,
    ) -> "Ec2AllowedImagesSettingsImageCriterionDeprecationTimeConditionOutputReference":
        '''
        :param index: the index of the item to return.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__f5f1bb463dac96501357ef8688cc76830b13778ef3785a2d6fb9f470aa06c693)
            check_type(argname="argument index", value=index, expected_type=type_hints["index"])
        return typing.cast("Ec2AllowedImagesSettingsImageCriterionDeprecationTimeConditionOutputReference", jsii.invoke(self, "get", [index]))

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["Ec2AllowedImagesSettingsImageCriterionDeprecationTimeCondition"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["Ec2AllowedImagesSettingsImageCriterionDeprecationTimeCondition"]]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["Ec2AllowedImagesSettingsImageCriterionDeprecationTimeCondition"]]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__dd1f4e935bdbb5bf41e02445db0a374b58739819a3c2ea614197b13f68bd6f1f)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


class Ec2AllowedImagesSettingsImageCriterionDeprecationTimeConditionOutputReference(
    _cdktn_78ede62e.ComplexObject,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.ec2AllowedImagesSettings.Ec2AllowedImagesSettingsImageCriterionDeprecationTimeConditionOutputReference",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        complex_object_index: jsii.Number,
        complex_object_is_from_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param complex_object_index: the index of this item in the list.
        :param complex_object_is_from_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__d7a1c1d8f3038b1c6252ce9c6c4a410c776f11228bdea2a235c8d8ef3681485a)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument complex_object_index", value=complex_object_index, expected_type=type_hints["complex_object_index"])
            check_type(argname="argument complex_object_is_from_set", value=complex_object_is_from_set, expected_type=type_hints["complex_object_is_from_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, complex_object_index, complex_object_is_from_set])

    @jsii.member(jsii_name="resetMaximumDaysSinceDeprecated")
    def reset_maximum_days_since_deprecated(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetMaximumDaysSinceDeprecated", []))

    @builtins.property
    @jsii.member(jsii_name="maximumDaysSinceDeprecatedInput")
    def maximum_days_since_deprecated_input(self) -> typing.Optional[jsii.Number]:
        return typing.cast(typing.Optional[jsii.Number], jsii.get(self, "maximumDaysSinceDeprecatedInput"))

    @builtins.property
    @jsii.member(jsii_name="maximumDaysSinceDeprecated")
    def maximum_days_since_deprecated(self) -> jsii.Number:
        return typing.cast(jsii.Number, jsii.get(self, "maximumDaysSinceDeprecated"))

    @maximum_days_since_deprecated.setter
    def maximum_days_since_deprecated(self, value: jsii.Number) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__25594faab90ab19cac6c1df4178a162def5677bc36639f9fd11509da21a29ca4)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "maximumDaysSinceDeprecated", value) # pyright: ignore[reportArgumentType]

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "Ec2AllowedImagesSettingsImageCriterionDeprecationTimeCondition"]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "Ec2AllowedImagesSettingsImageCriterionDeprecationTimeCondition"]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "Ec2AllowedImagesSettingsImageCriterionDeprecationTimeCondition"]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__36025c2f5c1d532247813ce8e9fc853394cf02258db8eec7c546d28571073e84)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


class Ec2AllowedImagesSettingsImageCriterionList(
    _cdktn_78ede62e.ComplexList,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.ec2AllowedImagesSettings.Ec2AllowedImagesSettingsImageCriterionList",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        wraps_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param wraps_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__a21995d63e61b47c953e4917ba039f3590b0eba4aa519ce11082fb78764c7ae8)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument wraps_set", value=wraps_set, expected_type=type_hints["wraps_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, wraps_set])

    @jsii.member(jsii_name="get")
    def get(
        self,
        index: jsii.Number,
    ) -> "Ec2AllowedImagesSettingsImageCriterionOutputReference":
        '''
        :param index: the index of the item to return.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__93d6a238a3c62123660d6cb3af08251adefb00a2ed8c0997db6410f1a88ae377)
            check_type(argname="argument index", value=index, expected_type=type_hints["index"])
        return typing.cast("Ec2AllowedImagesSettingsImageCriterionOutputReference", jsii.invoke(self, "get", [index]))

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["Ec2AllowedImagesSettingsImageCriterion"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["Ec2AllowedImagesSettingsImageCriterion"]]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["Ec2AllowedImagesSettingsImageCriterion"]]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__e0b95bb39ea5fddd932f718cd924a906bf2d4edcbb86b80f9265217d489602a3)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


class Ec2AllowedImagesSettingsImageCriterionOutputReference(
    _cdktn_78ede62e.ComplexObject,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.ec2AllowedImagesSettings.Ec2AllowedImagesSettingsImageCriterionOutputReference",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        complex_object_index: jsii.Number,
        complex_object_is_from_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param complex_object_index: the index of this item in the list.
        :param complex_object_is_from_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__9415c2101cf39813592c90328d08caa2a44ee049d464c7adade25daddeda2efd)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument complex_object_index", value=complex_object_index, expected_type=type_hints["complex_object_index"])
            check_type(argname="argument complex_object_is_from_set", value=complex_object_is_from_set, expected_type=type_hints["complex_object_is_from_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, complex_object_index, complex_object_is_from_set])

    @jsii.member(jsii_name="putCreationDateCondition")
    def put_creation_date_condition(
        self,
        value: typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["Ec2AllowedImagesSettingsImageCriterionCreationDateCondition", typing.Dict[builtins.str, typing.Any]]]],
    ) -> None:
        '''
        :param value: -
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__9822f3a5de477799d4900c21cbe89f2c131728ab437c8eaf7e63271d9185e69d)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        return typing.cast(None, jsii.invoke(self, "putCreationDateCondition", [value]))

    @jsii.member(jsii_name="putDeprecationTimeCondition")
    def put_deprecation_time_condition(
        self,
        value: typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["Ec2AllowedImagesSettingsImageCriterionDeprecationTimeCondition", typing.Dict[builtins.str, typing.Any]]]],
    ) -> None:
        '''
        :param value: -
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__966e2cf224209759f2d8df207f3829589cf8cbdfca06c26c48c88b7d5e8e4aa0)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        return typing.cast(None, jsii.invoke(self, "putDeprecationTimeCondition", [value]))

    @jsii.member(jsii_name="resetCreationDateCondition")
    def reset_creation_date_condition(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetCreationDateCondition", []))

    @jsii.member(jsii_name="resetDeprecationTimeCondition")
    def reset_deprecation_time_condition(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetDeprecationTimeCondition", []))

    @jsii.member(jsii_name="resetImageNames")
    def reset_image_names(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetImageNames", []))

    @jsii.member(jsii_name="resetImageProviders")
    def reset_image_providers(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetImageProviders", []))

    @jsii.member(jsii_name="resetMarketplaceProductCodes")
    def reset_marketplace_product_codes(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetMarketplaceProductCodes", []))

    @builtins.property
    @jsii.member(jsii_name="creationDateCondition")
    def creation_date_condition(
        self,
    ) -> "Ec2AllowedImagesSettingsImageCriterionCreationDateConditionList":
        return typing.cast("Ec2AllowedImagesSettingsImageCriterionCreationDateConditionList", jsii.get(self, "creationDateCondition"))

    @builtins.property
    @jsii.member(jsii_name="deprecationTimeCondition")
    def deprecation_time_condition(
        self,
    ) -> "Ec2AllowedImagesSettingsImageCriterionDeprecationTimeConditionList":
        return typing.cast("Ec2AllowedImagesSettingsImageCriterionDeprecationTimeConditionList", jsii.get(self, "deprecationTimeCondition"))

    @builtins.property
    @jsii.member(jsii_name="creationDateConditionInput")
    def creation_date_condition_input(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["Ec2AllowedImagesSettingsImageCriterionCreationDateCondition"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["Ec2AllowedImagesSettingsImageCriterionCreationDateCondition"]]], jsii.get(self, "creationDateConditionInput"))

    @builtins.property
    @jsii.member(jsii_name="deprecationTimeConditionInput")
    def deprecation_time_condition_input(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["Ec2AllowedImagesSettingsImageCriterionDeprecationTimeCondition"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["Ec2AllowedImagesSettingsImageCriterionDeprecationTimeCondition"]]], jsii.get(self, "deprecationTimeConditionInput"))

    @builtins.property
    @jsii.member(jsii_name="imageNamesInput")
    def image_names_input(self) -> typing.Optional[typing.List[builtins.str]]:
        return typing.cast(typing.Optional[typing.List[builtins.str]], jsii.get(self, "imageNamesInput"))

    @builtins.property
    @jsii.member(jsii_name="imageProvidersInput")
    def image_providers_input(self) -> typing.Optional[typing.List[builtins.str]]:
        return typing.cast(typing.Optional[typing.List[builtins.str]], jsii.get(self, "imageProvidersInput"))

    @builtins.property
    @jsii.member(jsii_name="marketplaceProductCodesInput")
    def marketplace_product_codes_input(
        self,
    ) -> typing.Optional[typing.List[builtins.str]]:
        return typing.cast(typing.Optional[typing.List[builtins.str]], jsii.get(self, "marketplaceProductCodesInput"))

    @builtins.property
    @jsii.member(jsii_name="imageNames")
    def image_names(self) -> typing.List[builtins.str]:
        return typing.cast(typing.List[builtins.str], jsii.get(self, "imageNames"))

    @image_names.setter
    def image_names(self, value: typing.List[builtins.str]) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__fe8e96b26a6f2642e2b477dbce4e149e963bdf96e535e37ae178ed78f0eb0677)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "imageNames", value) # pyright: ignore[reportArgumentType]

    @builtins.property
    @jsii.member(jsii_name="imageProviders")
    def image_providers(self) -> typing.List[builtins.str]:
        return typing.cast(typing.List[builtins.str], jsii.get(self, "imageProviders"))

    @image_providers.setter
    def image_providers(self, value: typing.List[builtins.str]) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__45864e9f174bfd7a62fcaf19b5970e1a8c489afd151754813c5e7fdc857ea6c3)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "imageProviders", value) # pyright: ignore[reportArgumentType]

    @builtins.property
    @jsii.member(jsii_name="marketplaceProductCodes")
    def marketplace_product_codes(self) -> typing.List[builtins.str]:
        return typing.cast(typing.List[builtins.str], jsii.get(self, "marketplaceProductCodes"))

    @marketplace_product_codes.setter
    def marketplace_product_codes(self, value: typing.List[builtins.str]) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__d83463451180497b19a9b96c6211138b9a246aeb550c9076265b1aa61a3efa4f)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "marketplaceProductCodes", value) # pyright: ignore[reportArgumentType]

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "Ec2AllowedImagesSettingsImageCriterion"]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "Ec2AllowedImagesSettingsImageCriterion"]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "Ec2AllowedImagesSettingsImageCriterion"]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__c44c4733f5c9a554d2f3b24a5ed9294d1170ee0c78af568284fc57d470d79c32)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


__all__ = [
    "Ec2AllowedImagesSettings",
    "Ec2AllowedImagesSettingsConfig",
    "Ec2AllowedImagesSettingsImageCriterion",
    "Ec2AllowedImagesSettingsImageCriterionCreationDateCondition",
    "Ec2AllowedImagesSettingsImageCriterionCreationDateConditionList",
    "Ec2AllowedImagesSettingsImageCriterionCreationDateConditionOutputReference",
    "Ec2AllowedImagesSettingsImageCriterionDeprecationTimeCondition",
    "Ec2AllowedImagesSettingsImageCriterionDeprecationTimeConditionList",
    "Ec2AllowedImagesSettingsImageCriterionDeprecationTimeConditionOutputReference",
    "Ec2AllowedImagesSettingsImageCriterionList",
    "Ec2AllowedImagesSettingsImageCriterionOutputReference",
]

publication.publish()

def _typecheckingstub__766bb83c6189bea15af7b681e63c826f33bc047319a73e5e36671ce870ff5c2a(
    scope: _constructs_77d1e7e8.Construct,
    id: builtins.str,
    *,
    state: builtins.str,
    image_criterion: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[Ec2AllowedImagesSettingsImageCriterion, typing.Dict[builtins.str, typing.Any]]]]] = None,
    region: typing.Optional[builtins.str] = None,
    connection: typing.Optional[typing.Union[typing.Union[_cdktn_78ede62e.SSHProvisionerConnection, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktn_78ede62e.WinrmProvisionerConnection, typing.Dict[builtins.str, typing.Any]]]] = None,
    count: typing.Optional[typing.Union[jsii.Number, _cdktn_78ede62e.TerraformCount]] = None,
    depends_on: typing.Optional[typing.Sequence[_cdktn_78ede62e.ITerraformDependable]] = None,
    for_each: typing.Optional[_cdktn_78ede62e.ITerraformIterator] = None,
    lifecycle: typing.Optional[typing.Union[_cdktn_78ede62e.TerraformResourceLifecycle, typing.Dict[builtins.str, typing.Any]]] = None,
    provider: typing.Optional[_cdktn_78ede62e.TerraformProvider] = None,
    provisioners: typing.Optional[typing.Sequence[typing.Union[typing.Union[_cdktn_78ede62e.FileProvisioner, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktn_78ede62e.LocalExecProvisioner, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktn_78ede62e.RemoteExecProvisioner, typing.Dict[builtins.str, typing.Any]]]]] = None,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__00d0d39173b7fa7b59081c393089ed90c3d35fb77f2f792941baffd3e2e9542a(
    scope: _constructs_77d1e7e8.Construct,
    import_to_id: builtins.str,
    import_from_id: builtins.str,
    provider: typing.Optional[_cdktn_78ede62e.TerraformProvider] = None,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__42fc621897a1fd531d552b75c5fd9522105cf081ba161f80d62a29b7c0e08696(
    value: typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[Ec2AllowedImagesSettingsImageCriterion, typing.Dict[builtins.str, typing.Any]]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__980de5bf79a96cdff3b4e6f7da23de41ba2bfdd30d99ca5412120edc3a6ffb47(
    value: builtins.str,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__5f40b11d3cd823cbe4bf37ac3c57b4c05cbbf759c5cf9aa089b2fbae5f44e51e(
    value: builtins.str,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__e3f8123f2264b7c8befebf2ebc68c28dad711fbeca073d1eedac64dbb9ed97f8(
    *,
    connection: typing.Optional[typing.Union[typing.Union[_cdktn_78ede62e.SSHProvisionerConnection, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktn_78ede62e.WinrmProvisionerConnection, typing.Dict[builtins.str, typing.Any]]]] = None,
    count: typing.Optional[typing.Union[jsii.Number, _cdktn_78ede62e.TerraformCount]] = None,
    depends_on: typing.Optional[typing.Sequence[_cdktn_78ede62e.ITerraformDependable]] = None,
    for_each: typing.Optional[_cdktn_78ede62e.ITerraformIterator] = None,
    lifecycle: typing.Optional[typing.Union[_cdktn_78ede62e.TerraformResourceLifecycle, typing.Dict[builtins.str, typing.Any]]] = None,
    provider: typing.Optional[_cdktn_78ede62e.TerraformProvider] = None,
    provisioners: typing.Optional[typing.Sequence[typing.Union[typing.Union[_cdktn_78ede62e.FileProvisioner, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktn_78ede62e.LocalExecProvisioner, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktn_78ede62e.RemoteExecProvisioner, typing.Dict[builtins.str, typing.Any]]]]] = None,
    state: builtins.str,
    image_criterion: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[Ec2AllowedImagesSettingsImageCriterion, typing.Dict[builtins.str, typing.Any]]]]] = None,
    region: typing.Optional[builtins.str] = None,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__7629e7d0254dbf6f688eda10e655849f92c845b50f24bbb7e09b612fed718033(
    *,
    creation_date_condition: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[Ec2AllowedImagesSettingsImageCriterionCreationDateCondition, typing.Dict[builtins.str, typing.Any]]]]] = None,
    deprecation_time_condition: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[Ec2AllowedImagesSettingsImageCriterionDeprecationTimeCondition, typing.Dict[builtins.str, typing.Any]]]]] = None,
    image_names: typing.Optional[typing.Sequence[builtins.str]] = None,
    image_providers: typing.Optional[typing.Sequence[builtins.str]] = None,
    marketplace_product_codes: typing.Optional[typing.Sequence[builtins.str]] = None,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__419c7532d47db78d5ee0c692fa5a37fa8daeaca4571ee12bb4f013b358ed2dd0(
    *,
    maximum_days_since_created: typing.Optional[jsii.Number] = None,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__7ef1bc9fd6fd50a812c4206caed82f80ac208f2fdd4f4c22b0c5bd23a7e2768d(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    wraps_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__879ea1bf7976a95f7d72b1d248fc19ca89b79b1d28a755f4c94adf6c3a58cd3e(
    index: jsii.Number,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__3d5932593f6a29c364e3cf056bbe9ab61a6a720fb9354b2be32f737231d5dbe8(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.List[Ec2AllowedImagesSettingsImageCriterionCreationDateCondition]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__e5ed1e3abf05306db1d212f5c90f619b9bce3e3966e26edc6bb210af9e261ac4(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    complex_object_index: jsii.Number,
    complex_object_is_from_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__d038412d8bab000c0045d3f95522be248aecb94b806c681e08fbec26e8bf4b18(
    value: jsii.Number,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__591f0a5f9dcc0c82a7f68ad15b7a85ee154690d720083466448425f093e3642d(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, Ec2AllowedImagesSettingsImageCriterionCreationDateCondition]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__1a261d4f9318b6230aad4a8d3f16825dcfa1c317dcc5196a54477416453b0fd5(
    *,
    maximum_days_since_deprecated: typing.Optional[jsii.Number] = None,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__62c12990e8c4a07401e0cb9e84652fdd3d9ebbffdb986bf65514e76c12e6be73(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    wraps_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__f5f1bb463dac96501357ef8688cc76830b13778ef3785a2d6fb9f470aa06c693(
    index: jsii.Number,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__dd1f4e935bdbb5bf41e02445db0a374b58739819a3c2ea614197b13f68bd6f1f(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.List[Ec2AllowedImagesSettingsImageCriterionDeprecationTimeCondition]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__d7a1c1d8f3038b1c6252ce9c6c4a410c776f11228bdea2a235c8d8ef3681485a(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    complex_object_index: jsii.Number,
    complex_object_is_from_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__25594faab90ab19cac6c1df4178a162def5677bc36639f9fd11509da21a29ca4(
    value: jsii.Number,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__36025c2f5c1d532247813ce8e9fc853394cf02258db8eec7c546d28571073e84(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, Ec2AllowedImagesSettingsImageCriterionDeprecationTimeCondition]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__a21995d63e61b47c953e4917ba039f3590b0eba4aa519ce11082fb78764c7ae8(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    wraps_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__93d6a238a3c62123660d6cb3af08251adefb00a2ed8c0997db6410f1a88ae377(
    index: jsii.Number,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__e0b95bb39ea5fddd932f718cd924a906bf2d4edcbb86b80f9265217d489602a3(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.List[Ec2AllowedImagesSettingsImageCriterion]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__9415c2101cf39813592c90328d08caa2a44ee049d464c7adade25daddeda2efd(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    complex_object_index: jsii.Number,
    complex_object_is_from_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__9822f3a5de477799d4900c21cbe89f2c131728ab437c8eaf7e63271d9185e69d(
    value: typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[Ec2AllowedImagesSettingsImageCriterionCreationDateCondition, typing.Dict[builtins.str, typing.Any]]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__966e2cf224209759f2d8df207f3829589cf8cbdfca06c26c48c88b7d5e8e4aa0(
    value: typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[Ec2AllowedImagesSettingsImageCriterionDeprecationTimeCondition, typing.Dict[builtins.str, typing.Any]]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__fe8e96b26a6f2642e2b477dbce4e149e963bdf96e535e37ae178ed78f0eb0677(
    value: typing.List[builtins.str],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__45864e9f174bfd7a62fcaf19b5970e1a8c489afd151754813c5e7fdc857ea6c3(
    value: typing.List[builtins.str],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__d83463451180497b19a9b96c6211138b9a246aeb550c9076265b1aa61a3efa4f(
    value: typing.List[builtins.str],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__c44c4733f5c9a554d2f3b24a5ed9294d1170ee0c78af568284fc57d470d79c32(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, Ec2AllowedImagesSettingsImageCriterion]],
) -> None:
    """Type checking stubs"""
    pass
