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 }