forked from aws/aws-sdk-go
-
Notifications
You must be signed in to change notification settings - Fork 1
/
service.go
162 lines (148 loc) · 5.65 KB
/
service.go
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
// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
package opsworks
import (
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/client"
"github.com/aws/aws-sdk-go/aws/client/metadata"
"github.com/aws/aws-sdk-go/aws/request"
"github.com/aws/aws-sdk-go/aws/signer/v4"
"github.com/aws/aws-sdk-go/private/protocol/jsonrpc"
)
// Welcome to the AWS OpsWorks Stacks API Reference. This guide provides descriptions,
// syntax, and usage examples for AWS OpsWorks Stacks actions and data types,
// including common parameters and error codes.
//
// AWS OpsWorks Stacks is an application management service that provides an
// integrated experience for overseeing the complete application lifecycle.
// For information about this product, go to the AWS OpsWorks (http://aws.amazon.com/opsworks/)
// details page.
//
// SDKs and CLI
//
// The most common way to use the AWS OpsWorks Stacks API is by using the AWS
// Command Line Interface (CLI) or by using one of the AWS SDKs to implement
// applications in your preferred language. For more information, see:
//
// * AWS CLI (http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)
//
// * AWS SDK for Java (http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/opsworks/AWSOpsWorksClient.html)
//
// * AWS SDK for .NET (http://docs.aws.amazon.com/sdkfornet/latest/apidocs/html/N_Amazon_OpsWorks.htm)
//
// * AWS SDK for PHP 2 (http://docs.aws.amazon.com/aws-sdk-php-2/latest/class-Aws.OpsWorks.OpsWorksClient.html)
//
// * AWS SDK for Ruby (http://docs.aws.amazon.com/sdkforruby/api/)
//
// * AWS SDK for Node.js (http://aws.amazon.com/documentation/sdkforjavascript/)
//
// * AWS SDK for Python(Boto) (http://docs.pythonboto.org/en/latest/ref/opsworks.html)
//
// Endpoints
//
// AWS OpsWorks Stacks supports the following endpoints, all HTTPS. You must
// connect to one of the following endpoints. Stacks can only be accessed or
// managed within the endpoint in which they are created.
//
// * opsworks.us-east-1.amazonaws.com
//
// * opsworks.us-east-2.amazonaws.com
//
// * opsworks.us-west-1.amazonaws.com
//
// * opsworks.us-west-2.amazonaws.com
//
// * opsworks.eu-west-1.amazonaws.com
//
// * opsworks.eu-west-2.amazonaws.com
//
// * opsworks.eu-central-1.amazonaws.com
//
// * opsworks.ap-northeast-1.amazonaws.com
//
// * opsworks.ap-northeast-2.amazonaws.com
//
// * opsworks.ap-south-1.amazonaws.com
//
// * opsworks.ap-southeast-1.amazonaws.com
//
// * opsworks.ap-southeast-2.amazonaws.com
//
// * opsworks.sa-east-1.amazonaws.com
//
// Chef Versions
//
// When you call CreateStack, CloneStack, or UpdateStack we recommend you use
// the ConfigurationManager parameter to specify the Chef version. The recommended
// and default value for Linux stacks is currently 12. Windows stacks use Chef
// 12.2. For more information, see Chef Versions (http://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook-chef11.html).
//
// You can specify Chef 12, 11.10, or 11.4 for your Linux stack. We recommend
// migrating your existing Linux stacks to Chef 12 as soon as possible.
// The service client's operations are safe to be used concurrently.
// It is not safe to mutate any of the client's properties though.
// Please also see https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18
type OpsWorks struct {
*client.Client
}
// Used for custom client initialization logic
var initClient func(*client.Client)
// Used for custom request initialization logic
var initRequest func(*request.Request)
// Service information constants
const (
ServiceName = "opsworks" // Service endpoint prefix API calls made to.
EndpointsID = ServiceName // Service ID for Regions and Endpoints metadata.
)
// New creates a new instance of the OpsWorks client with a session.
// If additional configuration is needed for the client instance use the optional
// aws.Config parameter to add your extra config.
//
// Example:
// // Create a OpsWorks client from just a session.
// svc := opsworks.New(mySession)
//
// // Create a OpsWorks client with additional configuration
// svc := opsworks.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
func New(p client.ConfigProvider, cfgs ...*aws.Config) *OpsWorks {
c := p.ClientConfig(EndpointsID, cfgs...)
return newClient(*c.Config, c.Handlers, c.Endpoint, c.SigningRegion, c.SigningName)
}
// newClient creates, initializes and returns a new service client instance.
func newClient(cfg aws.Config, handlers request.Handlers, endpoint, signingRegion, signingName string) *OpsWorks {
svc := &OpsWorks{
Client: client.New(
cfg,
metadata.ClientInfo{
ServiceName: ServiceName,
SigningName: signingName,
SigningRegion: signingRegion,
Endpoint: endpoint,
APIVersion: "2013-02-18",
JSONVersion: "1.1",
TargetPrefix: "OpsWorks_20130218",
},
handlers,
),
}
// Handlers
svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
svc.Handlers.Build.PushBackNamed(jsonrpc.BuildHandler)
svc.Handlers.Unmarshal.PushBackNamed(jsonrpc.UnmarshalHandler)
svc.Handlers.UnmarshalMeta.PushBackNamed(jsonrpc.UnmarshalMetaHandler)
svc.Handlers.UnmarshalError.PushBackNamed(jsonrpc.UnmarshalErrorHandler)
// Run custom client initialization if present
if initClient != nil {
initClient(svc.Client)
}
return svc
}
// newRequest creates a new request for a OpsWorks operation and runs any
// custom request initialization.
func (c *OpsWorks) newRequest(op *request.Operation, params, data interface{}) *request.Request {
req := c.NewRequest(op, params, data)
// Run custom request initialization if present
if initRequest != nil {
initRequest(req)
}
return req
}