// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. package rds import ( "context" "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/internal/awsutil" ) type ModifyDBInstanceInput struct { _ struct{} `type:"structure"` // The new amount of storage (in gibibytes) to allocate for the DB instance. // // For MariaDB, MySQL, Oracle, and PostgreSQL, the value supplied must be at // least 10% greater than the current value. Values that are not at least 10% // greater than the existing value are rounded up so that they are 10% greater // than the current value. // // For the valid values for allocated storage for each engine, see CreateDBInstance. AllocatedStorage *int64 `type:"integer"` // A value that indicates whether major version upgrades are allowed. Changing // this parameter doesn't result in an outage and the change is asynchronously // applied as soon as possible. // // Constraints: Major version upgrades must be allowed when specifying a value // for the EngineVersion parameter that is a different major version than the // DB instance's current version. AllowMajorVersionUpgrade *bool `type:"boolean"` // A value that indicates whether the modifications in this request and any // pending modifications are asynchronously applied as soon as possible, regardless // of the PreferredMaintenanceWindow setting for the DB instance. By default, // this parameter is disabled. // // If this parameter is disabled, changes to the DB instance are applied during // the next maintenance window. Some parameter changes can cause an outage and // are applied on the next call to RebootDBInstance, or the next failure reboot. // Review the table of parameters in Modifying a DB Instance (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.Modifying.html) // in the Amazon RDS User Guide. to see the impact of enabling or disabling // ApplyImmediately for each modified parameter and to determine when the changes // are applied. ApplyImmediately *bool `type:"boolean"` // A value that indicates whether minor version upgrades are applied automatically // to the DB instance during the maintenance window. Changing this parameter // doesn't result in an outage except in the following case and the change is // asynchronously applied as soon as possible. An outage results if this parameter // is enabled during the maintenance window, and a newer minor version is available, // and RDS has enabled auto patching for that engine version. AutoMinorVersionUpgrade *bool `type:"boolean"` // The number of days to retain automated backups. Setting this parameter to // a positive number enables backups. Setting this parameter to 0 disables automated // backups. // // Changing this parameter can result in an outage if you change from 0 to a // non-zero value or from a non-zero value to 0. These changes are applied during // the next maintenance window unless the ApplyImmediately parameter is enabled // for this request. If you change the parameter from one non-zero value to // another non-zero value, the change is asynchronously applied as soon as possible. // // Amazon Aurora // // Not applicable. The retention period for automated backups is managed by // the DB cluster. For more information, see ModifyDBCluster. // // Default: Uses existing setting // // Constraints: // // * Must be a value from 0 to 35 // // * Can be specified for a MySQL read replica only if the source is running // MySQL 5.6 or later // // * Can be specified for a PostgreSQL read replica only if the source is // running PostgreSQL 9.3.5 // // * Can't be set to 0 if the DB instance is a source to read replicas BackupRetentionPeriod *int64 `type:"integer"` // Indicates the certificate that needs to be associated with the instance. CACertificateIdentifier *string `type:"string"` // A value that indicates whether the DB instance is restarted when you rotate // your SSL/TLS certificate. // // By default, the DB instance is restarted when you rotate your SSL/TLS certificate. // The certificate is not updated until the DB instance is restarted. // // Set this parameter only if you are not using SSL/TLS to connect to the DB // instance. // // If you are using SSL/TLS to connect to the DB instance, follow the appropriate // instructions for your DB engine to rotate your SSL/TLS certificate: // // * For more information about rotating your SSL/TLS certificate for RDS // DB engines, see Rotating Your SSL/TLS Certificate. (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html) // in the Amazon RDS User Guide. // // * For more information about rotating your SSL/TLS certificate for Aurora // DB engines, see Rotating Your SSL/TLS Certificate (https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL-certificate-rotation.html) // in the Amazon Aurora User Guide. CertificateRotationRestart *bool `type:"boolean"` // The configuration setting for the log types to be enabled for export to CloudWatch // Logs for a specific DB instance. // // A change to the CloudwatchLogsExportConfiguration parameter is always applied // to the DB instance immediately. Therefore, the ApplyImmediately parameter // has no effect. CloudwatchLogsExportConfiguration *CloudwatchLogsExportConfiguration `type:"structure"` // A value that indicates whether to copy all tags from the DB instance to snapshots // of the DB instance. By default, tags are not copied. // // Amazon Aurora // // Not applicable. Copying tags to snapshots is managed by the DB cluster. Setting // this value for an Aurora DB instance has no effect on the DB cluster setting. // For more information, see ModifyDBCluster. CopyTagsToSnapshot *bool `type:"boolean"` // The new compute and memory capacity of the DB instance, for example, db.m4.large. // Not all DB instance classes are available in all AWS Regions, or for all // database engines. For the full list of DB instance classes, and availability // for your engine, see DB Instance Class (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) // in the Amazon RDS User Guide. // // If you modify the DB instance class, an outage occurs during the change. // The change is applied during the next maintenance window, unless ApplyImmediately // is enabled for this request. // // Default: Uses existing setting DBInstanceClass *string `type:"string"` // The DB instance identifier. This value is stored as a lowercase string. // // Constraints: // // * Must match the identifier of an existing DBInstance. // // DBInstanceIdentifier is a required field DBInstanceIdentifier *string `type:"string" required:"true"` // The name of the DB parameter group to apply to the DB instance. Changing // this setting doesn't result in an outage. The parameter group name itself // is changed immediately, but the actual parameter changes are not applied // until you reboot the instance without failover. In this case, the DB instance // isn't rebooted automatically and the parameter changes isn't applied during // the next maintenance window. // // Default: Uses existing setting // // Constraints: The DB parameter group must be in the same DB parameter group // family as this DB instance. DBParameterGroupName *string `type:"string"` // The port number on which the database accepts connections. // // The value of the DBPortNumber parameter must not match any of the port values // specified for options in the option group for the DB instance. // // Your database will restart when you change the DBPortNumber value regardless // of the value of the ApplyImmediately parameter. // // MySQL // // Default: 3306 // // Valid values: 1150-65535 // // MariaDB // // Default: 3306 // // Valid values: 1150-65535 // // PostgreSQL // // Default: 5432 // // Valid values: 1150-65535 // // Type: Integer // // Oracle // // Default: 1521 // // Valid values: 1150-65535 // // SQL Server // // Default: 1433 // // Valid values: 1150-65535 except 1234, 1434, 3260, 3343, 3389, 47001, and // 49152-49156. // // Amazon Aurora // // Default: 3306 // // Valid values: 1150-65535 DBPortNumber *int64 `type:"integer"` // A list of DB security groups to authorize on this DB instance. Changing this // setting doesn't result in an outage and the change is asynchronously applied // as soon as possible. // // Constraints: // // * If supplied, must match existing DBSecurityGroups. DBSecurityGroups []string `locationNameList:"DBSecurityGroupName" type:"list"` // The new DB subnet group for the DB instance. You can use this parameter to // move your DB instance to a different VPC. If your DB instance isn't in a // VPC, you can also use this parameter to move your DB instance into a VPC. // For more information, see Updating the VPC for a DB Instance (http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html#USER_VPC.Non-VPC2VPC) // in the Amazon RDS User Guide. // // Changing the subnet group causes an outage during the change. The change // is applied during the next maintenance window, unless you enable ApplyImmediately. // // Constraints: If supplied, must match the name of an existing DBSubnetGroup. // // Example: mySubnetGroup DBSubnetGroupName *string `type:"string"` // A value that indicates whether the DB instance has deletion protection enabled. // The database can't be deleted when deletion protection is enabled. By default, // deletion protection is disabled. For more information, see Deleting a DB // Instance (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html). DeletionProtection *bool `type:"boolean"` // The Active Directory directory ID to move the DB instance to. Specify none // to remove the instance from its current domain. The domain must be created // prior to this operation. Currently, only Microsoft SQL Server and Oracle // DB instances can be created in an Active Directory Domain. // // For Microsoft SQL Server DB instances, Amazon RDS can use Windows Authentication // to authenticate users that connect to the DB instance. For more information, // see Using Windows Authentication with an Amazon RDS DB Instance Running Microsoft // SQL Server (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_SQLServerWinAuth.html) // in the Amazon RDS User Guide. // // For Oracle DB instances, Amazon RDS can use Kerberos authentication to authenticate // users that connect to the DB instance. For more information, see Using Kerberos // Authentication with Amazon RDS for Oracle (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-kerberos.html) // in the Amazon RDS User Guide. Domain *string `type:"string"` // The name of the IAM role to use when making API calls to the Directory Service. DomainIAMRoleName *string `type:"string"` // A value that indicates whether to enable mapping of AWS Identity and Access // Management (IAM) accounts to database accounts. By default, mapping is disabled. // For information about the supported DB engines, see CreateDBInstance. // // For more information about IAM database authentication, see IAM Database // Authentication for MySQL and PostgreSQL (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html) // in the Amazon RDS User Guide. EnableIAMDatabaseAuthentication *bool `type:"boolean"` // A value that indicates whether to enable Performance Insights for the DB // instance. // // For more information, see Using Amazon Performance Insights (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) // in the Amazon Relational Database Service User Guide. EnablePerformanceInsights *bool `type:"boolean"` // The version number of the database engine to upgrade to. Changing this parameter // results in an outage and the change is applied during the next maintenance // window unless the ApplyImmediately parameter is eanbled for this request. // // For major version upgrades, if a nondefault DB parameter group is currently // in use, a new DB parameter group in the DB parameter group family for the // new engine version must be specified. The new DB parameter group can be the // default for that DB parameter group family. // // For information about valid engine versions, see CreateDBInstance, or call // DescribeDBEngineVersions. EngineVersion *string `type:"string"` // The new Provisioned IOPS (I/O operations per second) value for the RDS instance. // // Changing this setting doesn't result in an outage and the change is applied // during the next maintenance window unless the ApplyImmediately parameter // is enabled for this request. If you are migrating from Provisioned IOPS to // standard storage, set this value to 0. The DB instance will require a reboot // for the change in storage type to take effect. // // If you choose to migrate your DB instance from using standard storage to // using Provisioned IOPS, or from using Provisioned IOPS to using standard // storage, the process can take time. The duration of the migration depends // on several factors such as database load, storage size, storage type (standard // or Provisioned IOPS), amount of IOPS provisioned (if any), and the number // of prior scale storage operations. Typical migration times are under 24 hours, // but the process can take up to several days in some cases. During the migration, // the DB instance is available for use, but might experience performance degradation. // While the migration takes place, nightly backups for the instance are suspended. // No other Amazon RDS operations can take place for the instance, including // modifying the instance, rebooting the instance, deleting the instance, creating // a read replica for the instance, and creating a DB snapshot of the instance. // // Constraints: For MariaDB, MySQL, Oracle, and PostgreSQL, the value supplied // must be at least 10% greater than the current value. Values that are not // at least 10% greater than the existing value are rounded up so that they // are 10% greater than the current value. // // Default: Uses existing setting Iops *int64 `type:"integer"` // The license model for the DB instance. // // Valid values: license-included | bring-your-own-license | general-public-license LicenseModel *string `type:"string"` // The new password for the master user. The password can include any printable // ASCII character except "/", """, or "@". // // Changing this parameter doesn't result in an outage and the change is asynchronously // applied as soon as possible. Between the time of the request and the completion // of the request, the MasterUserPassword element exists in the PendingModifiedValues // element of the operation response. // // Amazon Aurora // // Not applicable. The password for the master user is managed by the DB cluster. // For more information, see ModifyDBCluster. // // Default: Uses existing setting // // MariaDB // // Constraints: Must contain from 8 to 41 characters. // // Microsoft SQL Server // // Constraints: Must contain from 8 to 128 characters. // // MySQL // // Constraints: Must contain from 8 to 41 characters. // // Oracle // // Constraints: Must contain from 8 to 30 characters. // // PostgreSQL // // Constraints: Must contain from 8 to 128 characters. // // Amazon RDS API actions never return the password, so this action provides // a way to regain access to a primary instance user if the password is lost. // This includes restoring privileges that might have been accidentally revoked. MasterUserPassword *string `type:"string"` // The upper limit to which Amazon RDS can automatically scale the storage of // the DB instance. MaxAllocatedStorage *int64 `type:"integer"` // The interval, in seconds, between points when Enhanced Monitoring metrics // are collected for the DB instance. To disable collecting Enhanced Monitoring // metrics, specify 0. The default is 0. // // If MonitoringRoleArn is specified, then you must also set MonitoringInterval // to a value other than 0. // // Valid Values: 0, 1, 5, 10, 15, 30, 60 MonitoringInterval *int64 `type:"integer"` // The ARN for the IAM role that permits RDS to send enhanced monitoring metrics // to Amazon CloudWatch Logs. For example, arn:aws:iam:123456789012:role/emaccess. // For information on creating a monitoring role, go to To create an IAM role // for Amazon RDS Enhanced Monitoring (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.html#USER_Monitoring.OS.IAMRole) // in the Amazon RDS User Guide. // // If MonitoringInterval is set to a value other than 0, then you must supply // a MonitoringRoleArn value. MonitoringRoleArn *string `type:"string"` // A value that indicates whether the DB instance is a Multi-AZ deployment. // Changing this parameter doesn't result in an outage and the change is applied // during the next maintenance window unless the ApplyImmediately parameter // is enabled for this request. MultiAZ *bool `type:"boolean"` // The new DB instance identifier for the DB instance when renaming a DB instance. // When you change the DB instance identifier, an instance reboot occurs immediately // if you enable ApplyImmediately, or will occur during the next maintenance // window if you disable Apply Immediately. This value is stored as a lowercase // string. // // Constraints: // // * Must contain from 1 to 63 letters, numbers, or hyphens. // // * The first character must be a letter. // // * Can't end with a hyphen or contain two consecutive hyphens. // // Example: mydbinstance NewDBInstanceIdentifier *string `type:"string"` // Indicates that the DB instance should be associated with the specified option // group. Changing this parameter doesn't result in an outage except in the // following case and the change is applied during the next maintenance window // unless the ApplyImmediately parameter is enabled for this request. If the // parameter change results in an option group that enables OEM, this change // can cause a brief (sub-second) period during which new connections are rejected // but existing connections are not interrupted. // // Permanent options, such as the TDE option for Oracle Advanced Security TDE, // can't be removed from an option group, and that option group can't be removed // from a DB instance once it is associated with a DB instance OptionGroupName *string `type:"string"` // The AWS KMS key identifier for encryption of Performance Insights data. The // KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the // KMS key alias for the KMS encryption key. // // If you do not specify a value for PerformanceInsightsKMSKeyId, then Amazon // RDS uses your default encryption key. AWS KMS creates the default encryption // key for your AWS account. Your AWS account has a different default encryption // key for each AWS Region. PerformanceInsightsKMSKeyId *string `type:"string"` // The amount of time, in days, to retain Performance Insights data. Valid values // are 7 or 731 (2 years). PerformanceInsightsRetentionPeriod *int64 `type:"integer"` // The daily time range during which automated backups are created if automated // backups are enabled, as determined by the BackupRetentionPeriod parameter. // Changing this parameter doesn't result in an outage and the change is asynchronously // applied as soon as possible. // // Amazon Aurora // // Not applicable. The daily time range for creating automated backups is managed // by the DB cluster. For more information, see ModifyDBCluster. // // Constraints: // // * Must be in the format hh24:mi-hh24:mi // // * Must be in Universal Time Coordinated (UTC) // // * Must not conflict with the preferred maintenance window // // * Must be at least 30 minutes PreferredBackupWindow *string `type:"string"` // The weekly time range (in UTC) during which system maintenance can occur, // which might result in an outage. Changing this parameter doesn't result in // an outage, except in the following situation, and the change is asynchronously // applied as soon as possible. If there are pending actions that cause a reboot, // and the maintenance window is changed to include the current time, then changing // this parameter will cause a reboot of the DB instance. If moving this window // to the current time, there must be at least 30 minutes between the current // time and end of the window to ensure pending changes are applied. // // Default: Uses existing setting // // Format: ddd:hh24:mi-ddd:hh24:mi // // Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun // // Constraints: Must be at least 30 minutes PreferredMaintenanceWindow *string `type:"string"` // The number of CPU cores and the number of threads per core for the DB instance // class of the DB instance. ProcessorFeatures []ProcessorFeature `locationNameList:"ProcessorFeature" type:"list"` // A value that specifies the order in which an Aurora Replica is promoted to // the primary instance after a failure of the existing primary instance. For // more information, see Fault Tolerance for an Aurora DB Cluster (https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.FaultTolerance) // in the Amazon Aurora User Guide. // // Default: 1 // // Valid Values: 0 - 15 PromotionTier *int64 `type:"integer"` // A value that indicates whether the DB instance is publicly accessible. // // When the DB instance is publicly accessible, its DNS endpoint resolves to // the private IP address from within the DB instance's VPC, and to the public // IP address from outside of the DB instance's VPC. Access to the DB instance // is ultimately controlled by the security group it uses, and that public access // is not permitted if the security group assigned to the DB instance doesn't // permit it. // // When the DB instance isn't publicly accessible, it is an internal DB instance // with a DNS name that resolves to a private IP address. // // PubliclyAccessible only applies to DB instances in a VPC. The DB instance // must be part of a public subnet and PubliclyAccessible must be enabled for // it to be publicly accessible. // // Changes to the PubliclyAccessible parameter are applied immediately regardless // of the value of the ApplyImmediately parameter. PubliclyAccessible *bool `type:"boolean"` // Specifies the storage type to be associated with the DB instance. // // If you specify Provisioned IOPS (io1), you must also include a value for // the Iops parameter. // // If you choose to migrate your DB instance from using standard storage to // using Provisioned IOPS, or from using Provisioned IOPS to using standard // storage, the process can take time. The duration of the migration depends // on several factors such as database load, storage size, storage type (standard // or Provisioned IOPS), amount of IOPS provisioned (if any), and the number // of prior scale storage operations. Typical migration times are under 24 hours, // but the process can take up to several days in some cases. During the migration, // the DB instance is available for use, but might experience performance degradation. // While the migration takes place, nightly backups for the instance are suspended. // No other Amazon RDS operations can take place for the instance, including // modifying the instance, rebooting the instance, deleting the instance, creating // a read replica for the instance, and creating a DB snapshot of the instance. // // Valid values: standard | gp2 | io1 // // Default: io1 if the Iops parameter is specified, otherwise gp2 StorageType *string `type:"string"` // The ARN from the key store with which to associate the instance for TDE encryption. TdeCredentialArn *string `type:"string"` // The password for the given ARN from the key store in order to access the // device. TdeCredentialPassword *string `type:"string"` // A value that indicates whether the DB instance class of the DB instance uses // its default processor features. UseDefaultProcessorFeatures *bool `type:"boolean"` // A list of EC2 VPC security groups to authorize on this DB instance. This // change is asynchronously applied as soon as possible. // // Amazon Aurora // // Not applicable. The associated list of EC2 VPC security groups is managed // by the DB cluster. For more information, see ModifyDBCluster. // // Constraints: // // * If supplied, must match existing VpcSecurityGroupIds. VpcSecurityGroupIds []string `locationNameList:"VpcSecurityGroupId" type:"list"` } // String returns the string representation func (s ModifyDBInstanceInput) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. func (s *ModifyDBInstanceInput) Validate() error { invalidParams := aws.ErrInvalidParams{Context: "ModifyDBInstanceInput"} if s.DBInstanceIdentifier == nil { invalidParams.Add(aws.NewErrParamRequired("DBInstanceIdentifier")) } if invalidParams.Len() > 0 { return invalidParams } return nil } type ModifyDBInstanceOutput struct { _ struct{} `type:"structure"` // Contains the details of an Amazon RDS DB instance. // // This data type is used as a response element in the DescribeDBInstances action. DBInstance *DBInstance `type:"structure"` } // String returns the string representation func (s ModifyDBInstanceOutput) String() string { return awsutil.Prettify(s) } const opModifyDBInstance = "ModifyDBInstance" // ModifyDBInstanceRequest returns a request value for making API operation for // Amazon Relational Database Service. // // Modifies settings for a DB instance. You can change one or more database // configuration parameters by specifying these parameters and the new values // in the request. To learn what modifications you can make to your DB instance, // call DescribeValidDBInstanceModifications before you call ModifyDBInstance. // // // Example sending a request using ModifyDBInstanceRequest. // req := client.ModifyDBInstanceRequest(params) // resp, err := req.Send(context.TODO()) // if err == nil { // fmt.Println(resp) // } // // Please also see https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/ModifyDBInstance func (c *Client) ModifyDBInstanceRequest(input *ModifyDBInstanceInput) ModifyDBInstanceRequest { op := &aws.Operation{ Name: opModifyDBInstance, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { input = &ModifyDBInstanceInput{} } req := c.newRequest(op, input, &ModifyDBInstanceOutput{}) return ModifyDBInstanceRequest{Request: req, Input: input, Copy: c.ModifyDBInstanceRequest} } // ModifyDBInstanceRequest is the request type for the // ModifyDBInstance API operation. type ModifyDBInstanceRequest struct { *aws.Request Input *ModifyDBInstanceInput Copy func(*ModifyDBInstanceInput) ModifyDBInstanceRequest } // Send marshals and sends the ModifyDBInstance API request. func (r ModifyDBInstanceRequest) Send(ctx context.Context) (*ModifyDBInstanceResponse, error) { r.Request.SetContext(ctx) err := r.Request.Send() if err != nil { return nil, err } resp := &ModifyDBInstanceResponse{ ModifyDBInstanceOutput: r.Request.Data.(*ModifyDBInstanceOutput), response: &aws.Response{Request: r.Request}, } return resp, nil } // ModifyDBInstanceResponse is the response type for the // ModifyDBInstance API operation. type ModifyDBInstanceResponse struct { *ModifyDBInstanceOutput response *aws.Response } // SDKResponseMetdata returns the response metadata for the // ModifyDBInstance request. func (r *ModifyDBInstanceResponse) SDKResponseMetdata() *aws.Response { return r.response }