forked from aws/aws-sdk-go
-
Notifications
You must be signed in to change notification settings - Fork 0
/
service.go
140 lines (126 loc) · 4.6 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
// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
package codestar
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"
)
// This is the API reference for AWS CodeStar. This reference provides descriptions
// of the operations and data types for the AWS CodeStar API along with usage
// examples.
//
// You can use the AWS CodeStar API to work with:
//
// Projects and their resources, by calling the following:
//
// * CreateProject, which creates an empty project in AWS CodeStar with no
// resources.
//
// * DeleteProject, which deletes a project in AWS CodeStar.
//
// * DescribeProject, which lists the attributes of a project.
//
// * ListProjects, which lists all AWS CodeStar projects associated with
// your AWS account.
//
// * ListResources, which lists the resources associated with an AWS CodeStar
// project.
//
// * UpdateProject, which updates the attributes of an AWS CodeStar project.
//
// Teams and team members, by calling the following:
//
// * AssociateTeamMember, which adds an IAM user to the team for an AWS CodeStar
// project.
//
// * DisassociateTeamMember, which removes an IAM user from the team for
// an AWS CodeStar project.
//
// * ListTeamMembers, which lists all the IAM users in the team for an AWS
// CodeStar project, including their roles and attributes.
//
// Users, by calling the following:
//
// * CreateUserProfile, which creates a user profile that contains data associated
// with the user across all AWS CodeStar projects.
//
// * DeleteUserProfile, which deletes all user profile information across
// all AWS CodeStar projects.
//
// * DescribeUserProfile, which describes the profile of a user.
//
// * ListUserProfiles, which lists all AWS CodeStar user profiles.
//
// * UpdateUserProfile, which updates the profile for an AWS CodeStar user.
//
// 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/codestar-2017-04-19
type CodeStar 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 = "codestar" // Service endpoint prefix API calls made to.
EndpointsID = ServiceName // Service ID for Regions and Endpoints metadata.
)
// New creates a new instance of the CodeStar 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 CodeStar client from just a session.
// svc := codestar.New(mySession)
//
// // Create a CodeStar client with additional configuration
// svc := codestar.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
func New(p client.ConfigProvider, cfgs ...*aws.Config) *CodeStar {
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) *CodeStar {
svc := &CodeStar{
Client: client.New(
cfg,
metadata.ClientInfo{
ServiceName: ServiceName,
SigningName: signingName,
SigningRegion: signingRegion,
Endpoint: endpoint,
APIVersion: "2017-04-19",
JSONVersion: "1.1",
TargetPrefix: "CodeStar_20170419",
},
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 CodeStar operation and runs any
// custom request initialization.
func (c *CodeStar) 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
}