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 smithy "github.com/aws/smithy-go" 12 "github.com/aws/smithy-go/middleware" 13 smithyhttp "github.com/aws/smithy-go/transport/http" 14 "strings" 15) 16 17// Updates an existing S3 Batch Operations job's priority. For more information, 18// see S3 Batch Operations 19// (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-basics.html) in the 20// Amazon S3 User Guide. Related actions include: 21// 22// * CreateJob 23// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html) 24// 25// * 26// ListJobs 27// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListJobs.html) 28// 29// * 30// DescribeJob 31// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeJob.html) 32// 33// * 34// UpdateJobStatus 35// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.html) 36func (c *Client) UpdateJobPriority(ctx context.Context, params *UpdateJobPriorityInput, optFns ...func(*Options)) (*UpdateJobPriorityOutput, error) { 37 if params == nil { 38 params = &UpdateJobPriorityInput{} 39 } 40 41 result, metadata, err := c.invokeOperation(ctx, "UpdateJobPriority", params, optFns, addOperationUpdateJobPriorityMiddlewares) 42 if err != nil { 43 return nil, err 44 } 45 46 out := result.(*UpdateJobPriorityOutput) 47 out.ResultMetadata = metadata 48 return out, nil 49} 50 51type UpdateJobPriorityInput struct { 52 53 // The AWS account ID associated with the S3 Batch Operations job. 54 // 55 // This member is required. 56 AccountId *string 57 58 // The ID for the job whose priority you want to update. 59 // 60 // This member is required. 61 JobId *string 62 63 // The priority you want to assign to this job. 64 // 65 // This member is required. 66 Priority int32 67} 68 69type UpdateJobPriorityOutput struct { 70 71 // The ID for the job whose priority Amazon S3 updated. 72 // 73 // This member is required. 74 JobId *string 75 76 // The new priority assigned to the specified job. 77 // 78 // This member is required. 79 Priority int32 80 81 // Metadata pertaining to the operation's result. 82 ResultMetadata middleware.Metadata 83} 84 85func addOperationUpdateJobPriorityMiddlewares(stack *middleware.Stack, options Options) (err error) { 86 err = stack.Serialize.Add(&awsRestxml_serializeOpUpdateJobPriority{}, middleware.After) 87 if err != nil { 88 return err 89 } 90 err = stack.Deserialize.Add(&awsRestxml_deserializeOpUpdateJobPriority{}, middleware.After) 91 if err != nil { 92 return err 93 } 94 if err = addSetLoggerMiddleware(stack, options); err != nil { 95 return err 96 } 97 if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { 98 return err 99 } 100 if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { 101 return err 102 } 103 if err = addResolveEndpointMiddleware(stack, options); err != nil { 104 return err 105 } 106 if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { 107 return err 108 } 109 if err = addRetryMiddlewares(stack, options); err != nil { 110 return err 111 } 112 if err = addHTTPSignerV4Middleware(stack, options); err != nil { 113 return err 114 } 115 if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { 116 return err 117 } 118 if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { 119 return err 120 } 121 if err = addClientUserAgent(stack); err != nil { 122 return err 123 } 124 if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { 125 return err 126 } 127 if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { 128 return err 129 } 130 if err = addEndpointPrefix_opUpdateJobPriorityMiddleware(stack); err != nil { 131 return err 132 } 133 if err = addOpUpdateJobPriorityValidationMiddleware(stack); err != nil { 134 return err 135 } 136 if err = stack.Initialize.Add(newServiceMetadataMiddleware_opUpdateJobPriority(options.Region), middleware.Before); err != nil { 137 return err 138 } 139 if err = addMetadataRetrieverMiddleware(stack); err != nil { 140 return err 141 } 142 if err = addUpdateJobPriorityUpdateEndpoint(stack, options); err != nil { 143 return err 144 } 145 if err = addResponseErrorMiddleware(stack); err != nil { 146 return err 147 } 148 if err = v4.AddContentSHA256HeaderMiddleware(stack); err != nil { 149 return err 150 } 151 if err = addRequestResponseLogging(stack, options); err != nil { 152 return err 153 } 154 return nil 155} 156 157type endpointPrefix_opUpdateJobPriorityMiddleware struct { 158} 159 160func (*endpointPrefix_opUpdateJobPriorityMiddleware) ID() string { 161 return "EndpointHostPrefix" 162} 163 164func (m *endpointPrefix_opUpdateJobPriorityMiddleware) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( 165 out middleware.SerializeOutput, metadata middleware.Metadata, err error, 166) { 167 if smithyhttp.GetHostnameImmutable(ctx) || smithyhttp.IsEndpointHostPrefixDisabled(ctx) { 168 return next.HandleSerialize(ctx, in) 169 } 170 171 req, ok := in.Request.(*smithyhttp.Request) 172 if !ok { 173 return out, metadata, fmt.Errorf("unknown transport type %T", in.Request) 174 } 175 176 input, ok := in.Parameters.(*UpdateJobPriorityInput) 177 if !ok { 178 return out, metadata, fmt.Errorf("unknown input type %T", in.Parameters) 179 } 180 181 var prefix strings.Builder 182 if input.AccountId == nil { 183 return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("AccountId forms part of the endpoint host and so may not be nil")} 184 } else if !smithyhttp.ValidHostLabel(*input.AccountId) { 185 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)} 186 } else { 187 prefix.WriteString(*input.AccountId) 188 } 189 prefix.WriteString(".") 190 req.URL.Host = prefix.String() + req.URL.Host 191 192 return next.HandleSerialize(ctx, in) 193} 194func addEndpointPrefix_opUpdateJobPriorityMiddleware(stack *middleware.Stack) error { 195 return stack.Serialize.Insert(&endpointPrefix_opUpdateJobPriorityMiddleware{}, `OperationSerializer`, middleware.After) 196} 197 198func newServiceMetadataMiddleware_opUpdateJobPriority(region string) *awsmiddleware.RegisterServiceMetadata { 199 return &awsmiddleware.RegisterServiceMetadata{ 200 Region: region, 201 ServiceID: ServiceID, 202 SigningName: "s3", 203 OperationName: "UpdateJobPriority", 204 } 205} 206 207func copyUpdateJobPriorityInputForUpdateEndpoint(params interface{}) (interface{}, error) { 208 input, ok := params.(*UpdateJobPriorityInput) 209 if !ok { 210 return nil, fmt.Errorf("expect *UpdateJobPriorityInput type, got %T", params) 211 } 212 cpy := *input 213 return &cpy, nil 214} 215func backFillUpdateJobPriorityAccountID(input interface{}, v string) error { 216 in := input.(*UpdateJobPriorityInput) 217 if in.AccountId != nil { 218 if !strings.EqualFold(*in.AccountId, v) { 219 return fmt.Errorf("error backfilling account id") 220 } 221 return nil 222 } 223 in.AccountId = &v 224 return nil 225} 226func addUpdateJobPriorityUpdateEndpoint(stack *middleware.Stack, options Options) error { 227 return s3controlcust.UpdateEndpoint(stack, s3controlcust.UpdateEndpointOptions{ 228 Accessor: s3controlcust.UpdateEndpointParameterAccessor{GetARNInput: nopGetARNAccessor, 229 BackfillAccountID: nopBackfillAccountIDAccessor, 230 GetOutpostIDInput: nopGetOutpostIDFromInput, 231 UpdateARNField: nopSetARNAccessor, 232 CopyInput: copyUpdateJobPriorityInputForUpdateEndpoint, 233 }, 234 EndpointResolver: options.EndpointResolver, 235 EndpointResolverOptions: options.EndpointOptions, 236 UseDualstack: options.UseDualstack, 237 UseARNRegion: options.UseARNRegion, 238 }) 239} 240