api_op_CreateLoadBalancerTlsCertificate.go raw
1 // Code generated by smithy-go-codegen DO NOT EDIT.
2
3 package lightsail
4
5 import (
6 "context"
7 "fmt"
8 awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
9 "github.com/aws/aws-sdk-go-v2/service/lightsail/types"
10 "github.com/aws/smithy-go/middleware"
11 smithyhttp "github.com/aws/smithy-go/transport/http"
12 )
13
14 // Creates an SSL/TLS certificate for an Amazon Lightsail load balancer.
15 //
16 // TLS is just an updated, more secure version of Secure Socket Layer (SSL).
17 //
18 // The CreateLoadBalancerTlsCertificate operation supports tag-based access
19 // control via resource tags applied to the resource identified by load balancer
20 // name . For more information, see the [Amazon Lightsail Developer Guide].
21 //
22 // [Amazon Lightsail Developer Guide]: https://docs.aws.amazon.com/lightsail/latest/userguide/amazon-lightsail-controlling-access-using-tags
23 func (c *Client) CreateLoadBalancerTlsCertificate(ctx context.Context, params *CreateLoadBalancerTlsCertificateInput, optFns ...func(*Options)) (*CreateLoadBalancerTlsCertificateOutput, error) {
24 if params == nil {
25 params = &CreateLoadBalancerTlsCertificateInput{}
26 }
27
28 result, metadata, err := c.invokeOperation(ctx, "CreateLoadBalancerTlsCertificate", params, optFns, c.addOperationCreateLoadBalancerTlsCertificateMiddlewares)
29 if err != nil {
30 return nil, err
31 }
32
33 out := result.(*CreateLoadBalancerTlsCertificateOutput)
34 out.ResultMetadata = metadata
35 return out, nil
36 }
37
38 type CreateLoadBalancerTlsCertificateInput struct {
39
40 // The domain name ( example.com ) for your SSL/TLS certificate.
41 //
42 // This member is required.
43 CertificateDomainName *string
44
45 // The SSL/TLS certificate name.
46 //
47 // You can have up to 10 certificates in your account at one time. Each Lightsail
48 // load balancer can have up to 2 certificates associated with it at one time.
49 // There is also an overall limit to the number of certificates that can be issue
50 // in a 365-day period. For more information, see [Limits].
51 //
52 // [Limits]: http://docs.aws.amazon.com/acm/latest/userguide/acm-limits.html
53 //
54 // This member is required.
55 CertificateName *string
56
57 // The load balancer name where you want to create the SSL/TLS certificate.
58 //
59 // This member is required.
60 LoadBalancerName *string
61
62 // An array of strings listing alternative domains and subdomains for your SSL/TLS
63 // certificate. Lightsail will de-dupe the names for you. You can have a maximum of
64 // 9 alternative names (in addition to the 1 primary domain). We do not support
65 // wildcards ( *.example.com ).
66 CertificateAlternativeNames []string
67
68 // The tag keys and optional values to add to the resource during create.
69 //
70 // Use the TagResource action to tag a resource after it's created.
71 Tags []types.Tag
72
73 noSmithyDocumentSerde
74 }
75
76 type CreateLoadBalancerTlsCertificateOutput struct {
77
78 // An array of objects that describe the result of the action, such as the status
79 // of the request, the timestamp of the request, and the resources affected by the
80 // request.
81 Operations []types.Operation
82
83 // Metadata pertaining to the operation's result.
84 ResultMetadata middleware.Metadata
85
86 noSmithyDocumentSerde
87 }
88
89 func (c *Client) addOperationCreateLoadBalancerTlsCertificateMiddlewares(stack *middleware.Stack, options Options) (err error) {
90 if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil {
91 return err
92 }
93 err = stack.Serialize.Add(&awsAwsjson11_serializeOpCreateLoadBalancerTlsCertificate{}, middleware.After)
94 if err != nil {
95 return err
96 }
97 err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpCreateLoadBalancerTlsCertificate{}, middleware.After)
98 if err != nil {
99 return err
100 }
101 if err := addProtocolFinalizerMiddlewares(stack, options, "CreateLoadBalancerTlsCertificate"); err != nil {
102 return fmt.Errorf("add protocol finalizers: %v", err)
103 }
104
105 if err = addlegacyEndpointContextSetter(stack, options); err != nil {
106 return err
107 }
108 if err = addSetLoggerMiddleware(stack, options); err != nil {
109 return err
110 }
111 if err = addClientRequestID(stack); err != nil {
112 return err
113 }
114 if err = addComputeContentLength(stack); err != nil {
115 return err
116 }
117 if err = addResolveEndpointMiddleware(stack, options); err != nil {
118 return err
119 }
120 if err = addComputePayloadSHA256(stack); err != nil {
121 return err
122 }
123 if err = addRetry(stack, options); err != nil {
124 return err
125 }
126 if err = addRawResponseToMetadata(stack); err != nil {
127 return err
128 }
129 if err = addRecordResponseTiming(stack); err != nil {
130 return err
131 }
132 if err = addSpanRetryLoop(stack, options); err != nil {
133 return err
134 }
135 if err = addClientUserAgent(stack, options); err != nil {
136 return err
137 }
138 if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil {
139 return err
140 }
141 if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil {
142 return err
143 }
144 if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil {
145 return err
146 }
147 if err = addTimeOffsetBuild(stack, c); err != nil {
148 return err
149 }
150 if err = addUserAgentRetryMode(stack, options); err != nil {
151 return err
152 }
153 if err = addCredentialSource(stack, options); err != nil {
154 return err
155 }
156 if err = addOpCreateLoadBalancerTlsCertificateValidationMiddleware(stack); err != nil {
157 return err
158 }
159 if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateLoadBalancerTlsCertificate(options.Region), middleware.Before); err != nil {
160 return err
161 }
162 if err = addRecursionDetection(stack); err != nil {
163 return err
164 }
165 if err = addRequestIDRetrieverMiddleware(stack); err != nil {
166 return err
167 }
168 if err = addResponseErrorMiddleware(stack); err != nil {
169 return err
170 }
171 if err = addRequestResponseLogging(stack, options); err != nil {
172 return err
173 }
174 if err = addDisableHTTPSMiddleware(stack, options); err != nil {
175 return err
176 }
177 if err = addInterceptBeforeRetryLoop(stack, options); err != nil {
178 return err
179 }
180 if err = addInterceptAttempt(stack, options); err != nil {
181 return err
182 }
183 if err = addInterceptors(stack, options); err != nil {
184 return err
185 }
186 return nil
187 }
188
189 func newServiceMetadataMiddleware_opCreateLoadBalancerTlsCertificate(region string) *awsmiddleware.RegisterServiceMetadata {
190 return &awsmiddleware.RegisterServiceMetadata{
191 Region: region,
192 ServiceID: ServiceID,
193 OperationName: "CreateLoadBalancerTlsCertificate",
194 }
195 }
196