1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
|
package rds
// AvailabilityZone contains Availability Zone information
// See http://goo.gl/GWF4zF for more details.
type AvailabilityZone struct {
Name string `xml:"Name"`
ProvisionedIopsCapable bool `xml:"ProvisionedIopsCapable"`
}
// CharacterSet represents a character set used by a Database Engine
// See http://goo.gl/0BXwFp for more details.
type CharacterSet struct {
Name string `xml:"CharacterSetName"`
Description string `xml:"CharacterSetDescription"`
}
// DBEngineVersion describes a version of a Database Engine
// See http://goo.gl/a5l6cv for more details.
type DBEngineVersion struct {
DBEngineDescription string `xml:"DBEngineDescription"` // The description of the database engine
DBEngineVersionDescription string `xml:"DBEngineVersionDescription"` // The description of the database engine version
DBParameterGroupFamily string `xml:"DBParameterGroupFamily"` // The name of the DB parameter group family for the database engine
DefaultCharacterSet CharacterSet `xml:"DefaultCharacterSet"` // The default character set for new instances of this engine version, if the CharacterSetName parameter of the CreateDBInstance API is not specified
Engine string `xml:"Engine"` // The name of the database engine
EngineVersion string `xml:"EngineVersion"` // The version number of the database engine
SupportedCharacterSets []CharacterSet `xml:"SupportedCharacterSets"` // A list of the character sets supported by this engine for the CharacterSetName parameter of the CreateDBInstance API
}
// DBInstance encapsulates an instance of a Database
// See http://goo.gl/rQFpAe for more details.
type DBInstance struct {
AllocatedStorage int `xml:"AllocatedStorage"` // Specifies the allocated storage size specified in gigabytes.
AutoMinorVersionUpgrade bool `xml:"AutoMinorVersionUpgrade"` // Indicates that minor version patches are applied automatically.
AvailabilityZone string `xml:"AvailabilityZone"` // Specifies the name of the Availability Zone the DB instance is located in.
BackupRetentionPeriod int `xml:"BackupRetentionPeriod"` // Specifies the number of days for which automatic DB snapshots are retained.
CharacterSetName string `xml:"CharacterSetName"` // If present, specifies the name of the character set that this instance is associated with.
DBInstanceClass string `xml:"DBInstanceClass"` // Contains the name of the compute and memory capacity class of the DB instance.
DBInstanceIdentifier string `xml:"DBInstanceIdentifier"` // Contains a user-supplied database identifier. This is the unique key that identifies a DB instance.
DBInstanceStatus string `xml:"DBInstanceStatus"` // Specifies the current state of this database.
DBName string `xml:"DBName"` // The meaning of this parameter differs according to the database engine you use.
DBParameterGroups []DBParameterGroupStatus `xml:"DBParameterGroups>DBParameterGroup"` // Provides the list of DB parameter groups applied to this DB instance.
DBSecurityGroups []DBSecurityGroupMembership `xml:"DBSecurityGroups>DBSecurityGroup"` // Provides List of DB security group elements containing only DBSecurityGroup.Name and DBSecurityGroup.Status subelements.
DBSubnetGroup DBSubnetGroup `xml:"DBSubnetGroup"` // Specifies information on the subnet group associated with the DB instance, including the name, description, and subnets in the subnet group.
Endpoint Endpoint `xml:"Endpoint"` // Specifies the connection endpoint.
Engine string `xml:"Engine"` // Provides the name of the database engine to be used for this DB instance.
EngineVersion string `xml:"EngineVersion"` // Indicates the database engine version.
InstanceCreateTime string `xml:"InstanceCreateTime"` // Provides the date and time the DB instance was created.
Iops int `xml:"Iops"` // Specifies the Provisioned IOPS (I/O operations per second) value.
LatestRestorableTime string `xml:"LatestRestorableTime"` // Specifies the latest time to which a database can be restored with point-in-time restore.
LicenseModel string `xml:"LicenseModel"` // License model information for this DB instance.
MasterUsername string `xml:"MasterUsername"` // Contains the master username for the DB instance.
MultiAZ bool `xml:"MultiAZ"` // Specifies if the DB instance is a Multi-AZ deployment.
OptionGroupMemberships []OptionGroupMembership `xml:"OptionGroupMemberships>OptionGroupMembership"` // Provides the list of option group memberships for this DB instance.
PendingModifiedValues PendingModifiedValues `xml:"PendingModifiedValues"` // Specifies that changes to the DB instance are pending. This element is only included when changes are pending. Specific changes are identified by subelements.
PreferredBackupWindow string `xml:"PreferredBackupWindow"` // Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the BackupRetentionPeriod.
PreferredMaintenanceWindow string `xml:"PreferredMaintenanceWindow"` // Specifies the weekly time range (in UTC) during which system maintenance can occur.
PubliclyAccessible bool `xml:"PubliclyAccessible"` // Specifies the accessibility options for the DB instance. A value of true specifies an Internet-facing instance with a publicly resolvable DNS name, which resolves to a public IP address. A value of false specifies an internal instance with a DNS name that resolves to a private IP address.
ReadReplicaDBInstanceIdentifiers []string `xml:"ReadReplicaDBInstanceIdentifiers"` // Contains one or more identifiers of the read replicas associated with this DB instance.
ReadReplicaSourceDBInstanceIdentifier string `xml:"ReadReplicaSourceDBInstanceIdentifier"` // Contains the identifier of the source DB instance if this DB instance is a read replica.
SecondaryAvailabilityZone string `xml:"SecondaryAvailabilityZone"` // If present, specifies the name of the secondary Availability Zone for a DB instance with multi-AZ support.
StatusInfos []DBInstanceStatusInfo `xml:"StatusInfos"` // The status of a read replica. If the instance is not a read replica, this will be blank.
VpcSecurityGroups []VpcSecurityGroupMembership `xml:"VpcSecurityGroups"` // Provides List of VPC security group elements that the DB instance belongs to.
}
// DBInstanceStatusInfo provides a list of status information for a DB instance
// See http://goo.gl/WuePdz for more details.
type DBInstanceStatusInfo struct {
Message string `xml:"Message"` // Details of the error if there is an error for the instance. If the instance is not in an error state, this value is blank.
Normal bool `xml:"Normal"` // Boolean value that is true if the instance is operating normally, or false if the instance is in an error state.
Status string `xml:"Status"` // Status of the DB instance. For a StatusType of read replica, the values can be replicating, error, stopped, or terminated.
StatusType string `xml:"StatusType"` // This value is currently "read replication."
}
// DBParameterGroup contains the result of a successful invocation of the CreateDBParameterGroup action
// See http://goo.gl/a8BCTy for more details.
type DBParameterGroup struct {
Name string `xml:"DBParameterGroupName"`
Description string `xml:"Description"`
Family string `xml:"DBParameterGroupFamily"`
}
// DBParameterGroupStatus represents the status of the DB parameter group
// See http://goo.gl/X318cI for more details.
type DBParameterGroupStatus struct {
Name string `xml:"DBParameterGroupName"`
Status string `xml:"ParameterApplyStatus"`
}
// DBSecurityGroup represents a RDS DB Security Group which controls network access to a DB instance that is not inside a VPC
// See http://goo.gl/JF5oJy for more details.
type DBSecurityGroup struct {
Name string `xml:"DBSecurityGroupName"`
Description string `xml:"DBSecurityGroupDescription"`
EC2SecurityGroups []EC2SecurityGroup `xml:"EC2SecurityGroups"`
IPRanges []IPRange `xml:"IPRanges"`
OwnerId string `xml:"OwnerId"`
VpcId string `xml:"VpcId"`
}
// DBSecurityGroupMembership represents a DBSecurityGroup which a Database Instance belongs to
// See http://goo.gl/QjTK0b for more details.
type DBSecurityGroupMembership struct {
Name string `xml:"DBSecurityGroupName"`
Status string `xml:"Status"`
}
// DBSnapshot represents a snapshot of a Database (a backup of the Instance data)
// See http://goo.gl/wkf0L9 for more details.
type DBSnapshot struct {
AllocatedStorage int `xml:"AllocatedStorage"` // Specifies the allocated storage size in gigabytes (GB)
AvailabilityZone string `xml:"AvailabilityZone"`
DBInstanceIdentifier string `xml:"DBInstanceIdentifier"`
DBSnapshotIdentifier string `xml:"DBSnapshotIdentifier"`
Engine string `xml:"Engine"`
EngineVersion string `xml:"EngineVersion"`
InstanceCreateTime string `xml:"InstanceCreateTime"`
Iops int `xml:"Iops"`
LicenseModel string `xml:"LicenseModel"`
MasterUsername string `xml:"MasterUsername"`
OptionGroupName string `xml:"OptionGroupName"`
PercentProgress int `xml:"PercentProgress"`
Port int `xml:"Port"`
SnapshotCreateTime string `xml:"SnapshotCreateTime"`
SnapshotType string `xml:"SnapshotType"`
SourceRegion string `xml:"SourceRegion"`
Status string `xml:"Status"`
VpcId string `xml:"VpcId"`
}
// DBSubnetGroup is a collection of subnets that is designated for an RDS DB Instance in a VPC
// See http://goo.gl/8vMPkE for more details.
type DBSubnetGroup struct {
Name string `xml:"DBSubnetGroupName"`
Description string `xml:"DBSubnetGroupDescription"`
Status string `xml:"SubnetGroupStatus"`
Subnets []Subnet `xml:"Subnets>Subnet"`
VpcId string `xml:"VpcId"`
}
// EC2SecurityGroup a standard EC2 Security Group which can be assigned to a DB Instance
// See http://goo.gl/AWavZ2 for more details.
type EC2SecurityGroup struct {
Id string `xml:"EC2SecurityGroupId"`
Name string `xml:"EC2SecurityGroupName"`
OwnerId string `xml:"EC2SecurityGroupOwnerId"` // The AWS ID of the owner of the EC2 security group
Status string `xml:"Status"` // Status can be "authorizing", "authorized", "revoking", and "revoked"
}
// Endpoint encapsulates the connection endpoint for a DB Instance
// See http://goo.gl/jefsJ4 for more details.
type Endpoint struct {
Address string `xml:"Address"`
Port int `xml:"Port"`
}
// EngineDefaults describes the system parameter information for a given database engine
// See http://goo.gl/XFy7Wv for more details.
type EngineDefaults struct {
DBParameterGroupFamily string `xml:"DBParameterGroupFamily"`
Marker string `xml:"Marker"`
Parameters []Parameter `xml:"Parameters"`
}
// Event encapsulates events related to DB instances, DB security groups, DB snapshots, and DB parameter groups
// See http://goo.gl/6fUQow for more details.
type Event struct {
Date string `xml:"Date"` // Specifies the date and time of the event
EventCategories []string `xml:"EventCategories"` // Specifies the category for the event
Message string `xml:"Message"` // Provides the text of this event
SourceIdentifier string `xml:"SourceIdentifier"` // Provides the identifier for the source of the event
SourceType string `xml:"SourceType"` // Valid Values: db-instance | db-parameter-group | db-security-group | db-snapshot
}
// EventCategoriesMap encapsulates event categories for the specified source type
// See http://goo.gl/9VY3aS for more details.
type EventCategoriesMap struct {
EventCategories []string `xml:"EventCategories"`
SourceType string `xml:"SourceType"`
}
// EventSubscription describes a subscription, for a customer account, to a series of events
// See http://goo.gl/zgNdXw for more details.
type EventSubscription struct {
CustSubscriptionId string `xml:"CustSubscriptionId"` // The RDS event notification subscription Id
CustomerAwsId string `xml:"CustomerAwsId"` // The AWS customer account associated with the RDS event notification subscription
Enabled bool `xml:"Enabled"` // True indicates the subscription is enabled
EventCategoriesList []string `xml:"EventCategoriesList"` // A list of event categories for the RDS event notification subscription
SnsTopicArn string `xml:"SnsTopicArn"` // The topic ARN of the RDS event notification subscription
SourceIdsList []string `xml:"SourceIdsList"` // A list of source Ids for the RDS event notification subscription
SourceType string `xml:"SourceType"` // The source type for the RDS event notification subscription
Status string `xml:"Status"` // Can be one of the following: creating | modifying | deleting | active | no-permission | topic-not-exist
SubscriptionCreationTime string `xml:"SubscriptionCreationTime"` // The time the RDS event notification subscription was created
}
// IPRange encapsulates an IP range (and its status) used by a DB Security Group
// See http://goo.gl/VfntNm for more details.
type IPRange struct {
CIDRIP string `xml:"CIDRIP"`
Status string `xml:"Status"` // Specifies the status of the IP range. Status can be "authorizing", "authorized", "revoking", and "revoked".
}
// Option describes a feature available for an RDS instance along with any settings applicable to it
// See http://goo.gl/8DYY0J for more details.
type Option struct {
Name string `xml:"OptionName"`
Description string `xml:"OptionDescription"`
Settings []OptionSetting `xml:"OptionSettings"`
Permanent bool `xml:"Permanent"`
Persistent bool `xml:"Persistent"`
Port int `xml:"Port"`
DBSecurityGroupMemberships []DBSecurityGroupMembership `xml:"DBSecurityGroupMemberships"` // If the option requires access to a port, then this DB security group allows access to the port
VpcSecurityGroupMemberships []VpcSecurityGroupMembership `xml:"VpcSecurityGroupMemberships"` // If the option requires access to a port, then this VPC security group allows access to the port
}
// OptionConfiguration is a list of all available options
// See http://goo.gl/kkEzw1 for more details.
type OptionConfiguration struct {
OptionName string `xml:"OptionName"`
OptionSettings []OptionSetting `xml:"OptionSettings"`
Port int `xml:"Port"`
DBSecurityGroupMemberships []string `xml:"DBSecurityGroupMemberships"`
VpcSecurityGroupMemberships []string `xml:"VpcSecurityGroupMemberships"`
}
// OptionGroup represents a set of features, called options, that are available for a particular Amazon RDS DB instance
// See http://goo.gl/NedBJl for more details.
type OptionGroup struct {
Name string `xml:"OptionGroupName"`
Description string `xml:"OptionGroupDescription"`
VpcId string `xml:"VpcId"`
AllowsVpcAndNonVpcInstanceMemberships bool `xml:"AllowsVpcAndNonVpcInstanceMemberships"`
EngineName string `xml:"EngineName"`
MajorEngineVersion string `xml:"MajorEngineVersion"`
Options []Option `xml:"Options"`
}
// OptionGroupMembership provides information on the option groups the DB instance is a member of
// See http://goo.gl/XBW6j4 for more details.
type OptionGroupMembership struct {
Name string `xml:"OptionGroupName"` // The name of the option group that the instance belongs to
Status string `xml:"Status"` // The status of the option group membership, e.g. in-sync, pending, pending-maintenance, applying
}
// OptionGroupOption represents an option within an option group
// See http://goo.gl/jQYL0U for more details.
type OptionGroupOption struct {
DefaultPort int `xml:"DefaultPort"`
Description string `xml:"Description"`
EngineName string `xml:"EngineName"`
MajorEngineVersion string `xml:"MajorEngineVersion"`
MinimumRequiredMinorEngineVersion string `xml:"MinimumRequiredMinorEngineVersion"`
Name string `xml:"Name"`
OptionGroupOptionSettings []OptionGroupOptionSetting `xml:"OptionGroupOptionSettings"`
OptionsDependedOn string `xml:"OptionsDependedOn"`
Permanent bool `xml:"Permanent"`
Persistent bool `xml:"Persistent"`
PortRequired bool `xml:"PortRequired"`
}
// OptionGroupOptionSetting are used to display settings available for each option with their default values and other information
// See http://goo.gl/9aIwNX for more details.
type OptionGroupOptionSetting struct {
AllowedValues string `xml:"AllowedValues"`
ApplyType string `xml:"ApplyType"`
DefaultValue string `xml:"DefaultValue"`
IsModifiable bool `xml:"IsModifiable"`
SettingDescription string `xml:"SettingDescription"`
SettingName string `xml:"SettingName"`
}
// OptionSetting encapsulates modifiable settings for a particular option (a feature available for a Database Instance)
// See http://goo.gl/VjOJmW for more details.
type OptionSetting struct {
Name string `xml:"Name"`
Value string `xml:"Value"`
Description string `xml:"Description"`
AllowedValues string `xml:"AllowedValues"`
ApplyType string `xml:"ApplyType"`
DataType string `xml:"DataType"`
DefaultValue string `xml:"DefaultValue"`
IsCollection bool `xml:"IsCollection"`
IsModifiable bool `xml:"IsModifiable"`
}
// OrderableDBInstanceOption contains a list of available options for a DB instance
// See http://goo.gl/FVPeVC for more details.
type OrderableDBInstanceOption struct {
AvailabilityZones []AvailabilityZone `xml:"AvailabilityZones"`
DBInstanceClass string `xml:"DBInstanceClass"`
Engine string `xml:"Engine"`
EngineVersion string `xml:"EngineVersion"`
LicenseModel string `xml:"LicenseModel"`
MultiAZCapable bool `xml:"MultiAZCapable"`
ReadReplicaCapable bool `xml:"ReadReplicaCapable"`
Vpc bool `xml:"Vpc"`
}
// Parameter is used as a request parameter in various actions
// See http://goo.gl/cJmvVT for more details.
type Parameter struct {
AllowedValues string `xml:"AllowedValues"`
ApplyMethod string `xml:"ApplyMethod"` // Valid Values: immediate | pending-reboot
ApplyType string `xml:"ApplyType"`
DataType string `xml:"DataType"`
Description string `xml:"Description"`
IsModifiable bool `xml:"IsModifiable"`
MinimumEngineVersion string `xml:"MinimumEngineVersion"`
ParameterName string `xml:"ParameterName"`
ParameterValue string `xml:"ParameterValue"`
Source string `xml:"Source"`
}
// PendingModifiedValues represents values modified in a ModifyDBInstance action
// See http://goo.gl/UoXhLH for more details.
type PendingModifiedValues struct {
AllocatedStorage int `xml:"AllocatedStorage"`
BackupRetentionPeriod int `xml:"BackupRetentionPeriod"`
DBInstanceClass string `xml:"DBInstanceClass"`
DBInstanceIdentifier string `xml:"DBInstanceIdentifier"`
EngineVersion string `xml:"EngineVersion"`
Iops int `xml:"Iops"`
MasterUserPassword string `xml:"MasterUserPassword"`
MultiAZ bool `xml:"MultiAZ"`
Port string `xml:"Port"`
}
// RecurringCharge describes an amount that will be charged on a recurring basis with a given frequency
// See http://goo.gl/3GDplh for more details.
type RecurringCharge struct {
Amount float64 `xml:"RecurringChargeAmount"`
Frequency string `xml:"RecurringChargeFrequency"`
}
// ReservedDBInstance encapsulates a reserved Database Instance
// See http://goo.gl/mjLhNI for more details.
type ReservedDBInstance struct {
CurrencyCode string `xml:"CurrencyCode"`
DBInstanceClass string `xml:"DBInstanceClass"`
DBInstanceCount int `xml:"DBInstanceCount"`
Duration int `xml:"Duration"`
FixedPrice float64 `xml:"FixedPrice"`
MultiAZ bool `xml:"MultiAZ"`
OfferingType string `xml:"OfferingType"`
ProductDescription string `xml:"ProductDescription"`
RecurringCharges []RecurringCharge `xml:"RecurringCharges"`
ReservedDBInstanceId string `xml:"ReservedDBInstanceId"`
ReservedDBInstancesOfferingId string `xml:"ReservedDBInstancesOfferingId"`
StartTime string `xml:"StartTime"`
State string `xml:"State"`
UsagePrice float64 `xml:"UsagePrice"`
}
// ReservedDBInstancesOffering describes an available Reserved DB instance offering which can be purchased
// See http://goo.gl/h5s8e6 for more details.
type ReservedDBInstancesOffering struct {
CurrencyCode string `xml:"CurrencyCode"`
DBInstanceClass string `xml:"DBInstanceClass"`
Duration int `xml:"Duration"`
FixedPrice float64 `xml:"FixedPrice"`
MultiAZ bool `xml:"MultiAZ"`
OfferingType string `xml:"OfferingType"`
ProductDescription string `xml:"ProductDescription"`
RecurringCharges []RecurringCharge `xml:"RecurringCharges"`
ReservedDBInstancesOfferingId string `xml:"ReservedDBInstancesOfferingId"`
UsagePrice float64 `xml:"UsagePrice"`
}
// Subnet describes an EC2 subnet, along with its status and location
// See http://goo.gl/Nc8ymd for more details.
type Subnet struct {
Id string `xml:"SubnetIdentifier"`
Status string `xml:"SubnetStatus"`
AvailabilityZone AvailabilityZone `xml:"SubnetAvailabilityZone"`
}
// Tag represents metadata assigned to an Amazon RDS resource consisting of a key-value pair
// See http://goo.gl/YnXRrE for more details.
type Tag struct {
Key string `xml:"Key"`
Value string `xml:"Value"`
}
// VpcSecurityGroupMembership describes a standard VPC Security Group which has been assigned to a DB Instance located in a VPC
// See http://goo.gl/UIvmlS for more details.
type VpcSecurityGroupMembership struct {
Id string `xml:"VpcSecurityGroupId"`
Status string `xml:"Status"`
}
|