Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 61fe618

Browse files
committed
Add AWS Database Migration Service (DMS) support
1 parent bcbb841 commit 61fe618

1 file changed

Lines changed: 139 additions & 0 deletions

File tree

troposphere/dms.py

Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
# Copyright (c) 2017, Mark Peek <[email protected]>
2+
# All rights reserved.
3+
#
4+
# See LICENSE file for full license.
5+
6+
from . import AWSObject, AWSProperty, Tags
7+
from .validators import boolean, integer, network_port, positive_integer
8+
9+
10+
CDC = "cdc"
11+
FULL_LOAD = "full-load"
12+
FULL_LOAD_AND_CDC = "full-load-and-cdc"
13+
14+
15+
class Certificate(AWSObject):
16+
resource_type = "AWS::DMS::Certificate"
17+
18+
props = {
19+
'CertificateIdentifier': (basestring, False),
20+
'CertificatePem': (basestring, False),
21+
'CertificateWallet': (basestring, False),
22+
}
23+
24+
25+
class DynamoDBSettings(AWSProperty):
26+
props = {
27+
'ServiceAccessRoleArn': (basestring, True),
28+
}
29+
30+
31+
class MongoDbSettings(AWSProperty):
32+
props = {
33+
'AuthMechanism': (basestring, False),
34+
'AuthSource': (basestring, False),
35+
'DatabaseName': (basestring, False),
36+
'DocsToInvestigate': (basestring, False),
37+
'ExtractDocId': (basestring, False),
38+
'KmsKeyId': (basestring, False),
39+
'NestingLevel': (basestring, False),
40+
'Password': (basestring, False),
41+
'Port': (network_port, False),
42+
'ServerName': (basestring, False),
43+
'Username': (basestring, False),
44+
}
45+
46+
47+
class S3Settings(AWSProperty):
48+
props = {
49+
'BucketFolder': (basestring, False),
50+
'BucketName': (basestring, False),
51+
'CompressionType': (basestring, False),
52+
'CsvDelimiter': (basestring, False),
53+
'CsvRowDelimiter': (basestring, False),
54+
'ExternalTableDefinition': (basestring, False),
55+
'ServiceAccessRoleArn': (basestring, False),
56+
}
57+
58+
59+
class Endpoint(AWSObject):
60+
resource_type = "AWS::DMS::Endpoint"
61+
62+
props = {
63+
'CertificateArn': (basestring, False),
64+
'DatabaseName': (basestring, False),
65+
'DynamoDbSettings': (DynamoDBSettings, False),
66+
'EndpointType': (basestring, True),
67+
'EngineName': (basestring, True),
68+
'ExtraConnectionAttributes': (basestring, False),
69+
'KmsKeyId': (basestring, False),
70+
'MongoDbSettings': (MongoDbSettings, False),
71+
'Password': (basestring, False),
72+
'Port': (network_port, False),
73+
'S3Settings': (S3Settings, False),
74+
'ServerName': (basestring, False),
75+
'SslMode': (basestring, False),
76+
'Tags': (Tags, False),
77+
'Username': (basestring, True),
78+
}
79+
80+
81+
class EventSubscription(AWSObject):
82+
resource_type = "AWS::DMS::EventSubscription"
83+
84+
props = {
85+
'Enabled': (boolean, False),
86+
'EventCategories': ([basestring], False),
87+
'SnsTopicArn': (basestring, True),
88+
'SourceIds': ([basestring], False),
89+
'SourceType': (basestring, False),
90+
'SubscriptionName': ([basestring], False),
91+
'Tags': (Tags, False),
92+
}
93+
94+
95+
class ReplicationInstance(AWSObject):
96+
resource_type = "AWS::DMS::ReplicationInstance"
97+
98+
props = {
99+
'AllocatedStorage': (integer, False),
100+
'AutoMinorVersionUpgrade': (boolean, False),
101+
'AvailabilityZone': (basestring, False),
102+
'EngineVersion': (basestring, False),
103+
'KmsKeyId': (basestring, False),
104+
'MultiAZ': (boolean, False),
105+
'PreferredMaintenanceWindow': (basestring, False),
106+
'PubliclyAccessible': (boolean, False),
107+
'ReplicationInstanceClass': (basestring, True),
108+
'ReplicationInstanceIdentifier': (basestring, False),
109+
'ReplicationSubnetGroupIdentifier': (basestring, False),
110+
'Tags': (Tags, False),
111+
'VpcSecurityGroupIds': ([basestring], False),
112+
}
113+
114+
115+
class ReplicationSubnetGroup(AWSObject):
116+
resource_type = "AWS::DMS::ReplicationSubnetGroup"
117+
118+
props = {
119+
'ReplicationSubnetGroupIdentifier': (basestring, False),
120+
'ReplicationSubnetGroupDescription': (basestring, True),
121+
'SubnetIds': ([basestring], True),
122+
'Tags': (Tags, False),
123+
}
124+
125+
126+
class ReplicationTask(AWSObject):
127+
resource_type = "AWS::DMS::ReplicationTask"
128+
129+
props = {
130+
'CdcStartTime': (positive_integer, False),
131+
'MigrationType': (basestring, True),
132+
'ReplicationInstanceArn': (basestring, True),
133+
'ReplicationTaskIdentifier': (basestring, False),
134+
'ReplicationTaskSettings': (basestring, False),
135+
'SourceEndpointArn': (basestring, True),
136+
'TableMappings': (basestring, True),
137+
'Tags': (Tags, False),
138+
'TargetEndpointArn': (basestring, True),
139+
}

0 commit comments

Comments
 (0)