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  }