1// Code generated by smithy-go-codegen DO NOT EDIT. 2 3package s3control 4 5import ( 6 "context" 7 "fmt" 8 awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" 9 "github.com/aws/aws-sdk-go-v2/aws/signer/v4" 10 s3controlcust "github.com/aws/aws-sdk-go-v2/service/s3control/internal/customizations" 11 "github.com/aws/aws-sdk-go-v2/service/s3control/types" 12 smithy "github.com/aws/smithy-go" 13 "github.com/aws/smithy-go/middleware" 14 smithyhttp "github.com/aws/smithy-go/transport/http" 15 "strings" 16) 17 18// Indicates whether the specified access point currently has a policy that allows 19// public access. For more information about public access through access points, 20// see Managing Data Access with Amazon S3 Access Points 21// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html) in 22// the Amazon Simple Storage Service Developer Guide. 23func (c *Client) GetAccessPointPolicyStatus(ctx context.Context, params *GetAccessPointPolicyStatusInput, optFns ...func(*Options)) (*GetAccessPointPolicyStatusOutput, error) { 24 if params == nil { 25 params = &GetAccessPointPolicyStatusInput{} 26 } 27 28 result, metadata, err := c.invokeOperation(ctx, "GetAccessPointPolicyStatus", params, optFns, addOperationGetAccessPointPolicyStatusMiddlewares) 29 if err != nil { 30 return nil, err 31 } 32 33 out := result.(*GetAccessPointPolicyStatusOutput) 34 out.ResultMetadata = metadata 35 return out, nil 36} 37 38type GetAccessPointPolicyStatusInput struct { 39 40 // The account ID for the account that owns the specified access point. 41 // 42 // This member is required. 43 AccountId *string 44 45 // The name of the access point whose policy status you want to retrieve. 46 // 47 // This member is required. 48 Name *string 49} 50 51type GetAccessPointPolicyStatusOutput struct { 52 53 // Indicates the current policy status of the specified access point. 54 PolicyStatus *types.PolicyStatus 55 56 // Metadata pertaining to the operation's result. 57 ResultMetadata middleware.Metadata 58} 59 60func addOperationGetAccessPointPolicyStatusMiddlewares(stack *middleware.Stack, options Options) (err error) { 61 err = stack.Serialize.Add(&awsRestxml_serializeOpGetAccessPointPolicyStatus{}, middleware.After) 62 if err != nil { 63 return err 64 } 65 err = stack.Deserialize.Add(&awsRestxml_deserializeOpGetAccessPointPolicyStatus{}, middleware.After) 66 if err != nil { 67 return err 68 } 69 if err = addSetLoggerMiddleware(stack, options); err != nil { 70 return err 71 } 72 if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { 73 return err 74 } 75 if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { 76 return err 77 } 78 if err = addResolveEndpointMiddleware(stack, options); err != nil { 79 return err 80 } 81 if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { 82 return err 83 } 84 if err = addRetryMiddlewares(stack, options); err != nil { 85 return err 86 } 87 if err = addHTTPSignerV4Middleware(stack, options); err != nil { 88 return err 89 } 90 if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { 91 return err 92 } 93 if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { 94 return err 95 } 96 if err = addClientUserAgent(stack); err != nil { 97 return err 98 } 99 if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { 100 return err 101 } 102 if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { 103 return err 104 } 105 if err = addEndpointPrefix_opGetAccessPointPolicyStatusMiddleware(stack); err != nil { 106 return err 107 } 108 if err = addOpGetAccessPointPolicyStatusValidationMiddleware(stack); err != nil { 109 return err 110 } 111 if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetAccessPointPolicyStatus(options.Region), middleware.Before); err != nil { 112 return err 113 } 114 if err = addMetadataRetrieverMiddleware(stack); err != nil { 115 return err 116 } 117 if err = addGetAccessPointPolicyStatusUpdateEndpoint(stack, options); err != nil { 118 return err 119 } 120 if err = addResponseErrorMiddleware(stack); err != nil { 121 return err 122 } 123 if err = v4.AddContentSHA256HeaderMiddleware(stack); err != nil { 124 return err 125 } 126 if err = addRequestResponseLogging(stack, options); err != nil { 127 return err 128 } 129 return nil 130} 131 132type endpointPrefix_opGetAccessPointPolicyStatusMiddleware struct { 133} 134 135func (*endpointPrefix_opGetAccessPointPolicyStatusMiddleware) ID() string { 136 return "EndpointHostPrefix" 137} 138 139func (m *endpointPrefix_opGetAccessPointPolicyStatusMiddleware) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( 140 out middleware.SerializeOutput, metadata middleware.Metadata, err error, 141) { 142 if smithyhttp.GetHostnameImmutable(ctx) || smithyhttp.IsEndpointHostPrefixDisabled(ctx) { 143 return next.HandleSerialize(ctx, in) 144 } 145 146 req, ok := in.Request.(*smithyhttp.Request) 147 if !ok { 148 return out, metadata, fmt.Errorf("unknown transport type %T", in.Request) 149 } 150 151 input, ok := in.Parameters.(*GetAccessPointPolicyStatusInput) 152 if !ok { 153 return out, metadata, fmt.Errorf("unknown input type %T", in.Parameters) 154 } 155 156 var prefix strings.Builder 157 if input.AccountId == nil { 158 return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("AccountId forms part of the endpoint host and so may not be nil")} 159 } else if !smithyhttp.ValidHostLabel(*input.AccountId) { 160 return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("AccountId forms part of the endpoint host and so must match \"[a-zA-Z0-9-]{1,63}\", but was \"%s\"", *input.AccountId)} 161 } else { 162 prefix.WriteString(*input.AccountId) 163 } 164 prefix.WriteString(".") 165 req.URL.Host = prefix.String() + req.URL.Host 166 167 return next.HandleSerialize(ctx, in) 168} 169func addEndpointPrefix_opGetAccessPointPolicyStatusMiddleware(stack *middleware.Stack) error { 170 return stack.Serialize.Insert(&endpointPrefix_opGetAccessPointPolicyStatusMiddleware{}, `OperationSerializer`, middleware.After) 171} 172 173func newServiceMetadataMiddleware_opGetAccessPointPolicyStatus(region string) *awsmiddleware.RegisterServiceMetadata { 174 return &awsmiddleware.RegisterServiceMetadata{ 175 Region: region, 176 ServiceID: ServiceID, 177 SigningName: "s3", 178 OperationName: "GetAccessPointPolicyStatus", 179 } 180} 181 182func copyGetAccessPointPolicyStatusInputForUpdateEndpoint(params interface{}) (interface{}, error) { 183 input, ok := params.(*GetAccessPointPolicyStatusInput) 184 if !ok { 185 return nil, fmt.Errorf("expect *GetAccessPointPolicyStatusInput type, got %T", params) 186 } 187 cpy := *input 188 return &cpy, nil 189} 190func backFillGetAccessPointPolicyStatusAccountID(input interface{}, v string) error { 191 in := input.(*GetAccessPointPolicyStatusInput) 192 if in.AccountId != nil { 193 if !strings.EqualFold(*in.AccountId, v) { 194 return fmt.Errorf("error backfilling account id") 195 } 196 return nil 197 } 198 in.AccountId = &v 199 return nil 200} 201func addGetAccessPointPolicyStatusUpdateEndpoint(stack *middleware.Stack, options Options) error { 202 return s3controlcust.UpdateEndpoint(stack, s3controlcust.UpdateEndpointOptions{ 203 Accessor: s3controlcust.UpdateEndpointParameterAccessor{GetARNInput: nopGetARNAccessor, 204 BackfillAccountID: nopBackfillAccountIDAccessor, 205 GetOutpostIDInput: nopGetOutpostIDFromInput, 206 UpdateARNField: nopSetARNAccessor, 207 CopyInput: copyGetAccessPointPolicyStatusInputForUpdateEndpoint, 208 }, 209 EndpointResolver: options.EndpointResolver, 210 EndpointResolverOptions: options.EndpointOptions, 211 UseDualstack: options.UseDualstack, 212 UseARNRegion: options.UseARNRegion, 213 }) 214} 215