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