"""
@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 typing

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing.final
class Secret(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ID_FIELD_NUMBER: builtins.int
    KEY_FIELD_NUMBER: builtins.int
    VERSION_ID_FIELD_NUMBER: builtins.int
    id: builtins.str
    """ID of the secret."""
    key: builtins.str
    """Name of the key."""
    version_id: builtins.str
    """Version of the secret."""
    def __init__(
        self,
        *,
        id: builtins.str = ...,
        key: builtins.str = ...,
        version_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["id", b"id", "key", b"key", "version_id", b"version_id"]) -> None: ...

global___Secret = Secret

@typing.final
class ContainerSolutionSpec(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class SecretsEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        @property
        def value(self) -> global___Secret: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: global___Secret | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...

    @typing.final
    class EnvironmentEntry(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.Literal["key", b"key", "value", b"value"]) -> None: ...

    PRODUCT_ID_FIELD_NUMBER: builtins.int
    SECRETS_FIELD_NUMBER: builtins.int
    ENVIRONMENT_FIELD_NUMBER: builtins.int
    product_id: builtins.str
    """ID of the product."""
    @property
    def secrets(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___Secret]:
        """A list of the secrets."""

    @property
    def environment(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]:
        """A list of the environmets."""

    def __init__(
        self,
        *,
        product_id: builtins.str = ...,
        secrets: collections.abc.Mapping[builtins.str, global___Secret] | None = ...,
        environment: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["environment", b"environment", "product_id", b"product_id", "secrets", b"secrets"]) -> None: ...

global___ContainerSolutionSpec = ContainerSolutionSpec

@typing.final
class BackupSpec(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ENABLED_FIELD_NUMBER: builtins.int
    INITIAL_POLICY_IDS_FIELD_NUMBER: builtins.int
    RECOVERY_FROM_BACKUP_FIELD_NUMBER: builtins.int
    BACKUP_ID_FIELD_NUMBER: builtins.int
    INSTANCE_REGISTRATION_ID_FIELD_NUMBER: builtins.int
    enabled: builtins.bool
    """If true, backup is enabled."""
    recovery_from_backup: builtins.bool
    """If true, recovery from backup starts on instance."""
    backup_id: builtins.str
    """ID of the backup to recover from."""
    instance_registration_id: builtins.str
    """ID of the instance registration for cloud backup agent installation."""
    @property
    def initial_policy_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """A list of policy IDs to apply after resource registration."""

    def __init__(
        self,
        *,
        enabled: builtins.bool = ...,
        initial_policy_ids: collections.abc.Iterable[builtins.str] | None = ...,
        recovery_from_backup: builtins.bool = ...,
        backup_id: builtins.str = ...,
        instance_registration_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["backup_id", b"backup_id", "enabled", b"enabled", "initial_policy_ids", b"initial_policy_ids", "instance_registration_id", b"instance_registration_id", "recovery_from_backup", b"recovery_from_backup"]) -> None: ...

global___BackupSpec = BackupSpec

@typing.final
class Application(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CONTAINER_SOLUTION_FIELD_NUMBER: builtins.int
    CLOUDBACKUP_FIELD_NUMBER: builtins.int
    @property
    def container_solution(self) -> global___ContainerSolutionSpec:
        """Container specification."""

    @property
    def cloudbackup(self) -> global___BackupSpec:
        """Backup settings."""

    def __init__(
        self,
        *,
        container_solution: global___ContainerSolutionSpec | None = ...,
        cloudbackup: global___BackupSpec | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["cloudbackup", b"cloudbackup", "container", b"container", "container_solution", b"container_solution"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["cloudbackup", b"cloudbackup", "container", b"container", "container_solution", b"container_solution"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["container", b"container"]) -> typing.Literal["container_solution"] | None: ...

global___Application = Application
