# Copyright (c) 2012-2024, 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, Tags
from .validators import boolean, integer
from .validators.ssm import (
compliance_level,
notification_event,
notification_type,
operating_system,
task_type,
validate_document_content,
validate_json_checker,
validate_s3_bucket_name,
)
[docs]class S3OutputLocation(AWSProperty):
"""
`S3OutputLocation <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-association-s3outputlocation.html>`__
"""
props: PropsDictType = {
"OutputS3BucketName": (str, False),
"OutputS3KeyPrefix": (str, False),
"OutputS3Region": (str, False),
}
[docs]class InstanceAssociationOutputLocation(AWSProperty):
"""
`InstanceAssociationOutputLocation <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-association-instanceassociationoutputlocation.html>`__
"""
props: PropsDictType = {
"S3Location": (S3OutputLocation, False),
}
[docs]class Targets(AWSProperty):
"""
`Targets <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtarget-targets.html>`__
"""
props: PropsDictType = {
"Key": (str, True),
"Values": ([str], True),
}
[docs]class Association(AWSObject):
"""
`Association <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-association.html>`__
"""
resource_type = "AWS::SSM::Association"
props: PropsDictType = {
"ApplyOnlyAtCronInterval": (boolean, False),
"AssociationName": (str, False),
"AutomationTargetParameterName": (str, False),
"CalendarNames": ([str], False),
"ComplianceSeverity": (str, False),
"DocumentVersion": (str, False),
"InstanceId": (str, False),
"MaxConcurrency": (str, False),
"MaxErrors": (str, False),
"Name": (str, True),
"OutputLocation": (InstanceAssociationOutputLocation, False),
"Parameters": (dict, False),
"ScheduleExpression": (str, False),
"ScheduleOffset": (integer, False),
"SyncCompliance": (str, False),
"Targets": ([Targets], False),
"WaitForSuccessTimeoutSeconds": (integer, False),
}
[docs]class AttachmentsSource(AWSProperty):
"""
`AttachmentsSource <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-document-attachmentssource.html>`__
"""
props: PropsDictType = {
"Key": (str, False),
"Name": (str, False),
"Values": ([str], False),
}
[docs]class DocumentRequires(AWSProperty):
"""
`DocumentRequires <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-document-documentrequires.html>`__
"""
props: PropsDictType = {
"Name": (str, False),
"Version": (str, False),
}
[docs]class Document(AWSObject):
"""
`Document <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-document.html>`__
"""
resource_type = "AWS::SSM::Document"
props: PropsDictType = {
"Attachments": ([AttachmentsSource], False),
"Content": (validate_document_content, True),
"DocumentFormat": (str, False),
"DocumentType": (str, False),
"Name": (str, False),
"Requires": ([DocumentRequires], False),
"Tags": (Tags, False),
"TargetType": (str, False),
"UpdateMethod": (str, False),
"VersionName": (str, False),
}
[docs]class MaintenanceWindow(AWSObject):
"""
`MaintenanceWindow <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html>`__
"""
resource_type = "AWS::SSM::MaintenanceWindow"
props: PropsDictType = {
"AllowUnassociatedTargets": (boolean, True),
"Cutoff": (integer, True),
"Description": (str, False),
"Duration": (integer, True),
"EndDate": (str, False),
"Name": (str, True),
"Schedule": (str, True),
"ScheduleOffset": (integer, False),
"ScheduleTimezone": (str, False),
"StartDate": (str, False),
"Tags": (Tags, False),
}
[docs]class MaintenanceWindowTarget(AWSObject):
"""
`MaintenanceWindowTarget <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtarget.html>`__
"""
resource_type = "AWS::SSM::MaintenanceWindowTarget"
props: PropsDictType = {
"Description": (str, False),
"Name": (str, False),
"OwnerInformation": (str, False),
"ResourceType": (str, True),
"Targets": ([Targets], True),
"WindowId": (str, True),
}
[docs]class LoggingInfo(AWSProperty):
"""
`LoggingInfo <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-logginginfo.html>`__
"""
props: PropsDictType = {
"Region": (str, True),
"S3Bucket": (validate_s3_bucket_name, True),
"S3Prefix": (str, False),
}
[docs]class MaintenanceWindowAutomationParameters(AWSProperty):
"""
`MaintenanceWindowAutomationParameters <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-maintenancewindowautomationparameters.html>`__
"""
props: PropsDictType = {
"DocumentVersion": (str, False),
"Parameters": (dict, False),
}
[docs]class MaintenanceWindowLambdaParameters(AWSProperty):
"""
`MaintenanceWindowLambdaParameters <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-maintenancewindowlambdaparameters.html>`__
"""
props: PropsDictType = {
"ClientContext": (str, False),
"Payload": (validate_json_checker, False),
"Qualifier": (str, False),
}
[docs]class CloudWatchOutputConfig(AWSProperty):
"""
`CloudWatchOutputConfig <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-cloudwatchoutputconfig.html>`__
"""
props: PropsDictType = {
"CloudWatchLogGroupName": (str, False),
"CloudWatchOutputEnabled": (boolean, False),
}
[docs]class NotificationConfig(AWSProperty):
"""
`NotificationConfig <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-notificationconfig.html>`__
"""
props: PropsDictType = {
"NotificationArn": (str, True),
"NotificationEvents": (notification_event, False),
"NotificationType": (notification_type, False),
}
[docs]class MaintenanceWindowRunCommandParameters(AWSProperty):
"""
`MaintenanceWindowRunCommandParameters <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-maintenancewindowruncommandparameters.html>`__
"""
props: PropsDictType = {
"CloudWatchOutputConfig": (CloudWatchOutputConfig, False),
"Comment": (str, False),
"DocumentHash": (str, False),
"DocumentHashType": (str, False),
"DocumentVersion": (str, False),
"NotificationConfig": (NotificationConfig, False),
"OutputS3BucketName": (validate_s3_bucket_name, False),
"OutputS3KeyPrefix": (str, False),
"Parameters": (dict, False),
"ServiceRoleArn": (str, False),
"TimeoutSeconds": (integer, False),
}
[docs]class MaintenanceWindowStepFunctionsParameters(AWSProperty):
"""
`MaintenanceWindowStepFunctionsParameters <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-maintenancewindowstepfunctionsparameters.html>`__
"""
props: PropsDictType = {
"Input": (str, False),
"Name": (str, False),
}
[docs]class TaskInvocationParameters(AWSProperty):
"""
`TaskInvocationParameters <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-taskinvocationparameters.html>`__
"""
props: PropsDictType = {
"MaintenanceWindowAutomationParameters": (
MaintenanceWindowAutomationParameters,
False,
),
"MaintenanceWindowLambdaParameters": (MaintenanceWindowLambdaParameters, False),
"MaintenanceWindowRunCommandParameters": (
MaintenanceWindowRunCommandParameters,
False,
),
"MaintenanceWindowStepFunctionsParameters": (
MaintenanceWindowStepFunctionsParameters,
False,
),
}
[docs]class MaintenanceWindowTask(AWSObject):
"""
`MaintenanceWindowTask <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtask.html>`__
"""
resource_type = "AWS::SSM::MaintenanceWindowTask"
props: PropsDictType = {
"CutoffBehavior": (str, False),
"Description": (str, False),
"LoggingInfo": (LoggingInfo, False),
"MaxConcurrency": (str, False),
"MaxErrors": (str, False),
"Name": (str, False),
"Priority": (integer, True),
"ServiceRoleArn": (str, False),
"Targets": ([Targets], False),
"TaskArn": (str, True),
"TaskInvocationParameters": (TaskInvocationParameters, False),
"TaskParameters": (dict, False),
"TaskType": (task_type, True),
"WindowId": (str, True),
}
[docs]class Parameter(AWSObject):
"""
`Parameter <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-parameter.html>`__
"""
resource_type = "AWS::SSM::Parameter"
props: PropsDictType = {
"AllowedPattern": (str, False),
"DataType": (str, False),
"Description": (str, False),
"Name": (str, False),
"Policies": (str, False),
"Tags": (dict, False),
"Tier": (str, False),
"Type": (str, True),
"Value": (str, True),
}
[docs]class PatchFilter(AWSProperty):
"""
`PatchFilter <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-patchfilter.html>`__
"""
props: PropsDictType = {
"Key": (str, False),
"Values": ([str], False),
}
[docs]class PatchFilterGroup(AWSProperty):
"""
`PatchFilterGroup <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-patchfiltergroup.html>`__
"""
props: PropsDictType = {
"PatchFilters": ([PatchFilter], False),
}
[docs]class PatchSource(AWSProperty):
"""
`PatchSource <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-patchsource.html>`__
"""
props: PropsDictType = {
"Configuration": (str, False),
"Name": (str, False),
"Products": ([str], False),
}
[docs]class Rule(AWSProperty):
"""
`Rule <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-rule.html>`__
"""
props: PropsDictType = {
"ApproveAfterDays": (integer, False),
"ApproveUntilDate": (str, False),
"ComplianceLevel": (compliance_level, False),
"EnableNonSecurity": (boolean, False),
"PatchFilterGroup": (PatchFilterGroup, False),
}
[docs]class RuleGroup(AWSProperty):
"""
`RuleGroup <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-rulegroup.html>`__
"""
props: PropsDictType = {
"PatchRules": ([Rule], False),
}
[docs]class PatchBaseline(AWSObject):
"""
`PatchBaseline <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-patchbaseline.html>`__
"""
resource_type = "AWS::SSM::PatchBaseline"
props: PropsDictType = {
"ApprovalRules": (RuleGroup, False),
"ApprovedPatches": ([str], False),
"ApprovedPatchesComplianceLevel": (compliance_level, False),
"ApprovedPatchesEnableNonSecurity": (boolean, False),
"DefaultBaseline": (boolean, False),
"Description": (str, False),
"GlobalFilters": (PatchFilterGroup, False),
"Name": (str, True),
"OperatingSystem": (operating_system, False),
"PatchGroups": ([str], False),
"RejectedPatches": ([str], False),
"RejectedPatchesAction": (str, False),
"Sources": ([PatchSource], False),
"Tags": (Tags, False),
}
[docs]class S3Destination(AWSProperty):
"""
`S3Destination <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-resourcedatasync-s3destination.html>`__
"""
props: PropsDictType = {
"BucketName": (str, True),
"BucketPrefix": (str, False),
"BucketRegion": (str, True),
"KMSKeyArn": (str, False),
"SyncFormat": (str, True),
}
[docs]class AwsOrganizationsSource(AWSProperty):
"""
`AwsOrganizationsSource <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-resourcedatasync-awsorganizationssource.html>`__
"""
props: PropsDictType = {
"OrganizationSourceType": (str, True),
"OrganizationalUnits": ([str], False),
}
[docs]class SyncSource(AWSProperty):
"""
`SyncSource <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-resourcedatasync-syncsource.html>`__
"""
props: PropsDictType = {
"AwsOrganizationsSource": (AwsOrganizationsSource, False),
"IncludeFutureRegions": (boolean, False),
"SourceRegions": ([str], True),
"SourceType": (str, True),
}
[docs]class ResourceDataSync(AWSObject):
"""
`ResourceDataSync <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-resourcedatasync.html>`__
"""
resource_type = "AWS::SSM::ResourceDataSync"
props: PropsDictType = {
"BucketName": (str, False),
"BucketPrefix": (str, False),
"BucketRegion": (str, False),
"KMSKeyArn": (str, False),
"S3Destination": (S3Destination, False),
"SyncFormat": (str, False),
"SyncName": (str, True),
"SyncSource": (SyncSource, False),
"SyncType": (str, False),
}
[docs]class ResourcePolicy(AWSObject):
"""
`ResourcePolicy <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-resourcepolicy.html>`__
"""
resource_type = "AWS::SSM::ResourcePolicy"
props: PropsDictType = {
"Policy": (dict, True),
"ResourceArn": (str, True),
}