github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/ecs/clusterCapacityProviders.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 ecs 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 // Manages the capacity providers of an ECS Cluster. 16 // 17 // More information about capacity providers can be found in the [ECS User Guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-capacity-providers.html). 18 // 19 // ## Example Usage 20 // 21 // <!--Start PulumiCodeChooser --> 22 // ```go 23 // package main 24 // 25 // import ( 26 // 27 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs" 28 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 29 // 30 // ) 31 // 32 // func main() { 33 // pulumi.Run(func(ctx *pulumi.Context) error { 34 // example, err := ecs.NewCluster(ctx, "example", &ecs.ClusterArgs{ 35 // Name: pulumi.String("my-cluster"), 36 // }) 37 // if err != nil { 38 // return err 39 // } 40 // _, err = ecs.NewClusterCapacityProviders(ctx, "example", &ecs.ClusterCapacityProvidersArgs{ 41 // ClusterName: example.Name, 42 // CapacityProviders: pulumi.StringArray{ 43 // pulumi.String("FARGATE"), 44 // }, 45 // DefaultCapacityProviderStrategies: ecs.ClusterCapacityProvidersDefaultCapacityProviderStrategyArray{ 46 // &ecs.ClusterCapacityProvidersDefaultCapacityProviderStrategyArgs{ 47 // Base: pulumi.Int(1), 48 // Weight: pulumi.Int(100), 49 // CapacityProvider: pulumi.String("FARGATE"), 50 // }, 51 // }, 52 // }) 53 // if err != nil { 54 // return err 55 // } 56 // return nil 57 // }) 58 // } 59 // 60 // ``` 61 // <!--End PulumiCodeChooser --> 62 // 63 // ## Import 64 // 65 // Using `pulumi import`, import ECS cluster capacity providers using the `cluster_name` attribute. For example: 66 // 67 // ```sh 68 // $ pulumi import aws:ecs/clusterCapacityProviders:ClusterCapacityProviders example my-cluster 69 // ``` 70 type ClusterCapacityProviders struct { 71 pulumi.CustomResourceState 72 73 // Set of names of one or more capacity providers to associate with the cluster. Valid values also include `FARGATE` and `FARGATE_SPOT`. 74 CapacityProviders pulumi.StringArrayOutput `pulumi:"capacityProviders"` 75 // Name of the ECS cluster to manage capacity providers for. 76 ClusterName pulumi.StringOutput `pulumi:"clusterName"` 77 // Set of capacity provider strategies to use by default for the cluster. Detailed below. 78 DefaultCapacityProviderStrategies ClusterCapacityProvidersDefaultCapacityProviderStrategyArrayOutput `pulumi:"defaultCapacityProviderStrategies"` 79 } 80 81 // NewClusterCapacityProviders registers a new resource with the given unique name, arguments, and options. 82 func NewClusterCapacityProviders(ctx *pulumi.Context, 83 name string, args *ClusterCapacityProvidersArgs, opts ...pulumi.ResourceOption) (*ClusterCapacityProviders, error) { 84 if args == nil { 85 return nil, errors.New("missing one or more required arguments") 86 } 87 88 if args.ClusterName == nil { 89 return nil, errors.New("invalid value for required argument 'ClusterName'") 90 } 91 opts = internal.PkgResourceDefaultOpts(opts) 92 var resource ClusterCapacityProviders 93 err := ctx.RegisterResource("aws:ecs/clusterCapacityProviders:ClusterCapacityProviders", name, args, &resource, opts...) 94 if err != nil { 95 return nil, err 96 } 97 return &resource, nil 98 } 99 100 // GetClusterCapacityProviders gets an existing ClusterCapacityProviders resource's state with the given name, ID, and optional 101 // state properties that are used to uniquely qualify the lookup (nil if not required). 102 func GetClusterCapacityProviders(ctx *pulumi.Context, 103 name string, id pulumi.IDInput, state *ClusterCapacityProvidersState, opts ...pulumi.ResourceOption) (*ClusterCapacityProviders, error) { 104 var resource ClusterCapacityProviders 105 err := ctx.ReadResource("aws:ecs/clusterCapacityProviders:ClusterCapacityProviders", name, id, state, &resource, opts...) 106 if err != nil { 107 return nil, err 108 } 109 return &resource, nil 110 } 111 112 // Input properties used for looking up and filtering ClusterCapacityProviders resources. 113 type clusterCapacityProvidersState struct { 114 // Set of names of one or more capacity providers to associate with the cluster. Valid values also include `FARGATE` and `FARGATE_SPOT`. 115 CapacityProviders []string `pulumi:"capacityProviders"` 116 // Name of the ECS cluster to manage capacity providers for. 117 ClusterName *string `pulumi:"clusterName"` 118 // Set of capacity provider strategies to use by default for the cluster. Detailed below. 119 DefaultCapacityProviderStrategies []ClusterCapacityProvidersDefaultCapacityProviderStrategy `pulumi:"defaultCapacityProviderStrategies"` 120 } 121 122 type ClusterCapacityProvidersState struct { 123 // Set of names of one or more capacity providers to associate with the cluster. Valid values also include `FARGATE` and `FARGATE_SPOT`. 124 CapacityProviders pulumi.StringArrayInput 125 // Name of the ECS cluster to manage capacity providers for. 126 ClusterName pulumi.StringPtrInput 127 // Set of capacity provider strategies to use by default for the cluster. Detailed below. 128 DefaultCapacityProviderStrategies ClusterCapacityProvidersDefaultCapacityProviderStrategyArrayInput 129 } 130 131 func (ClusterCapacityProvidersState) ElementType() reflect.Type { 132 return reflect.TypeOf((*clusterCapacityProvidersState)(nil)).Elem() 133 } 134 135 type clusterCapacityProvidersArgs struct { 136 // Set of names of one or more capacity providers to associate with the cluster. Valid values also include `FARGATE` and `FARGATE_SPOT`. 137 CapacityProviders []string `pulumi:"capacityProviders"` 138 // Name of the ECS cluster to manage capacity providers for. 139 ClusterName string `pulumi:"clusterName"` 140 // Set of capacity provider strategies to use by default for the cluster. Detailed below. 141 DefaultCapacityProviderStrategies []ClusterCapacityProvidersDefaultCapacityProviderStrategy `pulumi:"defaultCapacityProviderStrategies"` 142 } 143 144 // The set of arguments for constructing a ClusterCapacityProviders resource. 145 type ClusterCapacityProvidersArgs struct { 146 // Set of names of one or more capacity providers to associate with the cluster. Valid values also include `FARGATE` and `FARGATE_SPOT`. 147 CapacityProviders pulumi.StringArrayInput 148 // Name of the ECS cluster to manage capacity providers for. 149 ClusterName pulumi.StringInput 150 // Set of capacity provider strategies to use by default for the cluster. Detailed below. 151 DefaultCapacityProviderStrategies ClusterCapacityProvidersDefaultCapacityProviderStrategyArrayInput 152 } 153 154 func (ClusterCapacityProvidersArgs) ElementType() reflect.Type { 155 return reflect.TypeOf((*clusterCapacityProvidersArgs)(nil)).Elem() 156 } 157 158 type ClusterCapacityProvidersInput interface { 159 pulumi.Input 160 161 ToClusterCapacityProvidersOutput() ClusterCapacityProvidersOutput 162 ToClusterCapacityProvidersOutputWithContext(ctx context.Context) ClusterCapacityProvidersOutput 163 } 164 165 func (*ClusterCapacityProviders) ElementType() reflect.Type { 166 return reflect.TypeOf((**ClusterCapacityProviders)(nil)).Elem() 167 } 168 169 func (i *ClusterCapacityProviders) ToClusterCapacityProvidersOutput() ClusterCapacityProvidersOutput { 170 return i.ToClusterCapacityProvidersOutputWithContext(context.Background()) 171 } 172 173 func (i *ClusterCapacityProviders) ToClusterCapacityProvidersOutputWithContext(ctx context.Context) ClusterCapacityProvidersOutput { 174 return pulumi.ToOutputWithContext(ctx, i).(ClusterCapacityProvidersOutput) 175 } 176 177 // ClusterCapacityProvidersArrayInput is an input type that accepts ClusterCapacityProvidersArray and ClusterCapacityProvidersArrayOutput values. 178 // You can construct a concrete instance of `ClusterCapacityProvidersArrayInput` via: 179 // 180 // ClusterCapacityProvidersArray{ ClusterCapacityProvidersArgs{...} } 181 type ClusterCapacityProvidersArrayInput interface { 182 pulumi.Input 183 184 ToClusterCapacityProvidersArrayOutput() ClusterCapacityProvidersArrayOutput 185 ToClusterCapacityProvidersArrayOutputWithContext(context.Context) ClusterCapacityProvidersArrayOutput 186 } 187 188 type ClusterCapacityProvidersArray []ClusterCapacityProvidersInput 189 190 func (ClusterCapacityProvidersArray) ElementType() reflect.Type { 191 return reflect.TypeOf((*[]*ClusterCapacityProviders)(nil)).Elem() 192 } 193 194 func (i ClusterCapacityProvidersArray) ToClusterCapacityProvidersArrayOutput() ClusterCapacityProvidersArrayOutput { 195 return i.ToClusterCapacityProvidersArrayOutputWithContext(context.Background()) 196 } 197 198 func (i ClusterCapacityProvidersArray) ToClusterCapacityProvidersArrayOutputWithContext(ctx context.Context) ClusterCapacityProvidersArrayOutput { 199 return pulumi.ToOutputWithContext(ctx, i).(ClusterCapacityProvidersArrayOutput) 200 } 201 202 // ClusterCapacityProvidersMapInput is an input type that accepts ClusterCapacityProvidersMap and ClusterCapacityProvidersMapOutput values. 203 // You can construct a concrete instance of `ClusterCapacityProvidersMapInput` via: 204 // 205 // ClusterCapacityProvidersMap{ "key": ClusterCapacityProvidersArgs{...} } 206 type ClusterCapacityProvidersMapInput interface { 207 pulumi.Input 208 209 ToClusterCapacityProvidersMapOutput() ClusterCapacityProvidersMapOutput 210 ToClusterCapacityProvidersMapOutputWithContext(context.Context) ClusterCapacityProvidersMapOutput 211 } 212 213 type ClusterCapacityProvidersMap map[string]ClusterCapacityProvidersInput 214 215 func (ClusterCapacityProvidersMap) ElementType() reflect.Type { 216 return reflect.TypeOf((*map[string]*ClusterCapacityProviders)(nil)).Elem() 217 } 218 219 func (i ClusterCapacityProvidersMap) ToClusterCapacityProvidersMapOutput() ClusterCapacityProvidersMapOutput { 220 return i.ToClusterCapacityProvidersMapOutputWithContext(context.Background()) 221 } 222 223 func (i ClusterCapacityProvidersMap) ToClusterCapacityProvidersMapOutputWithContext(ctx context.Context) ClusterCapacityProvidersMapOutput { 224 return pulumi.ToOutputWithContext(ctx, i).(ClusterCapacityProvidersMapOutput) 225 } 226 227 type ClusterCapacityProvidersOutput struct{ *pulumi.OutputState } 228 229 func (ClusterCapacityProvidersOutput) ElementType() reflect.Type { 230 return reflect.TypeOf((**ClusterCapacityProviders)(nil)).Elem() 231 } 232 233 func (o ClusterCapacityProvidersOutput) ToClusterCapacityProvidersOutput() ClusterCapacityProvidersOutput { 234 return o 235 } 236 237 func (o ClusterCapacityProvidersOutput) ToClusterCapacityProvidersOutputWithContext(ctx context.Context) ClusterCapacityProvidersOutput { 238 return o 239 } 240 241 // Set of names of one or more capacity providers to associate with the cluster. Valid values also include `FARGATE` and `FARGATE_SPOT`. 242 func (o ClusterCapacityProvidersOutput) CapacityProviders() pulumi.StringArrayOutput { 243 return o.ApplyT(func(v *ClusterCapacityProviders) pulumi.StringArrayOutput { return v.CapacityProviders }).(pulumi.StringArrayOutput) 244 } 245 246 // Name of the ECS cluster to manage capacity providers for. 247 func (o ClusterCapacityProvidersOutput) ClusterName() pulumi.StringOutput { 248 return o.ApplyT(func(v *ClusterCapacityProviders) pulumi.StringOutput { return v.ClusterName }).(pulumi.StringOutput) 249 } 250 251 // Set of capacity provider strategies to use by default for the cluster. Detailed below. 252 func (o ClusterCapacityProvidersOutput) DefaultCapacityProviderStrategies() ClusterCapacityProvidersDefaultCapacityProviderStrategyArrayOutput { 253 return o.ApplyT(func(v *ClusterCapacityProviders) ClusterCapacityProvidersDefaultCapacityProviderStrategyArrayOutput { 254 return v.DefaultCapacityProviderStrategies 255 }).(ClusterCapacityProvidersDefaultCapacityProviderStrategyArrayOutput) 256 } 257 258 type ClusterCapacityProvidersArrayOutput struct{ *pulumi.OutputState } 259 260 func (ClusterCapacityProvidersArrayOutput) ElementType() reflect.Type { 261 return reflect.TypeOf((*[]*ClusterCapacityProviders)(nil)).Elem() 262 } 263 264 func (o ClusterCapacityProvidersArrayOutput) ToClusterCapacityProvidersArrayOutput() ClusterCapacityProvidersArrayOutput { 265 return o 266 } 267 268 func (o ClusterCapacityProvidersArrayOutput) ToClusterCapacityProvidersArrayOutputWithContext(ctx context.Context) ClusterCapacityProvidersArrayOutput { 269 return o 270 } 271 272 func (o ClusterCapacityProvidersArrayOutput) Index(i pulumi.IntInput) ClusterCapacityProvidersOutput { 273 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ClusterCapacityProviders { 274 return vs[0].([]*ClusterCapacityProviders)[vs[1].(int)] 275 }).(ClusterCapacityProvidersOutput) 276 } 277 278 type ClusterCapacityProvidersMapOutput struct{ *pulumi.OutputState } 279 280 func (ClusterCapacityProvidersMapOutput) ElementType() reflect.Type { 281 return reflect.TypeOf((*map[string]*ClusterCapacityProviders)(nil)).Elem() 282 } 283 284 func (o ClusterCapacityProvidersMapOutput) ToClusterCapacityProvidersMapOutput() ClusterCapacityProvidersMapOutput { 285 return o 286 } 287 288 func (o ClusterCapacityProvidersMapOutput) ToClusterCapacityProvidersMapOutputWithContext(ctx context.Context) ClusterCapacityProvidersMapOutput { 289 return o 290 } 291 292 func (o ClusterCapacityProvidersMapOutput) MapIndex(k pulumi.StringInput) ClusterCapacityProvidersOutput { 293 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ClusterCapacityProviders { 294 return vs[0].(map[string]*ClusterCapacityProviders)[vs[1].(string)] 295 }).(ClusterCapacityProvidersOutput) 296 } 297 298 func init() { 299 pulumi.RegisterInputType(reflect.TypeOf((*ClusterCapacityProvidersInput)(nil)).Elem(), &ClusterCapacityProviders{}) 300 pulumi.RegisterInputType(reflect.TypeOf((*ClusterCapacityProvidersArrayInput)(nil)).Elem(), ClusterCapacityProvidersArray{}) 301 pulumi.RegisterInputType(reflect.TypeOf((*ClusterCapacityProvidersMapInput)(nil)).Elem(), ClusterCapacityProvidersMap{}) 302 pulumi.RegisterOutputType(ClusterCapacityProvidersOutput{}) 303 pulumi.RegisterOutputType(ClusterCapacityProvidersArrayOutput{}) 304 pulumi.RegisterOutputType(ClusterCapacityProvidersMapOutput{}) 305 }