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 }