forked from aws/aws-sdk-go
-
Notifications
You must be signed in to change notification settings - Fork 0
/
service.go
136 lines (124 loc) · 6.2 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
// THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT.
package codepipeline
import (
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/defaults"
"github.com/aws/aws-sdk-go/aws/request"
"github.com/aws/aws-sdk-go/aws/service"
"github.com/aws/aws-sdk-go/aws/service/serviceinfo"
"github.com/aws/aws-sdk-go/internal/protocol/jsonrpc"
"github.com/aws/aws-sdk-go/internal/signer/v4"
)
// Overview This is the AWS CodePipeline API Reference. This guide provides
// descriptions of the actions and data types for AWS CodePipeline. Some functionality
// for your pipeline is only configurable through the API. For additional information,
// see the AWS CodePipeline User Guide (http://docs.aws.amazon.com/pipelines/latest/userguide/welcome.html).
//
// You can use the AWS CodePipeline API to work with pipelines, stages, actions,
// gates, and transitions, as described below.
//
// Pipelines are models of automated release processes. Each pipeline is uniquely
// named, and consists of actions, gates, and stages.
//
// You can work with pipelines by calling: CreatePipeline, which creates
// a uniquely-named pipeline. DeletePipeline, which deletes the specified pipeline.
// GetPipeline, which returns information about a pipeline structure. GetPipelineState,
// which returns information about the current state of the stages and actions
// of a pipeline. ListPipelines, which gets a summary of all of the pipelines
// associated with your account. StartPipelineExecution, which runs the the
// most recent revision of an artifact through the pipeline. UpdatePipeline,
// which updates a pipeline with edits or changes to the structure of the pipeline.
// Pipelines include stages, which are which are logical groupings of gates
// and actions. Each stage contains one or more actions that must complete before
// the next stage begins. A stage will result in success or failure. If a stage
// fails, then the pipeline stops at that stage and will remain stopped until
// either a new version of an artifact appears in the source location, or a
// user takes action to re-run the most recent artifact through the pipeline.
// You can call GetPipelineState, which displays the status of a pipeline, including
// the status of stages in the pipeline, or GetPipeline, which returns the entire
// structure of the pipeline, including the stages of that pipeline. For more
// information about the structure of stages and actions, also refer to the
// AWS CodePipeline Pipeline Structure Reference.
//
// Pipeline stages include actions, which are categorized into categories
// such as source or build actions performed within a stage of a pipeline. For
// example, you can use a source action to import artifacts into a pipeline
// from a source such as Amazon S3. Like stages, you do not work with actions
// directly in most cases, but you do define and interact with actions when
// working with pipeline operations such as CreatePipeline and GetPipelineState.
//
// Pipelines also include transitions, which allow the transition of artifacts
// from one stage to the next in a pipeline after the actions in one stage complete.
//
// You can work with transitions by calling:
//
// DisableStageTransition, which prevents artifacts from transitioning to
// the next stage in a pipeline. EnableStageTransition, which enables transition
// of artifacts between stages in a pipeline. Using the API to integrate with
// AWS CodePipeline
//
// For third-party integrators or developers who want to create their own integrations
// with AWS CodePipeline, the expected sequence varies from the standard API
// user. In order to integrate with AWS CodePipeline, developers will need to
// work with the following items:
//
// Jobs, which are instances of an action. For example, a job for a source
// action might import a revision of an artifact from a source. You can work
// with jobs by calling:
//
// AcknowledgeJob, which confirms whether a job worker has received the specified
// job, GetJobDetails, which returns the details of a job, PollForJobs, which
// determines whether there are any jobs to act upon, PutJobFailureResult,
// which provides details of a job failure, and PutJobSuccessResult, which
// provides details of a job success. Third party jobs, which are instances
// of an action created by a partner action and integrated into AWS CodePipeline.
// Partner actions are created by members of the AWS Partner Network. You can
// work with third party jobs by calling:
//
// AcknowledgeThirdPartyJob, which confirms whether a job worker has received
// the specified job, GetThirdPartyJobDetails, which requests the details of
// a job for a partner action, PollForThirdPartyJobs, which determines whether
// there are any jobs to act upon, PutThirdPartyJobFailureResult, which provides
// details of a job failure, and PutThirdPartyJobSuccessResult, which provides
// details of a job success.
type CodePipeline struct {
*service.Service
}
// Used for custom service initialization logic
var initService func(*service.Service)
// Used for custom request initialization logic
var initRequest func(*request.Request)
// New returns a new CodePipeline client.
func New(config *aws.Config) *CodePipeline {
service := &service.Service{
ServiceInfo: serviceinfo.ServiceInfo{
Config: defaults.DefaultConfig.Merge(config),
ServiceName: "codepipeline",
APIVersion: "2015-07-09",
JSONVersion: "1.1",
TargetPrefix: "CodePipeline_20150709",
},
}
service.Initialize()
// Handlers
service.Handlers.Sign.PushBack(v4.Sign)
service.Handlers.Build.PushBack(jsonrpc.Build)
service.Handlers.Unmarshal.PushBack(jsonrpc.Unmarshal)
service.Handlers.UnmarshalMeta.PushBack(jsonrpc.UnmarshalMeta)
service.Handlers.UnmarshalError.PushBack(jsonrpc.UnmarshalError)
// Run custom service initialization if present
if initService != nil {
initService(service)
}
return &CodePipeline{service}
}
// newRequest creates a new request for a CodePipeline operation and runs any
// custom request initialization.
func (c *CodePipeline) 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
}