File: api_op_StartRestoreJob.go

package info (click to toggle)
golang-github-aws-aws-sdk-go-v2 1.24.1-2~bpo12%2B1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm-backports
  • size: 554,032 kB
  • sloc: java: 15,941; makefile: 419; sh: 175
file content (199 lines) | stat: -rw-r--r-- 7,237 bytes parent folder | download
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
// Code generated by smithy-go-codegen DO NOT EDIT.

package backup

import (
	"context"
	"fmt"
	awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
	"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
	"github.com/aws/smithy-go/middleware"
	smithyhttp "github.com/aws/smithy-go/transport/http"
)

// Recovers the saved resource identified by an Amazon Resource Name (ARN).
func (c *Client) StartRestoreJob(ctx context.Context, params *StartRestoreJobInput, optFns ...func(*Options)) (*StartRestoreJobOutput, error) {
	if params == nil {
		params = &StartRestoreJobInput{}
	}

	result, metadata, err := c.invokeOperation(ctx, "StartRestoreJob", params, optFns, c.addOperationStartRestoreJobMiddlewares)
	if err != nil {
		return nil, err
	}

	out := result.(*StartRestoreJobOutput)
	out.ResultMetadata = metadata
	return out, nil
}

type StartRestoreJobInput struct {

	// A set of metadata key-value pairs. Contains information, such as a resource
	// name, required to restore a recovery point. You can get configuration metadata
	// about a resource at the time it was backed up by calling
	// GetRecoveryPointRestoreMetadata . However, values in addition to those provided
	// by GetRecoveryPointRestoreMetadata might be required to restore a resource. For
	// example, you might need to provide a new resource name if the original already
	// exists. You need to specify specific metadata to restore an Amazon Elastic File
	// System (Amazon EFS) instance:
	//   - file-system-id : The ID of the Amazon EFS file system that is backed up by
	//   Backup. Returned in GetRecoveryPointRestoreMetadata .
	//   - Encrypted : A Boolean value that, if true, specifies that the file system is
	//   encrypted. If KmsKeyId is specified, Encrypted must be set to true .
	//   - KmsKeyId : Specifies the Amazon Web Services KMS key that is used to encrypt
	//   the restored file system. You can specify a key from another Amazon Web Services
	//   account provided that key it is properly shared with your account via Amazon Web
	//   Services KMS.
	//   - PerformanceMode : Specifies the throughput mode of the file system.
	//   - CreationToken : A user-supplied value that ensures the uniqueness
	//   (idempotency) of the request.
	//   - newFileSystem : A Boolean value that, if true, specifies that the recovery
	//   point is restored to a new Amazon EFS file system.
	//   - ItemsToRestore : An array of one to five strings where each string is a file
	//   path. Use ItemsToRestore to restore specific files or directories rather than
	//   the entire file system. This parameter is optional. For example,
	//   "itemsToRestore":"[\"/my.test\"]" .
	//
	// This member is required.
	Metadata map[string]string

	// An ARN that uniquely identifies a recovery point; for example,
	// arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45
	// .
	//
	// This member is required.
	RecoveryPointArn *string

	// This is an optional parameter. If this equals True , tags included in the backup
	// will be copied to the restored resource. This can only be applied to backups
	// created through Backup.
	CopySourceTagsToRestoredResource bool

	// The Amazon Resource Name (ARN) of the IAM role that Backup uses to create the
	// target resource; for example: arn:aws:iam::123456789012:role/S3Access .
	IamRoleArn *string

	// A customer-chosen string that you can use to distinguish between otherwise
	// identical calls to StartRestoreJob . Retrying a successful request with the same
	// idempotency token results in a success message with no action taken.
	IdempotencyToken *string

	// Starts a job to restore a recovery point for one of the following resources:
	//   - Aurora for Amazon Aurora
	//   - DocumentDB for Amazon DocumentDB (with MongoDB compatibility)
	//   - CloudFormation for CloudFormation
	//   - DynamoDB for Amazon DynamoDB
	//   - EBS for Amazon Elastic Block Store
	//   - EC2 for Amazon Elastic Compute Cloud
	//   - EFS for Amazon Elastic File System
	//   - FSx for Amazon FSx
	//   - Neptune for Amazon Neptune
	//   - RDS for Amazon Relational Database Service
	//   - Redshift for Amazon Redshift
	//   - Storage Gateway for Storage Gateway
	//   - S3 for Amazon S3
	//   - Timestream for Amazon Timestream
	//   - VirtualMachine for virtual machines
	ResourceType *string

	noSmithyDocumentSerde
}

type StartRestoreJobOutput struct {

	// Uniquely identifies the job that restores a recovery point.
	RestoreJobId *string

	// Metadata pertaining to the operation's result.
	ResultMetadata middleware.Metadata

	noSmithyDocumentSerde
}

func (c *Client) addOperationStartRestoreJobMiddlewares(stack *middleware.Stack, options Options) (err error) {
	if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil {
		return err
	}
	err = stack.Serialize.Add(&awsRestjson1_serializeOpStartRestoreJob{}, middleware.After)
	if err != nil {
		return err
	}
	err = stack.Deserialize.Add(&awsRestjson1_deserializeOpStartRestoreJob{}, middleware.After)
	if err != nil {
		return err
	}
	if err := addProtocolFinalizerMiddlewares(stack, options, "StartRestoreJob"); err != nil {
		return fmt.Errorf("add protocol finalizers: %v", err)
	}

	if err = addlegacyEndpointContextSetter(stack, options); err != nil {
		return err
	}
	if err = addSetLoggerMiddleware(stack, options); err != nil {
		return err
	}
	if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil {
		return err
	}
	if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil {
		return err
	}
	if err = addResolveEndpointMiddleware(stack, options); err != nil {
		return err
	}
	if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil {
		return err
	}
	if err = addRetryMiddlewares(stack, options); err != nil {
		return err
	}
	if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil {
		return err
	}
	if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil {
		return err
	}
	if err = addClientUserAgent(stack, options); err != nil {
		return err
	}
	if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil {
		return err
	}
	if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil {
		return err
	}
	if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil {
		return err
	}
	if err = addOpStartRestoreJobValidationMiddleware(stack); err != nil {
		return err
	}
	if err = stack.Initialize.Add(newServiceMetadataMiddleware_opStartRestoreJob(options.Region), middleware.Before); err != nil {
		return err
	}
	if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
		return err
	}
	if err = addRequestIDRetrieverMiddleware(stack); err != nil {
		return err
	}
	if err = addResponseErrorMiddleware(stack); err != nil {
		return err
	}
	if err = addRequestResponseLogging(stack, options); err != nil {
		return err
	}
	if err = addDisableHTTPSMiddleware(stack, options); err != nil {
		return err
	}
	return nil
}

func newServiceMetadataMiddleware_opStartRestoreJob(region string) *awsmiddleware.RegisterServiceMetadata {
	return &awsmiddleware.RegisterServiceMetadata{
		Region:        region,
		ServiceID:     ServiceID,
		OperationName: "StartRestoreJob",
	}
}