github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/verifiedaccess/instanceLoggingConfiguration.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 verifiedaccess
     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 a Verified Access Logging Configuration.
    16  //
    17  // ## Example Usage
    18  //
    19  // ### With CloudWatch Logging
    20  //
    21  // <!--Start PulumiCodeChooser -->
    22  // ```go
    23  // package main
    24  //
    25  // import (
    26  //
    27  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/verifiedaccess"
    28  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    29  //
    30  // )
    31  //
    32  //	func main() {
    33  //		pulumi.Run(func(ctx *pulumi.Context) error {
    34  //			_, err := verifiedaccess.NewInstanceLoggingConfiguration(ctx, "example", &verifiedaccess.InstanceLoggingConfigurationArgs{
    35  //				AccessLogs: &verifiedaccess.InstanceLoggingConfigurationAccessLogsArgs{
    36  //					CloudwatchLogs: &verifiedaccess.InstanceLoggingConfigurationAccessLogsCloudwatchLogsArgs{
    37  //						Enabled:  pulumi.Bool(true),
    38  //						LogGroup: pulumi.Any(exampleAwsCloudwatchLogGroup.Id),
    39  //					},
    40  //				},
    41  //				VerifiedaccessInstanceId: pulumi.Any(exampleAwsVerifiedaccessInstance.Id),
    42  //			})
    43  //			if err != nil {
    44  //				return err
    45  //			}
    46  //			return nil
    47  //		})
    48  //	}
    49  //
    50  // ```
    51  // <!--End PulumiCodeChooser -->
    52  //
    53  // ### With Kinesis Data Firehose Logging
    54  //
    55  // <!--Start PulumiCodeChooser -->
    56  // ```go
    57  // package main
    58  //
    59  // import (
    60  //
    61  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/verifiedaccess"
    62  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    63  //
    64  // )
    65  //
    66  //	func main() {
    67  //		pulumi.Run(func(ctx *pulumi.Context) error {
    68  //			_, err := verifiedaccess.NewInstanceLoggingConfiguration(ctx, "example", &verifiedaccess.InstanceLoggingConfigurationArgs{
    69  //				AccessLogs: &verifiedaccess.InstanceLoggingConfigurationAccessLogsArgs{
    70  //					KinesisDataFirehose: &verifiedaccess.InstanceLoggingConfigurationAccessLogsKinesisDataFirehoseArgs{
    71  //						DeliveryStream: pulumi.Any(exampleAwsKinesisFirehoseDeliveryStream.Name),
    72  //						Enabled:        pulumi.Bool(true),
    73  //					},
    74  //				},
    75  //				VerifiedaccessInstanceId: pulumi.Any(exampleAwsVerifiedaccessInstance.Id),
    76  //			})
    77  //			if err != nil {
    78  //				return err
    79  //			}
    80  //			return nil
    81  //		})
    82  //	}
    83  //
    84  // ```
    85  // <!--End PulumiCodeChooser -->
    86  //
    87  // ### With S3 logging
    88  //
    89  // <!--Start PulumiCodeChooser -->
    90  // ```go
    91  // package main
    92  //
    93  // import (
    94  //
    95  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/verifiedaccess"
    96  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    97  //
    98  // )
    99  //
   100  //	func main() {
   101  //		pulumi.Run(func(ctx *pulumi.Context) error {
   102  //			_, err := verifiedaccess.NewInstanceLoggingConfiguration(ctx, "example", &verifiedaccess.InstanceLoggingConfigurationArgs{
   103  //				AccessLogs: &verifiedaccess.InstanceLoggingConfigurationAccessLogsArgs{
   104  //					S3: &verifiedaccess.InstanceLoggingConfigurationAccessLogsS3Args{
   105  //						BucketName: pulumi.Any(exampleAwsS3Bucket.Id),
   106  //						Enabled:    pulumi.Bool(true),
   107  //						Prefix:     pulumi.String("example"),
   108  //					},
   109  //				},
   110  //				VerifiedaccessInstanceId: pulumi.Any(exampleAwsVerifiedaccessInstance.Id),
   111  //			})
   112  //			if err != nil {
   113  //				return err
   114  //			}
   115  //			return nil
   116  //		})
   117  //	}
   118  //
   119  // ```
   120  // <!--End PulumiCodeChooser -->
   121  //
   122  // ### With all three logging options
   123  //
   124  // <!--Start PulumiCodeChooser -->
   125  // ```go
   126  // package main
   127  //
   128  // import (
   129  //
   130  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/verifiedaccess"
   131  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   132  //
   133  // )
   134  //
   135  //	func main() {
   136  //		pulumi.Run(func(ctx *pulumi.Context) error {
   137  //			_, err := verifiedaccess.NewInstanceLoggingConfiguration(ctx, "example", &verifiedaccess.InstanceLoggingConfigurationArgs{
   138  //				AccessLogs: &verifiedaccess.InstanceLoggingConfigurationAccessLogsArgs{
   139  //					CloudwatchLogs: &verifiedaccess.InstanceLoggingConfigurationAccessLogsCloudwatchLogsArgs{
   140  //						Enabled:  pulumi.Bool(true),
   141  //						LogGroup: pulumi.Any(exampleAwsCloudwatchLogGroup.Id),
   142  //					},
   143  //					KinesisDataFirehose: &verifiedaccess.InstanceLoggingConfigurationAccessLogsKinesisDataFirehoseArgs{
   144  //						DeliveryStream: pulumi.Any(exampleAwsKinesisFirehoseDeliveryStream.Name),
   145  //						Enabled:        pulumi.Bool(true),
   146  //					},
   147  //					S3: &verifiedaccess.InstanceLoggingConfigurationAccessLogsS3Args{
   148  //						BucketName: pulumi.Any(exampleAwsS3Bucket.Id),
   149  //						Enabled:    pulumi.Bool(true),
   150  //					},
   151  //				},
   152  //				VerifiedaccessInstanceId: pulumi.Any(exampleAwsVerifiedaccessInstance.Id),
   153  //			})
   154  //			if err != nil {
   155  //				return err
   156  //			}
   157  //			return nil
   158  //		})
   159  //	}
   160  //
   161  // ```
   162  // <!--End PulumiCodeChooser -->
   163  //
   164  // ### With `includeTrustContext`
   165  //
   166  // <!--Start PulumiCodeChooser -->
   167  // ```go
   168  // package main
   169  //
   170  // import (
   171  //
   172  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/verifiedaccess"
   173  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   174  //
   175  // )
   176  //
   177  //	func main() {
   178  //		pulumi.Run(func(ctx *pulumi.Context) error {
   179  //			_, err := verifiedaccess.NewInstanceLoggingConfiguration(ctx, "example", &verifiedaccess.InstanceLoggingConfigurationArgs{
   180  //				AccessLogs: &verifiedaccess.InstanceLoggingConfigurationAccessLogsArgs{
   181  //					IncludeTrustContext: pulumi.Bool(true),
   182  //				},
   183  //				VerifiedaccessInstanceId: pulumi.Any(exampleAwsVerifiedaccessInstance.Id),
   184  //			})
   185  //			if err != nil {
   186  //				return err
   187  //			}
   188  //			return nil
   189  //		})
   190  //	}
   191  //
   192  // ```
   193  // <!--End PulumiCodeChooser -->
   194  //
   195  // ### With `logVersion`
   196  //
   197  // <!--Start PulumiCodeChooser -->
   198  // ```go
   199  // package main
   200  //
   201  // import (
   202  //
   203  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/verifiedaccess"
   204  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   205  //
   206  // )
   207  //
   208  //	func main() {
   209  //		pulumi.Run(func(ctx *pulumi.Context) error {
   210  //			_, err := verifiedaccess.NewInstanceLoggingConfiguration(ctx, "example", &verifiedaccess.InstanceLoggingConfigurationArgs{
   211  //				AccessLogs: &verifiedaccess.InstanceLoggingConfigurationAccessLogsArgs{
   212  //					LogVersion: pulumi.String("ocsf-1.0.0-rc.2"),
   213  //				},
   214  //				VerifiedaccessInstanceId: pulumi.Any(exampleAwsVerifiedaccessInstance.Id),
   215  //			})
   216  //			if err != nil {
   217  //				return err
   218  //			}
   219  //			return nil
   220  //		})
   221  //	}
   222  //
   223  // ```
   224  // <!--End PulumiCodeChooser -->
   225  //
   226  // ## Import
   227  //
   228  // Using `pulumi import`, import Verified Access Logging Configuration using the Verified Access Instance `id`. For example:
   229  //
   230  // ```sh
   231  // $ pulumi import aws:verifiedaccess/instanceLoggingConfiguration:InstanceLoggingConfiguration example vai-1234567890abcdef0
   232  // ```
   233  type InstanceLoggingConfiguration struct {
   234  	pulumi.CustomResourceState
   235  
   236  	// A block that specifies the configuration options for Verified Access instances. Detailed below.
   237  	AccessLogs InstanceLoggingConfigurationAccessLogsOutput `pulumi:"accessLogs"`
   238  	// The ID of the Verified Access instance.
   239  	VerifiedaccessInstanceId pulumi.StringOutput `pulumi:"verifiedaccessInstanceId"`
   240  }
   241  
   242  // NewInstanceLoggingConfiguration registers a new resource with the given unique name, arguments, and options.
   243  func NewInstanceLoggingConfiguration(ctx *pulumi.Context,
   244  	name string, args *InstanceLoggingConfigurationArgs, opts ...pulumi.ResourceOption) (*InstanceLoggingConfiguration, error) {
   245  	if args == nil {
   246  		return nil, errors.New("missing one or more required arguments")
   247  	}
   248  
   249  	if args.AccessLogs == nil {
   250  		return nil, errors.New("invalid value for required argument 'AccessLogs'")
   251  	}
   252  	if args.VerifiedaccessInstanceId == nil {
   253  		return nil, errors.New("invalid value for required argument 'VerifiedaccessInstanceId'")
   254  	}
   255  	opts = internal.PkgResourceDefaultOpts(opts)
   256  	var resource InstanceLoggingConfiguration
   257  	err := ctx.RegisterResource("aws:verifiedaccess/instanceLoggingConfiguration:InstanceLoggingConfiguration", name, args, &resource, opts...)
   258  	if err != nil {
   259  		return nil, err
   260  	}
   261  	return &resource, nil
   262  }
   263  
   264  // GetInstanceLoggingConfiguration gets an existing InstanceLoggingConfiguration resource's state with the given name, ID, and optional
   265  // state properties that are used to uniquely qualify the lookup (nil if not required).
   266  func GetInstanceLoggingConfiguration(ctx *pulumi.Context,
   267  	name string, id pulumi.IDInput, state *InstanceLoggingConfigurationState, opts ...pulumi.ResourceOption) (*InstanceLoggingConfiguration, error) {
   268  	var resource InstanceLoggingConfiguration
   269  	err := ctx.ReadResource("aws:verifiedaccess/instanceLoggingConfiguration:InstanceLoggingConfiguration", name, id, state, &resource, opts...)
   270  	if err != nil {
   271  		return nil, err
   272  	}
   273  	return &resource, nil
   274  }
   275  
   276  // Input properties used for looking up and filtering InstanceLoggingConfiguration resources.
   277  type instanceLoggingConfigurationState struct {
   278  	// A block that specifies the configuration options for Verified Access instances. Detailed below.
   279  	AccessLogs *InstanceLoggingConfigurationAccessLogs `pulumi:"accessLogs"`
   280  	// The ID of the Verified Access instance.
   281  	VerifiedaccessInstanceId *string `pulumi:"verifiedaccessInstanceId"`
   282  }
   283  
   284  type InstanceLoggingConfigurationState struct {
   285  	// A block that specifies the configuration options for Verified Access instances. Detailed below.
   286  	AccessLogs InstanceLoggingConfigurationAccessLogsPtrInput
   287  	// The ID of the Verified Access instance.
   288  	VerifiedaccessInstanceId pulumi.StringPtrInput
   289  }
   290  
   291  func (InstanceLoggingConfigurationState) ElementType() reflect.Type {
   292  	return reflect.TypeOf((*instanceLoggingConfigurationState)(nil)).Elem()
   293  }
   294  
   295  type instanceLoggingConfigurationArgs struct {
   296  	// A block that specifies the configuration options for Verified Access instances. Detailed below.
   297  	AccessLogs InstanceLoggingConfigurationAccessLogs `pulumi:"accessLogs"`
   298  	// The ID of the Verified Access instance.
   299  	VerifiedaccessInstanceId string `pulumi:"verifiedaccessInstanceId"`
   300  }
   301  
   302  // The set of arguments for constructing a InstanceLoggingConfiguration resource.
   303  type InstanceLoggingConfigurationArgs struct {
   304  	// A block that specifies the configuration options for Verified Access instances. Detailed below.
   305  	AccessLogs InstanceLoggingConfigurationAccessLogsInput
   306  	// The ID of the Verified Access instance.
   307  	VerifiedaccessInstanceId pulumi.StringInput
   308  }
   309  
   310  func (InstanceLoggingConfigurationArgs) ElementType() reflect.Type {
   311  	return reflect.TypeOf((*instanceLoggingConfigurationArgs)(nil)).Elem()
   312  }
   313  
   314  type InstanceLoggingConfigurationInput interface {
   315  	pulumi.Input
   316  
   317  	ToInstanceLoggingConfigurationOutput() InstanceLoggingConfigurationOutput
   318  	ToInstanceLoggingConfigurationOutputWithContext(ctx context.Context) InstanceLoggingConfigurationOutput
   319  }
   320  
   321  func (*InstanceLoggingConfiguration) ElementType() reflect.Type {
   322  	return reflect.TypeOf((**InstanceLoggingConfiguration)(nil)).Elem()
   323  }
   324  
   325  func (i *InstanceLoggingConfiguration) ToInstanceLoggingConfigurationOutput() InstanceLoggingConfigurationOutput {
   326  	return i.ToInstanceLoggingConfigurationOutputWithContext(context.Background())
   327  }
   328  
   329  func (i *InstanceLoggingConfiguration) ToInstanceLoggingConfigurationOutputWithContext(ctx context.Context) InstanceLoggingConfigurationOutput {
   330  	return pulumi.ToOutputWithContext(ctx, i).(InstanceLoggingConfigurationOutput)
   331  }
   332  
   333  // InstanceLoggingConfigurationArrayInput is an input type that accepts InstanceLoggingConfigurationArray and InstanceLoggingConfigurationArrayOutput values.
   334  // You can construct a concrete instance of `InstanceLoggingConfigurationArrayInput` via:
   335  //
   336  //	InstanceLoggingConfigurationArray{ InstanceLoggingConfigurationArgs{...} }
   337  type InstanceLoggingConfigurationArrayInput interface {
   338  	pulumi.Input
   339  
   340  	ToInstanceLoggingConfigurationArrayOutput() InstanceLoggingConfigurationArrayOutput
   341  	ToInstanceLoggingConfigurationArrayOutputWithContext(context.Context) InstanceLoggingConfigurationArrayOutput
   342  }
   343  
   344  type InstanceLoggingConfigurationArray []InstanceLoggingConfigurationInput
   345  
   346  func (InstanceLoggingConfigurationArray) ElementType() reflect.Type {
   347  	return reflect.TypeOf((*[]*InstanceLoggingConfiguration)(nil)).Elem()
   348  }
   349  
   350  func (i InstanceLoggingConfigurationArray) ToInstanceLoggingConfigurationArrayOutput() InstanceLoggingConfigurationArrayOutput {
   351  	return i.ToInstanceLoggingConfigurationArrayOutputWithContext(context.Background())
   352  }
   353  
   354  func (i InstanceLoggingConfigurationArray) ToInstanceLoggingConfigurationArrayOutputWithContext(ctx context.Context) InstanceLoggingConfigurationArrayOutput {
   355  	return pulumi.ToOutputWithContext(ctx, i).(InstanceLoggingConfigurationArrayOutput)
   356  }
   357  
   358  // InstanceLoggingConfigurationMapInput is an input type that accepts InstanceLoggingConfigurationMap and InstanceLoggingConfigurationMapOutput values.
   359  // You can construct a concrete instance of `InstanceLoggingConfigurationMapInput` via:
   360  //
   361  //	InstanceLoggingConfigurationMap{ "key": InstanceLoggingConfigurationArgs{...} }
   362  type InstanceLoggingConfigurationMapInput interface {
   363  	pulumi.Input
   364  
   365  	ToInstanceLoggingConfigurationMapOutput() InstanceLoggingConfigurationMapOutput
   366  	ToInstanceLoggingConfigurationMapOutputWithContext(context.Context) InstanceLoggingConfigurationMapOutput
   367  }
   368  
   369  type InstanceLoggingConfigurationMap map[string]InstanceLoggingConfigurationInput
   370  
   371  func (InstanceLoggingConfigurationMap) ElementType() reflect.Type {
   372  	return reflect.TypeOf((*map[string]*InstanceLoggingConfiguration)(nil)).Elem()
   373  }
   374  
   375  func (i InstanceLoggingConfigurationMap) ToInstanceLoggingConfigurationMapOutput() InstanceLoggingConfigurationMapOutput {
   376  	return i.ToInstanceLoggingConfigurationMapOutputWithContext(context.Background())
   377  }
   378  
   379  func (i InstanceLoggingConfigurationMap) ToInstanceLoggingConfigurationMapOutputWithContext(ctx context.Context) InstanceLoggingConfigurationMapOutput {
   380  	return pulumi.ToOutputWithContext(ctx, i).(InstanceLoggingConfigurationMapOutput)
   381  }
   382  
   383  type InstanceLoggingConfigurationOutput struct{ *pulumi.OutputState }
   384  
   385  func (InstanceLoggingConfigurationOutput) ElementType() reflect.Type {
   386  	return reflect.TypeOf((**InstanceLoggingConfiguration)(nil)).Elem()
   387  }
   388  
   389  func (o InstanceLoggingConfigurationOutput) ToInstanceLoggingConfigurationOutput() InstanceLoggingConfigurationOutput {
   390  	return o
   391  }
   392  
   393  func (o InstanceLoggingConfigurationOutput) ToInstanceLoggingConfigurationOutputWithContext(ctx context.Context) InstanceLoggingConfigurationOutput {
   394  	return o
   395  }
   396  
   397  // A block that specifies the configuration options for Verified Access instances. Detailed below.
   398  func (o InstanceLoggingConfigurationOutput) AccessLogs() InstanceLoggingConfigurationAccessLogsOutput {
   399  	return o.ApplyT(func(v *InstanceLoggingConfiguration) InstanceLoggingConfigurationAccessLogsOutput {
   400  		return v.AccessLogs
   401  	}).(InstanceLoggingConfigurationAccessLogsOutput)
   402  }
   403  
   404  // The ID of the Verified Access instance.
   405  func (o InstanceLoggingConfigurationOutput) VerifiedaccessInstanceId() pulumi.StringOutput {
   406  	return o.ApplyT(func(v *InstanceLoggingConfiguration) pulumi.StringOutput { return v.VerifiedaccessInstanceId }).(pulumi.StringOutput)
   407  }
   408  
   409  type InstanceLoggingConfigurationArrayOutput struct{ *pulumi.OutputState }
   410  
   411  func (InstanceLoggingConfigurationArrayOutput) ElementType() reflect.Type {
   412  	return reflect.TypeOf((*[]*InstanceLoggingConfiguration)(nil)).Elem()
   413  }
   414  
   415  func (o InstanceLoggingConfigurationArrayOutput) ToInstanceLoggingConfigurationArrayOutput() InstanceLoggingConfigurationArrayOutput {
   416  	return o
   417  }
   418  
   419  func (o InstanceLoggingConfigurationArrayOutput) ToInstanceLoggingConfigurationArrayOutputWithContext(ctx context.Context) InstanceLoggingConfigurationArrayOutput {
   420  	return o
   421  }
   422  
   423  func (o InstanceLoggingConfigurationArrayOutput) Index(i pulumi.IntInput) InstanceLoggingConfigurationOutput {
   424  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *InstanceLoggingConfiguration {
   425  		return vs[0].([]*InstanceLoggingConfiguration)[vs[1].(int)]
   426  	}).(InstanceLoggingConfigurationOutput)
   427  }
   428  
   429  type InstanceLoggingConfigurationMapOutput struct{ *pulumi.OutputState }
   430  
   431  func (InstanceLoggingConfigurationMapOutput) ElementType() reflect.Type {
   432  	return reflect.TypeOf((*map[string]*InstanceLoggingConfiguration)(nil)).Elem()
   433  }
   434  
   435  func (o InstanceLoggingConfigurationMapOutput) ToInstanceLoggingConfigurationMapOutput() InstanceLoggingConfigurationMapOutput {
   436  	return o
   437  }
   438  
   439  func (o InstanceLoggingConfigurationMapOutput) ToInstanceLoggingConfigurationMapOutputWithContext(ctx context.Context) InstanceLoggingConfigurationMapOutput {
   440  	return o
   441  }
   442  
   443  func (o InstanceLoggingConfigurationMapOutput) MapIndex(k pulumi.StringInput) InstanceLoggingConfigurationOutput {
   444  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *InstanceLoggingConfiguration {
   445  		return vs[0].(map[string]*InstanceLoggingConfiguration)[vs[1].(string)]
   446  	}).(InstanceLoggingConfigurationOutput)
   447  }
   448  
   449  func init() {
   450  	pulumi.RegisterInputType(reflect.TypeOf((*InstanceLoggingConfigurationInput)(nil)).Elem(), &InstanceLoggingConfiguration{})
   451  	pulumi.RegisterInputType(reflect.TypeOf((*InstanceLoggingConfigurationArrayInput)(nil)).Elem(), InstanceLoggingConfigurationArray{})
   452  	pulumi.RegisterInputType(reflect.TypeOf((*InstanceLoggingConfigurationMapInput)(nil)).Elem(), InstanceLoggingConfigurationMap{})
   453  	pulumi.RegisterOutputType(InstanceLoggingConfigurationOutput{})
   454  	pulumi.RegisterOutputType(InstanceLoggingConfigurationArrayOutput{})
   455  	pulumi.RegisterOutputType(InstanceLoggingConfigurationMapOutput{})
   456  }