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  }