github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/quicksight/iamPolicyAssignment.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 quicksight
     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  // Resource for managing an AWS QuickSight IAM Policy Assignment.
    16  //
    17  // ## Example Usage
    18  //
    19  // ### Basic Usage
    20  //
    21  // <!--Start PulumiCodeChooser -->
    22  // ```go
    23  // package main
    24  //
    25  // import (
    26  //
    27  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/quicksight"
    28  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    29  //
    30  // )
    31  //
    32  //	func main() {
    33  //		pulumi.Run(func(ctx *pulumi.Context) error {
    34  //			_, err := quicksight.NewIamPolicyAssignment(ctx, "example", &quicksight.IamPolicyAssignmentArgs{
    35  //				AssignmentName:   pulumi.String("example"),
    36  //				AssignmentStatus: pulumi.String("ENABLED"),
    37  //				PolicyArn:        pulumi.Any(exampleAwsIamPolicy.Arn),
    38  //				Identities: &quicksight.IamPolicyAssignmentIdentitiesArgs{
    39  //					Users: pulumi.StringArray{
    40  //						exampleAwsQuicksightUser.UserName,
    41  //					},
    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 QuickSight IAM Policy Assignment using the AWS account ID, namespace, and assignment name separated by commas (`,`). For example:
    57  //
    58  // ```sh
    59  // $ pulumi import aws:quicksight/iamPolicyAssignment:IamPolicyAssignment example 123456789012,default,example
    60  // ```
    61  type IamPolicyAssignment struct {
    62  	pulumi.CustomResourceState
    63  
    64  	// Assignment ID.
    65  	AssignmentId pulumi.StringOutput `pulumi:"assignmentId"`
    66  	// Name of the assignment.
    67  	AssignmentName pulumi.StringOutput `pulumi:"assignmentName"`
    68  	// Status of the assignment. Valid values are `ENABLED`, `DISABLED`, and `DRAFT`.
    69  	//
    70  	// The following arguments are optional:
    71  	AssignmentStatus pulumi.StringOutput `pulumi:"assignmentStatus"`
    72  	// AWS account ID.
    73  	AwsAccountId pulumi.StringOutput `pulumi:"awsAccountId"`
    74  	// Amazon QuickSight users, groups, or both to assign the policy to. See `identities` block.
    75  	Identities IamPolicyAssignmentIdentitiesPtrOutput `pulumi:"identities"`
    76  	// Namespace that contains the assignment. Defaults to `default`.
    77  	Namespace pulumi.StringOutput `pulumi:"namespace"`
    78  	// ARN of the IAM policy to apply to the Amazon QuickSight users and groups specified in this assignment.
    79  	PolicyArn pulumi.StringPtrOutput `pulumi:"policyArn"`
    80  }
    81  
    82  // NewIamPolicyAssignment registers a new resource with the given unique name, arguments, and options.
    83  func NewIamPolicyAssignment(ctx *pulumi.Context,
    84  	name string, args *IamPolicyAssignmentArgs, opts ...pulumi.ResourceOption) (*IamPolicyAssignment, error) {
    85  	if args == nil {
    86  		return nil, errors.New("missing one or more required arguments")
    87  	}
    88  
    89  	if args.AssignmentName == nil {
    90  		return nil, errors.New("invalid value for required argument 'AssignmentName'")
    91  	}
    92  	if args.AssignmentStatus == nil {
    93  		return nil, errors.New("invalid value for required argument 'AssignmentStatus'")
    94  	}
    95  	opts = internal.PkgResourceDefaultOpts(opts)
    96  	var resource IamPolicyAssignment
    97  	err := ctx.RegisterResource("aws:quicksight/iamPolicyAssignment:IamPolicyAssignment", name, args, &resource, opts...)
    98  	if err != nil {
    99  		return nil, err
   100  	}
   101  	return &resource, nil
   102  }
   103  
   104  // GetIamPolicyAssignment gets an existing IamPolicyAssignment resource's state with the given name, ID, and optional
   105  // state properties that are used to uniquely qualify the lookup (nil if not required).
   106  func GetIamPolicyAssignment(ctx *pulumi.Context,
   107  	name string, id pulumi.IDInput, state *IamPolicyAssignmentState, opts ...pulumi.ResourceOption) (*IamPolicyAssignment, error) {
   108  	var resource IamPolicyAssignment
   109  	err := ctx.ReadResource("aws:quicksight/iamPolicyAssignment:IamPolicyAssignment", name, id, state, &resource, opts...)
   110  	if err != nil {
   111  		return nil, err
   112  	}
   113  	return &resource, nil
   114  }
   115  
   116  // Input properties used for looking up and filtering IamPolicyAssignment resources.
   117  type iamPolicyAssignmentState struct {
   118  	// Assignment ID.
   119  	AssignmentId *string `pulumi:"assignmentId"`
   120  	// Name of the assignment.
   121  	AssignmentName *string `pulumi:"assignmentName"`
   122  	// Status of the assignment. Valid values are `ENABLED`, `DISABLED`, and `DRAFT`.
   123  	//
   124  	// The following arguments are optional:
   125  	AssignmentStatus *string `pulumi:"assignmentStatus"`
   126  	// AWS account ID.
   127  	AwsAccountId *string `pulumi:"awsAccountId"`
   128  	// Amazon QuickSight users, groups, or both to assign the policy to. See `identities` block.
   129  	Identities *IamPolicyAssignmentIdentities `pulumi:"identities"`
   130  	// Namespace that contains the assignment. Defaults to `default`.
   131  	Namespace *string `pulumi:"namespace"`
   132  	// ARN of the IAM policy to apply to the Amazon QuickSight users and groups specified in this assignment.
   133  	PolicyArn *string `pulumi:"policyArn"`
   134  }
   135  
   136  type IamPolicyAssignmentState struct {
   137  	// Assignment ID.
   138  	AssignmentId pulumi.StringPtrInput
   139  	// Name of the assignment.
   140  	AssignmentName pulumi.StringPtrInput
   141  	// Status of the assignment. Valid values are `ENABLED`, `DISABLED`, and `DRAFT`.
   142  	//
   143  	// The following arguments are optional:
   144  	AssignmentStatus pulumi.StringPtrInput
   145  	// AWS account ID.
   146  	AwsAccountId pulumi.StringPtrInput
   147  	// Amazon QuickSight users, groups, or both to assign the policy to. See `identities` block.
   148  	Identities IamPolicyAssignmentIdentitiesPtrInput
   149  	// Namespace that contains the assignment. Defaults to `default`.
   150  	Namespace pulumi.StringPtrInput
   151  	// ARN of the IAM policy to apply to the Amazon QuickSight users and groups specified in this assignment.
   152  	PolicyArn pulumi.StringPtrInput
   153  }
   154  
   155  func (IamPolicyAssignmentState) ElementType() reflect.Type {
   156  	return reflect.TypeOf((*iamPolicyAssignmentState)(nil)).Elem()
   157  }
   158  
   159  type iamPolicyAssignmentArgs struct {
   160  	// Name of the assignment.
   161  	AssignmentName string `pulumi:"assignmentName"`
   162  	// Status of the assignment. Valid values are `ENABLED`, `DISABLED`, and `DRAFT`.
   163  	//
   164  	// The following arguments are optional:
   165  	AssignmentStatus string `pulumi:"assignmentStatus"`
   166  	// AWS account ID.
   167  	AwsAccountId *string `pulumi:"awsAccountId"`
   168  	// Amazon QuickSight users, groups, or both to assign the policy to. See `identities` block.
   169  	Identities *IamPolicyAssignmentIdentities `pulumi:"identities"`
   170  	// Namespace that contains the assignment. Defaults to `default`.
   171  	Namespace *string `pulumi:"namespace"`
   172  	// ARN of the IAM policy to apply to the Amazon QuickSight users and groups specified in this assignment.
   173  	PolicyArn *string `pulumi:"policyArn"`
   174  }
   175  
   176  // The set of arguments for constructing a IamPolicyAssignment resource.
   177  type IamPolicyAssignmentArgs struct {
   178  	// Name of the assignment.
   179  	AssignmentName pulumi.StringInput
   180  	// Status of the assignment. Valid values are `ENABLED`, `DISABLED`, and `DRAFT`.
   181  	//
   182  	// The following arguments are optional:
   183  	AssignmentStatus pulumi.StringInput
   184  	// AWS account ID.
   185  	AwsAccountId pulumi.StringPtrInput
   186  	// Amazon QuickSight users, groups, or both to assign the policy to. See `identities` block.
   187  	Identities IamPolicyAssignmentIdentitiesPtrInput
   188  	// Namespace that contains the assignment. Defaults to `default`.
   189  	Namespace pulumi.StringPtrInput
   190  	// ARN of the IAM policy to apply to the Amazon QuickSight users and groups specified in this assignment.
   191  	PolicyArn pulumi.StringPtrInput
   192  }
   193  
   194  func (IamPolicyAssignmentArgs) ElementType() reflect.Type {
   195  	return reflect.TypeOf((*iamPolicyAssignmentArgs)(nil)).Elem()
   196  }
   197  
   198  type IamPolicyAssignmentInput interface {
   199  	pulumi.Input
   200  
   201  	ToIamPolicyAssignmentOutput() IamPolicyAssignmentOutput
   202  	ToIamPolicyAssignmentOutputWithContext(ctx context.Context) IamPolicyAssignmentOutput
   203  }
   204  
   205  func (*IamPolicyAssignment) ElementType() reflect.Type {
   206  	return reflect.TypeOf((**IamPolicyAssignment)(nil)).Elem()
   207  }
   208  
   209  func (i *IamPolicyAssignment) ToIamPolicyAssignmentOutput() IamPolicyAssignmentOutput {
   210  	return i.ToIamPolicyAssignmentOutputWithContext(context.Background())
   211  }
   212  
   213  func (i *IamPolicyAssignment) ToIamPolicyAssignmentOutputWithContext(ctx context.Context) IamPolicyAssignmentOutput {
   214  	return pulumi.ToOutputWithContext(ctx, i).(IamPolicyAssignmentOutput)
   215  }
   216  
   217  // IamPolicyAssignmentArrayInput is an input type that accepts IamPolicyAssignmentArray and IamPolicyAssignmentArrayOutput values.
   218  // You can construct a concrete instance of `IamPolicyAssignmentArrayInput` via:
   219  //
   220  //	IamPolicyAssignmentArray{ IamPolicyAssignmentArgs{...} }
   221  type IamPolicyAssignmentArrayInput interface {
   222  	pulumi.Input
   223  
   224  	ToIamPolicyAssignmentArrayOutput() IamPolicyAssignmentArrayOutput
   225  	ToIamPolicyAssignmentArrayOutputWithContext(context.Context) IamPolicyAssignmentArrayOutput
   226  }
   227  
   228  type IamPolicyAssignmentArray []IamPolicyAssignmentInput
   229  
   230  func (IamPolicyAssignmentArray) ElementType() reflect.Type {
   231  	return reflect.TypeOf((*[]*IamPolicyAssignment)(nil)).Elem()
   232  }
   233  
   234  func (i IamPolicyAssignmentArray) ToIamPolicyAssignmentArrayOutput() IamPolicyAssignmentArrayOutput {
   235  	return i.ToIamPolicyAssignmentArrayOutputWithContext(context.Background())
   236  }
   237  
   238  func (i IamPolicyAssignmentArray) ToIamPolicyAssignmentArrayOutputWithContext(ctx context.Context) IamPolicyAssignmentArrayOutput {
   239  	return pulumi.ToOutputWithContext(ctx, i).(IamPolicyAssignmentArrayOutput)
   240  }
   241  
   242  // IamPolicyAssignmentMapInput is an input type that accepts IamPolicyAssignmentMap and IamPolicyAssignmentMapOutput values.
   243  // You can construct a concrete instance of `IamPolicyAssignmentMapInput` via:
   244  //
   245  //	IamPolicyAssignmentMap{ "key": IamPolicyAssignmentArgs{...} }
   246  type IamPolicyAssignmentMapInput interface {
   247  	pulumi.Input
   248  
   249  	ToIamPolicyAssignmentMapOutput() IamPolicyAssignmentMapOutput
   250  	ToIamPolicyAssignmentMapOutputWithContext(context.Context) IamPolicyAssignmentMapOutput
   251  }
   252  
   253  type IamPolicyAssignmentMap map[string]IamPolicyAssignmentInput
   254  
   255  func (IamPolicyAssignmentMap) ElementType() reflect.Type {
   256  	return reflect.TypeOf((*map[string]*IamPolicyAssignment)(nil)).Elem()
   257  }
   258  
   259  func (i IamPolicyAssignmentMap) ToIamPolicyAssignmentMapOutput() IamPolicyAssignmentMapOutput {
   260  	return i.ToIamPolicyAssignmentMapOutputWithContext(context.Background())
   261  }
   262  
   263  func (i IamPolicyAssignmentMap) ToIamPolicyAssignmentMapOutputWithContext(ctx context.Context) IamPolicyAssignmentMapOutput {
   264  	return pulumi.ToOutputWithContext(ctx, i).(IamPolicyAssignmentMapOutput)
   265  }
   266  
   267  type IamPolicyAssignmentOutput struct{ *pulumi.OutputState }
   268  
   269  func (IamPolicyAssignmentOutput) ElementType() reflect.Type {
   270  	return reflect.TypeOf((**IamPolicyAssignment)(nil)).Elem()
   271  }
   272  
   273  func (o IamPolicyAssignmentOutput) ToIamPolicyAssignmentOutput() IamPolicyAssignmentOutput {
   274  	return o
   275  }
   276  
   277  func (o IamPolicyAssignmentOutput) ToIamPolicyAssignmentOutputWithContext(ctx context.Context) IamPolicyAssignmentOutput {
   278  	return o
   279  }
   280  
   281  // Assignment ID.
   282  func (o IamPolicyAssignmentOutput) AssignmentId() pulumi.StringOutput {
   283  	return o.ApplyT(func(v *IamPolicyAssignment) pulumi.StringOutput { return v.AssignmentId }).(pulumi.StringOutput)
   284  }
   285  
   286  // Name of the assignment.
   287  func (o IamPolicyAssignmentOutput) AssignmentName() pulumi.StringOutput {
   288  	return o.ApplyT(func(v *IamPolicyAssignment) pulumi.StringOutput { return v.AssignmentName }).(pulumi.StringOutput)
   289  }
   290  
   291  // Status of the assignment. Valid values are `ENABLED`, `DISABLED`, and `DRAFT`.
   292  //
   293  // The following arguments are optional:
   294  func (o IamPolicyAssignmentOutput) AssignmentStatus() pulumi.StringOutput {
   295  	return o.ApplyT(func(v *IamPolicyAssignment) pulumi.StringOutput { return v.AssignmentStatus }).(pulumi.StringOutput)
   296  }
   297  
   298  // AWS account ID.
   299  func (o IamPolicyAssignmentOutput) AwsAccountId() pulumi.StringOutput {
   300  	return o.ApplyT(func(v *IamPolicyAssignment) pulumi.StringOutput { return v.AwsAccountId }).(pulumi.StringOutput)
   301  }
   302  
   303  // Amazon QuickSight users, groups, or both to assign the policy to. See `identities` block.
   304  func (o IamPolicyAssignmentOutput) Identities() IamPolicyAssignmentIdentitiesPtrOutput {
   305  	return o.ApplyT(func(v *IamPolicyAssignment) IamPolicyAssignmentIdentitiesPtrOutput { return v.Identities }).(IamPolicyAssignmentIdentitiesPtrOutput)
   306  }
   307  
   308  // Namespace that contains the assignment. Defaults to `default`.
   309  func (o IamPolicyAssignmentOutput) Namespace() pulumi.StringOutput {
   310  	return o.ApplyT(func(v *IamPolicyAssignment) pulumi.StringOutput { return v.Namespace }).(pulumi.StringOutput)
   311  }
   312  
   313  // ARN of the IAM policy to apply to the Amazon QuickSight users and groups specified in this assignment.
   314  func (o IamPolicyAssignmentOutput) PolicyArn() pulumi.StringPtrOutput {
   315  	return o.ApplyT(func(v *IamPolicyAssignment) pulumi.StringPtrOutput { return v.PolicyArn }).(pulumi.StringPtrOutput)
   316  }
   317  
   318  type IamPolicyAssignmentArrayOutput struct{ *pulumi.OutputState }
   319  
   320  func (IamPolicyAssignmentArrayOutput) ElementType() reflect.Type {
   321  	return reflect.TypeOf((*[]*IamPolicyAssignment)(nil)).Elem()
   322  }
   323  
   324  func (o IamPolicyAssignmentArrayOutput) ToIamPolicyAssignmentArrayOutput() IamPolicyAssignmentArrayOutput {
   325  	return o
   326  }
   327  
   328  func (o IamPolicyAssignmentArrayOutput) ToIamPolicyAssignmentArrayOutputWithContext(ctx context.Context) IamPolicyAssignmentArrayOutput {
   329  	return o
   330  }
   331  
   332  func (o IamPolicyAssignmentArrayOutput) Index(i pulumi.IntInput) IamPolicyAssignmentOutput {
   333  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *IamPolicyAssignment {
   334  		return vs[0].([]*IamPolicyAssignment)[vs[1].(int)]
   335  	}).(IamPolicyAssignmentOutput)
   336  }
   337  
   338  type IamPolicyAssignmentMapOutput struct{ *pulumi.OutputState }
   339  
   340  func (IamPolicyAssignmentMapOutput) ElementType() reflect.Type {
   341  	return reflect.TypeOf((*map[string]*IamPolicyAssignment)(nil)).Elem()
   342  }
   343  
   344  func (o IamPolicyAssignmentMapOutput) ToIamPolicyAssignmentMapOutput() IamPolicyAssignmentMapOutput {
   345  	return o
   346  }
   347  
   348  func (o IamPolicyAssignmentMapOutput) ToIamPolicyAssignmentMapOutputWithContext(ctx context.Context) IamPolicyAssignmentMapOutput {
   349  	return o
   350  }
   351  
   352  func (o IamPolicyAssignmentMapOutput) MapIndex(k pulumi.StringInput) IamPolicyAssignmentOutput {
   353  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *IamPolicyAssignment {
   354  		return vs[0].(map[string]*IamPolicyAssignment)[vs[1].(string)]
   355  	}).(IamPolicyAssignmentOutput)
   356  }
   357  
   358  func init() {
   359  	pulumi.RegisterInputType(reflect.TypeOf((*IamPolicyAssignmentInput)(nil)).Elem(), &IamPolicyAssignment{})
   360  	pulumi.RegisterInputType(reflect.TypeOf((*IamPolicyAssignmentArrayInput)(nil)).Elem(), IamPolicyAssignmentArray{})
   361  	pulumi.RegisterInputType(reflect.TypeOf((*IamPolicyAssignmentMapInput)(nil)).Elem(), IamPolicyAssignmentMap{})
   362  	pulumi.RegisterOutputType(IamPolicyAssignmentOutput{})
   363  	pulumi.RegisterOutputType(IamPolicyAssignmentArrayOutput{})
   364  	pulumi.RegisterOutputType(IamPolicyAssignmentMapOutput{})
   365  }