github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/glue/classifier.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 glue
     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  // Provides a Glue Classifier resource.
    15  //
    16  // > **NOTE:** It is only valid to create one type of classifier (csv, grok, JSON, or XML). Changing classifier types will recreate the classifier.
    17  //
    18  // ## Example Usage
    19  //
    20  // ### Csv Classifier
    21  //
    22  // <!--Start PulumiCodeChooser -->
    23  // ```go
    24  // package main
    25  //
    26  // import (
    27  //
    28  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/glue"
    29  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    30  //
    31  // )
    32  //
    33  //	func main() {
    34  //		pulumi.Run(func(ctx *pulumi.Context) error {
    35  //			_, err := glue.NewClassifier(ctx, "example", &glue.ClassifierArgs{
    36  //				Name: pulumi.String("example"),
    37  //				CsvClassifier: &glue.ClassifierCsvClassifierArgs{
    38  //					AllowSingleColumn:    pulumi.Bool(false),
    39  //					ContainsHeader:       pulumi.String("PRESENT"),
    40  //					Delimiter:            pulumi.String(","),
    41  //					DisableValueTrimming: pulumi.Bool(false),
    42  //					Headers: pulumi.StringArray{
    43  //						pulumi.String("example1"),
    44  //						pulumi.String("example2"),
    45  //					},
    46  //					QuoteSymbol: pulumi.String("'"),
    47  //				},
    48  //			})
    49  //			if err != nil {
    50  //				return err
    51  //			}
    52  //			return nil
    53  //		})
    54  //	}
    55  //
    56  // ```
    57  // <!--End PulumiCodeChooser -->
    58  //
    59  // ### Grok Classifier
    60  //
    61  // <!--Start PulumiCodeChooser -->
    62  // ```go
    63  // package main
    64  //
    65  // import (
    66  //
    67  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/glue"
    68  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    69  //
    70  // )
    71  //
    72  //	func main() {
    73  //		pulumi.Run(func(ctx *pulumi.Context) error {
    74  //			_, err := glue.NewClassifier(ctx, "example", &glue.ClassifierArgs{
    75  //				Name: pulumi.String("example"),
    76  //				GrokClassifier: &glue.ClassifierGrokClassifierArgs{
    77  //					Classification: pulumi.String("example"),
    78  //					GrokPattern:    pulumi.String("example"),
    79  //				},
    80  //			})
    81  //			if err != nil {
    82  //				return err
    83  //			}
    84  //			return nil
    85  //		})
    86  //	}
    87  //
    88  // ```
    89  // <!--End PulumiCodeChooser -->
    90  //
    91  // ### JSON Classifier
    92  //
    93  // <!--Start PulumiCodeChooser -->
    94  // ```go
    95  // package main
    96  //
    97  // import (
    98  //
    99  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/glue"
   100  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   101  //
   102  // )
   103  //
   104  //	func main() {
   105  //		pulumi.Run(func(ctx *pulumi.Context) error {
   106  //			_, err := glue.NewClassifier(ctx, "example", &glue.ClassifierArgs{
   107  //				Name: pulumi.String("example"),
   108  //				JsonClassifier: &glue.ClassifierJsonClassifierArgs{
   109  //					JsonPath: pulumi.String("example"),
   110  //				},
   111  //			})
   112  //			if err != nil {
   113  //				return err
   114  //			}
   115  //			return nil
   116  //		})
   117  //	}
   118  //
   119  // ```
   120  // <!--End PulumiCodeChooser -->
   121  //
   122  // ### XML Classifier
   123  //
   124  // <!--Start PulumiCodeChooser -->
   125  // ```go
   126  // package main
   127  //
   128  // import (
   129  //
   130  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/glue"
   131  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   132  //
   133  // )
   134  //
   135  //	func main() {
   136  //		pulumi.Run(func(ctx *pulumi.Context) error {
   137  //			_, err := glue.NewClassifier(ctx, "example", &glue.ClassifierArgs{
   138  //				Name: pulumi.String("example"),
   139  //				XmlClassifier: &glue.ClassifierXmlClassifierArgs{
   140  //					Classification: pulumi.String("example"),
   141  //					RowTag:         pulumi.String("example"),
   142  //				},
   143  //			})
   144  //			if err != nil {
   145  //				return err
   146  //			}
   147  //			return nil
   148  //		})
   149  //	}
   150  //
   151  // ```
   152  // <!--End PulumiCodeChooser -->
   153  //
   154  // ## Import
   155  //
   156  // Using `pulumi import`, import Glue Classifiers using their name. For example:
   157  //
   158  // ```sh
   159  // $ pulumi import aws:glue/classifier:Classifier MyClassifier MyClassifier
   160  // ```
   161  type Classifier struct {
   162  	pulumi.CustomResourceState
   163  
   164  	// A classifier for Csv content. Defined below.
   165  	CsvClassifier ClassifierCsvClassifierPtrOutput `pulumi:"csvClassifier"`
   166  	// A classifier that uses grok patterns. Defined below.
   167  	GrokClassifier ClassifierGrokClassifierPtrOutput `pulumi:"grokClassifier"`
   168  	// A classifier for JSON content. Defined below.
   169  	JsonClassifier ClassifierJsonClassifierPtrOutput `pulumi:"jsonClassifier"`
   170  	// The name of the classifier.
   171  	Name pulumi.StringOutput `pulumi:"name"`
   172  	// A classifier for XML content. Defined below.
   173  	XmlClassifier ClassifierXmlClassifierPtrOutput `pulumi:"xmlClassifier"`
   174  }
   175  
   176  // NewClassifier registers a new resource with the given unique name, arguments, and options.
   177  func NewClassifier(ctx *pulumi.Context,
   178  	name string, args *ClassifierArgs, opts ...pulumi.ResourceOption) (*Classifier, error) {
   179  	if args == nil {
   180  		args = &ClassifierArgs{}
   181  	}
   182  
   183  	opts = internal.PkgResourceDefaultOpts(opts)
   184  	var resource Classifier
   185  	err := ctx.RegisterResource("aws:glue/classifier:Classifier", name, args, &resource, opts...)
   186  	if err != nil {
   187  		return nil, err
   188  	}
   189  	return &resource, nil
   190  }
   191  
   192  // GetClassifier gets an existing Classifier resource's state with the given name, ID, and optional
   193  // state properties that are used to uniquely qualify the lookup (nil if not required).
   194  func GetClassifier(ctx *pulumi.Context,
   195  	name string, id pulumi.IDInput, state *ClassifierState, opts ...pulumi.ResourceOption) (*Classifier, error) {
   196  	var resource Classifier
   197  	err := ctx.ReadResource("aws:glue/classifier:Classifier", name, id, state, &resource, opts...)
   198  	if err != nil {
   199  		return nil, err
   200  	}
   201  	return &resource, nil
   202  }
   203  
   204  // Input properties used for looking up and filtering Classifier resources.
   205  type classifierState struct {
   206  	// A classifier for Csv content. Defined below.
   207  	CsvClassifier *ClassifierCsvClassifier `pulumi:"csvClassifier"`
   208  	// A classifier that uses grok patterns. Defined below.
   209  	GrokClassifier *ClassifierGrokClassifier `pulumi:"grokClassifier"`
   210  	// A classifier for JSON content. Defined below.
   211  	JsonClassifier *ClassifierJsonClassifier `pulumi:"jsonClassifier"`
   212  	// The name of the classifier.
   213  	Name *string `pulumi:"name"`
   214  	// A classifier for XML content. Defined below.
   215  	XmlClassifier *ClassifierXmlClassifier `pulumi:"xmlClassifier"`
   216  }
   217  
   218  type ClassifierState struct {
   219  	// A classifier for Csv content. Defined below.
   220  	CsvClassifier ClassifierCsvClassifierPtrInput
   221  	// A classifier that uses grok patterns. Defined below.
   222  	GrokClassifier ClassifierGrokClassifierPtrInput
   223  	// A classifier for JSON content. Defined below.
   224  	JsonClassifier ClassifierJsonClassifierPtrInput
   225  	// The name of the classifier.
   226  	Name pulumi.StringPtrInput
   227  	// A classifier for XML content. Defined below.
   228  	XmlClassifier ClassifierXmlClassifierPtrInput
   229  }
   230  
   231  func (ClassifierState) ElementType() reflect.Type {
   232  	return reflect.TypeOf((*classifierState)(nil)).Elem()
   233  }
   234  
   235  type classifierArgs struct {
   236  	// A classifier for Csv content. Defined below.
   237  	CsvClassifier *ClassifierCsvClassifier `pulumi:"csvClassifier"`
   238  	// A classifier that uses grok patterns. Defined below.
   239  	GrokClassifier *ClassifierGrokClassifier `pulumi:"grokClassifier"`
   240  	// A classifier for JSON content. Defined below.
   241  	JsonClassifier *ClassifierJsonClassifier `pulumi:"jsonClassifier"`
   242  	// The name of the classifier.
   243  	Name *string `pulumi:"name"`
   244  	// A classifier for XML content. Defined below.
   245  	XmlClassifier *ClassifierXmlClassifier `pulumi:"xmlClassifier"`
   246  }
   247  
   248  // The set of arguments for constructing a Classifier resource.
   249  type ClassifierArgs struct {
   250  	// A classifier for Csv content. Defined below.
   251  	CsvClassifier ClassifierCsvClassifierPtrInput
   252  	// A classifier that uses grok patterns. Defined below.
   253  	GrokClassifier ClassifierGrokClassifierPtrInput
   254  	// A classifier for JSON content. Defined below.
   255  	JsonClassifier ClassifierJsonClassifierPtrInput
   256  	// The name of the classifier.
   257  	Name pulumi.StringPtrInput
   258  	// A classifier for XML content. Defined below.
   259  	XmlClassifier ClassifierXmlClassifierPtrInput
   260  }
   261  
   262  func (ClassifierArgs) ElementType() reflect.Type {
   263  	return reflect.TypeOf((*classifierArgs)(nil)).Elem()
   264  }
   265  
   266  type ClassifierInput interface {
   267  	pulumi.Input
   268  
   269  	ToClassifierOutput() ClassifierOutput
   270  	ToClassifierOutputWithContext(ctx context.Context) ClassifierOutput
   271  }
   272  
   273  func (*Classifier) ElementType() reflect.Type {
   274  	return reflect.TypeOf((**Classifier)(nil)).Elem()
   275  }
   276  
   277  func (i *Classifier) ToClassifierOutput() ClassifierOutput {
   278  	return i.ToClassifierOutputWithContext(context.Background())
   279  }
   280  
   281  func (i *Classifier) ToClassifierOutputWithContext(ctx context.Context) ClassifierOutput {
   282  	return pulumi.ToOutputWithContext(ctx, i).(ClassifierOutput)
   283  }
   284  
   285  // ClassifierArrayInput is an input type that accepts ClassifierArray and ClassifierArrayOutput values.
   286  // You can construct a concrete instance of `ClassifierArrayInput` via:
   287  //
   288  //	ClassifierArray{ ClassifierArgs{...} }
   289  type ClassifierArrayInput interface {
   290  	pulumi.Input
   291  
   292  	ToClassifierArrayOutput() ClassifierArrayOutput
   293  	ToClassifierArrayOutputWithContext(context.Context) ClassifierArrayOutput
   294  }
   295  
   296  type ClassifierArray []ClassifierInput
   297  
   298  func (ClassifierArray) ElementType() reflect.Type {
   299  	return reflect.TypeOf((*[]*Classifier)(nil)).Elem()
   300  }
   301  
   302  func (i ClassifierArray) ToClassifierArrayOutput() ClassifierArrayOutput {
   303  	return i.ToClassifierArrayOutputWithContext(context.Background())
   304  }
   305  
   306  func (i ClassifierArray) ToClassifierArrayOutputWithContext(ctx context.Context) ClassifierArrayOutput {
   307  	return pulumi.ToOutputWithContext(ctx, i).(ClassifierArrayOutput)
   308  }
   309  
   310  // ClassifierMapInput is an input type that accepts ClassifierMap and ClassifierMapOutput values.
   311  // You can construct a concrete instance of `ClassifierMapInput` via:
   312  //
   313  //	ClassifierMap{ "key": ClassifierArgs{...} }
   314  type ClassifierMapInput interface {
   315  	pulumi.Input
   316  
   317  	ToClassifierMapOutput() ClassifierMapOutput
   318  	ToClassifierMapOutputWithContext(context.Context) ClassifierMapOutput
   319  }
   320  
   321  type ClassifierMap map[string]ClassifierInput
   322  
   323  func (ClassifierMap) ElementType() reflect.Type {
   324  	return reflect.TypeOf((*map[string]*Classifier)(nil)).Elem()
   325  }
   326  
   327  func (i ClassifierMap) ToClassifierMapOutput() ClassifierMapOutput {
   328  	return i.ToClassifierMapOutputWithContext(context.Background())
   329  }
   330  
   331  func (i ClassifierMap) ToClassifierMapOutputWithContext(ctx context.Context) ClassifierMapOutput {
   332  	return pulumi.ToOutputWithContext(ctx, i).(ClassifierMapOutput)
   333  }
   334  
   335  type ClassifierOutput struct{ *pulumi.OutputState }
   336  
   337  func (ClassifierOutput) ElementType() reflect.Type {
   338  	return reflect.TypeOf((**Classifier)(nil)).Elem()
   339  }
   340  
   341  func (o ClassifierOutput) ToClassifierOutput() ClassifierOutput {
   342  	return o
   343  }
   344  
   345  func (o ClassifierOutput) ToClassifierOutputWithContext(ctx context.Context) ClassifierOutput {
   346  	return o
   347  }
   348  
   349  // A classifier for Csv content. Defined below.
   350  func (o ClassifierOutput) CsvClassifier() ClassifierCsvClassifierPtrOutput {
   351  	return o.ApplyT(func(v *Classifier) ClassifierCsvClassifierPtrOutput { return v.CsvClassifier }).(ClassifierCsvClassifierPtrOutput)
   352  }
   353  
   354  // A classifier that uses grok patterns. Defined below.
   355  func (o ClassifierOutput) GrokClassifier() ClassifierGrokClassifierPtrOutput {
   356  	return o.ApplyT(func(v *Classifier) ClassifierGrokClassifierPtrOutput { return v.GrokClassifier }).(ClassifierGrokClassifierPtrOutput)
   357  }
   358  
   359  // A classifier for JSON content. Defined below.
   360  func (o ClassifierOutput) JsonClassifier() ClassifierJsonClassifierPtrOutput {
   361  	return o.ApplyT(func(v *Classifier) ClassifierJsonClassifierPtrOutput { return v.JsonClassifier }).(ClassifierJsonClassifierPtrOutput)
   362  }
   363  
   364  // The name of the classifier.
   365  func (o ClassifierOutput) Name() pulumi.StringOutput {
   366  	return o.ApplyT(func(v *Classifier) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   367  }
   368  
   369  // A classifier for XML content. Defined below.
   370  func (o ClassifierOutput) XmlClassifier() ClassifierXmlClassifierPtrOutput {
   371  	return o.ApplyT(func(v *Classifier) ClassifierXmlClassifierPtrOutput { return v.XmlClassifier }).(ClassifierXmlClassifierPtrOutput)
   372  }
   373  
   374  type ClassifierArrayOutput struct{ *pulumi.OutputState }
   375  
   376  func (ClassifierArrayOutput) ElementType() reflect.Type {
   377  	return reflect.TypeOf((*[]*Classifier)(nil)).Elem()
   378  }
   379  
   380  func (o ClassifierArrayOutput) ToClassifierArrayOutput() ClassifierArrayOutput {
   381  	return o
   382  }
   383  
   384  func (o ClassifierArrayOutput) ToClassifierArrayOutputWithContext(ctx context.Context) ClassifierArrayOutput {
   385  	return o
   386  }
   387  
   388  func (o ClassifierArrayOutput) Index(i pulumi.IntInput) ClassifierOutput {
   389  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Classifier {
   390  		return vs[0].([]*Classifier)[vs[1].(int)]
   391  	}).(ClassifierOutput)
   392  }
   393  
   394  type ClassifierMapOutput struct{ *pulumi.OutputState }
   395  
   396  func (ClassifierMapOutput) ElementType() reflect.Type {
   397  	return reflect.TypeOf((*map[string]*Classifier)(nil)).Elem()
   398  }
   399  
   400  func (o ClassifierMapOutput) ToClassifierMapOutput() ClassifierMapOutput {
   401  	return o
   402  }
   403  
   404  func (o ClassifierMapOutput) ToClassifierMapOutputWithContext(ctx context.Context) ClassifierMapOutput {
   405  	return o
   406  }
   407  
   408  func (o ClassifierMapOutput) MapIndex(k pulumi.StringInput) ClassifierOutput {
   409  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Classifier {
   410  		return vs[0].(map[string]*Classifier)[vs[1].(string)]
   411  	}).(ClassifierOutput)
   412  }
   413  
   414  func init() {
   415  	pulumi.RegisterInputType(reflect.TypeOf((*ClassifierInput)(nil)).Elem(), &Classifier{})
   416  	pulumi.RegisterInputType(reflect.TypeOf((*ClassifierArrayInput)(nil)).Elem(), ClassifierArray{})
   417  	pulumi.RegisterInputType(reflect.TypeOf((*ClassifierMapInput)(nil)).Elem(), ClassifierMap{})
   418  	pulumi.RegisterOutputType(ClassifierOutput{})
   419  	pulumi.RegisterOutputType(ClassifierArrayOutput{})
   420  	pulumi.RegisterOutputType(ClassifierMapOutput{})
   421  }