github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/lightsail/containerService.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  // An Amazon Lightsail container service is a highly scalable compute and networking resource on which you can deploy, run,
    16  // and manage containers. For more information, see
    17  // [Container services in Amazon Lightsail](https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-container-services).
    18  //
    19  // > **Note:** For more information about the AWS Regions in which you can create Amazon Lightsail container services,
    20  // see ["Regions and Availability Zones in Amazon Lightsail"](https://lightsail.aws.amazon.com/ls/docs/overview/article/understanding-regions-and-availability-zones-in-amazon-lightsail).
    21  //
    22  // ## Example Usage
    23  //
    24  // ### Basic Usage
    25  //
    26  // <!--Start PulumiCodeChooser -->
    27  // ```go
    28  // package main
    29  //
    30  // import (
    31  //
    32  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lightsail"
    33  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    34  //
    35  // )
    36  //
    37  //	func main() {
    38  //		pulumi.Run(func(ctx *pulumi.Context) error {
    39  //			_, err := lightsail.NewContainerService(ctx, "my_container_service", &lightsail.ContainerServiceArgs{
    40  //				Name:       pulumi.String("container-service-1"),
    41  //				Power:      pulumi.String("nano"),
    42  //				Scale:      pulumi.Int(1),
    43  //				IsDisabled: pulumi.Bool(false),
    44  //				Tags: pulumi.StringMap{
    45  //					"foo1": pulumi.String("bar1"),
    46  //					"foo2": pulumi.String(""),
    47  //				},
    48  //			})
    49  //			if err != nil {
    50  //				return err
    51  //			}
    52  //			return nil
    53  //		})
    54  //	}
    55  //
    56  // ```
    57  // <!--End PulumiCodeChooser -->
    58  //
    59  // ### Public Domain Names
    60  //
    61  // <!--Start PulumiCodeChooser -->
    62  // ```go
    63  // package main
    64  //
    65  // import (
    66  //
    67  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lightsail"
    68  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    69  //
    70  // )
    71  //
    72  //	func main() {
    73  //		pulumi.Run(func(ctx *pulumi.Context) error {
    74  //			_, err := lightsail.NewContainerService(ctx, "my_container_service", &lightsail.ContainerServiceArgs{
    75  //				PublicDomainNames: &lightsail.ContainerServicePublicDomainNamesArgs{
    76  //					Certificates: lightsail.ContainerServicePublicDomainNamesCertificateArray{
    77  //						&lightsail.ContainerServicePublicDomainNamesCertificateArgs{
    78  //							CertificateName: pulumi.String("example-certificate"),
    79  //							DomainNames: pulumi.StringArray{
    80  //								pulumi.String("www.example.com"),
    81  //							},
    82  //						},
    83  //					},
    84  //				},
    85  //			})
    86  //			if err != nil {
    87  //				return err
    88  //			}
    89  //			return nil
    90  //		})
    91  //	}
    92  //
    93  // ```
    94  // <!--End PulumiCodeChooser -->
    95  //
    96  // ### Private Registry Access
    97  //
    98  // <!--Start PulumiCodeChooser -->
    99  // ```go
   100  // package main
   101  //
   102  // import (
   103  //
   104  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecr"
   105  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam"
   106  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lightsail"
   107  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   108  //
   109  // )
   110  // func main() {
   111  // pulumi.Run(func(ctx *pulumi.Context) error {
   112  // defaultContainerService, err := lightsail.NewContainerService(ctx, "default", &lightsail.ContainerServiceArgs{
   113  // PrivateRegistryAccess: &lightsail.ContainerServicePrivateRegistryAccessArgs{
   114  // EcrImagePullerRole: &lightsail.ContainerServicePrivateRegistryAccessEcrImagePullerRoleArgs{
   115  // IsActive: pulumi.Bool(true),
   116  // },
   117  // },
   118  // })
   119  // if err != nil {
   120  // return err
   121  // }
   122  // _default := defaultContainerService.PrivateRegistryAccess.ApplyT(func(privateRegistryAccess lightsail.ContainerServicePrivateRegistryAccess) (iam.GetPolicyDocumentResult, error) {
   123  // return iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{
   124  // Statements: []iam.GetPolicyDocumentStatement{
   125  // {
   126  // Effect: "Allow",
   127  // Principals: []iam.GetPolicyDocumentStatementPrincipal{
   128  // {
   129  // Type: "AWS",
   130  // Identifiers: interface{}{
   131  // privateRegistryAccess.EcrImagePullerRole.PrincipalArn,
   132  // },
   133  // },
   134  // },
   135  // Actions: []string{
   136  // "ecr:BatchGetImage",
   137  // "ecr:GetDownloadUrlForLayer",
   138  // },
   139  // },
   140  // },
   141  // }, nil), nil
   142  // }).(iam.GetPolicyDocumentResultOutput)
   143  // _, err = ecr.NewRepositoryPolicy(ctx, "default", &ecr.RepositoryPolicyArgs{
   144  // Repository: pulumi.Any(defaultAwsEcrRepository.Name),
   145  // Policy: _default.ApplyT(func(_default iam.GetPolicyDocumentResult) (*string, error) {
   146  // return &default.Json, nil
   147  // }).(pulumi.StringPtrOutput),
   148  // })
   149  // if err != nil {
   150  // return err
   151  // }
   152  // return nil
   153  // })
   154  // }
   155  // ```
   156  // <!--End PulumiCodeChooser -->
   157  //
   158  // ## Import
   159  //
   160  // Using `pulumi import`, import Lightsail Container Service using the `name`. For example:
   161  //
   162  // ```sh
   163  // $ pulumi import aws:lightsail/containerService:ContainerService my_container_service container-service-1
   164  // ```
   165  type ContainerService struct {
   166  	pulumi.CustomResourceState
   167  
   168  	// The Amazon Resource Name (ARN) of the container service.
   169  	Arn pulumi.StringOutput `pulumi:"arn"`
   170  	// The Availability Zone. Follows the format us-east-2a (case-sensitive).
   171  	AvailabilityZone pulumi.StringOutput `pulumi:"availabilityZone"`
   172  	CreatedAt        pulumi.StringOutput `pulumi:"createdAt"`
   173  	// A Boolean value indicating whether the container service is disabled. Defaults to `false`.
   174  	IsDisabled pulumi.BoolPtrOutput `pulumi:"isDisabled"`
   175  	// The name for the container service. Names must be of length 1 to 63, and be
   176  	// unique within each AWS Region in your Lightsail account.
   177  	Name pulumi.StringOutput `pulumi:"name"`
   178  	// The power specification for the container service. The power specifies the amount of memory,
   179  	// the number of vCPUs, and the monthly price of each node of the container service.
   180  	// Possible values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`.
   181  	Power pulumi.StringOutput `pulumi:"power"`
   182  	// The ID of the power of the container service.
   183  	PowerId pulumi.StringOutput `pulumi:"powerId"`
   184  	// The principal ARN of the container service. The principal ARN can be used to create a trust
   185  	// relationship between your standard AWS account and your Lightsail container service. This allows you to give your
   186  	// service permission to access resources in your standard AWS account.
   187  	PrincipalArn pulumi.StringOutput `pulumi:"principalArn"`
   188  	// The private domain name of the container service. The private domain name is accessible only
   189  	// by other resources within the default virtual private cloud (VPC) of your Lightsail account.
   190  	PrivateDomainName pulumi.StringOutput `pulumi:"privateDomainName"`
   191  	// An object to describe the configuration for the container service to access private container image repositories, such as Amazon Elastic Container Registry (Amazon ECR) private repositories. See Private Registry Access below for more details.
   192  	PrivateRegistryAccess ContainerServicePrivateRegistryAccessOutput `pulumi:"privateRegistryAccess"`
   193  	// The public domain names to use with the container service, such as example.com
   194  	// and www.example.com. You can specify up to four public domain names for a container service. The domain names that you
   195  	// specify are used when you create a deployment with a container configured as the public endpoint of your container
   196  	// service. If you don't specify public domain names, then you can use the default domain of the container service.
   197  	// Defined below.
   198  	PublicDomainNames ContainerServicePublicDomainNamesPtrOutput `pulumi:"publicDomainNames"`
   199  	// The Lightsail resource type of the container service (i.e., ContainerService).
   200  	ResourceType pulumi.StringOutput `pulumi:"resourceType"`
   201  	// The scale specification for the container service. The scale specifies the allocated compute
   202  	// nodes of the container service.
   203  	Scale pulumi.IntOutput `pulumi:"scale"`
   204  	// The current state of the container service.
   205  	State pulumi.StringOutput `pulumi:"state"`
   206  	// Map of container service tags. To tag at launch, specify the tags in the Launch Template. If
   207  	// configured with a provider
   208  	// `defaultTags` configuration block
   209  	// present, tags with matching keys will overwrite those defined at the provider-level.
   210  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   211  	// A map of tags assigned to the resource, including those inherited from the provider
   212  	// `defaultTags` configuration block.
   213  	//
   214  	// Deprecated: Please use `tags` instead.
   215  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   216  	// The publicly accessible URL of the container service. If no public endpoint is specified in the
   217  	// currentDeployment, this URL returns a 404 response.
   218  	Url pulumi.StringOutput `pulumi:"url"`
   219  }
   220  
   221  // NewContainerService registers a new resource with the given unique name, arguments, and options.
   222  func NewContainerService(ctx *pulumi.Context,
   223  	name string, args *ContainerServiceArgs, opts ...pulumi.ResourceOption) (*ContainerService, error) {
   224  	if args == nil {
   225  		return nil, errors.New("missing one or more required arguments")
   226  	}
   227  
   228  	if args.Power == nil {
   229  		return nil, errors.New("invalid value for required argument 'Power'")
   230  	}
   231  	if args.Scale == nil {
   232  		return nil, errors.New("invalid value for required argument 'Scale'")
   233  	}
   234  	opts = internal.PkgResourceDefaultOpts(opts)
   235  	var resource ContainerService
   236  	err := ctx.RegisterResource("aws:lightsail/containerService:ContainerService", name, args, &resource, opts...)
   237  	if err != nil {
   238  		return nil, err
   239  	}
   240  	return &resource, nil
   241  }
   242  
   243  // GetContainerService gets an existing ContainerService resource's state with the given name, ID, and optional
   244  // state properties that are used to uniquely qualify the lookup (nil if not required).
   245  func GetContainerService(ctx *pulumi.Context,
   246  	name string, id pulumi.IDInput, state *ContainerServiceState, opts ...pulumi.ResourceOption) (*ContainerService, error) {
   247  	var resource ContainerService
   248  	err := ctx.ReadResource("aws:lightsail/containerService:ContainerService", name, id, state, &resource, opts...)
   249  	if err != nil {
   250  		return nil, err
   251  	}
   252  	return &resource, nil
   253  }
   254  
   255  // Input properties used for looking up and filtering ContainerService resources.
   256  type containerServiceState struct {
   257  	// The Amazon Resource Name (ARN) of the container service.
   258  	Arn *string `pulumi:"arn"`
   259  	// The Availability Zone. Follows the format us-east-2a (case-sensitive).
   260  	AvailabilityZone *string `pulumi:"availabilityZone"`
   261  	CreatedAt        *string `pulumi:"createdAt"`
   262  	// A Boolean value indicating whether the container service is disabled. Defaults to `false`.
   263  	IsDisabled *bool `pulumi:"isDisabled"`
   264  	// The name for the container service. Names must be of length 1 to 63, and be
   265  	// unique within each AWS Region in your Lightsail account.
   266  	Name *string `pulumi:"name"`
   267  	// The power specification for the container service. The power specifies the amount of memory,
   268  	// the number of vCPUs, and the monthly price of each node of the container service.
   269  	// Possible values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`.
   270  	Power *string `pulumi:"power"`
   271  	// The ID of the power of the container service.
   272  	PowerId *string `pulumi:"powerId"`
   273  	// The principal ARN of the container service. The principal ARN can be used to create a trust
   274  	// relationship between your standard AWS account and your Lightsail container service. This allows you to give your
   275  	// service permission to access resources in your standard AWS account.
   276  	PrincipalArn *string `pulumi:"principalArn"`
   277  	// The private domain name of the container service. The private domain name is accessible only
   278  	// by other resources within the default virtual private cloud (VPC) of your Lightsail account.
   279  	PrivateDomainName *string `pulumi:"privateDomainName"`
   280  	// An object to describe the configuration for the container service to access private container image repositories, such as Amazon Elastic Container Registry (Amazon ECR) private repositories. See Private Registry Access below for more details.
   281  	PrivateRegistryAccess *ContainerServicePrivateRegistryAccess `pulumi:"privateRegistryAccess"`
   282  	// The public domain names to use with the container service, such as example.com
   283  	// and www.example.com. You can specify up to four public domain names for a container service. The domain names that you
   284  	// specify are used when you create a deployment with a container configured as the public endpoint of your container
   285  	// service. If you don't specify public domain names, then you can use the default domain of the container service.
   286  	// Defined below.
   287  	PublicDomainNames *ContainerServicePublicDomainNames `pulumi:"publicDomainNames"`
   288  	// The Lightsail resource type of the container service (i.e., ContainerService).
   289  	ResourceType *string `pulumi:"resourceType"`
   290  	// The scale specification for the container service. The scale specifies the allocated compute
   291  	// nodes of the container service.
   292  	Scale *int `pulumi:"scale"`
   293  	// The current state of the container service.
   294  	State *string `pulumi:"state"`
   295  	// Map of container service tags. To tag at launch, specify the tags in the Launch Template. If
   296  	// configured with a provider
   297  	// `defaultTags` configuration block
   298  	// present, tags with matching keys will overwrite those defined at the provider-level.
   299  	Tags map[string]string `pulumi:"tags"`
   300  	// A map of tags assigned to the resource, including those inherited from the provider
   301  	// `defaultTags` configuration block.
   302  	//
   303  	// Deprecated: Please use `tags` instead.
   304  	TagsAll map[string]string `pulumi:"tagsAll"`
   305  	// The publicly accessible URL of the container service. If no public endpoint is specified in the
   306  	// currentDeployment, this URL returns a 404 response.
   307  	Url *string `pulumi:"url"`
   308  }
   309  
   310  type ContainerServiceState struct {
   311  	// The Amazon Resource Name (ARN) of the container service.
   312  	Arn pulumi.StringPtrInput
   313  	// The Availability Zone. Follows the format us-east-2a (case-sensitive).
   314  	AvailabilityZone pulumi.StringPtrInput
   315  	CreatedAt        pulumi.StringPtrInput
   316  	// A Boolean value indicating whether the container service is disabled. Defaults to `false`.
   317  	IsDisabled pulumi.BoolPtrInput
   318  	// The name for the container service. Names must be of length 1 to 63, and be
   319  	// unique within each AWS Region in your Lightsail account.
   320  	Name pulumi.StringPtrInput
   321  	// The power specification for the container service. The power specifies the amount of memory,
   322  	// the number of vCPUs, and the monthly price of each node of the container service.
   323  	// Possible values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`.
   324  	Power pulumi.StringPtrInput
   325  	// The ID of the power of the container service.
   326  	PowerId pulumi.StringPtrInput
   327  	// The principal ARN of the container service. The principal ARN can be used to create a trust
   328  	// relationship between your standard AWS account and your Lightsail container service. This allows you to give your
   329  	// service permission to access resources in your standard AWS account.
   330  	PrincipalArn pulumi.StringPtrInput
   331  	// The private domain name of the container service. The private domain name is accessible only
   332  	// by other resources within the default virtual private cloud (VPC) of your Lightsail account.
   333  	PrivateDomainName pulumi.StringPtrInput
   334  	// An object to describe the configuration for the container service to access private container image repositories, such as Amazon Elastic Container Registry (Amazon ECR) private repositories. See Private Registry Access below for more details.
   335  	PrivateRegistryAccess ContainerServicePrivateRegistryAccessPtrInput
   336  	// The public domain names to use with the container service, such as example.com
   337  	// and www.example.com. You can specify up to four public domain names for a container service. The domain names that you
   338  	// specify are used when you create a deployment with a container configured as the public endpoint of your container
   339  	// service. If you don't specify public domain names, then you can use the default domain of the container service.
   340  	// Defined below.
   341  	PublicDomainNames ContainerServicePublicDomainNamesPtrInput
   342  	// The Lightsail resource type of the container service (i.e., ContainerService).
   343  	ResourceType pulumi.StringPtrInput
   344  	// The scale specification for the container service. The scale specifies the allocated compute
   345  	// nodes of the container service.
   346  	Scale pulumi.IntPtrInput
   347  	// The current state of the container service.
   348  	State pulumi.StringPtrInput
   349  	// Map of container service tags. To tag at launch, specify the tags in the Launch Template. If
   350  	// configured with a provider
   351  	// `defaultTags` configuration block
   352  	// present, tags with matching keys will overwrite those defined at the provider-level.
   353  	Tags pulumi.StringMapInput
   354  	// A map of tags assigned to the resource, including those inherited from the provider
   355  	// `defaultTags` configuration block.
   356  	//
   357  	// Deprecated: Please use `tags` instead.
   358  	TagsAll pulumi.StringMapInput
   359  	// The publicly accessible URL of the container service. If no public endpoint is specified in the
   360  	// currentDeployment, this URL returns a 404 response.
   361  	Url pulumi.StringPtrInput
   362  }
   363  
   364  func (ContainerServiceState) ElementType() reflect.Type {
   365  	return reflect.TypeOf((*containerServiceState)(nil)).Elem()
   366  }
   367  
   368  type containerServiceArgs struct {
   369  	// A Boolean value indicating whether the container service is disabled. Defaults to `false`.
   370  	IsDisabled *bool `pulumi:"isDisabled"`
   371  	// The name for the container service. Names must be of length 1 to 63, and be
   372  	// unique within each AWS Region in your Lightsail account.
   373  	Name *string `pulumi:"name"`
   374  	// The power specification for the container service. The power specifies the amount of memory,
   375  	// the number of vCPUs, and the monthly price of each node of the container service.
   376  	// Possible values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`.
   377  	Power string `pulumi:"power"`
   378  	// An object to describe the configuration for the container service to access private container image repositories, such as Amazon Elastic Container Registry (Amazon ECR) private repositories. See Private Registry Access below for more details.
   379  	PrivateRegistryAccess *ContainerServicePrivateRegistryAccess `pulumi:"privateRegistryAccess"`
   380  	// The public domain names to use with the container service, such as example.com
   381  	// and www.example.com. You can specify up to four public domain names for a container service. The domain names that you
   382  	// specify are used when you create a deployment with a container configured as the public endpoint of your container
   383  	// service. If you don't specify public domain names, then you can use the default domain of the container service.
   384  	// Defined below.
   385  	PublicDomainNames *ContainerServicePublicDomainNames `pulumi:"publicDomainNames"`
   386  	// The scale specification for the container service. The scale specifies the allocated compute
   387  	// nodes of the container service.
   388  	Scale int `pulumi:"scale"`
   389  	// Map of container service tags. To tag at launch, specify the tags in the Launch Template. If
   390  	// configured with a provider
   391  	// `defaultTags` configuration block
   392  	// present, tags with matching keys will overwrite those defined at the provider-level.
   393  	Tags map[string]string `pulumi:"tags"`
   394  }
   395  
   396  // The set of arguments for constructing a ContainerService resource.
   397  type ContainerServiceArgs struct {
   398  	// A Boolean value indicating whether the container service is disabled. Defaults to `false`.
   399  	IsDisabled pulumi.BoolPtrInput
   400  	// The name for the container service. Names must be of length 1 to 63, and be
   401  	// unique within each AWS Region in your Lightsail account.
   402  	Name pulumi.StringPtrInput
   403  	// The power specification for the container service. The power specifies the amount of memory,
   404  	// the number of vCPUs, and the monthly price of each node of the container service.
   405  	// Possible values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`.
   406  	Power pulumi.StringInput
   407  	// An object to describe the configuration for the container service to access private container image repositories, such as Amazon Elastic Container Registry (Amazon ECR) private repositories. See Private Registry Access below for more details.
   408  	PrivateRegistryAccess ContainerServicePrivateRegistryAccessPtrInput
   409  	// The public domain names to use with the container service, such as example.com
   410  	// and www.example.com. You can specify up to four public domain names for a container service. The domain names that you
   411  	// specify are used when you create a deployment with a container configured as the public endpoint of your container
   412  	// service. If you don't specify public domain names, then you can use the default domain of the container service.
   413  	// Defined below.
   414  	PublicDomainNames ContainerServicePublicDomainNamesPtrInput
   415  	// The scale specification for the container service. The scale specifies the allocated compute
   416  	// nodes of the container service.
   417  	Scale pulumi.IntInput
   418  	// Map of container service tags. To tag at launch, specify the tags in the Launch Template. If
   419  	// configured with a provider
   420  	// `defaultTags` configuration block
   421  	// present, tags with matching keys will overwrite those defined at the provider-level.
   422  	Tags pulumi.StringMapInput
   423  }
   424  
   425  func (ContainerServiceArgs) ElementType() reflect.Type {
   426  	return reflect.TypeOf((*containerServiceArgs)(nil)).Elem()
   427  }
   428  
   429  type ContainerServiceInput interface {
   430  	pulumi.Input
   431  
   432  	ToContainerServiceOutput() ContainerServiceOutput
   433  	ToContainerServiceOutputWithContext(ctx context.Context) ContainerServiceOutput
   434  }
   435  
   436  func (*ContainerService) ElementType() reflect.Type {
   437  	return reflect.TypeOf((**ContainerService)(nil)).Elem()
   438  }
   439  
   440  func (i *ContainerService) ToContainerServiceOutput() ContainerServiceOutput {
   441  	return i.ToContainerServiceOutputWithContext(context.Background())
   442  }
   443  
   444  func (i *ContainerService) ToContainerServiceOutputWithContext(ctx context.Context) ContainerServiceOutput {
   445  	return pulumi.ToOutputWithContext(ctx, i).(ContainerServiceOutput)
   446  }
   447  
   448  // ContainerServiceArrayInput is an input type that accepts ContainerServiceArray and ContainerServiceArrayOutput values.
   449  // You can construct a concrete instance of `ContainerServiceArrayInput` via:
   450  //
   451  //	ContainerServiceArray{ ContainerServiceArgs{...} }
   452  type ContainerServiceArrayInput interface {
   453  	pulumi.Input
   454  
   455  	ToContainerServiceArrayOutput() ContainerServiceArrayOutput
   456  	ToContainerServiceArrayOutputWithContext(context.Context) ContainerServiceArrayOutput
   457  }
   458  
   459  type ContainerServiceArray []ContainerServiceInput
   460  
   461  func (ContainerServiceArray) ElementType() reflect.Type {
   462  	return reflect.TypeOf((*[]*ContainerService)(nil)).Elem()
   463  }
   464  
   465  func (i ContainerServiceArray) ToContainerServiceArrayOutput() ContainerServiceArrayOutput {
   466  	return i.ToContainerServiceArrayOutputWithContext(context.Background())
   467  }
   468  
   469  func (i ContainerServiceArray) ToContainerServiceArrayOutputWithContext(ctx context.Context) ContainerServiceArrayOutput {
   470  	return pulumi.ToOutputWithContext(ctx, i).(ContainerServiceArrayOutput)
   471  }
   472  
   473  // ContainerServiceMapInput is an input type that accepts ContainerServiceMap and ContainerServiceMapOutput values.
   474  // You can construct a concrete instance of `ContainerServiceMapInput` via:
   475  //
   476  //	ContainerServiceMap{ "key": ContainerServiceArgs{...} }
   477  type ContainerServiceMapInput interface {
   478  	pulumi.Input
   479  
   480  	ToContainerServiceMapOutput() ContainerServiceMapOutput
   481  	ToContainerServiceMapOutputWithContext(context.Context) ContainerServiceMapOutput
   482  }
   483  
   484  type ContainerServiceMap map[string]ContainerServiceInput
   485  
   486  func (ContainerServiceMap) ElementType() reflect.Type {
   487  	return reflect.TypeOf((*map[string]*ContainerService)(nil)).Elem()
   488  }
   489  
   490  func (i ContainerServiceMap) ToContainerServiceMapOutput() ContainerServiceMapOutput {
   491  	return i.ToContainerServiceMapOutputWithContext(context.Background())
   492  }
   493  
   494  func (i ContainerServiceMap) ToContainerServiceMapOutputWithContext(ctx context.Context) ContainerServiceMapOutput {
   495  	return pulumi.ToOutputWithContext(ctx, i).(ContainerServiceMapOutput)
   496  }
   497  
   498  type ContainerServiceOutput struct{ *pulumi.OutputState }
   499  
   500  func (ContainerServiceOutput) ElementType() reflect.Type {
   501  	return reflect.TypeOf((**ContainerService)(nil)).Elem()
   502  }
   503  
   504  func (o ContainerServiceOutput) ToContainerServiceOutput() ContainerServiceOutput {
   505  	return o
   506  }
   507  
   508  func (o ContainerServiceOutput) ToContainerServiceOutputWithContext(ctx context.Context) ContainerServiceOutput {
   509  	return o
   510  }
   511  
   512  // The Amazon Resource Name (ARN) of the container service.
   513  func (o ContainerServiceOutput) Arn() pulumi.StringOutput {
   514  	return o.ApplyT(func(v *ContainerService) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   515  }
   516  
   517  // The Availability Zone. Follows the format us-east-2a (case-sensitive).
   518  func (o ContainerServiceOutput) AvailabilityZone() pulumi.StringOutput {
   519  	return o.ApplyT(func(v *ContainerService) pulumi.StringOutput { return v.AvailabilityZone }).(pulumi.StringOutput)
   520  }
   521  
   522  func (o ContainerServiceOutput) CreatedAt() pulumi.StringOutput {
   523  	return o.ApplyT(func(v *ContainerService) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput)
   524  }
   525  
   526  // A Boolean value indicating whether the container service is disabled. Defaults to `false`.
   527  func (o ContainerServiceOutput) IsDisabled() pulumi.BoolPtrOutput {
   528  	return o.ApplyT(func(v *ContainerService) pulumi.BoolPtrOutput { return v.IsDisabled }).(pulumi.BoolPtrOutput)
   529  }
   530  
   531  // The name for the container service. Names must be of length 1 to 63, and be
   532  // unique within each AWS Region in your Lightsail account.
   533  func (o ContainerServiceOutput) Name() pulumi.StringOutput {
   534  	return o.ApplyT(func(v *ContainerService) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   535  }
   536  
   537  // The power specification for the container service. The power specifies the amount of memory,
   538  // the number of vCPUs, and the monthly price of each node of the container service.
   539  // Possible values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`.
   540  func (o ContainerServiceOutput) Power() pulumi.StringOutput {
   541  	return o.ApplyT(func(v *ContainerService) pulumi.StringOutput { return v.Power }).(pulumi.StringOutput)
   542  }
   543  
   544  // The ID of the power of the container service.
   545  func (o ContainerServiceOutput) PowerId() pulumi.StringOutput {
   546  	return o.ApplyT(func(v *ContainerService) pulumi.StringOutput { return v.PowerId }).(pulumi.StringOutput)
   547  }
   548  
   549  // The principal ARN of the container service. The principal ARN can be used to create a trust
   550  // relationship between your standard AWS account and your Lightsail container service. This allows you to give your
   551  // service permission to access resources in your standard AWS account.
   552  func (o ContainerServiceOutput) PrincipalArn() pulumi.StringOutput {
   553  	return o.ApplyT(func(v *ContainerService) pulumi.StringOutput { return v.PrincipalArn }).(pulumi.StringOutput)
   554  }
   555  
   556  // The private domain name of the container service. The private domain name is accessible only
   557  // by other resources within the default virtual private cloud (VPC) of your Lightsail account.
   558  func (o ContainerServiceOutput) PrivateDomainName() pulumi.StringOutput {
   559  	return o.ApplyT(func(v *ContainerService) pulumi.StringOutput { return v.PrivateDomainName }).(pulumi.StringOutput)
   560  }
   561  
   562  // An object to describe the configuration for the container service to access private container image repositories, such as Amazon Elastic Container Registry (Amazon ECR) private repositories. See Private Registry Access below for more details.
   563  func (o ContainerServiceOutput) PrivateRegistryAccess() ContainerServicePrivateRegistryAccessOutput {
   564  	return o.ApplyT(func(v *ContainerService) ContainerServicePrivateRegistryAccessOutput { return v.PrivateRegistryAccess }).(ContainerServicePrivateRegistryAccessOutput)
   565  }
   566  
   567  // The public domain names to use with the container service, such as example.com
   568  // and www.example.com. You can specify up to four public domain names for a container service. The domain names that you
   569  // specify are used when you create a deployment with a container configured as the public endpoint of your container
   570  // service. If you don't specify public domain names, then you can use the default domain of the container service.
   571  // Defined below.
   572  func (o ContainerServiceOutput) PublicDomainNames() ContainerServicePublicDomainNamesPtrOutput {
   573  	return o.ApplyT(func(v *ContainerService) ContainerServicePublicDomainNamesPtrOutput { return v.PublicDomainNames }).(ContainerServicePublicDomainNamesPtrOutput)
   574  }
   575  
   576  // The Lightsail resource type of the container service (i.e., ContainerService).
   577  func (o ContainerServiceOutput) ResourceType() pulumi.StringOutput {
   578  	return o.ApplyT(func(v *ContainerService) pulumi.StringOutput { return v.ResourceType }).(pulumi.StringOutput)
   579  }
   580  
   581  // The scale specification for the container service. The scale specifies the allocated compute
   582  // nodes of the container service.
   583  func (o ContainerServiceOutput) Scale() pulumi.IntOutput {
   584  	return o.ApplyT(func(v *ContainerService) pulumi.IntOutput { return v.Scale }).(pulumi.IntOutput)
   585  }
   586  
   587  // The current state of the container service.
   588  func (o ContainerServiceOutput) State() pulumi.StringOutput {
   589  	return o.ApplyT(func(v *ContainerService) pulumi.StringOutput { return v.State }).(pulumi.StringOutput)
   590  }
   591  
   592  // Map of container service tags. To tag at launch, specify the tags in the Launch Template. If
   593  // configured with a provider
   594  // `defaultTags` configuration block
   595  // present, tags with matching keys will overwrite those defined at the provider-level.
   596  func (o ContainerServiceOutput) Tags() pulumi.StringMapOutput {
   597  	return o.ApplyT(func(v *ContainerService) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   598  }
   599  
   600  // A map of tags assigned to the resource, including those inherited from the provider
   601  // `defaultTags` configuration block.
   602  //
   603  // Deprecated: Please use `tags` instead.
   604  func (o ContainerServiceOutput) TagsAll() pulumi.StringMapOutput {
   605  	return o.ApplyT(func(v *ContainerService) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   606  }
   607  
   608  // The publicly accessible URL of the container service. If no public endpoint is specified in the
   609  // currentDeployment, this URL returns a 404 response.
   610  func (o ContainerServiceOutput) Url() pulumi.StringOutput {
   611  	return o.ApplyT(func(v *ContainerService) pulumi.StringOutput { return v.Url }).(pulumi.StringOutput)
   612  }
   613  
   614  type ContainerServiceArrayOutput struct{ *pulumi.OutputState }
   615  
   616  func (ContainerServiceArrayOutput) ElementType() reflect.Type {
   617  	return reflect.TypeOf((*[]*ContainerService)(nil)).Elem()
   618  }
   619  
   620  func (o ContainerServiceArrayOutput) ToContainerServiceArrayOutput() ContainerServiceArrayOutput {
   621  	return o
   622  }
   623  
   624  func (o ContainerServiceArrayOutput) ToContainerServiceArrayOutputWithContext(ctx context.Context) ContainerServiceArrayOutput {
   625  	return o
   626  }
   627  
   628  func (o ContainerServiceArrayOutput) Index(i pulumi.IntInput) ContainerServiceOutput {
   629  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ContainerService {
   630  		return vs[0].([]*ContainerService)[vs[1].(int)]
   631  	}).(ContainerServiceOutput)
   632  }
   633  
   634  type ContainerServiceMapOutput struct{ *pulumi.OutputState }
   635  
   636  func (ContainerServiceMapOutput) ElementType() reflect.Type {
   637  	return reflect.TypeOf((*map[string]*ContainerService)(nil)).Elem()
   638  }
   639  
   640  func (o ContainerServiceMapOutput) ToContainerServiceMapOutput() ContainerServiceMapOutput {
   641  	return o
   642  }
   643  
   644  func (o ContainerServiceMapOutput) ToContainerServiceMapOutputWithContext(ctx context.Context) ContainerServiceMapOutput {
   645  	return o
   646  }
   647  
   648  func (o ContainerServiceMapOutput) MapIndex(k pulumi.StringInput) ContainerServiceOutput {
   649  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ContainerService {
   650  		return vs[0].(map[string]*ContainerService)[vs[1].(string)]
   651  	}).(ContainerServiceOutput)
   652  }
   653  
   654  func init() {
   655  	pulumi.RegisterInputType(reflect.TypeOf((*ContainerServiceInput)(nil)).Elem(), &ContainerService{})
   656  	pulumi.RegisterInputType(reflect.TypeOf((*ContainerServiceArrayInput)(nil)).Elem(), ContainerServiceArray{})
   657  	pulumi.RegisterInputType(reflect.TypeOf((*ContainerServiceMapInput)(nil)).Elem(), ContainerServiceMap{})
   658  	pulumi.RegisterOutputType(ContainerServiceOutput{})
   659  	pulumi.RegisterOutputType(ContainerServiceArrayOutput{})
   660  	pulumi.RegisterOutputType(ContainerServiceMapOutput{})
   661  }