forked from journeymidnight/aws-sdk-go
-
Notifications
You must be signed in to change notification settings - Fork 0
/
service.go
130 lines (116 loc) · 4.97 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
// THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT.
package codecommit
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 AWS CodeCommit API Reference. This reference provides descriptions
// of the operations and data types for AWS CodeCommit API.
//
// You can use the AWS CodeCommit API to work with the following objects:
//
// * Repositories, by calling the following: BatchGetRepositories, which
// returns information about one or more repositories associated with your
// AWS account
// CreateRepository, which creates an AWS CodeCommit repository
// DeleteRepository, which deletes an AWS CodeCommit repository
// GetRepository, which returns information about a specified repository
// ListRepositories, which lists all AWS CodeCommit repositories associated
// with your AWS account
// UpdateRepositoryDescription, which sets or updates the description of the
// repository
// UpdateRepositoryName, which changes the name of the repository. If you change
// the name of a repository, no other users of that repository will be able
// to access it until you send them the new HTTPS or SSH URL to use.
//
// * Branches, by calling the following: CreateBranch, which creates a new
// branch in a specified repository
// GetBranch, which returns information about a specified branch
// ListBranches, which lists all branches for a specified repository
// UpdateDefaultBranch, which changes the default branch for a repository
//
// * Information about committed code in a repository, by calling the following:
// GetCommit, which returns information about a commit, including commit
// messages and committer information.
//
// * Triggers, by calling the following: GetRepositoryTriggers, which returns
// information about triggers configured for a repository
// PutRepositoryTriggers, which replaces all triggers for a repository and can
// be used to create or delete triggers
// TestRepositoryTriggers, which tests the functionality of a repository trigger
// by sending data to the trigger target
//
// For information about how to use AWS CodeCommit, see the AWS CodeCommit User
// Guide (http://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html).
// 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/codecommit-2015-04-13
type CodeCommit 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 = "codecommit" // Service endpoint prefix API calls made to.
EndpointsID = ServiceName // Service ID for Regions and Endpoints metadata.
)
// New creates a new instance of the CodeCommit 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 CodeCommit client from just a session.
// svc := codecommit.New(mySession)
//
// // Create a CodeCommit client with additional configuration
// svc := codecommit.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
func New(p client.ConfigProvider, cfgs ...*aws.Config) *CodeCommit {
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) *CodeCommit {
svc := &CodeCommit{
Client: client.New(
cfg,
metadata.ClientInfo{
ServiceName: ServiceName,
SigningName: signingName,
SigningRegion: signingRegion,
Endpoint: endpoint,
APIVersion: "2015-04-13",
JSONVersion: "1.1",
TargetPrefix: "CodeCommit_20150413",
},
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 CodeCommit operation and runs any
// custom request initialization.
func (c *CodeCommit) 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
}