1// Code generated by smithy-go-codegen DO NOT EDIT. 2 3package signer 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 "github.com/aws/aws-sdk-go-v2/service/signer/types" 11 "github.com/aws/smithy-go/middleware" 12 smithyhttp "github.com/aws/smithy-go/transport/http" 13) 14 15// Initiates a signing job to be performed on the code provided. Signing jobs are 16// viewable by the ListSigningJobs operation for two years after they are 17// performed. Note the following requirements: 18// 19// * You must create an Amazon S3 20// source bucket. For more information, see Create a Bucket 21// (http://docs.aws.amazon.com/AmazonS3/latest/gsg/CreatingABucket.html) in the 22// Amazon S3 Getting Started Guide. 23// 24// * Your S3 source bucket must be version 25// enabled. 26// 27// * You must create an S3 destination bucket. Code signing uses your S3 28// destination bucket to write your signed code. 29// 30// * You specify the name of the 31// source and destination buckets when calling the StartSigningJob operation. 32// 33// * 34// You must also specify a request token that identifies your request to code 35// signing. 36// 37// You can call the DescribeSigningJob and the ListSigningJobs actions 38// after you call StartSigningJob. For a Java example that shows how to use this 39// action, see http://docs.aws.amazon.com/acm/latest/userguide/ 40// (http://docs.aws.amazon.com/acm/latest/userguide/) 41func (c *Client) StartSigningJob(ctx context.Context, params *StartSigningJobInput, optFns ...func(*Options)) (*StartSigningJobOutput, error) { 42 if params == nil { 43 params = &StartSigningJobInput{} 44 } 45 46 result, metadata, err := c.invokeOperation(ctx, "StartSigningJob", params, optFns, addOperationStartSigningJobMiddlewares) 47 if err != nil { 48 return nil, err 49 } 50 51 out := result.(*StartSigningJobOutput) 52 out.ResultMetadata = metadata 53 return out, nil 54} 55 56type StartSigningJobInput struct { 57 58 // String that identifies the signing request. All calls after the first that use 59 // this token return the same response as the first call. 60 // 61 // This member is required. 62 ClientRequestToken *string 63 64 // The S3 bucket in which to save your signed object. The destination contains the 65 // name of your bucket and an optional prefix. 66 // 67 // This member is required. 68 Destination *types.Destination 69 70 // The name of the signing profile. 71 // 72 // This member is required. 73 ProfileName *string 74 75 // The S3 bucket that contains the object to sign or a BLOB that contains your raw 76 // code. 77 // 78 // This member is required. 79 Source *types.Source 80 81 // The AWS account ID of the signing profile owner. 82 ProfileOwner *string 83} 84 85type StartSigningJobOutput struct { 86 87 // The ID of your signing job. 88 JobId *string 89 90 // The AWS account ID of the signing job owner. 91 JobOwner *string 92 93 // Metadata pertaining to the operation's result. 94 ResultMetadata middleware.Metadata 95} 96 97func addOperationStartSigningJobMiddlewares(stack *middleware.Stack, options Options) (err error) { 98 err = stack.Serialize.Add(&awsRestjson1_serializeOpStartSigningJob{}, middleware.After) 99 if err != nil { 100 return err 101 } 102 err = stack.Deserialize.Add(&awsRestjson1_deserializeOpStartSigningJob{}, middleware.After) 103 if err != nil { 104 return err 105 } 106 if err = addSetLoggerMiddleware(stack, options); err != nil { 107 return err 108 } 109 if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { 110 return err 111 } 112 if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { 113 return err 114 } 115 if err = addResolveEndpointMiddleware(stack, options); err != nil { 116 return err 117 } 118 if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { 119 return err 120 } 121 if err = addRetryMiddlewares(stack, options); err != nil { 122 return err 123 } 124 if err = addHTTPSignerV4Middleware(stack, options); err != nil { 125 return err 126 } 127 if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { 128 return err 129 } 130 if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { 131 return err 132 } 133 if err = addClientUserAgent(stack); err != nil { 134 return err 135 } 136 if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { 137 return err 138 } 139 if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { 140 return err 141 } 142 if err = addIdempotencyToken_opStartSigningJobMiddleware(stack, options); err != nil { 143 return err 144 } 145 if err = addOpStartSigningJobValidationMiddleware(stack); err != nil { 146 return err 147 } 148 if err = stack.Initialize.Add(newServiceMetadataMiddleware_opStartSigningJob(options.Region), middleware.Before); err != nil { 149 return err 150 } 151 if err = addRequestIDRetrieverMiddleware(stack); err != nil { 152 return err 153 } 154 if err = addResponseErrorMiddleware(stack); err != nil { 155 return err 156 } 157 if err = addRequestResponseLogging(stack, options); err != nil { 158 return err 159 } 160 return nil 161} 162 163type idempotencyToken_initializeOpStartSigningJob struct { 164 tokenProvider IdempotencyTokenProvider 165} 166 167func (*idempotencyToken_initializeOpStartSigningJob) ID() string { 168 return "OperationIdempotencyTokenAutoFill" 169} 170 171func (m *idempotencyToken_initializeOpStartSigningJob) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( 172 out middleware.InitializeOutput, metadata middleware.Metadata, err error, 173) { 174 if m.tokenProvider == nil { 175 return next.HandleInitialize(ctx, in) 176 } 177 178 input, ok := in.Parameters.(*StartSigningJobInput) 179 if !ok { 180 return out, metadata, fmt.Errorf("expected middleware input to be of type *StartSigningJobInput ") 181 } 182 183 if input.ClientRequestToken == nil { 184 t, err := m.tokenProvider.GetIdempotencyToken() 185 if err != nil { 186 return out, metadata, err 187 } 188 input.ClientRequestToken = &t 189 } 190 return next.HandleInitialize(ctx, in) 191} 192func addIdempotencyToken_opStartSigningJobMiddleware(stack *middleware.Stack, cfg Options) error { 193 return stack.Initialize.Add(&idempotencyToken_initializeOpStartSigningJob{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) 194} 195 196func newServiceMetadataMiddleware_opStartSigningJob(region string) *awsmiddleware.RegisterServiceMetadata { 197 return &awsmiddleware.RegisterServiceMetadata{ 198 Region: region, 199 ServiceID: ServiceID, 200 SigningName: "signer", 201 OperationName: "StartSigningJob", 202 } 203} 204