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