"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import google.protobuf.descriptor
import google.protobuf.message
import qwak.administration.runtime_configuration.v0.creds.secret_pb2
import qwak.administration.runtime_configuration.v0.hosting.aws.auth_pb2
import qwak.administration.runtime_configuration.v0.hosting.azure.auth_pb2
import sys

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class HostingConfiguration(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    AWS_HOST_CONFIGURATION_FIELD_NUMBER: builtins.int
    GCP_HOST_CONFIGURATION_FIELD_NUMBER: builtins.int
    AZURE_HOST_CONFIGURATION_FIELD_NUMBER: builtins.int
    @property
    def aws_host_configuration(self) -> global___AWSHostingConfiguration: ...
    @property
    def gcp_host_configuration(self) -> global___GCPHostingConfiguration: ...
    @property
    def azure_host_configuration(self) -> global___AzureHostingConfiguration: ...
    def __init__(
        self,
        *,
        aws_host_configuration: global___AWSHostingConfiguration | None = ...,
        gcp_host_configuration: global___GCPHostingConfiguration | None = ...,
        azure_host_configuration: global___AzureHostingConfiguration | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["aws_host_configuration", b"aws_host_configuration", "azure_host_configuration", b"azure_host_configuration", "gcp_host_configuration", b"gcp_host_configuration", "type", b"type"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["aws_host_configuration", b"aws_host_configuration", "azure_host_configuration", b"azure_host_configuration", "gcp_host_configuration", b"gcp_host_configuration", "type", b"type"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["type", b"type"]) -> typing_extensions.Literal["aws_host_configuration", "gcp_host_configuration", "azure_host_configuration"] | None: ...

global___HostingConfiguration = HostingConfiguration

class AWSHostingConfiguration(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    IAM_SERVICE_ACCOUNT_FIELD_NUMBER: builtins.int
    SCOPED_PERMISSIONS_FIELD_NUMBER: builtins.int
    REGION_FIELD_NUMBER: builtins.int
    @property
    def iam_service_account(self) -> global___IAMServiceAccount: ...
    @property
    def scoped_permissions(self) -> qwak.administration.runtime_configuration.v0.hosting.aws.auth_pb2.AWSScopedPermissions: ...
    region: builtins.str
    def __init__(
        self,
        *,
        iam_service_account: global___IAMServiceAccount | None = ...,
        scoped_permissions: qwak.administration.runtime_configuration.v0.hosting.aws.auth_pb2.AWSScopedPermissions | None = ...,
        region: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["auth", b"auth", "iam_service_account", b"iam_service_account", "scoped_permissions", b"scoped_permissions"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["auth", b"auth", "iam_service_account", b"iam_service_account", "region", b"region", "scoped_permissions", b"scoped_permissions"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["auth", b"auth"]) -> typing_extensions.Literal["iam_service_account", "scoped_permissions"] | None: ...

global___AWSHostingConfiguration = AWSHostingConfiguration

class GCPHostingConfiguration(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    GCP_SERVICE_ACCOUNT_FIELD_NUMBER: builtins.int
    REGION_FIELD_NUMBER: builtins.int
    PROJECT_ID_FIELD_NUMBER: builtins.int
    @property
    def gcp_service_account(self) -> global___GCPServiceAccountAuth: ...
    region: builtins.str
    project_id: builtins.str
    def __init__(
        self,
        *,
        gcp_service_account: global___GCPServiceAccountAuth | None = ...,
        region: builtins.str = ...,
        project_id: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["auth", b"auth", "gcp_service_account", b"gcp_service_account"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["auth", b"auth", "gcp_service_account", b"gcp_service_account", "project_id", b"project_id", "region", b"region"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["auth", b"auth"]) -> typing_extensions.Literal["gcp_service_account"] | None: ...

global___GCPHostingConfiguration = GCPHostingConfiguration

class GCPServiceAccountAuth(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SERVICE_ACCOUNT_FIELD_NUMBER: builtins.int
    SERVICE_ACCOUNT_JSON_FIELD_NUMBER: builtins.int
    @property
    def service_account(self) -> global___IAMServiceAccount: ...
    @property
    def service_account_json(self) -> qwak.administration.runtime_configuration.v0.creds.secret_pb2.SecretKeyRef: ...
    def __init__(
        self,
        *,
        service_account: global___IAMServiceAccount | None = ...,
        service_account_json: qwak.administration.runtime_configuration.v0.creds.secret_pb2.SecretKeyRef | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["service_account", b"service_account", "service_account_json", b"service_account_json"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["service_account", b"service_account", "service_account_json", b"service_account_json"]) -> None: ...

global___GCPServiceAccountAuth = GCPServiceAccountAuth

class IAMServiceAccount(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

global___IAMServiceAccount = IAMServiceAccount

class AzureHostingConfiguration(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    AZURE_AUTH_FIELD_NUMBER: builtins.int
    REGION_FIELD_NUMBER: builtins.int
    AZURE_TENANT_ID_FIELD_NUMBER: builtins.int
    @property
    def azure_auth(self) -> qwak.administration.runtime_configuration.v0.hosting.azure.auth_pb2.AzureAuthentication: ...
    region: builtins.str
    azure_tenant_id: builtins.str
    def __init__(
        self,
        *,
        azure_auth: qwak.administration.runtime_configuration.v0.hosting.azure.auth_pb2.AzureAuthentication | None = ...,
        region: builtins.str = ...,
        azure_tenant_id: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["azure_auth", b"azure_auth"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["azure_auth", b"azure_auth", "azure_tenant_id", b"azure_tenant_id", "region", b"region"]) -> None: ...

global___AzureHostingConfiguration = AzureHostingConfiguration
