github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/lightsail/lbCertificate.go (about) 1 // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. 2 // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** 3 4 package lightsail 5 6 import ( 7 "context" 8 "reflect" 9 10 "errors" 11 "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" 12 "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 13 ) 14 15 // Creates a Lightsail load balancer Certificate resource. 16 // 17 // ## Example Usage 18 // 19 // <!--Start PulumiCodeChooser --> 20 // ```go 21 // package main 22 // 23 // import ( 24 // 25 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lightsail" 26 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 27 // 28 // ) 29 // 30 // func main() { 31 // pulumi.Run(func(ctx *pulumi.Context) error { 32 // test, err := lightsail.NewLb(ctx, "test", &lightsail.LbArgs{ 33 // Name: pulumi.String("test-load-balancer"), 34 // HealthCheckPath: pulumi.String("/"), 35 // InstancePort: pulumi.Int(80), 36 // Tags: pulumi.StringMap{ 37 // "foo": pulumi.String("bar"), 38 // }, 39 // }) 40 // if err != nil { 41 // return err 42 // } 43 // _, err = lightsail.NewLbCertificate(ctx, "test", &lightsail.LbCertificateArgs{ 44 // Name: pulumi.String("test-load-balancer-certificate"), 45 // LbName: test.ID(), 46 // DomainName: pulumi.String("test.com"), 47 // }) 48 // if err != nil { 49 // return err 50 // } 51 // return nil 52 // }) 53 // } 54 // 55 // ``` 56 // <!--End PulumiCodeChooser --> 57 // 58 // ## Import 59 // 60 // Using `pulumi import`, import `aws_lightsail_lb_certificate` using the id attribute. For example: 61 // 62 // ```sh 63 // $ pulumi import aws:lightsail/lbCertificate:LbCertificate test example-load-balancer,example-load-balancer-certificate 64 // ``` 65 type LbCertificate struct { 66 pulumi.CustomResourceState 67 68 // The ARN of the lightsail certificate. 69 Arn pulumi.StringOutput `pulumi:"arn"` 70 // The timestamp when the instance was created. 71 CreatedAt pulumi.StringOutput `pulumi:"createdAt"` 72 // The domain name (e.g., example.com) for your SSL/TLS certificate. 73 DomainName pulumi.StringOutput `pulumi:"domainName"` 74 DomainValidationRecords LbCertificateDomainValidationRecordArrayOutput `pulumi:"domainValidationRecords"` 75 // The load balancer name where you want to create the SSL/TLS certificate. 76 LbName pulumi.StringOutput `pulumi:"lbName"` 77 // The SSL/TLS certificate name. 78 Name pulumi.StringOutput `pulumi:"name"` 79 // Set of domains that should be SANs in the issued certificate. `domainName` attribute is automatically added as a Subject Alternative Name. 80 SubjectAlternativeNames pulumi.StringArrayOutput `pulumi:"subjectAlternativeNames"` 81 SupportCode pulumi.StringOutput `pulumi:"supportCode"` 82 } 83 84 // NewLbCertificate registers a new resource with the given unique name, arguments, and options. 85 func NewLbCertificate(ctx *pulumi.Context, 86 name string, args *LbCertificateArgs, opts ...pulumi.ResourceOption) (*LbCertificate, error) { 87 if args == nil { 88 return nil, errors.New("missing one or more required arguments") 89 } 90 91 if args.LbName == nil { 92 return nil, errors.New("invalid value for required argument 'LbName'") 93 } 94 opts = internal.PkgResourceDefaultOpts(opts) 95 var resource LbCertificate 96 err := ctx.RegisterResource("aws:lightsail/lbCertificate:LbCertificate", name, args, &resource, opts...) 97 if err != nil { 98 return nil, err 99 } 100 return &resource, nil 101 } 102 103 // GetLbCertificate gets an existing LbCertificate resource's state with the given name, ID, and optional 104 // state properties that are used to uniquely qualify the lookup (nil if not required). 105 func GetLbCertificate(ctx *pulumi.Context, 106 name string, id pulumi.IDInput, state *LbCertificateState, opts ...pulumi.ResourceOption) (*LbCertificate, error) { 107 var resource LbCertificate 108 err := ctx.ReadResource("aws:lightsail/lbCertificate:LbCertificate", name, id, state, &resource, opts...) 109 if err != nil { 110 return nil, err 111 } 112 return &resource, nil 113 } 114 115 // Input properties used for looking up and filtering LbCertificate resources. 116 type lbCertificateState struct { 117 // The ARN of the lightsail certificate. 118 Arn *string `pulumi:"arn"` 119 // The timestamp when the instance was created. 120 CreatedAt *string `pulumi:"createdAt"` 121 // The domain name (e.g., example.com) for your SSL/TLS certificate. 122 DomainName *string `pulumi:"domainName"` 123 DomainValidationRecords []LbCertificateDomainValidationRecord `pulumi:"domainValidationRecords"` 124 // The load balancer name where you want to create the SSL/TLS certificate. 125 LbName *string `pulumi:"lbName"` 126 // The SSL/TLS certificate name. 127 Name *string `pulumi:"name"` 128 // Set of domains that should be SANs in the issued certificate. `domainName` attribute is automatically added as a Subject Alternative Name. 129 SubjectAlternativeNames []string `pulumi:"subjectAlternativeNames"` 130 SupportCode *string `pulumi:"supportCode"` 131 } 132 133 type LbCertificateState struct { 134 // The ARN of the lightsail certificate. 135 Arn pulumi.StringPtrInput 136 // The timestamp when the instance was created. 137 CreatedAt pulumi.StringPtrInput 138 // The domain name (e.g., example.com) for your SSL/TLS certificate. 139 DomainName pulumi.StringPtrInput 140 DomainValidationRecords LbCertificateDomainValidationRecordArrayInput 141 // The load balancer name where you want to create the SSL/TLS certificate. 142 LbName pulumi.StringPtrInput 143 // The SSL/TLS certificate name. 144 Name pulumi.StringPtrInput 145 // Set of domains that should be SANs in the issued certificate. `domainName` attribute is automatically added as a Subject Alternative Name. 146 SubjectAlternativeNames pulumi.StringArrayInput 147 SupportCode pulumi.StringPtrInput 148 } 149 150 func (LbCertificateState) ElementType() reflect.Type { 151 return reflect.TypeOf((*lbCertificateState)(nil)).Elem() 152 } 153 154 type lbCertificateArgs struct { 155 // The domain name (e.g., example.com) for your SSL/TLS certificate. 156 DomainName *string `pulumi:"domainName"` 157 // The load balancer name where you want to create the SSL/TLS certificate. 158 LbName string `pulumi:"lbName"` 159 // The SSL/TLS certificate name. 160 Name *string `pulumi:"name"` 161 // Set of domains that should be SANs in the issued certificate. `domainName` attribute is automatically added as a Subject Alternative Name. 162 SubjectAlternativeNames []string `pulumi:"subjectAlternativeNames"` 163 } 164 165 // The set of arguments for constructing a LbCertificate resource. 166 type LbCertificateArgs struct { 167 // The domain name (e.g., example.com) for your SSL/TLS certificate. 168 DomainName pulumi.StringPtrInput 169 // The load balancer name where you want to create the SSL/TLS certificate. 170 LbName pulumi.StringInput 171 // The SSL/TLS certificate name. 172 Name pulumi.StringPtrInput 173 // Set of domains that should be SANs in the issued certificate. `domainName` attribute is automatically added as a Subject Alternative Name. 174 SubjectAlternativeNames pulumi.StringArrayInput 175 } 176 177 func (LbCertificateArgs) ElementType() reflect.Type { 178 return reflect.TypeOf((*lbCertificateArgs)(nil)).Elem() 179 } 180 181 type LbCertificateInput interface { 182 pulumi.Input 183 184 ToLbCertificateOutput() LbCertificateOutput 185 ToLbCertificateOutputWithContext(ctx context.Context) LbCertificateOutput 186 } 187 188 func (*LbCertificate) ElementType() reflect.Type { 189 return reflect.TypeOf((**LbCertificate)(nil)).Elem() 190 } 191 192 func (i *LbCertificate) ToLbCertificateOutput() LbCertificateOutput { 193 return i.ToLbCertificateOutputWithContext(context.Background()) 194 } 195 196 func (i *LbCertificate) ToLbCertificateOutputWithContext(ctx context.Context) LbCertificateOutput { 197 return pulumi.ToOutputWithContext(ctx, i).(LbCertificateOutput) 198 } 199 200 // LbCertificateArrayInput is an input type that accepts LbCertificateArray and LbCertificateArrayOutput values. 201 // You can construct a concrete instance of `LbCertificateArrayInput` via: 202 // 203 // LbCertificateArray{ LbCertificateArgs{...} } 204 type LbCertificateArrayInput interface { 205 pulumi.Input 206 207 ToLbCertificateArrayOutput() LbCertificateArrayOutput 208 ToLbCertificateArrayOutputWithContext(context.Context) LbCertificateArrayOutput 209 } 210 211 type LbCertificateArray []LbCertificateInput 212 213 func (LbCertificateArray) ElementType() reflect.Type { 214 return reflect.TypeOf((*[]*LbCertificate)(nil)).Elem() 215 } 216 217 func (i LbCertificateArray) ToLbCertificateArrayOutput() LbCertificateArrayOutput { 218 return i.ToLbCertificateArrayOutputWithContext(context.Background()) 219 } 220 221 func (i LbCertificateArray) ToLbCertificateArrayOutputWithContext(ctx context.Context) LbCertificateArrayOutput { 222 return pulumi.ToOutputWithContext(ctx, i).(LbCertificateArrayOutput) 223 } 224 225 // LbCertificateMapInput is an input type that accepts LbCertificateMap and LbCertificateMapOutput values. 226 // You can construct a concrete instance of `LbCertificateMapInput` via: 227 // 228 // LbCertificateMap{ "key": LbCertificateArgs{...} } 229 type LbCertificateMapInput interface { 230 pulumi.Input 231 232 ToLbCertificateMapOutput() LbCertificateMapOutput 233 ToLbCertificateMapOutputWithContext(context.Context) LbCertificateMapOutput 234 } 235 236 type LbCertificateMap map[string]LbCertificateInput 237 238 func (LbCertificateMap) ElementType() reflect.Type { 239 return reflect.TypeOf((*map[string]*LbCertificate)(nil)).Elem() 240 } 241 242 func (i LbCertificateMap) ToLbCertificateMapOutput() LbCertificateMapOutput { 243 return i.ToLbCertificateMapOutputWithContext(context.Background()) 244 } 245 246 func (i LbCertificateMap) ToLbCertificateMapOutputWithContext(ctx context.Context) LbCertificateMapOutput { 247 return pulumi.ToOutputWithContext(ctx, i).(LbCertificateMapOutput) 248 } 249 250 type LbCertificateOutput struct{ *pulumi.OutputState } 251 252 func (LbCertificateOutput) ElementType() reflect.Type { 253 return reflect.TypeOf((**LbCertificate)(nil)).Elem() 254 } 255 256 func (o LbCertificateOutput) ToLbCertificateOutput() LbCertificateOutput { 257 return o 258 } 259 260 func (o LbCertificateOutput) ToLbCertificateOutputWithContext(ctx context.Context) LbCertificateOutput { 261 return o 262 } 263 264 // The ARN of the lightsail certificate. 265 func (o LbCertificateOutput) Arn() pulumi.StringOutput { 266 return o.ApplyT(func(v *LbCertificate) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) 267 } 268 269 // The timestamp when the instance was created. 270 func (o LbCertificateOutput) CreatedAt() pulumi.StringOutput { 271 return o.ApplyT(func(v *LbCertificate) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput) 272 } 273 274 // The domain name (e.g., example.com) for your SSL/TLS certificate. 275 func (o LbCertificateOutput) DomainName() pulumi.StringOutput { 276 return o.ApplyT(func(v *LbCertificate) pulumi.StringOutput { return v.DomainName }).(pulumi.StringOutput) 277 } 278 279 func (o LbCertificateOutput) DomainValidationRecords() LbCertificateDomainValidationRecordArrayOutput { 280 return o.ApplyT(func(v *LbCertificate) LbCertificateDomainValidationRecordArrayOutput { 281 return v.DomainValidationRecords 282 }).(LbCertificateDomainValidationRecordArrayOutput) 283 } 284 285 // The load balancer name where you want to create the SSL/TLS certificate. 286 func (o LbCertificateOutput) LbName() pulumi.StringOutput { 287 return o.ApplyT(func(v *LbCertificate) pulumi.StringOutput { return v.LbName }).(pulumi.StringOutput) 288 } 289 290 // The SSL/TLS certificate name. 291 func (o LbCertificateOutput) Name() pulumi.StringOutput { 292 return o.ApplyT(func(v *LbCertificate) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) 293 } 294 295 // Set of domains that should be SANs in the issued certificate. `domainName` attribute is automatically added as a Subject Alternative Name. 296 func (o LbCertificateOutput) SubjectAlternativeNames() pulumi.StringArrayOutput { 297 return o.ApplyT(func(v *LbCertificate) pulumi.StringArrayOutput { return v.SubjectAlternativeNames }).(pulumi.StringArrayOutput) 298 } 299 300 func (o LbCertificateOutput) SupportCode() pulumi.StringOutput { 301 return o.ApplyT(func(v *LbCertificate) pulumi.StringOutput { return v.SupportCode }).(pulumi.StringOutput) 302 } 303 304 type LbCertificateArrayOutput struct{ *pulumi.OutputState } 305 306 func (LbCertificateArrayOutput) ElementType() reflect.Type { 307 return reflect.TypeOf((*[]*LbCertificate)(nil)).Elem() 308 } 309 310 func (o LbCertificateArrayOutput) ToLbCertificateArrayOutput() LbCertificateArrayOutput { 311 return o 312 } 313 314 func (o LbCertificateArrayOutput) ToLbCertificateArrayOutputWithContext(ctx context.Context) LbCertificateArrayOutput { 315 return o 316 } 317 318 func (o LbCertificateArrayOutput) Index(i pulumi.IntInput) LbCertificateOutput { 319 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *LbCertificate { 320 return vs[0].([]*LbCertificate)[vs[1].(int)] 321 }).(LbCertificateOutput) 322 } 323 324 type LbCertificateMapOutput struct{ *pulumi.OutputState } 325 326 func (LbCertificateMapOutput) ElementType() reflect.Type { 327 return reflect.TypeOf((*map[string]*LbCertificate)(nil)).Elem() 328 } 329 330 func (o LbCertificateMapOutput) ToLbCertificateMapOutput() LbCertificateMapOutput { 331 return o 332 } 333 334 func (o LbCertificateMapOutput) ToLbCertificateMapOutputWithContext(ctx context.Context) LbCertificateMapOutput { 335 return o 336 } 337 338 func (o LbCertificateMapOutput) MapIndex(k pulumi.StringInput) LbCertificateOutput { 339 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *LbCertificate { 340 return vs[0].(map[string]*LbCertificate)[vs[1].(string)] 341 }).(LbCertificateOutput) 342 } 343 344 func init() { 345 pulumi.RegisterInputType(reflect.TypeOf((*LbCertificateInput)(nil)).Elem(), &LbCertificate{}) 346 pulumi.RegisterInputType(reflect.TypeOf((*LbCertificateArrayInput)(nil)).Elem(), LbCertificateArray{}) 347 pulumi.RegisterInputType(reflect.TypeOf((*LbCertificateMapInput)(nil)).Elem(), LbCertificateMap{}) 348 pulumi.RegisterOutputType(LbCertificateOutput{}) 349 pulumi.RegisterOutputType(LbCertificateArrayOutput{}) 350 pulumi.RegisterOutputType(LbCertificateMapOutput{}) 351 }