github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/cloudwatch/getLogDataProtectionPolicyDocument.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 cloudwatch
     5  
     6  import (
     7  	"context"
     8  	"reflect"
     9  
    10  	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal"
    11  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    12  )
    13  
    14  // Generates a CloudWatch Log Group Data Protection Policy document in JSON format for use with the `cloudwatch.LogDataProtectionPolicy` resource.
    15  //
    16  // > For more information about data protection policies, see the [Help protect sensitive log data with masking](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html).
    17  //
    18  // ## Example Usage
    19  //
    20  // <!--Start PulumiCodeChooser -->
    21  // ```go
    22  // package main
    23  //
    24  // import (
    25  //
    26  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch"
    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 := cloudwatch.GetLogDataProtectionPolicyDocument(ctx, &cloudwatch.GetLogDataProtectionPolicyDocumentArgs{
    34  //				Name: "Example",
    35  //				Statements: []cloudwatch.GetLogDataProtectionPolicyDocumentStatement{
    36  //					{
    37  //						Sid: pulumi.StringRef("Audit"),
    38  //						DataIdentifiers: []string{
    39  //							"arn:aws:dataprotection::aws:data-identifier/EmailAddress",
    40  //							"arn:aws:dataprotection::aws:data-identifier/DriversLicense-US",
    41  //						},
    42  //						Operation: {
    43  //							Audit: {
    44  //								FindingsDestination: {
    45  //									CloudwatchLogs: {
    46  //										LogGroup: audit.Name,
    47  //									},
    48  //									Firehose: {
    49  //										DeliveryStream: auditAwsKinesisFirehoseDeliveryStream.Name,
    50  //									},
    51  //									S3: {
    52  //										Bucket: auditAwsS3Bucket.Bucket,
    53  //									},
    54  //								},
    55  //							},
    56  //						},
    57  //					},
    58  //					{
    59  //						Sid: pulumi.StringRef("Deidentify"),
    60  //						DataIdentifiers: []string{
    61  //							"arn:aws:dataprotection::aws:data-identifier/EmailAddress",
    62  //							"arn:aws:dataprotection::aws:data-identifier/DriversLicense-US",
    63  //						},
    64  //						Operation: {
    65  //							Deidentify: {
    66  //								MaskConfig: nil,
    67  //							},
    68  //						},
    69  //					},
    70  //				},
    71  //			}, nil)
    72  //			if err != nil {
    73  //				return err
    74  //			}
    75  //			_, err = cloudwatch.NewLogDataProtectionPolicy(ctx, "example", &cloudwatch.LogDataProtectionPolicyArgs{
    76  //				LogGroupName:   pulumi.Any(exampleAwsCloudwatchLogGroup.Name),
    77  //				PolicyDocument: pulumi.String(example.Json),
    78  //			})
    79  //			if err != nil {
    80  //				return err
    81  //			}
    82  //			return nil
    83  //		})
    84  //	}
    85  //
    86  // ```
    87  // <!--End PulumiCodeChooser -->
    88  func GetLogDataProtectionPolicyDocument(ctx *pulumi.Context, args *GetLogDataProtectionPolicyDocumentArgs, opts ...pulumi.InvokeOption) (*GetLogDataProtectionPolicyDocumentResult, error) {
    89  	opts = internal.PkgInvokeDefaultOpts(opts)
    90  	var rv GetLogDataProtectionPolicyDocumentResult
    91  	err := ctx.Invoke("aws:cloudwatch/getLogDataProtectionPolicyDocument:getLogDataProtectionPolicyDocument", args, &rv, opts...)
    92  	if err != nil {
    93  		return nil, err
    94  	}
    95  	return &rv, nil
    96  }
    97  
    98  // A collection of arguments for invoking getLogDataProtectionPolicyDocument.
    99  type GetLogDataProtectionPolicyDocumentArgs struct {
   100  	Description *string `pulumi:"description"`
   101  	// The name of the data protection policy document.
   102  	Name string `pulumi:"name"`
   103  	// Configures the data protection policy.
   104  	//
   105  	// > There must be exactly two statements: the first with an `audit` operation, and the second with a `deidentify` operation.
   106  	//
   107  	// The following arguments are optional:
   108  	Statements []GetLogDataProtectionPolicyDocumentStatement `pulumi:"statements"`
   109  	Version    *string                                       `pulumi:"version"`
   110  }
   111  
   112  // A collection of values returned by getLogDataProtectionPolicyDocument.
   113  type GetLogDataProtectionPolicyDocumentResult struct {
   114  	Description *string `pulumi:"description"`
   115  	// The provider-assigned unique ID for this managed resource.
   116  	Id string `pulumi:"id"`
   117  	// Standard JSON policy document rendered based on the arguments above.
   118  	Json       string                                        `pulumi:"json"`
   119  	Name       string                                        `pulumi:"name"`
   120  	Statements []GetLogDataProtectionPolicyDocumentStatement `pulumi:"statements"`
   121  	Version    *string                                       `pulumi:"version"`
   122  }
   123  
   124  func GetLogDataProtectionPolicyDocumentOutput(ctx *pulumi.Context, args GetLogDataProtectionPolicyDocumentOutputArgs, opts ...pulumi.InvokeOption) GetLogDataProtectionPolicyDocumentResultOutput {
   125  	return pulumi.ToOutputWithContext(context.Background(), args).
   126  		ApplyT(func(v interface{}) (GetLogDataProtectionPolicyDocumentResult, error) {
   127  			args := v.(GetLogDataProtectionPolicyDocumentArgs)
   128  			r, err := GetLogDataProtectionPolicyDocument(ctx, &args, opts...)
   129  			var s GetLogDataProtectionPolicyDocumentResult
   130  			if r != nil {
   131  				s = *r
   132  			}
   133  			return s, err
   134  		}).(GetLogDataProtectionPolicyDocumentResultOutput)
   135  }
   136  
   137  // A collection of arguments for invoking getLogDataProtectionPolicyDocument.
   138  type GetLogDataProtectionPolicyDocumentOutputArgs struct {
   139  	Description pulumi.StringPtrInput `pulumi:"description"`
   140  	// The name of the data protection policy document.
   141  	Name pulumi.StringInput `pulumi:"name"`
   142  	// Configures the data protection policy.
   143  	//
   144  	// > There must be exactly two statements: the first with an `audit` operation, and the second with a `deidentify` operation.
   145  	//
   146  	// The following arguments are optional:
   147  	Statements GetLogDataProtectionPolicyDocumentStatementArrayInput `pulumi:"statements"`
   148  	Version    pulumi.StringPtrInput                                 `pulumi:"version"`
   149  }
   150  
   151  func (GetLogDataProtectionPolicyDocumentOutputArgs) ElementType() reflect.Type {
   152  	return reflect.TypeOf((*GetLogDataProtectionPolicyDocumentArgs)(nil)).Elem()
   153  }
   154  
   155  // A collection of values returned by getLogDataProtectionPolicyDocument.
   156  type GetLogDataProtectionPolicyDocumentResultOutput struct{ *pulumi.OutputState }
   157  
   158  func (GetLogDataProtectionPolicyDocumentResultOutput) ElementType() reflect.Type {
   159  	return reflect.TypeOf((*GetLogDataProtectionPolicyDocumentResult)(nil)).Elem()
   160  }
   161  
   162  func (o GetLogDataProtectionPolicyDocumentResultOutput) ToGetLogDataProtectionPolicyDocumentResultOutput() GetLogDataProtectionPolicyDocumentResultOutput {
   163  	return o
   164  }
   165  
   166  func (o GetLogDataProtectionPolicyDocumentResultOutput) ToGetLogDataProtectionPolicyDocumentResultOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentResultOutput {
   167  	return o
   168  }
   169  
   170  func (o GetLogDataProtectionPolicyDocumentResultOutput) Description() pulumi.StringPtrOutput {
   171  	return o.ApplyT(func(v GetLogDataProtectionPolicyDocumentResult) *string { return v.Description }).(pulumi.StringPtrOutput)
   172  }
   173  
   174  // The provider-assigned unique ID for this managed resource.
   175  func (o GetLogDataProtectionPolicyDocumentResultOutput) Id() pulumi.StringOutput {
   176  	return o.ApplyT(func(v GetLogDataProtectionPolicyDocumentResult) string { return v.Id }).(pulumi.StringOutput)
   177  }
   178  
   179  // Standard JSON policy document rendered based on the arguments above.
   180  func (o GetLogDataProtectionPolicyDocumentResultOutput) Json() pulumi.StringOutput {
   181  	return o.ApplyT(func(v GetLogDataProtectionPolicyDocumentResult) string { return v.Json }).(pulumi.StringOutput)
   182  }
   183  
   184  func (o GetLogDataProtectionPolicyDocumentResultOutput) Name() pulumi.StringOutput {
   185  	return o.ApplyT(func(v GetLogDataProtectionPolicyDocumentResult) string { return v.Name }).(pulumi.StringOutput)
   186  }
   187  
   188  func (o GetLogDataProtectionPolicyDocumentResultOutput) Statements() GetLogDataProtectionPolicyDocumentStatementArrayOutput {
   189  	return o.ApplyT(func(v GetLogDataProtectionPolicyDocumentResult) []GetLogDataProtectionPolicyDocumentStatement {
   190  		return v.Statements
   191  	}).(GetLogDataProtectionPolicyDocumentStatementArrayOutput)
   192  }
   193  
   194  func (o GetLogDataProtectionPolicyDocumentResultOutput) Version() pulumi.StringPtrOutput {
   195  	return o.ApplyT(func(v GetLogDataProtectionPolicyDocumentResult) *string { return v.Version }).(pulumi.StringPtrOutput)
   196  }
   197  
   198  func init() {
   199  	pulumi.RegisterOutputType(GetLogDataProtectionPolicyDocumentResultOutput{})
   200  }