// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. package docdb import ( "context" "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/internal/awsutil" ) // Represents the input to RestoreDBClusterFromSnapshot. type RestoreDBClusterFromSnapshotInput struct { _ struct{} `type:"structure"` // Provides the list of Amazon EC2 Availability Zones that instances in the // restored DB cluster can be created in. AvailabilityZones []string `locationNameList:"AvailabilityZone" type:"list"` // The name of the cluster to create from the snapshot or cluster snapshot. // This parameter isn't case sensitive. // // Constraints: // // * Must contain from 1 to 63 letters, numbers, or hyphens. // // * The first character must be a letter. // // * Cannot end with a hyphen or contain two consecutive hyphens. // // Example: my-snapshot-id // // DBClusterIdentifier is a required field DBClusterIdentifier *string `type:"string" required:"true"` // The name of the subnet group to use for the new cluster. // // Constraints: If provided, must match the name of an existing DBSubnetGroup. // // Example: mySubnetgroup DBSubnetGroupName *string `type:"string"` // Specifies whether this cluster can be deleted. If DeletionProtection is enabled, // the cluster cannot be deleted unless it is modified and DeletionProtection // is disabled. DeletionProtection protects clusters from being accidentally // deleted. DeletionProtection *bool `type:"boolean"` // A list of log types that must be enabled for exporting to Amazon CloudWatch // Logs. EnableCloudwatchLogsExports []string `type:"list"` // The database engine to use for the new cluster. // // Default: The same as source. // // Constraint: Must be compatible with the engine of the source. // // Engine is a required field Engine *string `type:"string" required:"true"` // The version of the database engine to use for the new cluster. EngineVersion *string `type:"string"` // The AWS KMS key identifier to use when restoring an encrypted cluster from // a DB snapshot or cluster snapshot. // // The AWS KMS key identifier is the Amazon Resource Name (ARN) for the AWS // KMS encryption key. If you are restoring a cluster with the same AWS account // that owns the AWS KMS encryption key used to encrypt the new cluster, then // you can use the AWS KMS key alias instead of the ARN for the AWS KMS encryption // key. // // If you do not specify a value for the KmsKeyId parameter, then the following // occurs: // // * If the snapshot or cluster snapshot in SnapshotIdentifier is encrypted, // then the restored cluster is encrypted using the AWS KMS key that was // used to encrypt the snapshot or the cluster snapshot. // // * If the snapshot or the cluster snapshot in SnapshotIdentifier is not // encrypted, then the restored DB cluster is not encrypted. KmsKeyId *string `type:"string"` // The port number on which the new cluster accepts connections. // // Constraints: Must be a value from 1150 to 65535. // // Default: The same port as the original cluster. Port *int64 `type:"integer"` // The identifier for the snapshot or cluster snapshot to restore from. // // You can use either the name or the Amazon Resource Name (ARN) to specify // a cluster snapshot. However, you can use only the ARN to specify a snapshot. // // Constraints: // // * Must match the identifier of an existing snapshot. // // SnapshotIdentifier is a required field SnapshotIdentifier *string `type:"string" required:"true"` // The tags to be assigned to the restored cluster. Tags []Tag `locationNameList:"Tag" type:"list"` // A list of virtual private cloud (VPC) security groups that the new cluster // will belong to. VpcSecurityGroupIds []string `locationNameList:"VpcSecurityGroupId" type:"list"` } // String returns the string representation func (s RestoreDBClusterFromSnapshotInput) String() string { return awsutil.Prettify(s) } // Validate inspects the fields of the type to determine if they are valid. func (s *RestoreDBClusterFromSnapshotInput) Validate() error { invalidParams := aws.ErrInvalidParams{Context: "RestoreDBClusterFromSnapshotInput"} if s.DBClusterIdentifier == nil { invalidParams.Add(aws.NewErrParamRequired("DBClusterIdentifier")) } if s.Engine == nil { invalidParams.Add(aws.NewErrParamRequired("Engine")) } if s.SnapshotIdentifier == nil { invalidParams.Add(aws.NewErrParamRequired("SnapshotIdentifier")) } if invalidParams.Len() > 0 { return invalidParams } return nil } type RestoreDBClusterFromSnapshotOutput struct { _ struct{} `type:"structure"` // Detailed information about a cluster. DBCluster *DBCluster `type:"structure"` } // String returns the string representation func (s RestoreDBClusterFromSnapshotOutput) String() string { return awsutil.Prettify(s) } const opRestoreDBClusterFromSnapshot = "RestoreDBClusterFromSnapshot" // RestoreDBClusterFromSnapshotRequest returns a request value for making API operation for // Amazon DocumentDB with MongoDB compatibility. // // Creates a new cluster from a snapshot or cluster snapshot. // // If a snapshot is specified, the target cluster is created from the source // DB snapshot with a default configuration and default security group. // // If a cluster snapshot is specified, the target cluster is created from the // source cluster restore point with the same configuration as the original // source DB cluster, except that the new cluster is created with the default // security group. // // // Example sending a request using RestoreDBClusterFromSnapshotRequest. // req := client.RestoreDBClusterFromSnapshotRequest(params) // resp, err := req.Send(context.TODO()) // if err == nil { // fmt.Println(resp) // } // // Please also see https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/RestoreDBClusterFromSnapshot func (c *Client) RestoreDBClusterFromSnapshotRequest(input *RestoreDBClusterFromSnapshotInput) RestoreDBClusterFromSnapshotRequest { op := &aws.Operation{ Name: opRestoreDBClusterFromSnapshot, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { input = &RestoreDBClusterFromSnapshotInput{} } req := c.newRequest(op, input, &RestoreDBClusterFromSnapshotOutput{}) return RestoreDBClusterFromSnapshotRequest{Request: req, Input: input, Copy: c.RestoreDBClusterFromSnapshotRequest} } // RestoreDBClusterFromSnapshotRequest is the request type for the // RestoreDBClusterFromSnapshot API operation. type RestoreDBClusterFromSnapshotRequest struct { *aws.Request Input *RestoreDBClusterFromSnapshotInput Copy func(*RestoreDBClusterFromSnapshotInput) RestoreDBClusterFromSnapshotRequest } // Send marshals and sends the RestoreDBClusterFromSnapshot API request. func (r RestoreDBClusterFromSnapshotRequest) Send(ctx context.Context) (*RestoreDBClusterFromSnapshotResponse, error) { r.Request.SetContext(ctx) err := r.Request.Send() if err != nil { return nil, err } resp := &RestoreDBClusterFromSnapshotResponse{ RestoreDBClusterFromSnapshotOutput: r.Request.Data.(*RestoreDBClusterFromSnapshotOutput), response: &aws.Response{Request: r.Request}, } return resp, nil } // RestoreDBClusterFromSnapshotResponse is the response type for the // RestoreDBClusterFromSnapshot API operation. type RestoreDBClusterFromSnapshotResponse struct { *RestoreDBClusterFromSnapshotOutput response *aws.Response } // SDKResponseMetdata returns the response metadata for the // RestoreDBClusterFromSnapshot request. func (r *RestoreDBClusterFromSnapshotResponse) SDKResponseMetdata() *aws.Response { return r.response }