-
Notifications
You must be signed in to change notification settings - Fork 597
/
api_op_CreatePipeline.go
170 lines (143 loc) · 5.49 KB
/
api_op_CreatePipeline.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
163
164
165
166
167
168
169
170
// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
package datapipeline
import (
"context"
"fmt"
"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/internal/awsutil"
)
// Contains the parameters for CreatePipeline.
// Please also see https://docs.aws.amazon.com/goto/WebAPI/datapipeline-2012-10-29/CreatePipelineInput
type CreatePipelineInput struct {
_ struct{} `type:"structure"`
// The description for the pipeline.
Description *string `locationName:"description" type:"string"`
// The name for the pipeline. You can use the same name for multiple pipelines
// associated with your AWS account, because AWS Data Pipeline assigns each
// pipeline a unique pipeline identifier.
//
// Name is a required field
Name *string `locationName:"name" min:"1" type:"string" required:"true"`
// A list of tags to associate with the pipeline at creation. Tags let you control
// access to pipelines. For more information, see Controlling User Access to
// Pipelines (http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-control-access.html)
// in the AWS Data Pipeline Developer Guide.
Tags []Tag `locationName:"tags" type:"list"`
// A unique identifier. This identifier is not the same as the pipeline identifier
// assigned by AWS Data Pipeline. You are responsible for defining the format
// and ensuring the uniqueness of this identifier. You use this parameter to
// ensure idempotency during repeated calls to CreatePipeline. For example,
// if the first call to CreatePipeline does not succeed, you can pass in the
// same unique identifier and pipeline name combination on a subsequent call
// to CreatePipeline. CreatePipeline ensures that if a pipeline already exists
// with the same name and unique identifier, a new pipeline is not created.
// Instead, you'll receive the pipeline identifier from the previous attempt.
// The uniqueness of the name and unique identifier combination is scoped to
// the AWS account or IAM user credentials.
//
// UniqueId is a required field
UniqueId *string `locationName:"uniqueId" min:"1" type:"string" required:"true"`
}
// String returns the string representation
func (s CreatePipelineInput) String() string {
return awsutil.Prettify(s)
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *CreatePipelineInput) Validate() error {
invalidParams := aws.ErrInvalidParams{Context: "CreatePipelineInput"}
if s.Name == nil {
invalidParams.Add(aws.NewErrParamRequired("Name"))
}
if s.Name != nil && len(*s.Name) < 1 {
invalidParams.Add(aws.NewErrParamMinLen("Name", 1))
}
if s.UniqueId == nil {
invalidParams.Add(aws.NewErrParamRequired("UniqueId"))
}
if s.UniqueId != nil && len(*s.UniqueId) < 1 {
invalidParams.Add(aws.NewErrParamMinLen("UniqueId", 1))
}
if s.Tags != nil {
for i, v := range s.Tags {
if err := v.Validate(); err != nil {
invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(aws.ErrInvalidParams))
}
}
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
// Contains the output of CreatePipeline.
// Please also see https://docs.aws.amazon.com/goto/WebAPI/datapipeline-2012-10-29/CreatePipelineOutput
type CreatePipelineOutput struct {
_ struct{} `type:"structure"`
// The ID that AWS Data Pipeline assigns the newly created pipeline. For example,
// df-06372391ZG65EXAMPLE.
//
// PipelineId is a required field
PipelineId *string `locationName:"pipelineId" min:"1" type:"string" required:"true"`
}
// String returns the string representation
func (s CreatePipelineOutput) String() string {
return awsutil.Prettify(s)
}
const opCreatePipeline = "CreatePipeline"
// CreatePipelineRequest returns a request value for making API operation for
// AWS Data Pipeline.
//
// Creates a new, empty pipeline. Use PutPipelineDefinition to populate the
// pipeline.
//
// // Example sending a request using CreatePipelineRequest.
// req := client.CreatePipelineRequest(params)
// resp, err := req.Send(context.TODO())
// if err == nil {
// fmt.Println(resp)
// }
//
// Please also see https://docs.aws.amazon.com/goto/WebAPI/datapipeline-2012-10-29/CreatePipeline
func (c *Client) CreatePipelineRequest(input *CreatePipelineInput) CreatePipelineRequest {
op := &aws.Operation{
Name: opCreatePipeline,
HTTPMethod: "POST",
HTTPPath: "/",
}
if input == nil {
input = &CreatePipelineInput{}
}
req := c.newRequest(op, input, &CreatePipelineOutput{})
return CreatePipelineRequest{Request: req, Input: input, Copy: c.CreatePipelineRequest}
}
// CreatePipelineRequest is the request type for the
// CreatePipeline API operation.
type CreatePipelineRequest struct {
*aws.Request
Input *CreatePipelineInput
Copy func(*CreatePipelineInput) CreatePipelineRequest
}
// Send marshals and sends the CreatePipeline API request.
func (r CreatePipelineRequest) Send(ctx context.Context) (*CreatePipelineResponse, error) {
r.Request.SetContext(ctx)
err := r.Request.Send()
if err != nil {
return nil, err
}
resp := &CreatePipelineResponse{
CreatePipelineOutput: r.Request.Data.(*CreatePipelineOutput),
response: &aws.Response{Request: r.Request},
}
return resp, nil
}
// CreatePipelineResponse is the response type for the
// CreatePipeline API operation.
type CreatePipelineResponse struct {
*CreatePipelineOutput
response *aws.Response
}
// SDKResponseMetdata returns the response metadata for the
// CreatePipeline request.
func (r *CreatePipelineResponse) SDKResponseMetdata() *aws.Response {
return r.response
}