1
2
3 package ecr
4
5 import (
6 "context"
7 "errors"
8 "fmt"
9 "github.com/aws/aws-sdk-go-v2/aws"
10 awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
11 "github.com/aws/aws-sdk-go-v2/aws/signer/v4"
12 internalauth "github.com/aws/aws-sdk-go-v2/internal/auth"
13 smithyendpoints "github.com/aws/smithy-go/endpoints"
14 "github.com/aws/smithy-go/middleware"
15 smithyhttp "github.com/aws/smithy-go/transport/http"
16 "time"
17 )
18
19
20 func (c *Client) DeleteLifecyclePolicy(ctx context.Context, params *DeleteLifecyclePolicyInput, optFns ...func(*Options)) (*DeleteLifecyclePolicyOutput, error) {
21 if params == nil {
22 params = &DeleteLifecyclePolicyInput{}
23 }
24
25 result, metadata, err := c.invokeOperation(ctx, "DeleteLifecyclePolicy", params, optFns, c.addOperationDeleteLifecyclePolicyMiddlewares)
26 if err != nil {
27 return nil, err
28 }
29
30 out := result.(*DeleteLifecyclePolicyOutput)
31 out.ResultMetadata = metadata
32 return out, nil
33 }
34
35 type DeleteLifecyclePolicyInput struct {
36
37
38
39
40 RepositoryName *string
41
42
43
44
45 RegistryId *string
46
47 noSmithyDocumentSerde
48 }
49
50 type DeleteLifecyclePolicyOutput struct {
51
52
53 LastEvaluatedAt *time.Time
54
55
56 LifecyclePolicyText *string
57
58
59 RegistryId *string
60
61
62 RepositoryName *string
63
64
65 ResultMetadata middleware.Metadata
66
67 noSmithyDocumentSerde
68 }
69
70 func (c *Client) addOperationDeleteLifecyclePolicyMiddlewares(stack *middleware.Stack, options Options) (err error) {
71 err = stack.Serialize.Add(&awsAwsjson11_serializeOpDeleteLifecyclePolicy{}, middleware.After)
72 if err != nil {
73 return err
74 }
75 err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpDeleteLifecyclePolicy{}, middleware.After)
76 if err != nil {
77 return err
78 }
79 if err = addlegacyEndpointContextSetter(stack, options); err != nil {
80 return err
81 }
82 if err = addSetLoggerMiddleware(stack, options); err != nil {
83 return err
84 }
85 if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil {
86 return err
87 }
88 if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil {
89 return err
90 }
91 if err = addResolveEndpointMiddleware(stack, options); err != nil {
92 return err
93 }
94 if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil {
95 return err
96 }
97 if err = addRetryMiddlewares(stack, options); err != nil {
98 return err
99 }
100 if err = addHTTPSignerV4Middleware(stack, options); err != nil {
101 return err
102 }
103 if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil {
104 return err
105 }
106 if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil {
107 return err
108 }
109 if err = addClientUserAgent(stack, options); err != nil {
110 return err
111 }
112 if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil {
113 return err
114 }
115 if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil {
116 return err
117 }
118 if err = addDeleteLifecyclePolicyResolveEndpointMiddleware(stack, options); err != nil {
119 return err
120 }
121 if err = addOpDeleteLifecyclePolicyValidationMiddleware(stack); err != nil {
122 return err
123 }
124 if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeleteLifecyclePolicy(options.Region), middleware.Before); err != nil {
125 return err
126 }
127 if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
128 return err
129 }
130 if err = addRequestIDRetrieverMiddleware(stack); err != nil {
131 return err
132 }
133 if err = addResponseErrorMiddleware(stack); err != nil {
134 return err
135 }
136 if err = addRequestResponseLogging(stack, options); err != nil {
137 return err
138 }
139 if err = addendpointDisableHTTPSMiddleware(stack, options); err != nil {
140 return err
141 }
142 return nil
143 }
144
145 func newServiceMetadataMiddleware_opDeleteLifecyclePolicy(region string) *awsmiddleware.RegisterServiceMetadata {
146 return &awsmiddleware.RegisterServiceMetadata{
147 Region: region,
148 ServiceID: ServiceID,
149 SigningName: "ecr",
150 OperationName: "DeleteLifecyclePolicy",
151 }
152 }
153
154 type opDeleteLifecyclePolicyResolveEndpointMiddleware struct {
155 EndpointResolver EndpointResolverV2
156 BuiltInResolver builtInParameterResolver
157 }
158
159 func (*opDeleteLifecyclePolicyResolveEndpointMiddleware) ID() string {
160 return "ResolveEndpointV2"
161 }
162
163 func (m *opDeleteLifecyclePolicyResolveEndpointMiddleware) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
164 out middleware.SerializeOutput, metadata middleware.Metadata, err error,
165 ) {
166 if awsmiddleware.GetRequiresLegacyEndpoints(ctx) {
167 return next.HandleSerialize(ctx, in)
168 }
169
170 req, ok := in.Request.(*smithyhttp.Request)
171 if !ok {
172 return out, metadata, fmt.Errorf("unknown transport type %T", in.Request)
173 }
174
175 if m.EndpointResolver == nil {
176 return out, metadata, fmt.Errorf("expected endpoint resolver to not be nil")
177 }
178
179 params := EndpointParameters{}
180
181 m.BuiltInResolver.ResolveBuiltIns(¶ms)
182
183 var resolvedEndpoint smithyendpoints.Endpoint
184 resolvedEndpoint, err = m.EndpointResolver.ResolveEndpoint(ctx, params)
185 if err != nil {
186 return out, metadata, fmt.Errorf("failed to resolve service endpoint, %w", err)
187 }
188
189 req.URL = &resolvedEndpoint.URI
190
191 for k := range resolvedEndpoint.Headers {
192 req.Header.Set(
193 k,
194 resolvedEndpoint.Headers.Get(k),
195 )
196 }
197
198 authSchemes, err := internalauth.GetAuthenticationSchemes(&resolvedEndpoint.Properties)
199 if err != nil {
200 var nfe *internalauth.NoAuthenticationSchemesFoundError
201 if errors.As(err, &nfe) {
202
203 signingName := "ecr"
204 signingRegion := m.BuiltInResolver.(*builtInResolver).Region
205 ctx = awsmiddleware.SetSigningName(ctx, signingName)
206 ctx = awsmiddleware.SetSigningRegion(ctx, signingRegion)
207
208 }
209 var ue *internalauth.UnSupportedAuthenticationSchemeSpecifiedError
210 if errors.As(err, &ue) {
211 return out, metadata, fmt.Errorf(
212 "This operation requests signer version(s) %v but the client only supports %v",
213 ue.UnsupportedSchemes,
214 internalauth.SupportedSchemes,
215 )
216 }
217 }
218
219 for _, authScheme := range authSchemes {
220 switch authScheme.(type) {
221 case *internalauth.AuthenticationSchemeV4:
222 v4Scheme, _ := authScheme.(*internalauth.AuthenticationSchemeV4)
223 var signingName, signingRegion string
224 if v4Scheme.SigningName == nil {
225 signingName = "ecr"
226 } else {
227 signingName = *v4Scheme.SigningName
228 }
229 if v4Scheme.SigningRegion == nil {
230 signingRegion = m.BuiltInResolver.(*builtInResolver).Region
231 } else {
232 signingRegion = *v4Scheme.SigningRegion
233 }
234 if v4Scheme.DisableDoubleEncoding != nil {
235
236
237
238 ctx = internalauth.SetDisableDoubleEncoding(ctx, *v4Scheme.DisableDoubleEncoding)
239 }
240 ctx = awsmiddleware.SetSigningName(ctx, signingName)
241 ctx = awsmiddleware.SetSigningRegion(ctx, signingRegion)
242 break
243 case *internalauth.AuthenticationSchemeV4A:
244 v4aScheme, _ := authScheme.(*internalauth.AuthenticationSchemeV4A)
245 if v4aScheme.SigningName == nil {
246 v4aScheme.SigningName = aws.String("ecr")
247 }
248 if v4aScheme.DisableDoubleEncoding != nil {
249
250
251
252 ctx = internalauth.SetDisableDoubleEncoding(ctx, *v4aScheme.DisableDoubleEncoding)
253 }
254 ctx = awsmiddleware.SetSigningName(ctx, *v4aScheme.SigningName)
255 ctx = awsmiddleware.SetSigningRegion(ctx, v4aScheme.SigningRegionSet[0])
256 break
257 case *internalauth.AuthenticationSchemeNone:
258 break
259 }
260 }
261
262 return next.HandleSerialize(ctx, in)
263 }
264
265 func addDeleteLifecyclePolicyResolveEndpointMiddleware(stack *middleware.Stack, options Options) error {
266 return stack.Serialize.Insert(&opDeleteLifecyclePolicyResolveEndpointMiddleware{
267 EndpointResolver: options.EndpointResolverV2,
268 BuiltInResolver: &builtInResolver{
269 Region: options.Region,
270 UseDualStack: options.EndpointOptions.UseDualStackEndpoint,
271 UseFIPS: options.EndpointOptions.UseFIPSEndpoint,
272 Endpoint: options.BaseEndpoint,
273 },
274 }, "ResolveEndpoint", middleware.After)
275 }
276
View as plain text