github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/cloudwatch/queryDefinition.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 Logs query definition 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 // _, err := cloudwatch.NewQueryDefinition(ctx, "example", &cloudwatch.QueryDefinitionArgs{ 33 // Name: pulumi.String("custom_query"), 34 // LogGroupNames: pulumi.StringArray{ 35 // pulumi.String("/aws/logGroup1"), 36 // pulumi.String("/aws/logGroup2"), 37 // }, 38 // QueryString: pulumi.String("fields @timestamp, @message\n| sort @timestamp desc\n| limit 25\n"), 39 // }) 40 // if err != nil { 41 // return err 42 // } 43 // return nil 44 // }) 45 // } 46 // 47 // ``` 48 // <!--End PulumiCodeChooser --> 49 // 50 // ## Import 51 // 52 // Using `pulumi import`, import CloudWatch query definitions using the query definition ARN. The ARN can be found on the "Edit Query" page for the query in the AWS Console. For example: 53 // 54 // ```sh 55 // $ pulumi import aws:cloudwatch/queryDefinition:QueryDefinition example arn:aws:logs:us-west-2:123456789012:query-definition:269951d7-6f75-496d-9d7b-6b7a5486bdbd 56 // ``` 57 type QueryDefinition struct { 58 pulumi.CustomResourceState 59 60 // Specific log groups to use with the query. 61 LogGroupNames pulumi.StringArrayOutput `pulumi:"logGroupNames"` 62 // The name of the query. 63 Name pulumi.StringOutput `pulumi:"name"` 64 // The query definition ID. 65 QueryDefinitionId pulumi.StringOutput `pulumi:"queryDefinitionId"` 66 // The query to save. You can read more about CloudWatch Logs Query Syntax in the [documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html). 67 QueryString pulumi.StringOutput `pulumi:"queryString"` 68 } 69 70 // NewQueryDefinition registers a new resource with the given unique name, arguments, and options. 71 func NewQueryDefinition(ctx *pulumi.Context, 72 name string, args *QueryDefinitionArgs, opts ...pulumi.ResourceOption) (*QueryDefinition, error) { 73 if args == nil { 74 return nil, errors.New("missing one or more required arguments") 75 } 76 77 if args.QueryString == nil { 78 return nil, errors.New("invalid value for required argument 'QueryString'") 79 } 80 opts = internal.PkgResourceDefaultOpts(opts) 81 var resource QueryDefinition 82 err := ctx.RegisterResource("aws:cloudwatch/queryDefinition:QueryDefinition", name, args, &resource, opts...) 83 if err != nil { 84 return nil, err 85 } 86 return &resource, nil 87 } 88 89 // GetQueryDefinition gets an existing QueryDefinition resource's state with the given name, ID, and optional 90 // state properties that are used to uniquely qualify the lookup (nil if not required). 91 func GetQueryDefinition(ctx *pulumi.Context, 92 name string, id pulumi.IDInput, state *QueryDefinitionState, opts ...pulumi.ResourceOption) (*QueryDefinition, error) { 93 var resource QueryDefinition 94 err := ctx.ReadResource("aws:cloudwatch/queryDefinition:QueryDefinition", name, id, state, &resource, opts...) 95 if err != nil { 96 return nil, err 97 } 98 return &resource, nil 99 } 100 101 // Input properties used for looking up and filtering QueryDefinition resources. 102 type queryDefinitionState struct { 103 // Specific log groups to use with the query. 104 LogGroupNames []string `pulumi:"logGroupNames"` 105 // The name of the query. 106 Name *string `pulumi:"name"` 107 // The query definition ID. 108 QueryDefinitionId *string `pulumi:"queryDefinitionId"` 109 // The query to save. You can read more about CloudWatch Logs Query Syntax in the [documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html). 110 QueryString *string `pulumi:"queryString"` 111 } 112 113 type QueryDefinitionState struct { 114 // Specific log groups to use with the query. 115 LogGroupNames pulumi.StringArrayInput 116 // The name of the query. 117 Name pulumi.StringPtrInput 118 // The query definition ID. 119 QueryDefinitionId pulumi.StringPtrInput 120 // The query to save. You can read more about CloudWatch Logs Query Syntax in the [documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html). 121 QueryString pulumi.StringPtrInput 122 } 123 124 func (QueryDefinitionState) ElementType() reflect.Type { 125 return reflect.TypeOf((*queryDefinitionState)(nil)).Elem() 126 } 127 128 type queryDefinitionArgs struct { 129 // Specific log groups to use with the query. 130 LogGroupNames []string `pulumi:"logGroupNames"` 131 // The name of the query. 132 Name *string `pulumi:"name"` 133 // The query to save. You can read more about CloudWatch Logs Query Syntax in the [documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html). 134 QueryString string `pulumi:"queryString"` 135 } 136 137 // The set of arguments for constructing a QueryDefinition resource. 138 type QueryDefinitionArgs struct { 139 // Specific log groups to use with the query. 140 LogGroupNames pulumi.StringArrayInput 141 // The name of the query. 142 Name pulumi.StringPtrInput 143 // The query to save. You can read more about CloudWatch Logs Query Syntax in the [documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html). 144 QueryString pulumi.StringInput 145 } 146 147 func (QueryDefinitionArgs) ElementType() reflect.Type { 148 return reflect.TypeOf((*queryDefinitionArgs)(nil)).Elem() 149 } 150 151 type QueryDefinitionInput interface { 152 pulumi.Input 153 154 ToQueryDefinitionOutput() QueryDefinitionOutput 155 ToQueryDefinitionOutputWithContext(ctx context.Context) QueryDefinitionOutput 156 } 157 158 func (*QueryDefinition) ElementType() reflect.Type { 159 return reflect.TypeOf((**QueryDefinition)(nil)).Elem() 160 } 161 162 func (i *QueryDefinition) ToQueryDefinitionOutput() QueryDefinitionOutput { 163 return i.ToQueryDefinitionOutputWithContext(context.Background()) 164 } 165 166 func (i *QueryDefinition) ToQueryDefinitionOutputWithContext(ctx context.Context) QueryDefinitionOutput { 167 return pulumi.ToOutputWithContext(ctx, i).(QueryDefinitionOutput) 168 } 169 170 // QueryDefinitionArrayInput is an input type that accepts QueryDefinitionArray and QueryDefinitionArrayOutput values. 171 // You can construct a concrete instance of `QueryDefinitionArrayInput` via: 172 // 173 // QueryDefinitionArray{ QueryDefinitionArgs{...} } 174 type QueryDefinitionArrayInput interface { 175 pulumi.Input 176 177 ToQueryDefinitionArrayOutput() QueryDefinitionArrayOutput 178 ToQueryDefinitionArrayOutputWithContext(context.Context) QueryDefinitionArrayOutput 179 } 180 181 type QueryDefinitionArray []QueryDefinitionInput 182 183 func (QueryDefinitionArray) ElementType() reflect.Type { 184 return reflect.TypeOf((*[]*QueryDefinition)(nil)).Elem() 185 } 186 187 func (i QueryDefinitionArray) ToQueryDefinitionArrayOutput() QueryDefinitionArrayOutput { 188 return i.ToQueryDefinitionArrayOutputWithContext(context.Background()) 189 } 190 191 func (i QueryDefinitionArray) ToQueryDefinitionArrayOutputWithContext(ctx context.Context) QueryDefinitionArrayOutput { 192 return pulumi.ToOutputWithContext(ctx, i).(QueryDefinitionArrayOutput) 193 } 194 195 // QueryDefinitionMapInput is an input type that accepts QueryDefinitionMap and QueryDefinitionMapOutput values. 196 // You can construct a concrete instance of `QueryDefinitionMapInput` via: 197 // 198 // QueryDefinitionMap{ "key": QueryDefinitionArgs{...} } 199 type QueryDefinitionMapInput interface { 200 pulumi.Input 201 202 ToQueryDefinitionMapOutput() QueryDefinitionMapOutput 203 ToQueryDefinitionMapOutputWithContext(context.Context) QueryDefinitionMapOutput 204 } 205 206 type QueryDefinitionMap map[string]QueryDefinitionInput 207 208 func (QueryDefinitionMap) ElementType() reflect.Type { 209 return reflect.TypeOf((*map[string]*QueryDefinition)(nil)).Elem() 210 } 211 212 func (i QueryDefinitionMap) ToQueryDefinitionMapOutput() QueryDefinitionMapOutput { 213 return i.ToQueryDefinitionMapOutputWithContext(context.Background()) 214 } 215 216 func (i QueryDefinitionMap) ToQueryDefinitionMapOutputWithContext(ctx context.Context) QueryDefinitionMapOutput { 217 return pulumi.ToOutputWithContext(ctx, i).(QueryDefinitionMapOutput) 218 } 219 220 type QueryDefinitionOutput struct{ *pulumi.OutputState } 221 222 func (QueryDefinitionOutput) ElementType() reflect.Type { 223 return reflect.TypeOf((**QueryDefinition)(nil)).Elem() 224 } 225 226 func (o QueryDefinitionOutput) ToQueryDefinitionOutput() QueryDefinitionOutput { 227 return o 228 } 229 230 func (o QueryDefinitionOutput) ToQueryDefinitionOutputWithContext(ctx context.Context) QueryDefinitionOutput { 231 return o 232 } 233 234 // Specific log groups to use with the query. 235 func (o QueryDefinitionOutput) LogGroupNames() pulumi.StringArrayOutput { 236 return o.ApplyT(func(v *QueryDefinition) pulumi.StringArrayOutput { return v.LogGroupNames }).(pulumi.StringArrayOutput) 237 } 238 239 // The name of the query. 240 func (o QueryDefinitionOutput) Name() pulumi.StringOutput { 241 return o.ApplyT(func(v *QueryDefinition) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) 242 } 243 244 // The query definition ID. 245 func (o QueryDefinitionOutput) QueryDefinitionId() pulumi.StringOutput { 246 return o.ApplyT(func(v *QueryDefinition) pulumi.StringOutput { return v.QueryDefinitionId }).(pulumi.StringOutput) 247 } 248 249 // The query to save. You can read more about CloudWatch Logs Query Syntax in the [documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html). 250 func (o QueryDefinitionOutput) QueryString() pulumi.StringOutput { 251 return o.ApplyT(func(v *QueryDefinition) pulumi.StringOutput { return v.QueryString }).(pulumi.StringOutput) 252 } 253 254 type QueryDefinitionArrayOutput struct{ *pulumi.OutputState } 255 256 func (QueryDefinitionArrayOutput) ElementType() reflect.Type { 257 return reflect.TypeOf((*[]*QueryDefinition)(nil)).Elem() 258 } 259 260 func (o QueryDefinitionArrayOutput) ToQueryDefinitionArrayOutput() QueryDefinitionArrayOutput { 261 return o 262 } 263 264 func (o QueryDefinitionArrayOutput) ToQueryDefinitionArrayOutputWithContext(ctx context.Context) QueryDefinitionArrayOutput { 265 return o 266 } 267 268 func (o QueryDefinitionArrayOutput) Index(i pulumi.IntInput) QueryDefinitionOutput { 269 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *QueryDefinition { 270 return vs[0].([]*QueryDefinition)[vs[1].(int)] 271 }).(QueryDefinitionOutput) 272 } 273 274 type QueryDefinitionMapOutput struct{ *pulumi.OutputState } 275 276 func (QueryDefinitionMapOutput) ElementType() reflect.Type { 277 return reflect.TypeOf((*map[string]*QueryDefinition)(nil)).Elem() 278 } 279 280 func (o QueryDefinitionMapOutput) ToQueryDefinitionMapOutput() QueryDefinitionMapOutput { 281 return o 282 } 283 284 func (o QueryDefinitionMapOutput) ToQueryDefinitionMapOutputWithContext(ctx context.Context) QueryDefinitionMapOutput { 285 return o 286 } 287 288 func (o QueryDefinitionMapOutput) MapIndex(k pulumi.StringInput) QueryDefinitionOutput { 289 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *QueryDefinition { 290 return vs[0].(map[string]*QueryDefinition)[vs[1].(string)] 291 }).(QueryDefinitionOutput) 292 } 293 294 func init() { 295 pulumi.RegisterInputType(reflect.TypeOf((*QueryDefinitionInput)(nil)).Elem(), &QueryDefinition{}) 296 pulumi.RegisterInputType(reflect.TypeOf((*QueryDefinitionArrayInput)(nil)).Elem(), QueryDefinitionArray{}) 297 pulumi.RegisterInputType(reflect.TypeOf((*QueryDefinitionMapInput)(nil)).Elem(), QueryDefinitionMap{}) 298 pulumi.RegisterOutputType(QueryDefinitionOutput{}) 299 pulumi.RegisterOutputType(QueryDefinitionArrayOutput{}) 300 pulumi.RegisterOutputType(QueryDefinitionMapOutput{}) 301 }