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