github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/shield/drtAccessLogBucketAssociation.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 shield 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 Shield DRT Access Log Bucket Association. 16 // Up to 10 log buckets can be associated for DRT Access sharing with the Shield Response Team (SRT). 17 // 18 // ## Example Usage 19 // 20 // ### Basic Usage 21 // 22 // <!--Start PulumiCodeChooser --> 23 // ```go 24 // package main 25 // 26 // import ( 27 // 28 // "fmt" 29 // 30 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/shield" 31 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 32 // 33 // ) 34 // 35 // func main() { 36 // pulumi.Run(func(ctx *pulumi.Context) error { 37 // test, err := shield.NewDrtAccessRoleArnAssociation(ctx, "test", &shield.DrtAccessRoleArnAssociationArgs{ 38 // RoleArn: pulumi.String(fmt.Sprintf("arn:aws:iam:%v:%v:%v", current.Name, currentAwsCallerIdentity.AccountId, shieldDrtAccessRoleName)), 39 // }) 40 // if err != nil { 41 // return err 42 // } 43 // _, err = shield.NewDrtAccessLogBucketAssociation(ctx, "test", &shield.DrtAccessLogBucketAssociationArgs{ 44 // LogBucket: pulumi.Any(shieldDrtAccessLogBucket), 45 // RoleArnAssociationId: test.ID(), 46 // }) 47 // if err != nil { 48 // return err 49 // } 50 // return nil 51 // }) 52 // } 53 // 54 // ``` 55 // <!--End PulumiCodeChooser --> 56 // 57 // ## Import 58 // 59 // Using `pulumi import`, import Shield DRT access log bucket associations using the `log_bucket`. For example: 60 // 61 // ```sh 62 // $ pulumi import aws:shield/drtAccessLogBucketAssociation:DrtAccessLogBucketAssociation example example-bucket 63 // ``` 64 type DrtAccessLogBucketAssociation struct { 65 pulumi.CustomResourceState 66 67 // The Amazon S3 bucket that contains the logs that you want to share. 68 LogBucket pulumi.StringOutput `pulumi:"logBucket"` 69 // The ID of the Role Arn association used for allowing Shield DRT Access. 70 RoleArnAssociationId pulumi.StringOutput `pulumi:"roleArnAssociationId"` 71 Timeouts DrtAccessLogBucketAssociationTimeoutsPtrOutput `pulumi:"timeouts"` 72 } 73 74 // NewDrtAccessLogBucketAssociation registers a new resource with the given unique name, arguments, and options. 75 func NewDrtAccessLogBucketAssociation(ctx *pulumi.Context, 76 name string, args *DrtAccessLogBucketAssociationArgs, opts ...pulumi.ResourceOption) (*DrtAccessLogBucketAssociation, error) { 77 if args == nil { 78 return nil, errors.New("missing one or more required arguments") 79 } 80 81 if args.LogBucket == nil { 82 return nil, errors.New("invalid value for required argument 'LogBucket'") 83 } 84 if args.RoleArnAssociationId == nil { 85 return nil, errors.New("invalid value for required argument 'RoleArnAssociationId'") 86 } 87 opts = internal.PkgResourceDefaultOpts(opts) 88 var resource DrtAccessLogBucketAssociation 89 err := ctx.RegisterResource("aws:shield/drtAccessLogBucketAssociation:DrtAccessLogBucketAssociation", name, args, &resource, opts...) 90 if err != nil { 91 return nil, err 92 } 93 return &resource, nil 94 } 95 96 // GetDrtAccessLogBucketAssociation gets an existing DrtAccessLogBucketAssociation resource's state with the given name, ID, and optional 97 // state properties that are used to uniquely qualify the lookup (nil if not required). 98 func GetDrtAccessLogBucketAssociation(ctx *pulumi.Context, 99 name string, id pulumi.IDInput, state *DrtAccessLogBucketAssociationState, opts ...pulumi.ResourceOption) (*DrtAccessLogBucketAssociation, error) { 100 var resource DrtAccessLogBucketAssociation 101 err := ctx.ReadResource("aws:shield/drtAccessLogBucketAssociation:DrtAccessLogBucketAssociation", name, id, state, &resource, opts...) 102 if err != nil { 103 return nil, err 104 } 105 return &resource, nil 106 } 107 108 // Input properties used for looking up and filtering DrtAccessLogBucketAssociation resources. 109 type drtAccessLogBucketAssociationState struct { 110 // The Amazon S3 bucket that contains the logs that you want to share. 111 LogBucket *string `pulumi:"logBucket"` 112 // The ID of the Role Arn association used for allowing Shield DRT Access. 113 RoleArnAssociationId *string `pulumi:"roleArnAssociationId"` 114 Timeouts *DrtAccessLogBucketAssociationTimeouts `pulumi:"timeouts"` 115 } 116 117 type DrtAccessLogBucketAssociationState struct { 118 // The Amazon S3 bucket that contains the logs that you want to share. 119 LogBucket pulumi.StringPtrInput 120 // The ID of the Role Arn association used for allowing Shield DRT Access. 121 RoleArnAssociationId pulumi.StringPtrInput 122 Timeouts DrtAccessLogBucketAssociationTimeoutsPtrInput 123 } 124 125 func (DrtAccessLogBucketAssociationState) ElementType() reflect.Type { 126 return reflect.TypeOf((*drtAccessLogBucketAssociationState)(nil)).Elem() 127 } 128 129 type drtAccessLogBucketAssociationArgs struct { 130 // The Amazon S3 bucket that contains the logs that you want to share. 131 LogBucket string `pulumi:"logBucket"` 132 // The ID of the Role Arn association used for allowing Shield DRT Access. 133 RoleArnAssociationId string `pulumi:"roleArnAssociationId"` 134 Timeouts *DrtAccessLogBucketAssociationTimeouts `pulumi:"timeouts"` 135 } 136 137 // The set of arguments for constructing a DrtAccessLogBucketAssociation resource. 138 type DrtAccessLogBucketAssociationArgs struct { 139 // The Amazon S3 bucket that contains the logs that you want to share. 140 LogBucket pulumi.StringInput 141 // The ID of the Role Arn association used for allowing Shield DRT Access. 142 RoleArnAssociationId pulumi.StringInput 143 Timeouts DrtAccessLogBucketAssociationTimeoutsPtrInput 144 } 145 146 func (DrtAccessLogBucketAssociationArgs) ElementType() reflect.Type { 147 return reflect.TypeOf((*drtAccessLogBucketAssociationArgs)(nil)).Elem() 148 } 149 150 type DrtAccessLogBucketAssociationInput interface { 151 pulumi.Input 152 153 ToDrtAccessLogBucketAssociationOutput() DrtAccessLogBucketAssociationOutput 154 ToDrtAccessLogBucketAssociationOutputWithContext(ctx context.Context) DrtAccessLogBucketAssociationOutput 155 } 156 157 func (*DrtAccessLogBucketAssociation) ElementType() reflect.Type { 158 return reflect.TypeOf((**DrtAccessLogBucketAssociation)(nil)).Elem() 159 } 160 161 func (i *DrtAccessLogBucketAssociation) ToDrtAccessLogBucketAssociationOutput() DrtAccessLogBucketAssociationOutput { 162 return i.ToDrtAccessLogBucketAssociationOutputWithContext(context.Background()) 163 } 164 165 func (i *DrtAccessLogBucketAssociation) ToDrtAccessLogBucketAssociationOutputWithContext(ctx context.Context) DrtAccessLogBucketAssociationOutput { 166 return pulumi.ToOutputWithContext(ctx, i).(DrtAccessLogBucketAssociationOutput) 167 } 168 169 // DrtAccessLogBucketAssociationArrayInput is an input type that accepts DrtAccessLogBucketAssociationArray and DrtAccessLogBucketAssociationArrayOutput values. 170 // You can construct a concrete instance of `DrtAccessLogBucketAssociationArrayInput` via: 171 // 172 // DrtAccessLogBucketAssociationArray{ DrtAccessLogBucketAssociationArgs{...} } 173 type DrtAccessLogBucketAssociationArrayInput interface { 174 pulumi.Input 175 176 ToDrtAccessLogBucketAssociationArrayOutput() DrtAccessLogBucketAssociationArrayOutput 177 ToDrtAccessLogBucketAssociationArrayOutputWithContext(context.Context) DrtAccessLogBucketAssociationArrayOutput 178 } 179 180 type DrtAccessLogBucketAssociationArray []DrtAccessLogBucketAssociationInput 181 182 func (DrtAccessLogBucketAssociationArray) ElementType() reflect.Type { 183 return reflect.TypeOf((*[]*DrtAccessLogBucketAssociation)(nil)).Elem() 184 } 185 186 func (i DrtAccessLogBucketAssociationArray) ToDrtAccessLogBucketAssociationArrayOutput() DrtAccessLogBucketAssociationArrayOutput { 187 return i.ToDrtAccessLogBucketAssociationArrayOutputWithContext(context.Background()) 188 } 189 190 func (i DrtAccessLogBucketAssociationArray) ToDrtAccessLogBucketAssociationArrayOutputWithContext(ctx context.Context) DrtAccessLogBucketAssociationArrayOutput { 191 return pulumi.ToOutputWithContext(ctx, i).(DrtAccessLogBucketAssociationArrayOutput) 192 } 193 194 // DrtAccessLogBucketAssociationMapInput is an input type that accepts DrtAccessLogBucketAssociationMap and DrtAccessLogBucketAssociationMapOutput values. 195 // You can construct a concrete instance of `DrtAccessLogBucketAssociationMapInput` via: 196 // 197 // DrtAccessLogBucketAssociationMap{ "key": DrtAccessLogBucketAssociationArgs{...} } 198 type DrtAccessLogBucketAssociationMapInput interface { 199 pulumi.Input 200 201 ToDrtAccessLogBucketAssociationMapOutput() DrtAccessLogBucketAssociationMapOutput 202 ToDrtAccessLogBucketAssociationMapOutputWithContext(context.Context) DrtAccessLogBucketAssociationMapOutput 203 } 204 205 type DrtAccessLogBucketAssociationMap map[string]DrtAccessLogBucketAssociationInput 206 207 func (DrtAccessLogBucketAssociationMap) ElementType() reflect.Type { 208 return reflect.TypeOf((*map[string]*DrtAccessLogBucketAssociation)(nil)).Elem() 209 } 210 211 func (i DrtAccessLogBucketAssociationMap) ToDrtAccessLogBucketAssociationMapOutput() DrtAccessLogBucketAssociationMapOutput { 212 return i.ToDrtAccessLogBucketAssociationMapOutputWithContext(context.Background()) 213 } 214 215 func (i DrtAccessLogBucketAssociationMap) ToDrtAccessLogBucketAssociationMapOutputWithContext(ctx context.Context) DrtAccessLogBucketAssociationMapOutput { 216 return pulumi.ToOutputWithContext(ctx, i).(DrtAccessLogBucketAssociationMapOutput) 217 } 218 219 type DrtAccessLogBucketAssociationOutput struct{ *pulumi.OutputState } 220 221 func (DrtAccessLogBucketAssociationOutput) ElementType() reflect.Type { 222 return reflect.TypeOf((**DrtAccessLogBucketAssociation)(nil)).Elem() 223 } 224 225 func (o DrtAccessLogBucketAssociationOutput) ToDrtAccessLogBucketAssociationOutput() DrtAccessLogBucketAssociationOutput { 226 return o 227 } 228 229 func (o DrtAccessLogBucketAssociationOutput) ToDrtAccessLogBucketAssociationOutputWithContext(ctx context.Context) DrtAccessLogBucketAssociationOutput { 230 return o 231 } 232 233 // The Amazon S3 bucket that contains the logs that you want to share. 234 func (o DrtAccessLogBucketAssociationOutput) LogBucket() pulumi.StringOutput { 235 return o.ApplyT(func(v *DrtAccessLogBucketAssociation) pulumi.StringOutput { return v.LogBucket }).(pulumi.StringOutput) 236 } 237 238 // The ID of the Role Arn association used for allowing Shield DRT Access. 239 func (o DrtAccessLogBucketAssociationOutput) RoleArnAssociationId() pulumi.StringOutput { 240 return o.ApplyT(func(v *DrtAccessLogBucketAssociation) pulumi.StringOutput { return v.RoleArnAssociationId }).(pulumi.StringOutput) 241 } 242 243 func (o DrtAccessLogBucketAssociationOutput) Timeouts() DrtAccessLogBucketAssociationTimeoutsPtrOutput { 244 return o.ApplyT(func(v *DrtAccessLogBucketAssociation) DrtAccessLogBucketAssociationTimeoutsPtrOutput { 245 return v.Timeouts 246 }).(DrtAccessLogBucketAssociationTimeoutsPtrOutput) 247 } 248 249 type DrtAccessLogBucketAssociationArrayOutput struct{ *pulumi.OutputState } 250 251 func (DrtAccessLogBucketAssociationArrayOutput) ElementType() reflect.Type { 252 return reflect.TypeOf((*[]*DrtAccessLogBucketAssociation)(nil)).Elem() 253 } 254 255 func (o DrtAccessLogBucketAssociationArrayOutput) ToDrtAccessLogBucketAssociationArrayOutput() DrtAccessLogBucketAssociationArrayOutput { 256 return o 257 } 258 259 func (o DrtAccessLogBucketAssociationArrayOutput) ToDrtAccessLogBucketAssociationArrayOutputWithContext(ctx context.Context) DrtAccessLogBucketAssociationArrayOutput { 260 return o 261 } 262 263 func (o DrtAccessLogBucketAssociationArrayOutput) Index(i pulumi.IntInput) DrtAccessLogBucketAssociationOutput { 264 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *DrtAccessLogBucketAssociation { 265 return vs[0].([]*DrtAccessLogBucketAssociation)[vs[1].(int)] 266 }).(DrtAccessLogBucketAssociationOutput) 267 } 268 269 type DrtAccessLogBucketAssociationMapOutput struct{ *pulumi.OutputState } 270 271 func (DrtAccessLogBucketAssociationMapOutput) ElementType() reflect.Type { 272 return reflect.TypeOf((*map[string]*DrtAccessLogBucketAssociation)(nil)).Elem() 273 } 274 275 func (o DrtAccessLogBucketAssociationMapOutput) ToDrtAccessLogBucketAssociationMapOutput() DrtAccessLogBucketAssociationMapOutput { 276 return o 277 } 278 279 func (o DrtAccessLogBucketAssociationMapOutput) ToDrtAccessLogBucketAssociationMapOutputWithContext(ctx context.Context) DrtAccessLogBucketAssociationMapOutput { 280 return o 281 } 282 283 func (o DrtAccessLogBucketAssociationMapOutput) MapIndex(k pulumi.StringInput) DrtAccessLogBucketAssociationOutput { 284 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *DrtAccessLogBucketAssociation { 285 return vs[0].(map[string]*DrtAccessLogBucketAssociation)[vs[1].(string)] 286 }).(DrtAccessLogBucketAssociationOutput) 287 } 288 289 func init() { 290 pulumi.RegisterInputType(reflect.TypeOf((*DrtAccessLogBucketAssociationInput)(nil)).Elem(), &DrtAccessLogBucketAssociation{}) 291 pulumi.RegisterInputType(reflect.TypeOf((*DrtAccessLogBucketAssociationArrayInput)(nil)).Elem(), DrtAccessLogBucketAssociationArray{}) 292 pulumi.RegisterInputType(reflect.TypeOf((*DrtAccessLogBucketAssociationMapInput)(nil)).Elem(), DrtAccessLogBucketAssociationMap{}) 293 pulumi.RegisterOutputType(DrtAccessLogBucketAssociationOutput{}) 294 pulumi.RegisterOutputType(DrtAccessLogBucketAssociationArrayOutput{}) 295 pulumi.RegisterOutputType(DrtAccessLogBucketAssociationMapOutput{}) 296 }