From 96d8d8e893d118f5c8360176133e8a0e5477fd80 Mon Sep 17 00:00:00 2001 From: Mark Peek Date: Mon, 30 Sep 2024 12:56:34 -0700 Subject: [PATCH] Add new AWS resources Added: - AppTest - ApplicationSignals - LaunchWizard - PCAConnectorSCEP - QBusiness - SSMQuickSetup --- resources_aws.md | 6 + troposphere/applicationsignals.py | 187 +++++++++++++ troposphere/apptest.py | 295 ++++++++++++++++++++ troposphere/launchwizard.py | 25 ++ troposphere/pcaconnectorscep.py | 69 +++++ troposphere/qbusiness.py | 441 ++++++++++++++++++++++++++++++ troposphere/ssmquicksetup.py | 53 ++++ 7 files changed, 1076 insertions(+) create mode 100644 troposphere/applicationsignals.py create mode 100644 troposphere/apptest.py create mode 100644 troposphere/launchwizard.py create mode 100644 troposphere/pcaconnectorscep.py create mode 100644 troposphere/qbusiness.py create mode 100644 troposphere/ssmquicksetup.py diff --git a/resources_aws.md b/resources_aws.md index 6305f0279..4af23d354 100644 --- a/resources_aws.md +++ b/resources_aws.md @@ -15,8 +15,10 @@ - [AWS::AppRunner](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_AppRunner.html) - [AWS::AppStream](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_AppStream.html) - [AWS::AppSync](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_AppSync.html) +- [AWS::AppTest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_AppTest.html) - [AWS::ApplicationAutoScaling](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ApplicationAutoScaling.html) - [AWS::ApplicationInsights](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ApplicationInsights.html) +- [AWS::ApplicationSignals](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ApplicationSignals.html) - [AWS::Athena](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Athena.html) - [AWS::AuditManager](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_AuditManager.html) - [AWS::AutoScaling](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_AutoScaling.html) @@ -136,6 +138,7 @@ - [AWS::KinesisVideo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_KinesisVideo.html) - [AWS::LakeFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_LakeFormation.html) - [AWS::Lambda](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Lambda.html) +- [AWS::LaunchWizard](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_LaunchWizard.html) - [AWS::Lex](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Lex.html) - [AWS::LicenseManager](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_LicenseManager.html) - [AWS::Lightsail](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Lightsail.html) @@ -171,6 +174,7 @@ - [AWS::OpsWorksCM](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_OpsWorksCM.html) - [AWS::Organizations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Organizations.html) - [AWS::PCAConnectorAD](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_PCAConnectorAD.html) +- [AWS::PCAConnectorSCEP](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_PCAConnectorSCEP.html) - [AWS::Panorama](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Panorama.html) - [AWS::PaymentCryptography](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_PaymentCryptography.html) - [AWS::Personalize](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Personalize.html) @@ -178,6 +182,7 @@ - [AWS::PinpointEmail](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_PinpointEmail.html) - [AWS::Pipes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Pipes.html) - [AWS::Proton](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Proton.html) +- [AWS::QBusiness](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_QBusiness.html) - [AWS::QLDB](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_QLDB.html) - [AWS::QuickSight](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_QuickSight.html) - [AWS::RAM](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_RAM.html) @@ -208,6 +213,7 @@ - [AWS::SSM](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_SSM.html) - [AWS::SSMContacts](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_SSMContacts.html) - [AWS::SSMIncidents](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_SSMIncidents.html) +- [AWS::SSMQuickSetup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_SSMQuickSetup.html) - [AWS::SSO](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_SSO.html) - [AWS::SageMaker](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_SageMaker.html) - [AWS::Scheduler](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Scheduler.html) diff --git a/troposphere/applicationsignals.py b/troposphere/applicationsignals.py new file mode 100644 index 000000000..ab495df89 --- /dev/null +++ b/troposphere/applicationsignals.py @@ -0,0 +1,187 @@ +# Copyright (c) 2012-2024, Mark Peek +# 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, double, integer + + +class CalendarInterval(AWSProperty): + """ + `CalendarInterval `__ + """ + + props: PropsDictType = { + "Duration": (integer, True), + "DurationUnit": (str, True), + "StartTime": (integer, True), + } + + +class RollingInterval(AWSProperty): + """ + `RollingInterval `__ + """ + + props: PropsDictType = { + "Duration": (integer, True), + "DurationUnit": (str, True), + } + + +class Interval(AWSProperty): + """ + `Interval `__ + """ + + props: PropsDictType = { + "CalendarInterval": (CalendarInterval, False), + "RollingInterval": (RollingInterval, False), + } + + +class Goal(AWSProperty): + """ + `Goal `__ + """ + + props: PropsDictType = { + "AttainmentGoal": (double, False), + "Interval": (Interval, False), + "WarningThreshold": (double, False), + } + + +class Dimension(AWSProperty): + """ + `Dimension `__ + """ + + props: PropsDictType = { + "Name": (str, True), + "Value": (str, True), + } + + +class Metric(AWSProperty): + """ + `Metric `__ + """ + + props: PropsDictType = { + "Dimensions": ([Dimension], False), + "MetricName": (str, False), + "Namespace": (str, False), + } + + +class MetricStat(AWSProperty): + """ + `MetricStat `__ + """ + + props: PropsDictType = { + "Metric": (Metric, True), + "Period": (integer, True), + "Stat": (str, True), + "Unit": (str, False), + } + + +class MetricDataQuery(AWSProperty): + """ + `MetricDataQuery `__ + """ + + props: PropsDictType = { + "AccountId": (str, False), + "Expression": (str, False), + "Id": (str, True), + "MetricStat": (MetricStat, False), + "ReturnData": (boolean, False), + } + + +class MonitoredRequestCountMetric(AWSProperty): + """ + `MonitoredRequestCountMetric `__ + """ + + props: PropsDictType = { + "BadCountMetric": ([MetricDataQuery], False), + "GoodCountMetric": ([MetricDataQuery], False), + } + + +class RequestBasedSliMetric(AWSProperty): + """ + `RequestBasedSliMetric `__ + """ + + props: PropsDictType = { + "KeyAttributes": (dict, False), + "MetricType": (str, False), + "MonitoredRequestCountMetric": (MonitoredRequestCountMetric, False), + "OperationName": (str, False), + "TotalRequestCountMetric": ([MetricDataQuery], False), + } + + +class RequestBasedSli(AWSProperty): + """ + `RequestBasedSli `__ + """ + + props: PropsDictType = { + "ComparisonOperator": (str, False), + "MetricThreshold": (double, False), + "RequestBasedSliMetric": (RequestBasedSliMetric, True), + } + + +class SliMetric(AWSProperty): + """ + `SliMetric `__ + """ + + props: PropsDictType = { + "KeyAttributes": (dict, False), + "MetricDataQueries": ([MetricDataQuery], False), + "MetricType": (str, False), + "OperationName": (str, False), + "PeriodSeconds": (integer, False), + "Statistic": (str, False), + } + + +class Sli(AWSProperty): + """ + `Sli `__ + """ + + props: PropsDictType = { + "ComparisonOperator": (str, True), + "MetricThreshold": (double, True), + "SliMetric": (SliMetric, True), + } + + +class ServiceLevelObjective(AWSObject): + """ + `ServiceLevelObjective `__ + """ + + resource_type = "AWS::ApplicationSignals::ServiceLevelObjective" + + props: PropsDictType = { + "Description": (str, False), + "Goal": (Goal, False), + "Name": (str, True), + "RequestBasedSli": (RequestBasedSli, False), + "Sli": (Sli, False), + "Tags": (Tags, False), + } diff --git a/troposphere/apptest.py b/troposphere/apptest.py new file mode 100644 index 000000000..86a30fa89 --- /dev/null +++ b/troposphere/apptest.py @@ -0,0 +1,295 @@ +# Copyright (c) 2012-2024, Mark Peek +# All rights reserved. +# +# See LICENSE file for full license. +# +# *** Do not modify - this file is autogenerated *** + + +from . import AWSObject, AWSProperty, PropsDictType +from .validators import boolean, double + + +class DataSet(AWSProperty): + """ + `DataSet `__ + """ + + props: PropsDictType = { + "Ccsid": (str, True), + "Format": (str, True), + "Length": (double, True), + "Name": (str, True), + "Type": (str, True), + } + + +class SourceDatabaseMetadata(AWSProperty): + """ + `SourceDatabaseMetadata `__ + """ + + props: PropsDictType = { + "CaptureTool": (str, True), + "Type": (str, True), + } + + +class TargetDatabaseMetadata(AWSProperty): + """ + `TargetDatabaseMetadata `__ + """ + + props: PropsDictType = { + "CaptureTool": (str, True), + "Type": (str, True), + } + + +class DatabaseCDC(AWSProperty): + """ + `DatabaseCDC `__ + """ + + props: PropsDictType = { + "SourceMetadata": (SourceDatabaseMetadata, True), + "TargetMetadata": (TargetDatabaseMetadata, True), + } + + +class FileMetadata(AWSProperty): + """ + `FileMetadata `__ + """ + + props: PropsDictType = { + "DataSets": ([DataSet], False), + "DatabaseCDC": (DatabaseCDC, False), + } + + +class InputFile(AWSProperty): + """ + `InputFile `__ + """ + + props: PropsDictType = { + "FileMetadata": (FileMetadata, True), + "SourceLocation": (str, True), + "TargetLocation": (str, True), + } + + +class Input(AWSProperty): + """ + `Input `__ + """ + + props: PropsDictType = { + "File": (InputFile, True), + } + + +class OutputFile(AWSProperty): + """ + `OutputFile `__ + """ + + props: PropsDictType = { + "FileLocation": (str, False), + } + + +class Output(AWSProperty): + """ + `Output `__ + """ + + props: PropsDictType = { + "File": (OutputFile, True), + } + + +class CompareAction(AWSProperty): + """ + `CompareAction `__ + """ + + props: PropsDictType = { + "Input": (Input, True), + "Output": (Output, False), + } + + +class MainframeActionProperties(AWSProperty): + """ + `MainframeActionProperties `__ + """ + + props: PropsDictType = { + "DmsTaskArn": (str, False), + } + + +class Batch(AWSProperty): + """ + `Batch `__ + """ + + props: PropsDictType = { + "BatchJobName": (str, True), + "BatchJobParameters": (dict, False), + "ExportDataSetNames": ([str], False), + } + + +class Script(AWSProperty): + """ + `Script `__ + """ + + props: PropsDictType = { + "ScriptLocation": (str, True), + "Type": (str, True), + } + + +class TN3270(AWSProperty): + """ + `TN3270 `__ + """ + + props: PropsDictType = { + "ExportDataSetNames": ([str], False), + "Script": (Script, True), + } + + +class MainframeActionType(AWSProperty): + """ + `MainframeActionType `__ + """ + + props: PropsDictType = { + "Batch": (Batch, False), + "Tn3270": (TN3270, False), + } + + +class MainframeAction(AWSProperty): + """ + `MainframeAction `__ + """ + + props: PropsDictType = { + "ActionType": (MainframeActionType, True), + "Properties": (MainframeActionProperties, False), + "Resource": (str, True), + } + + +class CloudFormationAction(AWSProperty): + """ + `CloudFormationAction `__ + """ + + props: PropsDictType = { + "ActionType": (str, False), + "Resource": (str, True), + } + + +class M2ManagedActionProperties(AWSProperty): + """ + `M2ManagedActionProperties `__ + """ + + props: PropsDictType = { + "ForceStop": (boolean, False), + "ImportDataSetLocation": (str, False), + } + + +class M2ManagedApplicationAction(AWSProperty): + """ + `M2ManagedApplicationAction `__ + """ + + props: PropsDictType = { + "ActionType": (str, True), + "Properties": (M2ManagedActionProperties, False), + "Resource": (str, True), + } + + +class M2NonManagedApplicationAction(AWSProperty): + """ + `M2NonManagedApplicationAction `__ + """ + + props: PropsDictType = { + "ActionType": (str, True), + "Resource": (str, True), + } + + +class ResourceAction(AWSProperty): + """ + `ResourceAction `__ + """ + + props: PropsDictType = { + "CloudFormationAction": (CloudFormationAction, False), + "M2ManagedApplicationAction": (M2ManagedApplicationAction, False), + "M2NonManagedApplicationAction": (M2NonManagedApplicationAction, False), + } + + +class StepAction(AWSProperty): + """ + `StepAction `__ + """ + + props: PropsDictType = { + "CompareAction": (CompareAction, False), + "MainframeAction": (MainframeAction, False), + "ResourceAction": (ResourceAction, False), + } + + +class Step(AWSProperty): + """ + `Step `__ + """ + + props: PropsDictType = { + "Action": (StepAction, True), + "Description": (str, False), + "Name": (str, True), + } + + +class TestCase(AWSObject): + """ + `TestCase `__ + """ + + resource_type = "AWS::AppTest::TestCase" + + props: PropsDictType = { + "Description": (str, False), + "Name": (str, True), + "Steps": ([Step], True), + "Tags": (dict, False), + } + + +class TestCaseLatestVersion(AWSProperty): + """ + `TestCaseLatestVersion `__ + """ + + props: PropsDictType = { + "Status": (str, True), + "Version": (double, True), + } diff --git a/troposphere/launchwizard.py b/troposphere/launchwizard.py new file mode 100644 index 000000000..63ace7213 --- /dev/null +++ b/troposphere/launchwizard.py @@ -0,0 +1,25 @@ +# Copyright (c) 2012-2024, Mark Peek +# All rights reserved. +# +# See LICENSE file for full license. +# +# *** Do not modify - this file is autogenerated *** + + +from . import AWSObject, PropsDictType, Tags + + +class Deployment(AWSObject): + """ + `Deployment `__ + """ + + resource_type = "AWS::LaunchWizard::Deployment" + + props: PropsDictType = { + "DeploymentPatternName": (str, True), + "Name": (str, True), + "Specifications": (dict, True), + "Tags": (Tags, False), + "WorkloadName": (str, True), + } diff --git a/troposphere/pcaconnectorscep.py b/troposphere/pcaconnectorscep.py new file mode 100644 index 000000000..49b1d61fe --- /dev/null +++ b/troposphere/pcaconnectorscep.py @@ -0,0 +1,69 @@ +# Copyright (c) 2012-2024, Mark Peek +# All rights reserved. +# +# See LICENSE file for full license. +# +# *** Do not modify - this file is autogenerated *** + + +from . import AWSObject, AWSProperty, PropsDictType + + +class Challenge(AWSObject): + """ + `Challenge `__ + """ + + resource_type = "AWS::PCAConnectorSCEP::Challenge" + + props: PropsDictType = { + "ConnectorArn": (str, True), + "Tags": (dict, False), + } + + +class IntuneConfiguration(AWSProperty): + """ + `IntuneConfiguration `__ + """ + + props: PropsDictType = { + "AzureApplicationId": (str, True), + "Domain": (str, True), + } + + +class MobileDeviceManagement(AWSProperty): + """ + `MobileDeviceManagement `__ + """ + + props: PropsDictType = { + "Intune": (IntuneConfiguration, True), + } + + +class Connector(AWSObject): + """ + `Connector `__ + """ + + resource_type = "AWS::PCAConnectorSCEP::Connector" + + props: PropsDictType = { + "CertificateAuthorityArn": (str, True), + "MobileDeviceManagement": (MobileDeviceManagement, False), + "Tags": (dict, False), + } + + +class OpenIdConfiguration(AWSProperty): + """ + `OpenIdConfiguration `__ + """ + + props: PropsDictType = { + "Audience": (str, False), + "Issuer": (str, False), + "Subject": (str, False), + } diff --git a/troposphere/qbusiness.py b/troposphere/qbusiness.py new file mode 100644 index 000000000..70a715418 --- /dev/null +++ b/troposphere/qbusiness.py @@ -0,0 +1,441 @@ +# Copyright (c) 2012-2024, Mark Peek +# 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 double + + +class AttachmentsConfiguration(AWSProperty): + """ + `AttachmentsConfiguration `__ + """ + + props: PropsDictType = { + "AttachmentsControlMode": (str, True), + } + + +class AutoSubscriptionConfiguration(AWSProperty): + """ + `AutoSubscriptionConfiguration `__ + """ + + props: PropsDictType = { + "AutoSubscribe": (str, True), + "DefaultSubscriptionType": (str, False), + } + + +class EncryptionConfiguration(AWSProperty): + """ + `EncryptionConfiguration `__ + """ + + props: PropsDictType = { + "KmsKeyId": (str, False), + } + + +class PersonalizationConfiguration(AWSProperty): + """ + `PersonalizationConfiguration `__ + """ + + props: PropsDictType = { + "PersonalizationControlMode": (str, True), + } + + +class QAppsConfiguration(AWSProperty): + """ + `QAppsConfiguration `__ + """ + + props: PropsDictType = { + "QAppsControlMode": (str, True), + } + + +class Application(AWSObject): + """ + `Application `__ + """ + + resource_type = "AWS::QBusiness::Application" + + props: PropsDictType = { + "AttachmentsConfiguration": (AttachmentsConfiguration, False), + "AutoSubscriptionConfiguration": (AutoSubscriptionConfiguration, False), + "ClientIdsForOIDC": ([str], False), + "Description": (str, False), + "DisplayName": (str, True), + "EncryptionConfiguration": (EncryptionConfiguration, False), + "IamIdentityProviderArn": (str, False), + "IdentityCenterInstanceArn": (str, False), + "IdentityType": (str, False), + "PersonalizationConfiguration": (PersonalizationConfiguration, False), + "QAppsConfiguration": (QAppsConfiguration, False), + "RoleArn": (str, False), + "Tags": (Tags, False), + } + + +class DataSourceVpcConfiguration(AWSProperty): + """ + `DataSourceVpcConfiguration `__ + """ + + props: PropsDictType = { + "SecurityGroupIds": ([str], True), + "SubnetIds": ([str], True), + } + + +class DocumentAttributeValue(AWSProperty): + """ + `DocumentAttributeValue `__ + """ + + props: PropsDictType = { + "DateValue": (str, False), + "LongValue": (double, False), + "StringListValue": ([str], False), + "StringValue": (str, False), + } + + +class DocumentAttributeCondition(AWSProperty): + """ + `DocumentAttributeCondition `__ + """ + + props: PropsDictType = { + "Key": (str, True), + "Operator": (str, True), + "Value": (DocumentAttributeValue, False), + } + + +class HookConfiguration(AWSProperty): + """ + `HookConfiguration `__ + """ + + props: PropsDictType = { + "InvocationCondition": (DocumentAttributeCondition, False), + "LambdaArn": (str, False), + "RoleArn": (str, False), + "S3BucketName": (str, False), + } + + +class DocumentAttributeTarget(AWSProperty): + """ + `DocumentAttributeTarget `__ + """ + + props: PropsDictType = { + "AttributeValueOperator": (str, False), + "Key": (str, True), + "Value": (DocumentAttributeValue, False), + } + + +class InlineDocumentEnrichmentConfiguration(AWSProperty): + """ + `InlineDocumentEnrichmentConfiguration `__ + """ + + props: PropsDictType = { + "Condition": (DocumentAttributeCondition, False), + "DocumentContentOperator": (str, False), + "Target": (DocumentAttributeTarget, False), + } + + +class DocumentEnrichmentConfiguration(AWSProperty): + """ + `DocumentEnrichmentConfiguration `__ + """ + + props: PropsDictType = { + "InlineConfigurations": ([InlineDocumentEnrichmentConfiguration], False), + "PostExtractionHookConfiguration": (HookConfiguration, False), + "PreExtractionHookConfiguration": (HookConfiguration, False), + } + + +class DataSource(AWSObject): + """ + `DataSource `__ + """ + + resource_type = "AWS::QBusiness::DataSource" + + props: PropsDictType = { + "ApplicationId": (str, True), + "Configuration": (dict, True), + "Description": (str, False), + "DisplayName": (str, True), + "DocumentEnrichmentConfiguration": (DocumentEnrichmentConfiguration, False), + "IndexId": (str, True), + "RoleArn": (str, False), + "SyncSchedule": (str, False), + "Tags": (Tags, False), + "VpcConfiguration": (DataSourceVpcConfiguration, False), + } + + +class DocumentAttributeConfiguration(AWSProperty): + """ + `DocumentAttributeConfiguration `__ + """ + + props: PropsDictType = { + "Name": (str, False), + "Search": (str, False), + "Type": (str, False), + } + + +class IndexCapacityConfiguration(AWSProperty): + """ + `IndexCapacityConfiguration `__ + """ + + props: PropsDictType = { + "Units": (double, False), + } + + +class Index(AWSObject): + """ + `Index `__ + """ + + resource_type = "AWS::QBusiness::Index" + + props: PropsDictType = { + "ApplicationId": (str, True), + "CapacityConfiguration": (IndexCapacityConfiguration, False), + "Description": (str, False), + "DisplayName": (str, True), + "DocumentAttributeConfigurations": ([DocumentAttributeConfiguration], False), + "Tags": (Tags, False), + "Type": (str, False), + } + + +class S3(AWSProperty): + """ + `S3 `__ + """ + + props: PropsDictType = { + "Bucket": (str, True), + "Key": (str, True), + } + + +class APISchema(AWSProperty): + """ + `APISchema `__ + """ + + props: PropsDictType = { + "Payload": (str, False), + "S3": (S3, False), + } + + +class CustomPluginConfiguration(AWSProperty): + """ + `CustomPluginConfiguration `__ + """ + + props: PropsDictType = { + "ApiSchema": (APISchema, True), + "ApiSchemaType": (str, True), + "Description": (str, True), + } + + +class BasicAuthConfiguration(AWSProperty): + """ + `BasicAuthConfiguration `__ + """ + + props: PropsDictType = { + "RoleArn": (str, True), + "SecretArn": (str, True), + } + + +class OAuth2ClientCredentialConfiguration(AWSProperty): + """ + `OAuth2ClientCredentialConfiguration `__ + """ + + props: PropsDictType = { + "RoleArn": (str, True), + "SecretArn": (str, True), + } + + +class PluginAuthConfiguration(AWSProperty): + """ + `PluginAuthConfiguration `__ + """ + + props: PropsDictType = { + "BasicAuthConfiguration": (BasicAuthConfiguration, False), + "NoAuthConfiguration": (dict, False), + "OAuth2ClientCredentialConfiguration": ( + OAuth2ClientCredentialConfiguration, + False, + ), + } + + +class Plugin(AWSObject): + """ + `Plugin `__ + """ + + resource_type = "AWS::QBusiness::Plugin" + + props: PropsDictType = { + "ApplicationId": (str, True), + "AuthConfiguration": (PluginAuthConfiguration, True), + "CustomPluginConfiguration": (CustomPluginConfiguration, False), + "DisplayName": (str, True), + "ServerUrl": (str, False), + "State": (str, False), + "Tags": (Tags, False), + "Type": (str, True), + } + + +class KendraIndexConfiguration(AWSProperty): + """ + `KendraIndexConfiguration `__ + """ + + props: PropsDictType = { + "IndexId": (str, True), + } + + +class NativeIndexConfiguration(AWSProperty): + """ + `NativeIndexConfiguration `__ + """ + + props: PropsDictType = { + "IndexId": (str, True), + } + + +class RetrieverConfiguration(AWSProperty): + """ + `RetrieverConfiguration `__ + """ + + props: PropsDictType = { + "KendraIndexConfiguration": (KendraIndexConfiguration, False), + "NativeIndexConfiguration": (NativeIndexConfiguration, False), + } + + +class Retriever(AWSObject): + """ + `Retriever `__ + """ + + resource_type = "AWS::QBusiness::Retriever" + + props: PropsDictType = { + "ApplicationId": (str, True), + "Configuration": (RetrieverConfiguration, True), + "DisplayName": (str, True), + "RoleArn": (str, False), + "Tags": (Tags, False), + "Type": (str, True), + } + + +class OpenIDConnectProviderConfiguration(AWSProperty): + """ + `OpenIDConnectProviderConfiguration `__ + """ + + props: PropsDictType = { + "SecretsArn": (str, True), + "SecretsRole": (str, True), + } + + +class SamlProviderConfiguration(AWSProperty): + """ + `SamlProviderConfiguration `__ + """ + + props: PropsDictType = { + "AuthenticationUrl": (str, True), + } + + +class IdentityProviderConfiguration(AWSProperty): + """ + `IdentityProviderConfiguration `__ + """ + + props: PropsDictType = { + "OpenIDConnectConfiguration": (OpenIDConnectProviderConfiguration, False), + "SamlConfiguration": (SamlProviderConfiguration, False), + } + + +class WebExperience(AWSObject): + """ + `WebExperience `__ + """ + + resource_type = "AWS::QBusiness::WebExperience" + + props: PropsDictType = { + "ApplicationId": (str, True), + "IdentityProviderConfiguration": (IdentityProviderConfiguration, False), + "RoleArn": (str, False), + "SamplePromptsControlMode": (str, False), + "Subtitle": (str, False), + "Tags": (Tags, False), + "Title": (str, False), + "WelcomeMessage": (str, False), + } + + +class TextDocumentStatistics(AWSProperty): + """ + `TextDocumentStatistics `__ + """ + + props: PropsDictType = { + "IndexedTextBytes": (double, False), + "IndexedTextDocumentCount": (double, False), + } + + +class IndexStatistics(AWSProperty): + """ + `IndexStatistics `__ + """ + + props: PropsDictType = { + "TextDocumentStatistics": (TextDocumentStatistics, False), + } diff --git a/troposphere/ssmquicksetup.py b/troposphere/ssmquicksetup.py new file mode 100644 index 000000000..864b3c607 --- /dev/null +++ b/troposphere/ssmquicksetup.py @@ -0,0 +1,53 @@ +# Copyright (c) 2012-2024, Mark Peek +# All rights reserved. +# +# See LICENSE file for full license. +# +# *** Do not modify - this file is autogenerated *** + + +from . import AWSObject, AWSProperty, PropsDictType + + +class ConfigurationDefinition(AWSProperty): + """ + `ConfigurationDefinition `__ + """ + + props: PropsDictType = { + "LocalDeploymentAdministrationRoleArn": (str, False), + "LocalDeploymentExecutionRoleName": (str, False), + "Parameters": (dict, True), + "Type": (str, True), + "TypeVersion": (str, False), + "id": (str, False), + } + + +class ConfigurationManager(AWSObject): + """ + `ConfigurationManager `__ + """ + + resource_type = "AWS::SSMQuickSetup::ConfigurationManager" + + props: PropsDictType = { + "ConfigurationDefinitions": ([ConfigurationDefinition], True), + "Description": (str, False), + "Name": (str, False), + "Tags": (dict, False), + } + + +class StatusSummary(AWSProperty): + """ + `StatusSummary `__ + """ + + props: PropsDictType = { + "LastUpdatedAt": (str, True), + "Status": (str, False), + "StatusDetails": (dict, False), + "StatusMessage": (str, False), + "StatusType": (str, True), + }