# WARNING ABOUT GENERATED CODE
#
# This file is generated. See the contributing guide for more information:
# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
#
# WARNING ABOUT GENERATED CODE

module Aws::SecretsManager
  module Types

    class APIErrorType
      attr_accessor secret_id: ::String
      attr_accessor error_code: ::String
      attr_accessor message: ::String
      SENSITIVE: []
    end

    class BatchGetSecretValueRequest
      attr_accessor secret_id_list: ::Array[::String]
      attr_accessor filters: ::Array[Types::Filter]
      attr_accessor max_results: ::Integer
      attr_accessor next_token: ::String
      SENSITIVE: []
    end

    class BatchGetSecretValueResponse
      attr_accessor secret_values: ::Array[Types::SecretValueEntry]
      attr_accessor next_token: ::String
      attr_accessor errors: ::Array[Types::APIErrorType]
      SENSITIVE: []
    end

    class CancelRotateSecretRequest
      attr_accessor secret_id: ::String
      SENSITIVE: []
    end

    class CancelRotateSecretResponse
      attr_accessor arn: ::String
      attr_accessor name: ::String
      attr_accessor version_id: ::String
      SENSITIVE: []
    end

    class CreateSecretRequest
      attr_accessor name: ::String
      attr_accessor client_request_token: ::String
      attr_accessor description: ::String
      attr_accessor kms_key_id: ::String
      attr_accessor secret_binary: ::String
      attr_accessor secret_string: ::String
      attr_accessor tags: ::Array[Types::Tag]
      attr_accessor add_replica_regions: ::Array[Types::ReplicaRegionType]
      attr_accessor force_overwrite_replica_secret: bool
      attr_accessor type: ::String
      SENSITIVE: [:secret_binary, :secret_string]
    end

    class CreateSecretResponse
      attr_accessor arn: ::String
      attr_accessor name: ::String
      attr_accessor version_id: ::String
      attr_accessor replication_status: ::Array[Types::ReplicationStatusType]
      SENSITIVE: []
    end

    class DecryptionFailure
      attr_accessor message: ::String
      SENSITIVE: []
    end

    class DeleteResourcePolicyRequest
      attr_accessor secret_id: ::String
      SENSITIVE: []
    end

    class DeleteResourcePolicyResponse
      attr_accessor arn: ::String
      attr_accessor name: ::String
      SENSITIVE: []
    end

    class DeleteSecretRequest
      attr_accessor secret_id: ::String
      attr_accessor recovery_window_in_days: ::Integer
      attr_accessor force_delete_without_recovery: bool
      SENSITIVE: []
    end

    class DeleteSecretResponse
      attr_accessor arn: ::String
      attr_accessor name: ::String
      attr_accessor deletion_date: ::Time
      SENSITIVE: []
    end

    class DescribeSecretRequest
      attr_accessor secret_id: ::String
      SENSITIVE: []
    end

    class DescribeSecretResponse
      attr_accessor arn: ::String
      attr_accessor name: ::String
      attr_accessor type: ::String
      attr_accessor description: ::String
      attr_accessor kms_key_id: ::String
      attr_accessor rotation_enabled: bool
      attr_accessor rotation_lambda_arn: ::String
      attr_accessor rotation_rules: Types::RotationRulesType
      attr_accessor external_secret_rotation_metadata: ::Array[Types::ExternalSecretRotationMetadataItem]
      attr_accessor external_secret_rotation_role_arn: ::String
      attr_accessor last_rotated_date: ::Time
      attr_accessor last_changed_date: ::Time
      attr_accessor last_accessed_date: ::Time
      attr_accessor deleted_date: ::Time
      attr_accessor next_rotation_date: ::Time
      attr_accessor tags: ::Array[Types::Tag]
      attr_accessor version_ids_to_stages: ::Hash[::String, ::Array[::String]]
      attr_accessor owning_service: ::String
      attr_accessor created_date: ::Time
      attr_accessor primary_region: ::String
      attr_accessor replication_status: ::Array[Types::ReplicationStatusType]
      SENSITIVE: []
    end

    class EncryptionFailure
      attr_accessor message: ::String
      SENSITIVE: []
    end

    class ExternalSecretRotationMetadataItem
      attr_accessor key: ::String
      attr_accessor value: ::String
      SENSITIVE: []
    end

    class Filter
      attr_accessor key: ("description" | "name" | "tag-key" | "tag-value" | "primary-region" | "owning-service" | "all")
      attr_accessor values: ::Array[::String]
      SENSITIVE: []
    end

    class GetRandomPasswordRequest
      attr_accessor password_length: ::Integer
      attr_accessor exclude_characters: ::String
      attr_accessor exclude_numbers: bool
      attr_accessor exclude_punctuation: bool
      attr_accessor exclude_uppercase: bool
      attr_accessor exclude_lowercase: bool
      attr_accessor include_space: bool
      attr_accessor require_each_included_type: bool
      SENSITIVE: []
    end

    class GetRandomPasswordResponse
      attr_accessor random_password: ::String
      SENSITIVE: [:random_password]
    end

    class GetResourcePolicyRequest
      attr_accessor secret_id: ::String
      SENSITIVE: []
    end

    class GetResourcePolicyResponse
      attr_accessor arn: ::String
      attr_accessor name: ::String
      attr_accessor resource_policy: ::String
      SENSITIVE: []
    end

    class GetSecretValueRequest
      attr_accessor secret_id: ::String
      attr_accessor version_id: ::String
      attr_accessor version_stage: ::String
      SENSITIVE: []
    end

    class GetSecretValueResponse
      attr_accessor arn: ::String
      attr_accessor name: ::String
      attr_accessor version_id: ::String
      attr_accessor secret_binary: ::String
      attr_accessor secret_string: ::String
      attr_accessor version_stages: ::Array[::String]
      attr_accessor created_date: ::Time
      SENSITIVE: [:secret_binary, :secret_string]
    end

    class InternalServiceError
      attr_accessor message: ::String
      SENSITIVE: []
    end

    class InvalidNextTokenException
      attr_accessor message: ::String
      SENSITIVE: []
    end

    class InvalidParameterException
      attr_accessor message: ::String
      SENSITIVE: []
    end

    class InvalidRequestException
      attr_accessor message: ::String
      SENSITIVE: []
    end

    class LimitExceededException
      attr_accessor message: ::String
      SENSITIVE: []
    end

    class ListSecretVersionIdsRequest
      attr_accessor secret_id: ::String
      attr_accessor max_results: ::Integer
      attr_accessor next_token: ::String
      attr_accessor include_deprecated: bool
      SENSITIVE: []
    end

    class ListSecretVersionIdsResponse
      attr_accessor versions: ::Array[Types::SecretVersionsListEntry]
      attr_accessor next_token: ::String
      attr_accessor arn: ::String
      attr_accessor name: ::String
      SENSITIVE: []
    end

    class ListSecretsRequest
      attr_accessor include_planned_deletion: bool
      attr_accessor max_results: ::Integer
      attr_accessor next_token: ::String
      attr_accessor filters: ::Array[Types::Filter]
      attr_accessor sort_order: ("asc" | "desc")
      attr_accessor sort_by: ("created-date" | "last-accessed-date" | "last-changed-date" | "name")
      SENSITIVE: []
    end

    class ListSecretsResponse
      attr_accessor secret_list: ::Array[Types::SecretListEntry]
      attr_accessor next_token: ::String
      SENSITIVE: []
    end

    class MalformedPolicyDocumentException
      attr_accessor message: ::String
      SENSITIVE: []
    end

    class PreconditionNotMetException
      attr_accessor message: ::String
      SENSITIVE: []
    end

    class PublicPolicyException
      attr_accessor message: ::String
      SENSITIVE: []
    end

    class PutResourcePolicyRequest
      attr_accessor secret_id: ::String
      attr_accessor resource_policy: ::String
      attr_accessor block_public_policy: bool
      SENSITIVE: []
    end

    class PutResourcePolicyResponse
      attr_accessor arn: ::String
      attr_accessor name: ::String
      SENSITIVE: []
    end

    class PutSecretValueRequest
      attr_accessor secret_id: ::String
      attr_accessor client_request_token: ::String
      attr_accessor secret_binary: ::String
      attr_accessor secret_string: ::String
      attr_accessor version_stages: ::Array[::String]
      attr_accessor rotation_token: ::String
      SENSITIVE: [:secret_binary, :secret_string, :rotation_token]
    end

    class PutSecretValueResponse
      attr_accessor arn: ::String
      attr_accessor name: ::String
      attr_accessor version_id: ::String
      attr_accessor version_stages: ::Array[::String]
      SENSITIVE: []
    end

    class RemoveRegionsFromReplicationRequest
      attr_accessor secret_id: ::String
      attr_accessor remove_replica_regions: ::Array[::String]
      SENSITIVE: []
    end

    class RemoveRegionsFromReplicationResponse
      attr_accessor arn: ::String
      attr_accessor replication_status: ::Array[Types::ReplicationStatusType]
      SENSITIVE: []
    end

    class ReplicaRegionType
      attr_accessor region: ::String
      attr_accessor kms_key_id: ::String
      SENSITIVE: []
    end

    class ReplicateSecretToRegionsRequest
      attr_accessor secret_id: ::String
      attr_accessor add_replica_regions: ::Array[Types::ReplicaRegionType]
      attr_accessor force_overwrite_replica_secret: bool
      SENSITIVE: []
    end

    class ReplicateSecretToRegionsResponse
      attr_accessor arn: ::String
      attr_accessor replication_status: ::Array[Types::ReplicationStatusType]
      SENSITIVE: []
    end

    class ReplicationStatusType
      attr_accessor region: ::String
      attr_accessor kms_key_id: ::String
      attr_accessor status: ("InSync" | "Failed" | "InProgress")
      attr_accessor status_message: ::String
      attr_accessor last_accessed_date: ::Time
      SENSITIVE: []
    end

    class ResourceExistsException
      attr_accessor message: ::String
      SENSITIVE: []
    end

    class ResourceNotFoundException
      attr_accessor message: ::String
      SENSITIVE: []
    end

    class RestoreSecretRequest
      attr_accessor secret_id: ::String
      SENSITIVE: []
    end

    class RestoreSecretResponse
      attr_accessor arn: ::String
      attr_accessor name: ::String
      SENSITIVE: []
    end

    class RotateSecretRequest
      attr_accessor secret_id: ::String
      attr_accessor client_request_token: ::String
      attr_accessor rotation_lambda_arn: ::String
      attr_accessor rotation_rules: Types::RotationRulesType
      attr_accessor external_secret_rotation_metadata: ::Array[Types::ExternalSecretRotationMetadataItem]
      attr_accessor external_secret_rotation_role_arn: ::String
      attr_accessor rotate_immediately: bool
      SENSITIVE: []
    end

    class RotateSecretResponse
      attr_accessor arn: ::String
      attr_accessor name: ::String
      attr_accessor version_id: ::String
      SENSITIVE: []
    end

    class RotationRulesType
      attr_accessor automatically_after_days: ::Integer
      attr_accessor duration: ::String
      attr_accessor schedule_expression: ::String
      SENSITIVE: []
    end

    class SecretListEntry
      attr_accessor arn: ::String
      attr_accessor name: ::String
      attr_accessor type: ::String
      attr_accessor description: ::String
      attr_accessor kms_key_id: ::String
      attr_accessor rotation_enabled: bool
      attr_accessor rotation_lambda_arn: ::String
      attr_accessor rotation_rules: Types::RotationRulesType
      attr_accessor external_secret_rotation_metadata: ::Array[Types::ExternalSecretRotationMetadataItem]
      attr_accessor external_secret_rotation_role_arn: ::String
      attr_accessor last_rotated_date: ::Time
      attr_accessor last_changed_date: ::Time
      attr_accessor last_accessed_date: ::Time
      attr_accessor deleted_date: ::Time
      attr_accessor next_rotation_date: ::Time
      attr_accessor tags: ::Array[Types::Tag]
      attr_accessor secret_versions_to_stages: ::Hash[::String, ::Array[::String]]
      attr_accessor owning_service: ::String
      attr_accessor created_date: ::Time
      attr_accessor primary_region: ::String
      SENSITIVE: []
    end

    class SecretValueEntry
      attr_accessor arn: ::String
      attr_accessor name: ::String
      attr_accessor version_id: ::String
      attr_accessor secret_binary: ::String
      attr_accessor secret_string: ::String
      attr_accessor version_stages: ::Array[::String]
      attr_accessor created_date: ::Time
      SENSITIVE: [:secret_binary, :secret_string]
    end

    class SecretVersionsListEntry
      attr_accessor version_id: ::String
      attr_accessor version_stages: ::Array[::String]
      attr_accessor last_accessed_date: ::Time
      attr_accessor created_date: ::Time
      attr_accessor kms_key_ids: ::Array[::String]
      SENSITIVE: []
    end

    class StopReplicationToReplicaRequest
      attr_accessor secret_id: ::String
      SENSITIVE: []
    end

    class StopReplicationToReplicaResponse
      attr_accessor arn: ::String
      SENSITIVE: []
    end

    class Tag
      attr_accessor key: ::String
      attr_accessor value: ::String
      SENSITIVE: []
    end

    class TagResourceRequest
      attr_accessor secret_id: ::String
      attr_accessor tags: ::Array[Types::Tag]
      SENSITIVE: []
    end

    class UntagResourceRequest
      attr_accessor secret_id: ::String
      attr_accessor tag_keys: ::Array[::String]
      SENSITIVE: []
    end

    class UpdateSecretRequest
      attr_accessor secret_id: ::String
      attr_accessor client_request_token: ::String
      attr_accessor description: ::String
      attr_accessor kms_key_id: ::String
      attr_accessor secret_binary: ::String
      attr_accessor secret_string: ::String
      attr_accessor type: ::String
      SENSITIVE: [:secret_binary, :secret_string]
    end

    class UpdateSecretResponse
      attr_accessor arn: ::String
      attr_accessor name: ::String
      attr_accessor version_id: ::String
      SENSITIVE: []
    end

    class UpdateSecretVersionStageRequest
      attr_accessor secret_id: ::String
      attr_accessor version_stage: ::String
      attr_accessor remove_from_version_id: ::String
      attr_accessor move_to_version_id: ::String
      SENSITIVE: []
    end

    class UpdateSecretVersionStageResponse
      attr_accessor arn: ::String
      attr_accessor name: ::String
      SENSITIVE: []
    end

    class ValidateResourcePolicyRequest
      attr_accessor secret_id: ::String
      attr_accessor resource_policy: ::String
      SENSITIVE: []
    end

    class ValidateResourcePolicyResponse
      attr_accessor policy_validation_passed: bool
      attr_accessor validation_errors: ::Array[Types::ValidationErrorsEntry]
      SENSITIVE: []
    end

    class ValidationErrorsEntry
      attr_accessor check_name: ::String
      attr_accessor error_message: ::String
      SENSITIVE: []
    end
  end
end
