github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/appconfig/deployment.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 appconfig 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 // Provides an AppConfig Deployment resource for an `appconfig.Application` 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/appconfig" 26 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 27 // 28 // ) 29 // 30 // func main() { 31 // pulumi.Run(func(ctx *pulumi.Context) error { 32 // _, err := appconfig.NewDeployment(ctx, "example", &appconfig.DeploymentArgs{ 33 // ApplicationId: pulumi.Any(exampleAwsAppconfigApplication.Id), 34 // ConfigurationProfileId: pulumi.Any(exampleAwsAppconfigConfigurationProfile.ConfigurationProfileId), 35 // ConfigurationVersion: pulumi.Any(exampleAwsAppconfigHostedConfigurationVersion.VersionNumber), 36 // DeploymentStrategyId: pulumi.Any(exampleAwsAppconfigDeploymentStrategy.Id), 37 // Description: pulumi.String("My example deployment"), 38 // EnvironmentId: pulumi.Any(exampleAwsAppconfigEnvironment.EnvironmentId), 39 // KmsKeyIdentifier: pulumi.Any(exampleAwsKmsKey.Arn), 40 // Tags: pulumi.StringMap{ 41 // "Type": pulumi.String("AppConfig Deployment"), 42 // }, 43 // }) 44 // if err != nil { 45 // return err 46 // } 47 // return nil 48 // }) 49 // } 50 // 51 // ``` 52 // <!--End PulumiCodeChooser --> 53 // 54 // ## Import 55 // 56 // Using `pulumi import`, import AppConfig Deployments using the application ID, environment ID, and deployment number separated by a slash (`/`). For example: 57 // 58 // ```sh 59 // $ pulumi import aws:appconfig/deployment:Deployment example 71abcde/11xxxxx/1 60 // ``` 61 type Deployment struct { 62 pulumi.CustomResourceState 63 64 // Application ID. Must be between 4 and 7 characters in length. 65 ApplicationId pulumi.StringOutput `pulumi:"applicationId"` 66 // ARN of the AppConfig Deployment. 67 Arn pulumi.StringOutput `pulumi:"arn"` 68 // Configuration profile ID. Must be between 4 and 7 characters in length. 69 ConfigurationProfileId pulumi.StringOutput `pulumi:"configurationProfileId"` 70 // Configuration version to deploy. Can be at most 1024 characters. 71 ConfigurationVersion pulumi.StringOutput `pulumi:"configurationVersion"` 72 // Deployment number. 73 DeploymentNumber pulumi.IntOutput `pulumi:"deploymentNumber"` 74 // Deployment strategy ID or name of a predefined deployment strategy. See [Predefined Deployment Strategies](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-deployment-strategy.html#appconfig-creating-deployment-strategy-predefined) for more details. 75 DeploymentStrategyId pulumi.StringOutput `pulumi:"deploymentStrategyId"` 76 // Description of the deployment. Can be at most 1024 characters. 77 Description pulumi.StringPtrOutput `pulumi:"description"` 78 // Environment ID. Must be between 4 and 7 characters in length. 79 EnvironmentId pulumi.StringOutput `pulumi:"environmentId"` 80 // ARN of the KMS key used to encrypt configuration data. 81 KmsKeyArn pulumi.StringOutput `pulumi:"kmsKeyArn"` 82 // The KMS key identifier (key ID, key alias, or key ARN). AppConfig uses this to encrypt the configuration data using a customer managed key. 83 KmsKeyIdentifier pulumi.StringPtrOutput `pulumi:"kmsKeyIdentifier"` 84 // State of the deployment. 85 State pulumi.StringOutput `pulumi:"state"` 86 // Map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 87 Tags pulumi.StringMapOutput `pulumi:"tags"` 88 // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 89 // 90 // Deprecated: Please use `tags` instead. 91 TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` 92 } 93 94 // NewDeployment registers a new resource with the given unique name, arguments, and options. 95 func NewDeployment(ctx *pulumi.Context, 96 name string, args *DeploymentArgs, opts ...pulumi.ResourceOption) (*Deployment, error) { 97 if args == nil { 98 return nil, errors.New("missing one or more required arguments") 99 } 100 101 if args.ApplicationId == nil { 102 return nil, errors.New("invalid value for required argument 'ApplicationId'") 103 } 104 if args.ConfigurationProfileId == nil { 105 return nil, errors.New("invalid value for required argument 'ConfigurationProfileId'") 106 } 107 if args.ConfigurationVersion == nil { 108 return nil, errors.New("invalid value for required argument 'ConfigurationVersion'") 109 } 110 if args.DeploymentStrategyId == nil { 111 return nil, errors.New("invalid value for required argument 'DeploymentStrategyId'") 112 } 113 if args.EnvironmentId == nil { 114 return nil, errors.New("invalid value for required argument 'EnvironmentId'") 115 } 116 opts = internal.PkgResourceDefaultOpts(opts) 117 var resource Deployment 118 err := ctx.RegisterResource("aws:appconfig/deployment:Deployment", name, args, &resource, opts...) 119 if err != nil { 120 return nil, err 121 } 122 return &resource, nil 123 } 124 125 // GetDeployment gets an existing Deployment resource's state with the given name, ID, and optional 126 // state properties that are used to uniquely qualify the lookup (nil if not required). 127 func GetDeployment(ctx *pulumi.Context, 128 name string, id pulumi.IDInput, state *DeploymentState, opts ...pulumi.ResourceOption) (*Deployment, error) { 129 var resource Deployment 130 err := ctx.ReadResource("aws:appconfig/deployment:Deployment", name, id, state, &resource, opts...) 131 if err != nil { 132 return nil, err 133 } 134 return &resource, nil 135 } 136 137 // Input properties used for looking up and filtering Deployment resources. 138 type deploymentState struct { 139 // Application ID. Must be between 4 and 7 characters in length. 140 ApplicationId *string `pulumi:"applicationId"` 141 // ARN of the AppConfig Deployment. 142 Arn *string `pulumi:"arn"` 143 // Configuration profile ID. Must be between 4 and 7 characters in length. 144 ConfigurationProfileId *string `pulumi:"configurationProfileId"` 145 // Configuration version to deploy. Can be at most 1024 characters. 146 ConfigurationVersion *string `pulumi:"configurationVersion"` 147 // Deployment number. 148 DeploymentNumber *int `pulumi:"deploymentNumber"` 149 // Deployment strategy ID or name of a predefined deployment strategy. See [Predefined Deployment Strategies](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-deployment-strategy.html#appconfig-creating-deployment-strategy-predefined) for more details. 150 DeploymentStrategyId *string `pulumi:"deploymentStrategyId"` 151 // Description of the deployment. Can be at most 1024 characters. 152 Description *string `pulumi:"description"` 153 // Environment ID. Must be between 4 and 7 characters in length. 154 EnvironmentId *string `pulumi:"environmentId"` 155 // ARN of the KMS key used to encrypt configuration data. 156 KmsKeyArn *string `pulumi:"kmsKeyArn"` 157 // The KMS key identifier (key ID, key alias, or key ARN). AppConfig uses this to encrypt the configuration data using a customer managed key. 158 KmsKeyIdentifier *string `pulumi:"kmsKeyIdentifier"` 159 // State of the deployment. 160 State *string `pulumi:"state"` 161 // Map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 162 Tags map[string]string `pulumi:"tags"` 163 // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 164 // 165 // Deprecated: Please use `tags` instead. 166 TagsAll map[string]string `pulumi:"tagsAll"` 167 } 168 169 type DeploymentState struct { 170 // Application ID. Must be between 4 and 7 characters in length. 171 ApplicationId pulumi.StringPtrInput 172 // ARN of the AppConfig Deployment. 173 Arn pulumi.StringPtrInput 174 // Configuration profile ID. Must be between 4 and 7 characters in length. 175 ConfigurationProfileId pulumi.StringPtrInput 176 // Configuration version to deploy. Can be at most 1024 characters. 177 ConfigurationVersion pulumi.StringPtrInput 178 // Deployment number. 179 DeploymentNumber pulumi.IntPtrInput 180 // Deployment strategy ID or name of a predefined deployment strategy. See [Predefined Deployment Strategies](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-deployment-strategy.html#appconfig-creating-deployment-strategy-predefined) for more details. 181 DeploymentStrategyId pulumi.StringPtrInput 182 // Description of the deployment. Can be at most 1024 characters. 183 Description pulumi.StringPtrInput 184 // Environment ID. Must be between 4 and 7 characters in length. 185 EnvironmentId pulumi.StringPtrInput 186 // ARN of the KMS key used to encrypt configuration data. 187 KmsKeyArn pulumi.StringPtrInput 188 // The KMS key identifier (key ID, key alias, or key ARN). AppConfig uses this to encrypt the configuration data using a customer managed key. 189 KmsKeyIdentifier pulumi.StringPtrInput 190 // State of the deployment. 191 State pulumi.StringPtrInput 192 // Map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 193 Tags pulumi.StringMapInput 194 // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 195 // 196 // Deprecated: Please use `tags` instead. 197 TagsAll pulumi.StringMapInput 198 } 199 200 func (DeploymentState) ElementType() reflect.Type { 201 return reflect.TypeOf((*deploymentState)(nil)).Elem() 202 } 203 204 type deploymentArgs struct { 205 // Application ID. Must be between 4 and 7 characters in length. 206 ApplicationId string `pulumi:"applicationId"` 207 // Configuration profile ID. Must be between 4 and 7 characters in length. 208 ConfigurationProfileId string `pulumi:"configurationProfileId"` 209 // Configuration version to deploy. Can be at most 1024 characters. 210 ConfigurationVersion string `pulumi:"configurationVersion"` 211 // Deployment strategy ID or name of a predefined deployment strategy. See [Predefined Deployment Strategies](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-deployment-strategy.html#appconfig-creating-deployment-strategy-predefined) for more details. 212 DeploymentStrategyId string `pulumi:"deploymentStrategyId"` 213 // Description of the deployment. Can be at most 1024 characters. 214 Description *string `pulumi:"description"` 215 // Environment ID. Must be between 4 and 7 characters in length. 216 EnvironmentId string `pulumi:"environmentId"` 217 // The KMS key identifier (key ID, key alias, or key ARN). AppConfig uses this to encrypt the configuration data using a customer managed key. 218 KmsKeyIdentifier *string `pulumi:"kmsKeyIdentifier"` 219 // Map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 220 Tags map[string]string `pulumi:"tags"` 221 } 222 223 // The set of arguments for constructing a Deployment resource. 224 type DeploymentArgs struct { 225 // Application ID. Must be between 4 and 7 characters in length. 226 ApplicationId pulumi.StringInput 227 // Configuration profile ID. Must be between 4 and 7 characters in length. 228 ConfigurationProfileId pulumi.StringInput 229 // Configuration version to deploy. Can be at most 1024 characters. 230 ConfigurationVersion pulumi.StringInput 231 // Deployment strategy ID or name of a predefined deployment strategy. See [Predefined Deployment Strategies](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-deployment-strategy.html#appconfig-creating-deployment-strategy-predefined) for more details. 232 DeploymentStrategyId pulumi.StringInput 233 // Description of the deployment. Can be at most 1024 characters. 234 Description pulumi.StringPtrInput 235 // Environment ID. Must be between 4 and 7 characters in length. 236 EnvironmentId pulumi.StringInput 237 // The KMS key identifier (key ID, key alias, or key ARN). AppConfig uses this to encrypt the configuration data using a customer managed key. 238 KmsKeyIdentifier pulumi.StringPtrInput 239 // Map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 240 Tags pulumi.StringMapInput 241 } 242 243 func (DeploymentArgs) ElementType() reflect.Type { 244 return reflect.TypeOf((*deploymentArgs)(nil)).Elem() 245 } 246 247 type DeploymentInput interface { 248 pulumi.Input 249 250 ToDeploymentOutput() DeploymentOutput 251 ToDeploymentOutputWithContext(ctx context.Context) DeploymentOutput 252 } 253 254 func (*Deployment) ElementType() reflect.Type { 255 return reflect.TypeOf((**Deployment)(nil)).Elem() 256 } 257 258 func (i *Deployment) ToDeploymentOutput() DeploymentOutput { 259 return i.ToDeploymentOutputWithContext(context.Background()) 260 } 261 262 func (i *Deployment) ToDeploymentOutputWithContext(ctx context.Context) DeploymentOutput { 263 return pulumi.ToOutputWithContext(ctx, i).(DeploymentOutput) 264 } 265 266 // DeploymentArrayInput is an input type that accepts DeploymentArray and DeploymentArrayOutput values. 267 // You can construct a concrete instance of `DeploymentArrayInput` via: 268 // 269 // DeploymentArray{ DeploymentArgs{...} } 270 type DeploymentArrayInput interface { 271 pulumi.Input 272 273 ToDeploymentArrayOutput() DeploymentArrayOutput 274 ToDeploymentArrayOutputWithContext(context.Context) DeploymentArrayOutput 275 } 276 277 type DeploymentArray []DeploymentInput 278 279 func (DeploymentArray) ElementType() reflect.Type { 280 return reflect.TypeOf((*[]*Deployment)(nil)).Elem() 281 } 282 283 func (i DeploymentArray) ToDeploymentArrayOutput() DeploymentArrayOutput { 284 return i.ToDeploymentArrayOutputWithContext(context.Background()) 285 } 286 287 func (i DeploymentArray) ToDeploymentArrayOutputWithContext(ctx context.Context) DeploymentArrayOutput { 288 return pulumi.ToOutputWithContext(ctx, i).(DeploymentArrayOutput) 289 } 290 291 // DeploymentMapInput is an input type that accepts DeploymentMap and DeploymentMapOutput values. 292 // You can construct a concrete instance of `DeploymentMapInput` via: 293 // 294 // DeploymentMap{ "key": DeploymentArgs{...} } 295 type DeploymentMapInput interface { 296 pulumi.Input 297 298 ToDeploymentMapOutput() DeploymentMapOutput 299 ToDeploymentMapOutputWithContext(context.Context) DeploymentMapOutput 300 } 301 302 type DeploymentMap map[string]DeploymentInput 303 304 func (DeploymentMap) ElementType() reflect.Type { 305 return reflect.TypeOf((*map[string]*Deployment)(nil)).Elem() 306 } 307 308 func (i DeploymentMap) ToDeploymentMapOutput() DeploymentMapOutput { 309 return i.ToDeploymentMapOutputWithContext(context.Background()) 310 } 311 312 func (i DeploymentMap) ToDeploymentMapOutputWithContext(ctx context.Context) DeploymentMapOutput { 313 return pulumi.ToOutputWithContext(ctx, i).(DeploymentMapOutput) 314 } 315 316 type DeploymentOutput struct{ *pulumi.OutputState } 317 318 func (DeploymentOutput) ElementType() reflect.Type { 319 return reflect.TypeOf((**Deployment)(nil)).Elem() 320 } 321 322 func (o DeploymentOutput) ToDeploymentOutput() DeploymentOutput { 323 return o 324 } 325 326 func (o DeploymentOutput) ToDeploymentOutputWithContext(ctx context.Context) DeploymentOutput { 327 return o 328 } 329 330 // Application ID. Must be between 4 and 7 characters in length. 331 func (o DeploymentOutput) ApplicationId() pulumi.StringOutput { 332 return o.ApplyT(func(v *Deployment) pulumi.StringOutput { return v.ApplicationId }).(pulumi.StringOutput) 333 } 334 335 // ARN of the AppConfig Deployment. 336 func (o DeploymentOutput) Arn() pulumi.StringOutput { 337 return o.ApplyT(func(v *Deployment) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) 338 } 339 340 // Configuration profile ID. Must be between 4 and 7 characters in length. 341 func (o DeploymentOutput) ConfigurationProfileId() pulumi.StringOutput { 342 return o.ApplyT(func(v *Deployment) pulumi.StringOutput { return v.ConfigurationProfileId }).(pulumi.StringOutput) 343 } 344 345 // Configuration version to deploy. Can be at most 1024 characters. 346 func (o DeploymentOutput) ConfigurationVersion() pulumi.StringOutput { 347 return o.ApplyT(func(v *Deployment) pulumi.StringOutput { return v.ConfigurationVersion }).(pulumi.StringOutput) 348 } 349 350 // Deployment number. 351 func (o DeploymentOutput) DeploymentNumber() pulumi.IntOutput { 352 return o.ApplyT(func(v *Deployment) pulumi.IntOutput { return v.DeploymentNumber }).(pulumi.IntOutput) 353 } 354 355 // Deployment strategy ID or name of a predefined deployment strategy. See [Predefined Deployment Strategies](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-deployment-strategy.html#appconfig-creating-deployment-strategy-predefined) for more details. 356 func (o DeploymentOutput) DeploymentStrategyId() pulumi.StringOutput { 357 return o.ApplyT(func(v *Deployment) pulumi.StringOutput { return v.DeploymentStrategyId }).(pulumi.StringOutput) 358 } 359 360 // Description of the deployment. Can be at most 1024 characters. 361 func (o DeploymentOutput) Description() pulumi.StringPtrOutput { 362 return o.ApplyT(func(v *Deployment) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) 363 } 364 365 // Environment ID. Must be between 4 and 7 characters in length. 366 func (o DeploymentOutput) EnvironmentId() pulumi.StringOutput { 367 return o.ApplyT(func(v *Deployment) pulumi.StringOutput { return v.EnvironmentId }).(pulumi.StringOutput) 368 } 369 370 // ARN of the KMS key used to encrypt configuration data. 371 func (o DeploymentOutput) KmsKeyArn() pulumi.StringOutput { 372 return o.ApplyT(func(v *Deployment) pulumi.StringOutput { return v.KmsKeyArn }).(pulumi.StringOutput) 373 } 374 375 // The KMS key identifier (key ID, key alias, or key ARN). AppConfig uses this to encrypt the configuration data using a customer managed key. 376 func (o DeploymentOutput) KmsKeyIdentifier() pulumi.StringPtrOutput { 377 return o.ApplyT(func(v *Deployment) pulumi.StringPtrOutput { return v.KmsKeyIdentifier }).(pulumi.StringPtrOutput) 378 } 379 380 // State of the deployment. 381 func (o DeploymentOutput) State() pulumi.StringOutput { 382 return o.ApplyT(func(v *Deployment) pulumi.StringOutput { return v.State }).(pulumi.StringOutput) 383 } 384 385 // Map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 386 func (o DeploymentOutput) Tags() pulumi.StringMapOutput { 387 return o.ApplyT(func(v *Deployment) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) 388 } 389 390 // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 391 // 392 // Deprecated: Please use `tags` instead. 393 func (o DeploymentOutput) TagsAll() pulumi.StringMapOutput { 394 return o.ApplyT(func(v *Deployment) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) 395 } 396 397 type DeploymentArrayOutput struct{ *pulumi.OutputState } 398 399 func (DeploymentArrayOutput) ElementType() reflect.Type { 400 return reflect.TypeOf((*[]*Deployment)(nil)).Elem() 401 } 402 403 func (o DeploymentArrayOutput) ToDeploymentArrayOutput() DeploymentArrayOutput { 404 return o 405 } 406 407 func (o DeploymentArrayOutput) ToDeploymentArrayOutputWithContext(ctx context.Context) DeploymentArrayOutput { 408 return o 409 } 410 411 func (o DeploymentArrayOutput) Index(i pulumi.IntInput) DeploymentOutput { 412 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Deployment { 413 return vs[0].([]*Deployment)[vs[1].(int)] 414 }).(DeploymentOutput) 415 } 416 417 type DeploymentMapOutput struct{ *pulumi.OutputState } 418 419 func (DeploymentMapOutput) ElementType() reflect.Type { 420 return reflect.TypeOf((*map[string]*Deployment)(nil)).Elem() 421 } 422 423 func (o DeploymentMapOutput) ToDeploymentMapOutput() DeploymentMapOutput { 424 return o 425 } 426 427 func (o DeploymentMapOutput) ToDeploymentMapOutputWithContext(ctx context.Context) DeploymentMapOutput { 428 return o 429 } 430 431 func (o DeploymentMapOutput) MapIndex(k pulumi.StringInput) DeploymentOutput { 432 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Deployment { 433 return vs[0].(map[string]*Deployment)[vs[1].(string)] 434 }).(DeploymentOutput) 435 } 436 437 func init() { 438 pulumi.RegisterInputType(reflect.TypeOf((*DeploymentInput)(nil)).Elem(), &Deployment{}) 439 pulumi.RegisterInputType(reflect.TypeOf((*DeploymentArrayInput)(nil)).Elem(), DeploymentArray{}) 440 pulumi.RegisterInputType(reflect.TypeOf((*DeploymentMapInput)(nil)).Elem(), DeploymentMap{}) 441 pulumi.RegisterOutputType(DeploymentOutput{}) 442 pulumi.RegisterOutputType(DeploymentArrayOutput{}) 443 pulumi.RegisterOutputType(DeploymentMapOutput{}) 444 }