# Copyright (c) 2012-2025, Mark Peek <mark@peek.org>
# All rights reserved.
#
# See LICENSE file for full license.
#
# *** Do not modify - this file is autogenerated ***


from . import AWSObject, AWSProperty, PropsDictType


class S3Bucket(AWSProperty):
    """
    `S3Bucket <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmguiconnect-preferences-s3bucket.html>`__
    """

    props: PropsDictType = {
        "BucketName": (str, True),
        "BucketOwner": (str, True),
    }


class RecordingDestinations(AWSProperty):
    """
    `RecordingDestinations <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmguiconnect-preferences-recordingdestinations.html>`__
    """

    props: PropsDictType = {
        "S3Buckets": ([S3Bucket], True),
    }


class ConnectionRecordingPreferences(AWSProperty):
    """
    `ConnectionRecordingPreferences <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmguiconnect-preferences-connectionrecordingpreferences.html>`__
    """

    props: PropsDictType = {
        "KMSKeyArn": (str, True),
        "RecordingDestinations": (RecordingDestinations, True),
    }


class Preferences(AWSObject):
    """
    `Preferences <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmguiconnect-preferences.html>`__
    """

    resource_type = "AWS::SSMGuiConnect::Preferences"

    props: PropsDictType = {
        "ConnectionRecordingPreferences": (ConnectionRecordingPreferences, False),
    }
