github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/redshiftserverless/workgroup.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 redshiftserverless
     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 new Amazon Redshift Serverless Workgroup.
    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/redshiftserverless"
    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 := redshiftserverless.NewWorkgroup(ctx, "example", &redshiftserverless.WorkgroupArgs{
    33  //				NamespaceName: pulumi.String("concurrency-scaling"),
    34  //				WorkgroupName: pulumi.String("concurrency-scaling"),
    35  //			})
    36  //			if err != nil {
    37  //				return err
    38  //			}
    39  //			return nil
    40  //		})
    41  //	}
    42  //
    43  // ```
    44  // <!--End PulumiCodeChooser -->
    45  //
    46  // ## Import
    47  //
    48  // Using `pulumi import`, import Redshift Serverless Workgroups using the `workgroup_name`. For example:
    49  //
    50  // ```sh
    51  // $ pulumi import aws:redshiftserverless/workgroup:Workgroup example example
    52  // ```
    53  type Workgroup struct {
    54  	pulumi.CustomResourceState
    55  
    56  	// Amazon Resource Name (ARN) of the Redshift Serverless Workgroup.
    57  	Arn pulumi.StringOutput `pulumi:"arn"`
    58  	// The base data warehouse capacity of the workgroup in Redshift Processing Units (RPUs).
    59  	BaseCapacity pulumi.IntOutput `pulumi:"baseCapacity"`
    60  	// An array of parameters to set for more control over a serverless database. See `Config Parameter` below.
    61  	ConfigParameters WorkgroupConfigParameterArrayOutput `pulumi:"configParameters"`
    62  	// The endpoint that is created from the workgroup. See `Endpoint` below.
    63  	Endpoints WorkgroupEndpointArrayOutput `pulumi:"endpoints"`
    64  	// The value that specifies whether to turn on enhanced virtual private cloud (VPC) routing, which forces Amazon Redshift Serverless to route traffic through your VPC instead of over the internet.
    65  	EnhancedVpcRouting pulumi.BoolPtrOutput `pulumi:"enhancedVpcRouting"`
    66  	// The maximum data-warehouse capacity Amazon Redshift Serverless uses to serve queries, specified in Redshift Processing Units (RPUs).
    67  	MaxCapacity pulumi.IntPtrOutput `pulumi:"maxCapacity"`
    68  	// The name of the namespace.
    69  	NamespaceName pulumi.StringOutput `pulumi:"namespaceName"`
    70  	// The port number on which the cluster accepts incoming connections.
    71  	Port pulumi.IntOutput `pulumi:"port"`
    72  	// A value that specifies whether the workgroup can be accessed from a public network.
    73  	PubliclyAccessible pulumi.BoolPtrOutput `pulumi:"publiclyAccessible"`
    74  	// An array of security group IDs to associate with the workgroup.
    75  	SecurityGroupIds pulumi.StringArrayOutput `pulumi:"securityGroupIds"`
    76  	// An array of VPC subnet IDs to associate with the workgroup. When set, must contain at least three subnets spanning three Availability Zones. A minimum number of IP addresses is required and scales with the Base Capacity. For more information, see the following [AWS document](https://docs.aws.amazon.com/redshift/latest/mgmt/serverless-known-issues.html).
    77  	SubnetIds pulumi.StringArrayOutput `pulumi:"subnetIds"`
    78  	// A 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.
    79  	Tags pulumi.StringMapOutput `pulumi:"tags"`
    80  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
    81  	//
    82  	// Deprecated: Please use `tags` instead.
    83  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
    84  	// The Redshift Workgroup ID.
    85  	WorkgroupId pulumi.StringOutput `pulumi:"workgroupId"`
    86  	// The name of the workgroup.
    87  	//
    88  	// The following arguments are optional:
    89  	WorkgroupName pulumi.StringOutput `pulumi:"workgroupName"`
    90  }
    91  
    92  // NewWorkgroup registers a new resource with the given unique name, arguments, and options.
    93  func NewWorkgroup(ctx *pulumi.Context,
    94  	name string, args *WorkgroupArgs, opts ...pulumi.ResourceOption) (*Workgroup, error) {
    95  	if args == nil {
    96  		return nil, errors.New("missing one or more required arguments")
    97  	}
    98  
    99  	if args.NamespaceName == nil {
   100  		return nil, errors.New("invalid value for required argument 'NamespaceName'")
   101  	}
   102  	if args.WorkgroupName == nil {
   103  		return nil, errors.New("invalid value for required argument 'WorkgroupName'")
   104  	}
   105  	opts = internal.PkgResourceDefaultOpts(opts)
   106  	var resource Workgroup
   107  	err := ctx.RegisterResource("aws:redshiftserverless/workgroup:Workgroup", name, args, &resource, opts...)
   108  	if err != nil {
   109  		return nil, err
   110  	}
   111  	return &resource, nil
   112  }
   113  
   114  // GetWorkgroup gets an existing Workgroup resource's state with the given name, ID, and optional
   115  // state properties that are used to uniquely qualify the lookup (nil if not required).
   116  func GetWorkgroup(ctx *pulumi.Context,
   117  	name string, id pulumi.IDInput, state *WorkgroupState, opts ...pulumi.ResourceOption) (*Workgroup, error) {
   118  	var resource Workgroup
   119  	err := ctx.ReadResource("aws:redshiftserverless/workgroup:Workgroup", name, id, state, &resource, opts...)
   120  	if err != nil {
   121  		return nil, err
   122  	}
   123  	return &resource, nil
   124  }
   125  
   126  // Input properties used for looking up and filtering Workgroup resources.
   127  type workgroupState struct {
   128  	// Amazon Resource Name (ARN) of the Redshift Serverless Workgroup.
   129  	Arn *string `pulumi:"arn"`
   130  	// The base data warehouse capacity of the workgroup in Redshift Processing Units (RPUs).
   131  	BaseCapacity *int `pulumi:"baseCapacity"`
   132  	// An array of parameters to set for more control over a serverless database. See `Config Parameter` below.
   133  	ConfigParameters []WorkgroupConfigParameter `pulumi:"configParameters"`
   134  	// The endpoint that is created from the workgroup. See `Endpoint` below.
   135  	Endpoints []WorkgroupEndpoint `pulumi:"endpoints"`
   136  	// The value that specifies whether to turn on enhanced virtual private cloud (VPC) routing, which forces Amazon Redshift Serverless to route traffic through your VPC instead of over the internet.
   137  	EnhancedVpcRouting *bool `pulumi:"enhancedVpcRouting"`
   138  	// The maximum data-warehouse capacity Amazon Redshift Serverless uses to serve queries, specified in Redshift Processing Units (RPUs).
   139  	MaxCapacity *int `pulumi:"maxCapacity"`
   140  	// The name of the namespace.
   141  	NamespaceName *string `pulumi:"namespaceName"`
   142  	// The port number on which the cluster accepts incoming connections.
   143  	Port *int `pulumi:"port"`
   144  	// A value that specifies whether the workgroup can be accessed from a public network.
   145  	PubliclyAccessible *bool `pulumi:"publiclyAccessible"`
   146  	// An array of security group IDs to associate with the workgroup.
   147  	SecurityGroupIds []string `pulumi:"securityGroupIds"`
   148  	// An array of VPC subnet IDs to associate with the workgroup. When set, must contain at least three subnets spanning three Availability Zones. A minimum number of IP addresses is required and scales with the Base Capacity. For more information, see the following [AWS document](https://docs.aws.amazon.com/redshift/latest/mgmt/serverless-known-issues.html).
   149  	SubnetIds []string `pulumi:"subnetIds"`
   150  	// A 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.
   151  	Tags map[string]string `pulumi:"tags"`
   152  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   153  	//
   154  	// Deprecated: Please use `tags` instead.
   155  	TagsAll map[string]string `pulumi:"tagsAll"`
   156  	// The Redshift Workgroup ID.
   157  	WorkgroupId *string `pulumi:"workgroupId"`
   158  	// The name of the workgroup.
   159  	//
   160  	// The following arguments are optional:
   161  	WorkgroupName *string `pulumi:"workgroupName"`
   162  }
   163  
   164  type WorkgroupState struct {
   165  	// Amazon Resource Name (ARN) of the Redshift Serverless Workgroup.
   166  	Arn pulumi.StringPtrInput
   167  	// The base data warehouse capacity of the workgroup in Redshift Processing Units (RPUs).
   168  	BaseCapacity pulumi.IntPtrInput
   169  	// An array of parameters to set for more control over a serverless database. See `Config Parameter` below.
   170  	ConfigParameters WorkgroupConfigParameterArrayInput
   171  	// The endpoint that is created from the workgroup. See `Endpoint` below.
   172  	Endpoints WorkgroupEndpointArrayInput
   173  	// The value that specifies whether to turn on enhanced virtual private cloud (VPC) routing, which forces Amazon Redshift Serverless to route traffic through your VPC instead of over the internet.
   174  	EnhancedVpcRouting pulumi.BoolPtrInput
   175  	// The maximum data-warehouse capacity Amazon Redshift Serverless uses to serve queries, specified in Redshift Processing Units (RPUs).
   176  	MaxCapacity pulumi.IntPtrInput
   177  	// The name of the namespace.
   178  	NamespaceName pulumi.StringPtrInput
   179  	// The port number on which the cluster accepts incoming connections.
   180  	Port pulumi.IntPtrInput
   181  	// A value that specifies whether the workgroup can be accessed from a public network.
   182  	PubliclyAccessible pulumi.BoolPtrInput
   183  	// An array of security group IDs to associate with the workgroup.
   184  	SecurityGroupIds pulumi.StringArrayInput
   185  	// An array of VPC subnet IDs to associate with the workgroup. When set, must contain at least three subnets spanning three Availability Zones. A minimum number of IP addresses is required and scales with the Base Capacity. For more information, see the following [AWS document](https://docs.aws.amazon.com/redshift/latest/mgmt/serverless-known-issues.html).
   186  	SubnetIds pulumi.StringArrayInput
   187  	// A 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.
   188  	Tags pulumi.StringMapInput
   189  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   190  	//
   191  	// Deprecated: Please use `tags` instead.
   192  	TagsAll pulumi.StringMapInput
   193  	// The Redshift Workgroup ID.
   194  	WorkgroupId pulumi.StringPtrInput
   195  	// The name of the workgroup.
   196  	//
   197  	// The following arguments are optional:
   198  	WorkgroupName pulumi.StringPtrInput
   199  }
   200  
   201  func (WorkgroupState) ElementType() reflect.Type {
   202  	return reflect.TypeOf((*workgroupState)(nil)).Elem()
   203  }
   204  
   205  type workgroupArgs struct {
   206  	// The base data warehouse capacity of the workgroup in Redshift Processing Units (RPUs).
   207  	BaseCapacity *int `pulumi:"baseCapacity"`
   208  	// An array of parameters to set for more control over a serverless database. See `Config Parameter` below.
   209  	ConfigParameters []WorkgroupConfigParameter `pulumi:"configParameters"`
   210  	// The value that specifies whether to turn on enhanced virtual private cloud (VPC) routing, which forces Amazon Redshift Serverless to route traffic through your VPC instead of over the internet.
   211  	EnhancedVpcRouting *bool `pulumi:"enhancedVpcRouting"`
   212  	// The maximum data-warehouse capacity Amazon Redshift Serverless uses to serve queries, specified in Redshift Processing Units (RPUs).
   213  	MaxCapacity *int `pulumi:"maxCapacity"`
   214  	// The name of the namespace.
   215  	NamespaceName string `pulumi:"namespaceName"`
   216  	// The port number on which the cluster accepts incoming connections.
   217  	Port *int `pulumi:"port"`
   218  	// A value that specifies whether the workgroup can be accessed from a public network.
   219  	PubliclyAccessible *bool `pulumi:"publiclyAccessible"`
   220  	// An array of security group IDs to associate with the workgroup.
   221  	SecurityGroupIds []string `pulumi:"securityGroupIds"`
   222  	// An array of VPC subnet IDs to associate with the workgroup. When set, must contain at least three subnets spanning three Availability Zones. A minimum number of IP addresses is required and scales with the Base Capacity. For more information, see the following [AWS document](https://docs.aws.amazon.com/redshift/latest/mgmt/serverless-known-issues.html).
   223  	SubnetIds []string `pulumi:"subnetIds"`
   224  	// A 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.
   225  	Tags map[string]string `pulumi:"tags"`
   226  	// The name of the workgroup.
   227  	//
   228  	// The following arguments are optional:
   229  	WorkgroupName string `pulumi:"workgroupName"`
   230  }
   231  
   232  // The set of arguments for constructing a Workgroup resource.
   233  type WorkgroupArgs struct {
   234  	// The base data warehouse capacity of the workgroup in Redshift Processing Units (RPUs).
   235  	BaseCapacity pulumi.IntPtrInput
   236  	// An array of parameters to set for more control over a serverless database. See `Config Parameter` below.
   237  	ConfigParameters WorkgroupConfigParameterArrayInput
   238  	// The value that specifies whether to turn on enhanced virtual private cloud (VPC) routing, which forces Amazon Redshift Serverless to route traffic through your VPC instead of over the internet.
   239  	EnhancedVpcRouting pulumi.BoolPtrInput
   240  	// The maximum data-warehouse capacity Amazon Redshift Serverless uses to serve queries, specified in Redshift Processing Units (RPUs).
   241  	MaxCapacity pulumi.IntPtrInput
   242  	// The name of the namespace.
   243  	NamespaceName pulumi.StringInput
   244  	// The port number on which the cluster accepts incoming connections.
   245  	Port pulumi.IntPtrInput
   246  	// A value that specifies whether the workgroup can be accessed from a public network.
   247  	PubliclyAccessible pulumi.BoolPtrInput
   248  	// An array of security group IDs to associate with the workgroup.
   249  	SecurityGroupIds pulumi.StringArrayInput
   250  	// An array of VPC subnet IDs to associate with the workgroup. When set, must contain at least three subnets spanning three Availability Zones. A minimum number of IP addresses is required and scales with the Base Capacity. For more information, see the following [AWS document](https://docs.aws.amazon.com/redshift/latest/mgmt/serverless-known-issues.html).
   251  	SubnetIds pulumi.StringArrayInput
   252  	// A 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.
   253  	Tags pulumi.StringMapInput
   254  	// The name of the workgroup.
   255  	//
   256  	// The following arguments are optional:
   257  	WorkgroupName pulumi.StringInput
   258  }
   259  
   260  func (WorkgroupArgs) ElementType() reflect.Type {
   261  	return reflect.TypeOf((*workgroupArgs)(nil)).Elem()
   262  }
   263  
   264  type WorkgroupInput interface {
   265  	pulumi.Input
   266  
   267  	ToWorkgroupOutput() WorkgroupOutput
   268  	ToWorkgroupOutputWithContext(ctx context.Context) WorkgroupOutput
   269  }
   270  
   271  func (*Workgroup) ElementType() reflect.Type {
   272  	return reflect.TypeOf((**Workgroup)(nil)).Elem()
   273  }
   274  
   275  func (i *Workgroup) ToWorkgroupOutput() WorkgroupOutput {
   276  	return i.ToWorkgroupOutputWithContext(context.Background())
   277  }
   278  
   279  func (i *Workgroup) ToWorkgroupOutputWithContext(ctx context.Context) WorkgroupOutput {
   280  	return pulumi.ToOutputWithContext(ctx, i).(WorkgroupOutput)
   281  }
   282  
   283  // WorkgroupArrayInput is an input type that accepts WorkgroupArray and WorkgroupArrayOutput values.
   284  // You can construct a concrete instance of `WorkgroupArrayInput` via:
   285  //
   286  //	WorkgroupArray{ WorkgroupArgs{...} }
   287  type WorkgroupArrayInput interface {
   288  	pulumi.Input
   289  
   290  	ToWorkgroupArrayOutput() WorkgroupArrayOutput
   291  	ToWorkgroupArrayOutputWithContext(context.Context) WorkgroupArrayOutput
   292  }
   293  
   294  type WorkgroupArray []WorkgroupInput
   295  
   296  func (WorkgroupArray) ElementType() reflect.Type {
   297  	return reflect.TypeOf((*[]*Workgroup)(nil)).Elem()
   298  }
   299  
   300  func (i WorkgroupArray) ToWorkgroupArrayOutput() WorkgroupArrayOutput {
   301  	return i.ToWorkgroupArrayOutputWithContext(context.Background())
   302  }
   303  
   304  func (i WorkgroupArray) ToWorkgroupArrayOutputWithContext(ctx context.Context) WorkgroupArrayOutput {
   305  	return pulumi.ToOutputWithContext(ctx, i).(WorkgroupArrayOutput)
   306  }
   307  
   308  // WorkgroupMapInput is an input type that accepts WorkgroupMap and WorkgroupMapOutput values.
   309  // You can construct a concrete instance of `WorkgroupMapInput` via:
   310  //
   311  //	WorkgroupMap{ "key": WorkgroupArgs{...} }
   312  type WorkgroupMapInput interface {
   313  	pulumi.Input
   314  
   315  	ToWorkgroupMapOutput() WorkgroupMapOutput
   316  	ToWorkgroupMapOutputWithContext(context.Context) WorkgroupMapOutput
   317  }
   318  
   319  type WorkgroupMap map[string]WorkgroupInput
   320  
   321  func (WorkgroupMap) ElementType() reflect.Type {
   322  	return reflect.TypeOf((*map[string]*Workgroup)(nil)).Elem()
   323  }
   324  
   325  func (i WorkgroupMap) ToWorkgroupMapOutput() WorkgroupMapOutput {
   326  	return i.ToWorkgroupMapOutputWithContext(context.Background())
   327  }
   328  
   329  func (i WorkgroupMap) ToWorkgroupMapOutputWithContext(ctx context.Context) WorkgroupMapOutput {
   330  	return pulumi.ToOutputWithContext(ctx, i).(WorkgroupMapOutput)
   331  }
   332  
   333  type WorkgroupOutput struct{ *pulumi.OutputState }
   334  
   335  func (WorkgroupOutput) ElementType() reflect.Type {
   336  	return reflect.TypeOf((**Workgroup)(nil)).Elem()
   337  }
   338  
   339  func (o WorkgroupOutput) ToWorkgroupOutput() WorkgroupOutput {
   340  	return o
   341  }
   342  
   343  func (o WorkgroupOutput) ToWorkgroupOutputWithContext(ctx context.Context) WorkgroupOutput {
   344  	return o
   345  }
   346  
   347  // Amazon Resource Name (ARN) of the Redshift Serverless Workgroup.
   348  func (o WorkgroupOutput) Arn() pulumi.StringOutput {
   349  	return o.ApplyT(func(v *Workgroup) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   350  }
   351  
   352  // The base data warehouse capacity of the workgroup in Redshift Processing Units (RPUs).
   353  func (o WorkgroupOutput) BaseCapacity() pulumi.IntOutput {
   354  	return o.ApplyT(func(v *Workgroup) pulumi.IntOutput { return v.BaseCapacity }).(pulumi.IntOutput)
   355  }
   356  
   357  // An array of parameters to set for more control over a serverless database. See `Config Parameter` below.
   358  func (o WorkgroupOutput) ConfigParameters() WorkgroupConfigParameterArrayOutput {
   359  	return o.ApplyT(func(v *Workgroup) WorkgroupConfigParameterArrayOutput { return v.ConfigParameters }).(WorkgroupConfigParameterArrayOutput)
   360  }
   361  
   362  // The endpoint that is created from the workgroup. See `Endpoint` below.
   363  func (o WorkgroupOutput) Endpoints() WorkgroupEndpointArrayOutput {
   364  	return o.ApplyT(func(v *Workgroup) WorkgroupEndpointArrayOutput { return v.Endpoints }).(WorkgroupEndpointArrayOutput)
   365  }
   366  
   367  // The value that specifies whether to turn on enhanced virtual private cloud (VPC) routing, which forces Amazon Redshift Serverless to route traffic through your VPC instead of over the internet.
   368  func (o WorkgroupOutput) EnhancedVpcRouting() pulumi.BoolPtrOutput {
   369  	return o.ApplyT(func(v *Workgroup) pulumi.BoolPtrOutput { return v.EnhancedVpcRouting }).(pulumi.BoolPtrOutput)
   370  }
   371  
   372  // The maximum data-warehouse capacity Amazon Redshift Serverless uses to serve queries, specified in Redshift Processing Units (RPUs).
   373  func (o WorkgroupOutput) MaxCapacity() pulumi.IntPtrOutput {
   374  	return o.ApplyT(func(v *Workgroup) pulumi.IntPtrOutput { return v.MaxCapacity }).(pulumi.IntPtrOutput)
   375  }
   376  
   377  // The name of the namespace.
   378  func (o WorkgroupOutput) NamespaceName() pulumi.StringOutput {
   379  	return o.ApplyT(func(v *Workgroup) pulumi.StringOutput { return v.NamespaceName }).(pulumi.StringOutput)
   380  }
   381  
   382  // The port number on which the cluster accepts incoming connections.
   383  func (o WorkgroupOutput) Port() pulumi.IntOutput {
   384  	return o.ApplyT(func(v *Workgroup) pulumi.IntOutput { return v.Port }).(pulumi.IntOutput)
   385  }
   386  
   387  // A value that specifies whether the workgroup can be accessed from a public network.
   388  func (o WorkgroupOutput) PubliclyAccessible() pulumi.BoolPtrOutput {
   389  	return o.ApplyT(func(v *Workgroup) pulumi.BoolPtrOutput { return v.PubliclyAccessible }).(pulumi.BoolPtrOutput)
   390  }
   391  
   392  // An array of security group IDs to associate with the workgroup.
   393  func (o WorkgroupOutput) SecurityGroupIds() pulumi.StringArrayOutput {
   394  	return o.ApplyT(func(v *Workgroup) pulumi.StringArrayOutput { return v.SecurityGroupIds }).(pulumi.StringArrayOutput)
   395  }
   396  
   397  // An array of VPC subnet IDs to associate with the workgroup. When set, must contain at least three subnets spanning three Availability Zones. A minimum number of IP addresses is required and scales with the Base Capacity. For more information, see the following [AWS document](https://docs.aws.amazon.com/redshift/latest/mgmt/serverless-known-issues.html).
   398  func (o WorkgroupOutput) SubnetIds() pulumi.StringArrayOutput {
   399  	return o.ApplyT(func(v *Workgroup) pulumi.StringArrayOutput { return v.SubnetIds }).(pulumi.StringArrayOutput)
   400  }
   401  
   402  // A 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.
   403  func (o WorkgroupOutput) Tags() pulumi.StringMapOutput {
   404  	return o.ApplyT(func(v *Workgroup) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   405  }
   406  
   407  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   408  //
   409  // Deprecated: Please use `tags` instead.
   410  func (o WorkgroupOutput) TagsAll() pulumi.StringMapOutput {
   411  	return o.ApplyT(func(v *Workgroup) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   412  }
   413  
   414  // The Redshift Workgroup ID.
   415  func (o WorkgroupOutput) WorkgroupId() pulumi.StringOutput {
   416  	return o.ApplyT(func(v *Workgroup) pulumi.StringOutput { return v.WorkgroupId }).(pulumi.StringOutput)
   417  }
   418  
   419  // The name of the workgroup.
   420  //
   421  // The following arguments are optional:
   422  func (o WorkgroupOutput) WorkgroupName() pulumi.StringOutput {
   423  	return o.ApplyT(func(v *Workgroup) pulumi.StringOutput { return v.WorkgroupName }).(pulumi.StringOutput)
   424  }
   425  
   426  type WorkgroupArrayOutput struct{ *pulumi.OutputState }
   427  
   428  func (WorkgroupArrayOutput) ElementType() reflect.Type {
   429  	return reflect.TypeOf((*[]*Workgroup)(nil)).Elem()
   430  }
   431  
   432  func (o WorkgroupArrayOutput) ToWorkgroupArrayOutput() WorkgroupArrayOutput {
   433  	return o
   434  }
   435  
   436  func (o WorkgroupArrayOutput) ToWorkgroupArrayOutputWithContext(ctx context.Context) WorkgroupArrayOutput {
   437  	return o
   438  }
   439  
   440  func (o WorkgroupArrayOutput) Index(i pulumi.IntInput) WorkgroupOutput {
   441  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Workgroup {
   442  		return vs[0].([]*Workgroup)[vs[1].(int)]
   443  	}).(WorkgroupOutput)
   444  }
   445  
   446  type WorkgroupMapOutput struct{ *pulumi.OutputState }
   447  
   448  func (WorkgroupMapOutput) ElementType() reflect.Type {
   449  	return reflect.TypeOf((*map[string]*Workgroup)(nil)).Elem()
   450  }
   451  
   452  func (o WorkgroupMapOutput) ToWorkgroupMapOutput() WorkgroupMapOutput {
   453  	return o
   454  }
   455  
   456  func (o WorkgroupMapOutput) ToWorkgroupMapOutputWithContext(ctx context.Context) WorkgroupMapOutput {
   457  	return o
   458  }
   459  
   460  func (o WorkgroupMapOutput) MapIndex(k pulumi.StringInput) WorkgroupOutput {
   461  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Workgroup {
   462  		return vs[0].(map[string]*Workgroup)[vs[1].(string)]
   463  	}).(WorkgroupOutput)
   464  }
   465  
   466  func init() {
   467  	pulumi.RegisterInputType(reflect.TypeOf((*WorkgroupInput)(nil)).Elem(), &Workgroup{})
   468  	pulumi.RegisterInputType(reflect.TypeOf((*WorkgroupArrayInput)(nil)).Elem(), WorkgroupArray{})
   469  	pulumi.RegisterInputType(reflect.TypeOf((*WorkgroupMapInput)(nil)).Elem(), WorkgroupMap{})
   470  	pulumi.RegisterOutputType(WorkgroupOutput{})
   471  	pulumi.RegisterOutputType(WorkgroupArrayOutput{})
   472  	pulumi.RegisterOutputType(WorkgroupMapOutput{})
   473  }