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 }