diff options
Diffstat (limited to 'vendor/github.com/goamz/goamz/rds/types.go')
-rw-r--r-- | vendor/github.com/goamz/goamz/rds/types.go | 388 |
1 files changed, 388 insertions, 0 deletions
diff --git a/vendor/github.com/goamz/goamz/rds/types.go b/vendor/github.com/goamz/goamz/rds/types.go new file mode 100644 index 000000000..aa9c4024f --- /dev/null +++ b/vendor/github.com/goamz/goamz/rds/types.go @@ -0,0 +1,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"` +} |