"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import shared.shared_pb2
import sys

if sys.version_info >= (3, 8):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing_extensions.final
class Component(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    class TagsEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    VERSION_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    CHANGE_DESCRIPTION_FIELD_NUMBER: builtins.int
    PLATFORM_FIELD_NUMBER: builtins.int
    DATA_FIELD_NUMBER: builtins.int
    KMS_KEY_ID_FIELD_NUMBER: builtins.int
    TAGS_FIELD_NUMBER: builtins.int
    URI_FIELD_NUMBER: builtins.int
    SUPPORTED_OS_VERSIONS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    name: builtins.str
    version: builtins.str
    description: builtins.str
    change_description: builtins.str
    platform: builtins.str
    data: builtins.str
    kms_key_id: builtins.str
    @property
    def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    uri: builtins.str
    @property
    def supported_os_versions(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        name: builtins.str = ...,
        version: builtins.str = ...,
        description: builtins.str = ...,
        change_description: builtins.str = ...,
        platform: builtins.str = ...,
        data: builtins.str = ...,
        kms_key_id: builtins.str = ...,
        tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        uri: builtins.str = ...,
        supported_os_versions: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["change_description", b"change_description", "data", b"data", "description", b"description", "kms_key_id", b"kms_key_id", "name", b"name", "platform", b"platform", "resource_info", b"resource_info", "supported_os_versions", b"supported_os_versions", "tags", b"tags", "uri", b"uri", "version", b"version"]) -> None: ...

global___Component = Component

@typing_extensions.final
class ImageBuilder(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    COMPONENT_FIELD_NUMBER: builtins.int
    DISTRIBUTION_CONFIGURATION_FIELD_NUMBER: builtins.int
    IMAGE_FIELD_NUMBER: builtins.int
    IMAGE_PIPELINE_FIELD_NUMBER: builtins.int
    IMAGE_RECIPE_FIELD_NUMBER: builtins.int
    INFRASTRUCTURE_CONFIGURATION_FIELD_NUMBER: builtins.int
    INFRASTRUCTURE_CONFIGURATION_LOGGING_FIELD_NUMBER: builtins.int
    @property
    def component(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Component]: ...
    @property
    def distribution_configuration(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___DistributionConfiguration]: ...
    @property
    def image(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Image]: ...
    @property
    def image_pipeline(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ImagePipeline]: ...
    @property
    def image_recipe(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ImageRecipe]: ...
    @property
    def infrastructure_configuration(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___InfrastructureConfiguration]: ...
    @property
    def infrastructure_configuration_logging(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___InfrastructureConfigurationLogging]: ...
    def __init__(
        self,
        *,
        component: collections.abc.Iterable[global___Component] | None = ...,
        distribution_configuration: collections.abc.Iterable[global___DistributionConfiguration] | None = ...,
        image: collections.abc.Iterable[global___Image] | None = ...,
        image_pipeline: collections.abc.Iterable[global___ImagePipeline] | None = ...,
        image_recipe: collections.abc.Iterable[global___ImageRecipe] | None = ...,
        infrastructure_configuration: collections.abc.Iterable[global___InfrastructureConfiguration] | None = ...,
        infrastructure_configuration_logging: collections.abc.Iterable[global___InfrastructureConfigurationLogging] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["component", b"component", "distribution_configuration", b"distribution_configuration", "image", b"image", "image_pipeline", b"image_pipeline", "image_recipe", b"image_recipe", "infrastructure_configuration", b"infrastructure_configuration", "infrastructure_configuration_logging", b"infrastructure_configuration_logging"]) -> None: ...

global___ImageBuilder = ImageBuilder

@typing_extensions.final
class DistributionConfigurationDistribution(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    class AmiDistributionConfigurationEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    REGION_FIELD_NUMBER: builtins.int
    AMI_DISTRIBUTION_CONFIGURATION_FIELD_NUMBER: builtins.int
    LICENSE_CONFIGURATION_ARNS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    region: builtins.str
    @property
    def ami_distribution_configuration(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    @property
    def license_configuration_arns(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        region: builtins.str = ...,
        ami_distribution_configuration: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        license_configuration_arns: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["ami_distribution_configuration", b"ami_distribution_configuration", "license_configuration_arns", b"license_configuration_arns", "region", b"region", "resource_info", b"resource_info"]) -> None: ...

global___DistributionConfigurationDistribution = DistributionConfigurationDistribution

@typing_extensions.final
class DistributionConfiguration(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    class TagsEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    DISTRIBUTIONS_FIELD_NUMBER: builtins.int
    TAGS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    name: builtins.str
    description: builtins.str
    @property
    def distributions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___DistributionConfigurationDistribution]: ...
    @property
    def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        name: builtins.str = ...,
        description: builtins.str = ...,
        distributions: collections.abc.Iterable[global___DistributionConfigurationDistribution] | None = ...,
        tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["description", b"description", "distributions", b"distributions", "name", b"name", "resource_info", b"resource_info", "tags", b"tags"]) -> None: ...

global___DistributionConfiguration = DistributionConfiguration

@typing_extensions.final
class ImageImageTestsConfiguration(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    IMAGE_TESTS_ENABLED_FIELD_NUMBER: builtins.int
    TIMEOUT_MINUTES_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    image_tests_enabled: builtins.bool
    timeout_minutes: builtins.int
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        image_tests_enabled: builtins.bool = ...,
        timeout_minutes: builtins.int = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["image_tests_enabled", b"image_tests_enabled", "resource_info", b"resource_info", "timeout_minutes", b"timeout_minutes"]) -> None: ...

global___ImageImageTestsConfiguration = ImageImageTestsConfiguration

@typing_extensions.final
class Image(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    class TagsEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    IMAGE_TESTS_CONFIGURATION_FIELD_NUMBER: builtins.int
    IMAGE_RECIPE_ARN_FIELD_NUMBER: builtins.int
    DISTRIBUTION_CONFIGURATION_ARN_FIELD_NUMBER: builtins.int
    INFRASTRUCTURE_CONFIGURATION_ARN_FIELD_NUMBER: builtins.int
    ENHANCED_IMAGE_METADATA_ENABLED_FIELD_NUMBER: builtins.int
    TAGS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def image_tests_configuration(self) -> global___ImageImageTestsConfiguration: ...
    image_recipe_arn: builtins.str
    distribution_configuration_arn: builtins.str
    infrastructure_configuration_arn: builtins.str
    enhanced_image_metadata_enabled: builtins.bool
    @property
    def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        image_tests_configuration: global___ImageImageTestsConfiguration | None = ...,
        image_recipe_arn: builtins.str = ...,
        distribution_configuration_arn: builtins.str = ...,
        infrastructure_configuration_arn: builtins.str = ...,
        enhanced_image_metadata_enabled: builtins.bool = ...,
        tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["image_tests_configuration", b"image_tests_configuration", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["distribution_configuration_arn", b"distribution_configuration_arn", "enhanced_image_metadata_enabled", b"enhanced_image_metadata_enabled", "image_recipe_arn", b"image_recipe_arn", "image_tests_configuration", b"image_tests_configuration", "infrastructure_configuration_arn", b"infrastructure_configuration_arn", "resource_info", b"resource_info", "tags", b"tags"]) -> None: ...

global___Image = Image

@typing_extensions.final
class ImagePipelineImageTestsConfiguration(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    IMAGE_TESTS_ENABLED_FIELD_NUMBER: builtins.int
    TIMEOUT_MINUTES_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    image_tests_enabled: builtins.bool
    timeout_minutes: builtins.int
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        image_tests_enabled: builtins.bool = ...,
        timeout_minutes: builtins.int = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["image_tests_enabled", b"image_tests_enabled", "resource_info", b"resource_info", "timeout_minutes", b"timeout_minutes"]) -> None: ...

global___ImagePipelineImageTestsConfiguration = ImagePipelineImageTestsConfiguration

@typing_extensions.final
class ImagePipelineSchedule(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    SCHEDULE_EXPRESSION_FIELD_NUMBER: builtins.int
    PIPELINE_EXECUTION_START_CONDITION_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    schedule_expression: builtins.str
    pipeline_execution_start_condition: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        schedule_expression: builtins.str = ...,
        pipeline_execution_start_condition: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["pipeline_execution_start_condition", b"pipeline_execution_start_condition", "resource_info", b"resource_info", "schedule_expression", b"schedule_expression"]) -> None: ...

global___ImagePipelineSchedule = ImagePipelineSchedule

@typing_extensions.final
class ImagePipeline(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    class TagsEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    IMAGE_TESTS_CONFIGURATION_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    SCHEDULE_FIELD_NUMBER: builtins.int
    IMAGE_RECIPE_ARN_FIELD_NUMBER: builtins.int
    DISTRIBUTION_CONFIGURATION_ARN_FIELD_NUMBER: builtins.int
    INFRASTRUCTURE_CONFIGURATION_ARN_FIELD_NUMBER: builtins.int
    ENHANCED_IMAGE_METADATA_ENABLED_FIELD_NUMBER: builtins.int
    TAGS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    name: builtins.str
    description: builtins.str
    @property
    def image_tests_configuration(self) -> global___ImagePipelineImageTestsConfiguration: ...
    status: builtins.str
    @property
    def schedule(self) -> global___ImagePipelineSchedule: ...
    image_recipe_arn: builtins.str
    distribution_configuration_arn: builtins.str
    infrastructure_configuration_arn: builtins.str
    enhanced_image_metadata_enabled: builtins.bool
    @property
    def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        name: builtins.str = ...,
        description: builtins.str = ...,
        image_tests_configuration: global___ImagePipelineImageTestsConfiguration | None = ...,
        status: builtins.str = ...,
        schedule: global___ImagePipelineSchedule | None = ...,
        image_recipe_arn: builtins.str = ...,
        distribution_configuration_arn: builtins.str = ...,
        infrastructure_configuration_arn: builtins.str = ...,
        enhanced_image_metadata_enabled: builtins.bool = ...,
        tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["image_tests_configuration", b"image_tests_configuration", "resource_info", b"resource_info", "schedule", b"schedule"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["description", b"description", "distribution_configuration_arn", b"distribution_configuration_arn", "enhanced_image_metadata_enabled", b"enhanced_image_metadata_enabled", "image_recipe_arn", b"image_recipe_arn", "image_tests_configuration", b"image_tests_configuration", "infrastructure_configuration_arn", b"infrastructure_configuration_arn", "name", b"name", "resource_info", b"resource_info", "schedule", b"schedule", "status", b"status", "tags", b"tags"]) -> None: ...

global___ImagePipeline = ImagePipeline

@typing_extensions.final
class ImageRecipeComponentConfiguration(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    COMPONENT_ARN_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    component_arn: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        component_arn: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["component_arn", b"component_arn", "resource_info", b"resource_info"]) -> None: ...

global___ImageRecipeComponentConfiguration = ImageRecipeComponentConfiguration

@typing_extensions.final
class ImageRecipeEbsInstanceBlockDeviceSpecification(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    ENCRYPTED_FIELD_NUMBER: builtins.int
    DELETE_ON_TERMINATION_FIELD_NUMBER: builtins.int
    IOPS_FIELD_NUMBER: builtins.int
    KMS_KEY_ID_FIELD_NUMBER: builtins.int
    SNAPSHOT_ID_FIELD_NUMBER: builtins.int
    VOLUME_SIZE_FIELD_NUMBER: builtins.int
    VOLUME_TYPE_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    encrypted: builtins.bool
    delete_on_termination: builtins.bool
    iops: builtins.int
    kms_key_id: builtins.str
    snapshot_id: builtins.str
    volume_size: builtins.int
    volume_type: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        encrypted: builtins.bool = ...,
        delete_on_termination: builtins.bool = ...,
        iops: builtins.int = ...,
        kms_key_id: builtins.str = ...,
        snapshot_id: builtins.str = ...,
        volume_size: builtins.int = ...,
        volume_type: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["delete_on_termination", b"delete_on_termination", "encrypted", b"encrypted", "iops", b"iops", "kms_key_id", b"kms_key_id", "resource_info", b"resource_info", "snapshot_id", b"snapshot_id", "volume_size", b"volume_size", "volume_type", b"volume_type"]) -> None: ...

global___ImageRecipeEbsInstanceBlockDeviceSpecification = ImageRecipeEbsInstanceBlockDeviceSpecification

@typing_extensions.final
class ImageRecipeInstanceBlockDeviceMapping(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    DEVICE_NAME_FIELD_NUMBER: builtins.int
    VIRTUAL_NAME_FIELD_NUMBER: builtins.int
    NO_DEVICE_FIELD_NUMBER: builtins.int
    EBS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    device_name: builtins.str
    virtual_name: builtins.str
    no_device: builtins.str
    @property
    def ebs(self) -> global___ImageRecipeEbsInstanceBlockDeviceSpecification: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        device_name: builtins.str = ...,
        virtual_name: builtins.str = ...,
        no_device: builtins.str = ...,
        ebs: global___ImageRecipeEbsInstanceBlockDeviceSpecification | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["ebs", b"ebs", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["device_name", b"device_name", "ebs", b"ebs", "no_device", b"no_device", "resource_info", b"resource_info", "virtual_name", b"virtual_name"]) -> None: ...

global___ImageRecipeInstanceBlockDeviceMapping = ImageRecipeInstanceBlockDeviceMapping

@typing_extensions.final
class ImageRecipe(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    class TagsEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    VERSION_FIELD_NUMBER: builtins.int
    COMPONENTS_FIELD_NUMBER: builtins.int
    BLOCK_DEVICE_MAPPINGS_FIELD_NUMBER: builtins.int
    PARENT_IMAGE_FIELD_NUMBER: builtins.int
    WORKING_DIRECTORY_FIELD_NUMBER: builtins.int
    TAGS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    name: builtins.str
    description: builtins.str
    version: builtins.str
    @property
    def components(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ImageRecipeComponentConfiguration]: ...
    @property
    def block_device_mappings(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ImageRecipeInstanceBlockDeviceMapping]: ...
    parent_image: builtins.str
    working_directory: builtins.str
    @property
    def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        name: builtins.str = ...,
        description: builtins.str = ...,
        version: builtins.str = ...,
        components: collections.abc.Iterable[global___ImageRecipeComponentConfiguration] | None = ...,
        block_device_mappings: collections.abc.Iterable[global___ImageRecipeInstanceBlockDeviceMapping] | None = ...,
        parent_image: builtins.str = ...,
        working_directory: builtins.str = ...,
        tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["block_device_mappings", b"block_device_mappings", "components", b"components", "description", b"description", "name", b"name", "parent_image", b"parent_image", "resource_info", b"resource_info", "tags", b"tags", "version", b"version", "working_directory", b"working_directory"]) -> None: ...

global___ImageRecipe = ImageRecipe

@typing_extensions.final
class InfrastructureConfiguration(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    class LoggingEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    @typing_extensions.final
    class ResourceTagsEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    @typing_extensions.final
    class TagsEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    INSTANCE_TYPES_FIELD_NUMBER: builtins.int
    SECURITY_GROUP_IDS_FIELD_NUMBER: builtins.int
    LOGGING_FIELD_NUMBER: builtins.int
    SUBNET_ID_FIELD_NUMBER: builtins.int
    KEY_PAIR_FIELD_NUMBER: builtins.int
    TERMINATE_INSTANCE_ON_FAILURE_FIELD_NUMBER: builtins.int
    INSTANCE_PROFILE_NAME_FIELD_NUMBER: builtins.int
    SNS_TOPIC_ARN_FIELD_NUMBER: builtins.int
    RESOURCE_TAGS_FIELD_NUMBER: builtins.int
    TAGS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    name: builtins.str
    description: builtins.str
    @property
    def instance_types(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    @property
    def security_group_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    @property
    def logging(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    subnet_id: builtins.str
    key_pair: builtins.str
    terminate_instance_on_failure: builtins.bool
    instance_profile_name: builtins.str
    sns_topic_arn: builtins.str
    @property
    def resource_tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    @property
    def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        name: builtins.str = ...,
        description: builtins.str = ...,
        instance_types: collections.abc.Iterable[builtins.str] | None = ...,
        security_group_ids: collections.abc.Iterable[builtins.str] | None = ...,
        logging: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        subnet_id: builtins.str = ...,
        key_pair: builtins.str = ...,
        terminate_instance_on_failure: builtins.bool = ...,
        instance_profile_name: builtins.str = ...,
        sns_topic_arn: builtins.str = ...,
        resource_tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["description", b"description", "instance_profile_name", b"instance_profile_name", "instance_types", b"instance_types", "key_pair", b"key_pair", "logging", b"logging", "name", b"name", "resource_info", b"resource_info", "resource_tags", b"resource_tags", "security_group_ids", b"security_group_ids", "sns_topic_arn", b"sns_topic_arn", "subnet_id", b"subnet_id", "tags", b"tags", "terminate_instance_on_failure", b"terminate_instance_on_failure"]) -> None: ...

global___InfrastructureConfiguration = InfrastructureConfiguration

@typing_extensions.final
class InfrastructureConfigurationS3Logs(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    S3_BUCKET_NAME_FIELD_NUMBER: builtins.int
    S3_KEY_PREFIX_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    s3_bucket_name: builtins.str
    s3_key_prefix: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        s3_bucket_name: builtins.str = ...,
        s3_key_prefix: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "s3_bucket_name", b"s3_bucket_name", "s3_key_prefix", b"s3_key_prefix"]) -> None: ...

global___InfrastructureConfigurationS3Logs = InfrastructureConfigurationS3Logs

@typing_extensions.final
class InfrastructureConfigurationLogging(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    S3_LOGS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def s3_logs(self) -> global___InfrastructureConfigurationS3Logs: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        s3_logs: global___InfrastructureConfigurationS3Logs | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "s3_logs", b"s3_logs"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "s3_logs", b"s3_logs"]) -> None: ...

global___InfrastructureConfigurationLogging = InfrastructureConfigurationLogging
