github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/cloudwatch/logMetricFilter.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 "errors" 11 "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" 12 "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 13 ) 14 15 // Provides a CloudWatch Log Metric Filter resource. 16 // 17 // ## Example Usage 18 // 19 // <!--Start PulumiCodeChooser --> 20 // ```go 21 // package main 22 // 23 // import ( 24 // 25 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" 26 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 27 // 28 // ) 29 // 30 // func main() { 31 // pulumi.Run(func(ctx *pulumi.Context) error { 32 // dada, err := cloudwatch.NewLogGroup(ctx, "dada", &cloudwatch.LogGroupArgs{ 33 // Name: pulumi.String("MyApp/access.log"), 34 // }) 35 // if err != nil { 36 // return err 37 // } 38 // _, err = cloudwatch.NewLogMetricFilter(ctx, "yada", &cloudwatch.LogMetricFilterArgs{ 39 // Name: pulumi.String("MyAppAccessCount"), 40 // Pattern: pulumi.String(""), 41 // LogGroupName: dada.Name, 42 // MetricTransformation: &cloudwatch.LogMetricFilterMetricTransformationArgs{ 43 // Name: pulumi.String("EventCount"), 44 // Namespace: pulumi.String("YourNamespace"), 45 // Value: pulumi.String("1"), 46 // }, 47 // }) 48 // if err != nil { 49 // return err 50 // } 51 // return nil 52 // }) 53 // } 54 // 55 // ``` 56 // <!--End PulumiCodeChooser --> 57 // 58 // ## Import 59 // 60 // Using `pulumi import`, import CloudWatch Log Metric Filter using the `log_group_name:name`. For example: 61 // 62 // ```sh 63 // $ pulumi import aws:cloudwatch/logMetricFilter:LogMetricFilter test /aws/lambda/function:test 64 // ``` 65 type LogMetricFilter struct { 66 pulumi.CustomResourceState 67 68 // The name of the log group to associate the metric filter with. 69 LogGroupName pulumi.StringOutput `pulumi:"logGroupName"` 70 // A block defining collection of information needed to define how metric data gets emitted. See below. 71 MetricTransformation LogMetricFilterMetricTransformationOutput `pulumi:"metricTransformation"` 72 // A name for the metric filter. 73 Name pulumi.StringOutput `pulumi:"name"` 74 // A valid [CloudWatch Logs filter pattern](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/FilterAndPatternSyntax.html) 75 // for extracting metric data out of ingested log events. 76 Pattern pulumi.StringOutput `pulumi:"pattern"` 77 } 78 79 // NewLogMetricFilter registers a new resource with the given unique name, arguments, and options. 80 func NewLogMetricFilter(ctx *pulumi.Context, 81 name string, args *LogMetricFilterArgs, opts ...pulumi.ResourceOption) (*LogMetricFilter, error) { 82 if args == nil { 83 return nil, errors.New("missing one or more required arguments") 84 } 85 86 if args.LogGroupName == nil { 87 return nil, errors.New("invalid value for required argument 'LogGroupName'") 88 } 89 if args.MetricTransformation == nil { 90 return nil, errors.New("invalid value for required argument 'MetricTransformation'") 91 } 92 if args.Pattern == nil { 93 return nil, errors.New("invalid value for required argument 'Pattern'") 94 } 95 opts = internal.PkgResourceDefaultOpts(opts) 96 var resource LogMetricFilter 97 err := ctx.RegisterResource("aws:cloudwatch/logMetricFilter:LogMetricFilter", name, args, &resource, opts...) 98 if err != nil { 99 return nil, err 100 } 101 return &resource, nil 102 } 103 104 // GetLogMetricFilter gets an existing LogMetricFilter resource's state with the given name, ID, and optional 105 // state properties that are used to uniquely qualify the lookup (nil if not required). 106 func GetLogMetricFilter(ctx *pulumi.Context, 107 name string, id pulumi.IDInput, state *LogMetricFilterState, opts ...pulumi.ResourceOption) (*LogMetricFilter, error) { 108 var resource LogMetricFilter 109 err := ctx.ReadResource("aws:cloudwatch/logMetricFilter:LogMetricFilter", name, id, state, &resource, opts...) 110 if err != nil { 111 return nil, err 112 } 113 return &resource, nil 114 } 115 116 // Input properties used for looking up and filtering LogMetricFilter resources. 117 type logMetricFilterState struct { 118 // The name of the log group to associate the metric filter with. 119 LogGroupName *string `pulumi:"logGroupName"` 120 // A block defining collection of information needed to define how metric data gets emitted. See below. 121 MetricTransformation *LogMetricFilterMetricTransformation `pulumi:"metricTransformation"` 122 // A name for the metric filter. 123 Name *string `pulumi:"name"` 124 // A valid [CloudWatch Logs filter pattern](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/FilterAndPatternSyntax.html) 125 // for extracting metric data out of ingested log events. 126 Pattern *string `pulumi:"pattern"` 127 } 128 129 type LogMetricFilterState struct { 130 // The name of the log group to associate the metric filter with. 131 LogGroupName pulumi.StringPtrInput 132 // A block defining collection of information needed to define how metric data gets emitted. See below. 133 MetricTransformation LogMetricFilterMetricTransformationPtrInput 134 // A name for the metric filter. 135 Name pulumi.StringPtrInput 136 // A valid [CloudWatch Logs filter pattern](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/FilterAndPatternSyntax.html) 137 // for extracting metric data out of ingested log events. 138 Pattern pulumi.StringPtrInput 139 } 140 141 func (LogMetricFilterState) ElementType() reflect.Type { 142 return reflect.TypeOf((*logMetricFilterState)(nil)).Elem() 143 } 144 145 type logMetricFilterArgs struct { 146 // The name of the log group to associate the metric filter with. 147 LogGroupName string `pulumi:"logGroupName"` 148 // A block defining collection of information needed to define how metric data gets emitted. See below. 149 MetricTransformation LogMetricFilterMetricTransformation `pulumi:"metricTransformation"` 150 // A name for the metric filter. 151 Name *string `pulumi:"name"` 152 // A valid [CloudWatch Logs filter pattern](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/FilterAndPatternSyntax.html) 153 // for extracting metric data out of ingested log events. 154 Pattern string `pulumi:"pattern"` 155 } 156 157 // The set of arguments for constructing a LogMetricFilter resource. 158 type LogMetricFilterArgs struct { 159 // The name of the log group to associate the metric filter with. 160 LogGroupName pulumi.StringInput 161 // A block defining collection of information needed to define how metric data gets emitted. See below. 162 MetricTransformation LogMetricFilterMetricTransformationInput 163 // A name for the metric filter. 164 Name pulumi.StringPtrInput 165 // A valid [CloudWatch Logs filter pattern](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/FilterAndPatternSyntax.html) 166 // for extracting metric data out of ingested log events. 167 Pattern pulumi.StringInput 168 } 169 170 func (LogMetricFilterArgs) ElementType() reflect.Type { 171 return reflect.TypeOf((*logMetricFilterArgs)(nil)).Elem() 172 } 173 174 type LogMetricFilterInput interface { 175 pulumi.Input 176 177 ToLogMetricFilterOutput() LogMetricFilterOutput 178 ToLogMetricFilterOutputWithContext(ctx context.Context) LogMetricFilterOutput 179 } 180 181 func (*LogMetricFilter) ElementType() reflect.Type { 182 return reflect.TypeOf((**LogMetricFilter)(nil)).Elem() 183 } 184 185 func (i *LogMetricFilter) ToLogMetricFilterOutput() LogMetricFilterOutput { 186 return i.ToLogMetricFilterOutputWithContext(context.Background()) 187 } 188 189 func (i *LogMetricFilter) ToLogMetricFilterOutputWithContext(ctx context.Context) LogMetricFilterOutput { 190 return pulumi.ToOutputWithContext(ctx, i).(LogMetricFilterOutput) 191 } 192 193 // LogMetricFilterArrayInput is an input type that accepts LogMetricFilterArray and LogMetricFilterArrayOutput values. 194 // You can construct a concrete instance of `LogMetricFilterArrayInput` via: 195 // 196 // LogMetricFilterArray{ LogMetricFilterArgs{...} } 197 type LogMetricFilterArrayInput interface { 198 pulumi.Input 199 200 ToLogMetricFilterArrayOutput() LogMetricFilterArrayOutput 201 ToLogMetricFilterArrayOutputWithContext(context.Context) LogMetricFilterArrayOutput 202 } 203 204 type LogMetricFilterArray []LogMetricFilterInput 205 206 func (LogMetricFilterArray) ElementType() reflect.Type { 207 return reflect.TypeOf((*[]*LogMetricFilter)(nil)).Elem() 208 } 209 210 func (i LogMetricFilterArray) ToLogMetricFilterArrayOutput() LogMetricFilterArrayOutput { 211 return i.ToLogMetricFilterArrayOutputWithContext(context.Background()) 212 } 213 214 func (i LogMetricFilterArray) ToLogMetricFilterArrayOutputWithContext(ctx context.Context) LogMetricFilterArrayOutput { 215 return pulumi.ToOutputWithContext(ctx, i).(LogMetricFilterArrayOutput) 216 } 217 218 // LogMetricFilterMapInput is an input type that accepts LogMetricFilterMap and LogMetricFilterMapOutput values. 219 // You can construct a concrete instance of `LogMetricFilterMapInput` via: 220 // 221 // LogMetricFilterMap{ "key": LogMetricFilterArgs{...} } 222 type LogMetricFilterMapInput interface { 223 pulumi.Input 224 225 ToLogMetricFilterMapOutput() LogMetricFilterMapOutput 226 ToLogMetricFilterMapOutputWithContext(context.Context) LogMetricFilterMapOutput 227 } 228 229 type LogMetricFilterMap map[string]LogMetricFilterInput 230 231 func (LogMetricFilterMap) ElementType() reflect.Type { 232 return reflect.TypeOf((*map[string]*LogMetricFilter)(nil)).Elem() 233 } 234 235 func (i LogMetricFilterMap) ToLogMetricFilterMapOutput() LogMetricFilterMapOutput { 236 return i.ToLogMetricFilterMapOutputWithContext(context.Background()) 237 } 238 239 func (i LogMetricFilterMap) ToLogMetricFilterMapOutputWithContext(ctx context.Context) LogMetricFilterMapOutput { 240 return pulumi.ToOutputWithContext(ctx, i).(LogMetricFilterMapOutput) 241 } 242 243 type LogMetricFilterOutput struct{ *pulumi.OutputState } 244 245 func (LogMetricFilterOutput) ElementType() reflect.Type { 246 return reflect.TypeOf((**LogMetricFilter)(nil)).Elem() 247 } 248 249 func (o LogMetricFilterOutput) ToLogMetricFilterOutput() LogMetricFilterOutput { 250 return o 251 } 252 253 func (o LogMetricFilterOutput) ToLogMetricFilterOutputWithContext(ctx context.Context) LogMetricFilterOutput { 254 return o 255 } 256 257 // The name of the log group to associate the metric filter with. 258 func (o LogMetricFilterOutput) LogGroupName() pulumi.StringOutput { 259 return o.ApplyT(func(v *LogMetricFilter) pulumi.StringOutput { return v.LogGroupName }).(pulumi.StringOutput) 260 } 261 262 // A block defining collection of information needed to define how metric data gets emitted. See below. 263 func (o LogMetricFilterOutput) MetricTransformation() LogMetricFilterMetricTransformationOutput { 264 return o.ApplyT(func(v *LogMetricFilter) LogMetricFilterMetricTransformationOutput { return v.MetricTransformation }).(LogMetricFilterMetricTransformationOutput) 265 } 266 267 // A name for the metric filter. 268 func (o LogMetricFilterOutput) Name() pulumi.StringOutput { 269 return o.ApplyT(func(v *LogMetricFilter) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) 270 } 271 272 // A valid [CloudWatch Logs filter pattern](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/FilterAndPatternSyntax.html) 273 // for extracting metric data out of ingested log events. 274 func (o LogMetricFilterOutput) Pattern() pulumi.StringOutput { 275 return o.ApplyT(func(v *LogMetricFilter) pulumi.StringOutput { return v.Pattern }).(pulumi.StringOutput) 276 } 277 278 type LogMetricFilterArrayOutput struct{ *pulumi.OutputState } 279 280 func (LogMetricFilterArrayOutput) ElementType() reflect.Type { 281 return reflect.TypeOf((*[]*LogMetricFilter)(nil)).Elem() 282 } 283 284 func (o LogMetricFilterArrayOutput) ToLogMetricFilterArrayOutput() LogMetricFilterArrayOutput { 285 return o 286 } 287 288 func (o LogMetricFilterArrayOutput) ToLogMetricFilterArrayOutputWithContext(ctx context.Context) LogMetricFilterArrayOutput { 289 return o 290 } 291 292 func (o LogMetricFilterArrayOutput) Index(i pulumi.IntInput) LogMetricFilterOutput { 293 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *LogMetricFilter { 294 return vs[0].([]*LogMetricFilter)[vs[1].(int)] 295 }).(LogMetricFilterOutput) 296 } 297 298 type LogMetricFilterMapOutput struct{ *pulumi.OutputState } 299 300 func (LogMetricFilterMapOutput) ElementType() reflect.Type { 301 return reflect.TypeOf((*map[string]*LogMetricFilter)(nil)).Elem() 302 } 303 304 func (o LogMetricFilterMapOutput) ToLogMetricFilterMapOutput() LogMetricFilterMapOutput { 305 return o 306 } 307 308 func (o LogMetricFilterMapOutput) ToLogMetricFilterMapOutputWithContext(ctx context.Context) LogMetricFilterMapOutput { 309 return o 310 } 311 312 func (o LogMetricFilterMapOutput) MapIndex(k pulumi.StringInput) LogMetricFilterOutput { 313 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *LogMetricFilter { 314 return vs[0].(map[string]*LogMetricFilter)[vs[1].(string)] 315 }).(LogMetricFilterOutput) 316 } 317 318 func init() { 319 pulumi.RegisterInputType(reflect.TypeOf((*LogMetricFilterInput)(nil)).Elem(), &LogMetricFilter{}) 320 pulumi.RegisterInputType(reflect.TypeOf((*LogMetricFilterArrayInput)(nil)).Elem(), LogMetricFilterArray{}) 321 pulumi.RegisterInputType(reflect.TypeOf((*LogMetricFilterMapInput)(nil)).Elem(), LogMetricFilterMap{}) 322 pulumi.RegisterOutputType(LogMetricFilterOutput{}) 323 pulumi.RegisterOutputType(LogMetricFilterArrayOutput{}) 324 pulumi.RegisterOutputType(LogMetricFilterMapOutput{}) 325 }