github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/macie2/organizationAdminAccount.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 macie2
     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  // Provides a resource to manage an [Amazon Macie Organization Admin Account](https://docs.aws.amazon.com/macie/latest/APIReference/admin.html).
    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/macie2"
    26  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    27  //
    28  // )
    29  //
    30  //	func main() {
    31  //		pulumi.Run(func(ctx *pulumi.Context) error {
    32  //			example, err := macie2.NewAccount(ctx, "example", nil)
    33  //			if err != nil {
    34  //				return err
    35  //			}
    36  //			_, err = macie2.NewOrganizationAdminAccount(ctx, "example", &macie2.OrganizationAdminAccountArgs{
    37  //				AdminAccountId: pulumi.String("ID OF THE ADMIN ACCOUNT"),
    38  //			}, pulumi.DependsOn([]pulumi.Resource{
    39  //				example,
    40  //			}))
    41  //			if err != nil {
    42  //				return err
    43  //			}
    44  //			return nil
    45  //		})
    46  //	}
    47  //
    48  // ```
    49  // <!--End PulumiCodeChooser -->
    50  //
    51  // ## Import
    52  //
    53  // Using `pulumi import`, import `aws_macie2_organization_admin_account` using the id. For example:
    54  //
    55  // ```sh
    56  // $ pulumi import aws:macie2/organizationAdminAccount:OrganizationAdminAccount example abcd1
    57  // ```
    58  type OrganizationAdminAccount struct {
    59  	pulumi.CustomResourceState
    60  
    61  	// The AWS account ID for the account to designate as the delegated Amazon Macie administrator account for the organization.
    62  	AdminAccountId pulumi.StringOutput `pulumi:"adminAccountId"`
    63  }
    64  
    65  // NewOrganizationAdminAccount registers a new resource with the given unique name, arguments, and options.
    66  func NewOrganizationAdminAccount(ctx *pulumi.Context,
    67  	name string, args *OrganizationAdminAccountArgs, opts ...pulumi.ResourceOption) (*OrganizationAdminAccount, error) {
    68  	if args == nil {
    69  		return nil, errors.New("missing one or more required arguments")
    70  	}
    71  
    72  	if args.AdminAccountId == nil {
    73  		return nil, errors.New("invalid value for required argument 'AdminAccountId'")
    74  	}
    75  	opts = internal.PkgResourceDefaultOpts(opts)
    76  	var resource OrganizationAdminAccount
    77  	err := ctx.RegisterResource("aws:macie2/organizationAdminAccount:OrganizationAdminAccount", name, args, &resource, opts...)
    78  	if err != nil {
    79  		return nil, err
    80  	}
    81  	return &resource, nil
    82  }
    83  
    84  // GetOrganizationAdminAccount gets an existing OrganizationAdminAccount resource's state with the given name, ID, and optional
    85  // state properties that are used to uniquely qualify the lookup (nil if not required).
    86  func GetOrganizationAdminAccount(ctx *pulumi.Context,
    87  	name string, id pulumi.IDInput, state *OrganizationAdminAccountState, opts ...pulumi.ResourceOption) (*OrganizationAdminAccount, error) {
    88  	var resource OrganizationAdminAccount
    89  	err := ctx.ReadResource("aws:macie2/organizationAdminAccount:OrganizationAdminAccount", name, id, state, &resource, opts...)
    90  	if err != nil {
    91  		return nil, err
    92  	}
    93  	return &resource, nil
    94  }
    95  
    96  // Input properties used for looking up and filtering OrganizationAdminAccount resources.
    97  type organizationAdminAccountState struct {
    98  	// The AWS account ID for the account to designate as the delegated Amazon Macie administrator account for the organization.
    99  	AdminAccountId *string `pulumi:"adminAccountId"`
   100  }
   101  
   102  type OrganizationAdminAccountState struct {
   103  	// The AWS account ID for the account to designate as the delegated Amazon Macie administrator account for the organization.
   104  	AdminAccountId pulumi.StringPtrInput
   105  }
   106  
   107  func (OrganizationAdminAccountState) ElementType() reflect.Type {
   108  	return reflect.TypeOf((*organizationAdminAccountState)(nil)).Elem()
   109  }
   110  
   111  type organizationAdminAccountArgs struct {
   112  	// The AWS account ID for the account to designate as the delegated Amazon Macie administrator account for the organization.
   113  	AdminAccountId string `pulumi:"adminAccountId"`
   114  }
   115  
   116  // The set of arguments for constructing a OrganizationAdminAccount resource.
   117  type OrganizationAdminAccountArgs struct {
   118  	// The AWS account ID for the account to designate as the delegated Amazon Macie administrator account for the organization.
   119  	AdminAccountId pulumi.StringInput
   120  }
   121  
   122  func (OrganizationAdminAccountArgs) ElementType() reflect.Type {
   123  	return reflect.TypeOf((*organizationAdminAccountArgs)(nil)).Elem()
   124  }
   125  
   126  type OrganizationAdminAccountInput interface {
   127  	pulumi.Input
   128  
   129  	ToOrganizationAdminAccountOutput() OrganizationAdminAccountOutput
   130  	ToOrganizationAdminAccountOutputWithContext(ctx context.Context) OrganizationAdminAccountOutput
   131  }
   132  
   133  func (*OrganizationAdminAccount) ElementType() reflect.Type {
   134  	return reflect.TypeOf((**OrganizationAdminAccount)(nil)).Elem()
   135  }
   136  
   137  func (i *OrganizationAdminAccount) ToOrganizationAdminAccountOutput() OrganizationAdminAccountOutput {
   138  	return i.ToOrganizationAdminAccountOutputWithContext(context.Background())
   139  }
   140  
   141  func (i *OrganizationAdminAccount) ToOrganizationAdminAccountOutputWithContext(ctx context.Context) OrganizationAdminAccountOutput {
   142  	return pulumi.ToOutputWithContext(ctx, i).(OrganizationAdminAccountOutput)
   143  }
   144  
   145  // OrganizationAdminAccountArrayInput is an input type that accepts OrganizationAdminAccountArray and OrganizationAdminAccountArrayOutput values.
   146  // You can construct a concrete instance of `OrganizationAdminAccountArrayInput` via:
   147  //
   148  //	OrganizationAdminAccountArray{ OrganizationAdminAccountArgs{...} }
   149  type OrganizationAdminAccountArrayInput interface {
   150  	pulumi.Input
   151  
   152  	ToOrganizationAdminAccountArrayOutput() OrganizationAdminAccountArrayOutput
   153  	ToOrganizationAdminAccountArrayOutputWithContext(context.Context) OrganizationAdminAccountArrayOutput
   154  }
   155  
   156  type OrganizationAdminAccountArray []OrganizationAdminAccountInput
   157  
   158  func (OrganizationAdminAccountArray) ElementType() reflect.Type {
   159  	return reflect.TypeOf((*[]*OrganizationAdminAccount)(nil)).Elem()
   160  }
   161  
   162  func (i OrganizationAdminAccountArray) ToOrganizationAdminAccountArrayOutput() OrganizationAdminAccountArrayOutput {
   163  	return i.ToOrganizationAdminAccountArrayOutputWithContext(context.Background())
   164  }
   165  
   166  func (i OrganizationAdminAccountArray) ToOrganizationAdminAccountArrayOutputWithContext(ctx context.Context) OrganizationAdminAccountArrayOutput {
   167  	return pulumi.ToOutputWithContext(ctx, i).(OrganizationAdminAccountArrayOutput)
   168  }
   169  
   170  // OrganizationAdminAccountMapInput is an input type that accepts OrganizationAdminAccountMap and OrganizationAdminAccountMapOutput values.
   171  // You can construct a concrete instance of `OrganizationAdminAccountMapInput` via:
   172  //
   173  //	OrganizationAdminAccountMap{ "key": OrganizationAdminAccountArgs{...} }
   174  type OrganizationAdminAccountMapInput interface {
   175  	pulumi.Input
   176  
   177  	ToOrganizationAdminAccountMapOutput() OrganizationAdminAccountMapOutput
   178  	ToOrganizationAdminAccountMapOutputWithContext(context.Context) OrganizationAdminAccountMapOutput
   179  }
   180  
   181  type OrganizationAdminAccountMap map[string]OrganizationAdminAccountInput
   182  
   183  func (OrganizationAdminAccountMap) ElementType() reflect.Type {
   184  	return reflect.TypeOf((*map[string]*OrganizationAdminAccount)(nil)).Elem()
   185  }
   186  
   187  func (i OrganizationAdminAccountMap) ToOrganizationAdminAccountMapOutput() OrganizationAdminAccountMapOutput {
   188  	return i.ToOrganizationAdminAccountMapOutputWithContext(context.Background())
   189  }
   190  
   191  func (i OrganizationAdminAccountMap) ToOrganizationAdminAccountMapOutputWithContext(ctx context.Context) OrganizationAdminAccountMapOutput {
   192  	return pulumi.ToOutputWithContext(ctx, i).(OrganizationAdminAccountMapOutput)
   193  }
   194  
   195  type OrganizationAdminAccountOutput struct{ *pulumi.OutputState }
   196  
   197  func (OrganizationAdminAccountOutput) ElementType() reflect.Type {
   198  	return reflect.TypeOf((**OrganizationAdminAccount)(nil)).Elem()
   199  }
   200  
   201  func (o OrganizationAdminAccountOutput) ToOrganizationAdminAccountOutput() OrganizationAdminAccountOutput {
   202  	return o
   203  }
   204  
   205  func (o OrganizationAdminAccountOutput) ToOrganizationAdminAccountOutputWithContext(ctx context.Context) OrganizationAdminAccountOutput {
   206  	return o
   207  }
   208  
   209  // The AWS account ID for the account to designate as the delegated Amazon Macie administrator account for the organization.
   210  func (o OrganizationAdminAccountOutput) AdminAccountId() pulumi.StringOutput {
   211  	return o.ApplyT(func(v *OrganizationAdminAccount) pulumi.StringOutput { return v.AdminAccountId }).(pulumi.StringOutput)
   212  }
   213  
   214  type OrganizationAdminAccountArrayOutput struct{ *pulumi.OutputState }
   215  
   216  func (OrganizationAdminAccountArrayOutput) ElementType() reflect.Type {
   217  	return reflect.TypeOf((*[]*OrganizationAdminAccount)(nil)).Elem()
   218  }
   219  
   220  func (o OrganizationAdminAccountArrayOutput) ToOrganizationAdminAccountArrayOutput() OrganizationAdminAccountArrayOutput {
   221  	return o
   222  }
   223  
   224  func (o OrganizationAdminAccountArrayOutput) ToOrganizationAdminAccountArrayOutputWithContext(ctx context.Context) OrganizationAdminAccountArrayOutput {
   225  	return o
   226  }
   227  
   228  func (o OrganizationAdminAccountArrayOutput) Index(i pulumi.IntInput) OrganizationAdminAccountOutput {
   229  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *OrganizationAdminAccount {
   230  		return vs[0].([]*OrganizationAdminAccount)[vs[1].(int)]
   231  	}).(OrganizationAdminAccountOutput)
   232  }
   233  
   234  type OrganizationAdminAccountMapOutput struct{ *pulumi.OutputState }
   235  
   236  func (OrganizationAdminAccountMapOutput) ElementType() reflect.Type {
   237  	return reflect.TypeOf((*map[string]*OrganizationAdminAccount)(nil)).Elem()
   238  }
   239  
   240  func (o OrganizationAdminAccountMapOutput) ToOrganizationAdminAccountMapOutput() OrganizationAdminAccountMapOutput {
   241  	return o
   242  }
   243  
   244  func (o OrganizationAdminAccountMapOutput) ToOrganizationAdminAccountMapOutputWithContext(ctx context.Context) OrganizationAdminAccountMapOutput {
   245  	return o
   246  }
   247  
   248  func (o OrganizationAdminAccountMapOutput) MapIndex(k pulumi.StringInput) OrganizationAdminAccountOutput {
   249  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *OrganizationAdminAccount {
   250  		return vs[0].(map[string]*OrganizationAdminAccount)[vs[1].(string)]
   251  	}).(OrganizationAdminAccountOutput)
   252  }
   253  
   254  func init() {
   255  	pulumi.RegisterInputType(reflect.TypeOf((*OrganizationAdminAccountInput)(nil)).Elem(), &OrganizationAdminAccount{})
   256  	pulumi.RegisterInputType(reflect.TypeOf((*OrganizationAdminAccountArrayInput)(nil)).Elem(), OrganizationAdminAccountArray{})
   257  	pulumi.RegisterInputType(reflect.TypeOf((*OrganizationAdminAccountMapInput)(nil)).Elem(), OrganizationAdminAccountMap{})
   258  	pulumi.RegisterOutputType(OrganizationAdminAccountOutput{})
   259  	pulumi.RegisterOutputType(OrganizationAdminAccountArrayOutput{})
   260  	pulumi.RegisterOutputType(OrganizationAdminAccountMapOutput{})
   261  }