"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""

import builtins
import google.protobuf.descriptor
import google.protobuf.duration_pb2
import google.protobuf.message
import google.protobuf.timestamp_pb2
import typing

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

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

    SUBJECT_ID_FIELD_NUMBER: builtins.int
    SESSION_NAME_FIELD_NUMBER: builtins.int
    POLICY_FIELD_NUMBER: builtins.int
    DURATION_FIELD_NUMBER: builtins.int
    subject_id: builtins.str
    """The subject identifier for whom the ephemeral access key will be created.
    If not specified, it defaults to the subject that made the request.
    """
    session_name: builtins.str
    """Use the session name to uniquely identify a session when the same SA is impersonated by different principals or for different reasons
    Pattern: [\\w+=,.@-]*
    """
    policy: builtins.str
    """AWS-compatible policy in JSON format that you want to use as an inline session policy."""
    @property
    def duration(self) -> google.protobuf.duration_pb2.Duration:
        """Duration, which specifies the duration of the ephemeral access key,
        but duration won't be longer than the lifetime of the authentication token that made the request
        """

    def __init__(
        self,
        *,
        subject_id: builtins.str = ...,
        session_name: builtins.str = ...,
        policy: builtins.str = ...,
        duration: google.protobuf.duration_pb2.Duration | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["duration", b"duration"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["duration", b"duration", "policy", b"policy", "session_name", b"session_name", "subject_id", b"subject_id"]) -> None: ...

global___CreateEphemeralAccessKeyRequest = CreateEphemeralAccessKeyRequest

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

    ACCESS_KEY_ID_FIELD_NUMBER: builtins.int
    SECRET_FIELD_NUMBER: builtins.int
    SESSION_TOKEN_FIELD_NUMBER: builtins.int
    EXPIRES_AT_FIELD_NUMBER: builtins.int
    access_key_id: builtins.str
    """ID of the access key.
    The key is AWS compatible.
    """
    secret: builtins.str
    """Secret access key.
    The key is AWS compatible.
    """
    session_token: builtins.str
    """Session token.
    The token is AWS compatible. Should be attached to any call made by provided credentials.
    """
    @property
    def expires_at(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Expiration time.
        The date on which the current credentials expire.
        """

    def __init__(
        self,
        *,
        access_key_id: builtins.str = ...,
        secret: builtins.str = ...,
        session_token: builtins.str = ...,
        expires_at: google.protobuf.timestamp_pb2.Timestamp | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["expires_at", b"expires_at"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["access_key_id", b"access_key_id", "expires_at", b"expires_at", "secret", b"secret", "session_token", b"session_token"]) -> None: ...

global___CreateEphemeralAccessKeyResponse = CreateEphemeralAccessKeyResponse
