github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/comprehend/documentClassifier.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 comprehend
     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  // Resource for managing an AWS Comprehend Document Classifier.
    16  //
    17  // ## Example Usage
    18  //
    19  // ### Basic Usage
    20  //
    21  // <!--Start PulumiCodeChooser -->
    22  // ```go
    23  // package main
    24  //
    25  // import (
    26  //
    27  //	"fmt"
    28  //
    29  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/comprehend"
    30  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3"
    31  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    32  //
    33  // )
    34  //
    35  //	func main() {
    36  //		pulumi.Run(func(ctx *pulumi.Context) error {
    37  //			documents, err := s3.NewBucketObjectv2(ctx, "documents", nil)
    38  //			if err != nil {
    39  //				return err
    40  //			}
    41  //			_, err = comprehend.NewDocumentClassifier(ctx, "example", &comprehend.DocumentClassifierArgs{
    42  //				Name:              pulumi.String("example"),
    43  //				DataAccessRoleArn: pulumi.Any(exampleAwsIamRole.Arn),
    44  //				LanguageCode:      pulumi.String("en"),
    45  //				InputDataConfig: &comprehend.DocumentClassifierInputDataConfigArgs{
    46  //					S3Uri: documents.ID().ApplyT(func(id string) (string, error) {
    47  //						return fmt.Sprintf("s3://%v/%v", test.Bucket, id), nil
    48  //					}).(pulumi.StringOutput),
    49  //				},
    50  //			}, pulumi.DependsOn([]pulumi.Resource{
    51  //				exampleAwsIamRolePolicy,
    52  //			}))
    53  //			if err != nil {
    54  //				return err
    55  //			}
    56  //			_, err = s3.NewBucketObjectv2(ctx, "entities", nil)
    57  //			if err != nil {
    58  //				return err
    59  //			}
    60  //			return nil
    61  //		})
    62  //	}
    63  //
    64  // ```
    65  // <!--End PulumiCodeChooser -->
    66  //
    67  // ## Import
    68  //
    69  // Using `pulumi import`, import Comprehend Document Classifier using the ARN. For example:
    70  //
    71  // ```sh
    72  // $ pulumi import aws:comprehend/documentClassifier:DocumentClassifier example arn:aws:comprehend:us-west-2:123456789012:document_classifier/example
    73  // ```
    74  type DocumentClassifier struct {
    75  	pulumi.CustomResourceState
    76  
    77  	// ARN of the Document Classifier version.
    78  	Arn pulumi.StringOutput `pulumi:"arn"`
    79  	// The ARN for an IAM Role which allows Comprehend to read the training and testing data.
    80  	DataAccessRoleArn pulumi.StringOutput `pulumi:"dataAccessRoleArn"`
    81  	// Configuration for the training and testing data.
    82  	// See the `inputDataConfig` Configuration Block section below.
    83  	InputDataConfig DocumentClassifierInputDataConfigOutput `pulumi:"inputDataConfig"`
    84  	// Two-letter language code for the language.
    85  	// One of `en`, `es`, `fr`, `it`, `de`, or `pt`.
    86  	LanguageCode pulumi.StringOutput `pulumi:"languageCode"`
    87  	// The document classification mode.
    88  	// One of `MULTI_CLASS` or `MULTI_LABEL`.
    89  	// `MULTI_CLASS` is also known as "Single Label" in the AWS Console.
    90  	Mode pulumi.StringPtrOutput `pulumi:"mode"`
    91  	// KMS Key used to encrypt trained Document Classifiers.
    92  	// Can be a KMS Key ID or a KMS Key ARN.
    93  	ModelKmsKeyId pulumi.StringPtrOutput `pulumi:"modelKmsKeyId"`
    94  	// Name for the Document Classifier.
    95  	// Has a maximum length of 63 characters.
    96  	// Can contain upper- and lower-case letters, numbers, and hypen (`-`).
    97  	//
    98  	// The following arguments are optional:
    99  	Name pulumi.StringOutput `pulumi:"name"`
   100  	// Configuration for the output results of training.
   101  	// See the `outputDataConfig` Configuration Block section below.
   102  	OutputDataConfig DocumentClassifierOutputDataConfigOutput `pulumi:"outputDataConfig"`
   103  	// A map of tags to assign to the resource. If configured with a provider `defaultTags` Configuration Block present, tags with matching keys will overwrite those defined at the provider-level.
   104  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   105  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   106  	//
   107  	// Deprecated: Please use `tags` instead.
   108  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   109  	// Name for the version of the Document Classifier.
   110  	// Each version must have a unique name within the Document Classifier.
   111  	// If omitted, the provider will assign a random, unique version name.
   112  	// If explicitly set to `""`, no version name will be set.
   113  	// Has a maximum length of 63 characters.
   114  	// Can contain upper- and lower-case letters, numbers, and hypen (`-`).
   115  	// Conflicts with `versionNamePrefix`.
   116  	VersionName pulumi.StringOutput `pulumi:"versionName"`
   117  	// Creates a unique version name beginning with the specified prefix.
   118  	// Has a maximum length of 37 characters.
   119  	// Can contain upper- and lower-case letters, numbers, and hypen (`-`).
   120  	// Conflicts with `versionName`.
   121  	VersionNamePrefix pulumi.StringOutput `pulumi:"versionNamePrefix"`
   122  	// KMS Key used to encrypt storage volumes during job processing.
   123  	// Can be a KMS Key ID or a KMS Key ARN.
   124  	VolumeKmsKeyId pulumi.StringPtrOutput `pulumi:"volumeKmsKeyId"`
   125  	// Configuration parameters for VPC to contain Document Classifier resources.
   126  	// See the `vpcConfig` Configuration Block section below.
   127  	VpcConfig DocumentClassifierVpcConfigPtrOutput `pulumi:"vpcConfig"`
   128  }
   129  
   130  // NewDocumentClassifier registers a new resource with the given unique name, arguments, and options.
   131  func NewDocumentClassifier(ctx *pulumi.Context,
   132  	name string, args *DocumentClassifierArgs, opts ...pulumi.ResourceOption) (*DocumentClassifier, error) {
   133  	if args == nil {
   134  		return nil, errors.New("missing one or more required arguments")
   135  	}
   136  
   137  	if args.DataAccessRoleArn == nil {
   138  		return nil, errors.New("invalid value for required argument 'DataAccessRoleArn'")
   139  	}
   140  	if args.InputDataConfig == nil {
   141  		return nil, errors.New("invalid value for required argument 'InputDataConfig'")
   142  	}
   143  	if args.LanguageCode == nil {
   144  		return nil, errors.New("invalid value for required argument 'LanguageCode'")
   145  	}
   146  	opts = internal.PkgResourceDefaultOpts(opts)
   147  	var resource DocumentClassifier
   148  	err := ctx.RegisterResource("aws:comprehend/documentClassifier:DocumentClassifier", name, args, &resource, opts...)
   149  	if err != nil {
   150  		return nil, err
   151  	}
   152  	return &resource, nil
   153  }
   154  
   155  // GetDocumentClassifier gets an existing DocumentClassifier resource's state with the given name, ID, and optional
   156  // state properties that are used to uniquely qualify the lookup (nil if not required).
   157  func GetDocumentClassifier(ctx *pulumi.Context,
   158  	name string, id pulumi.IDInput, state *DocumentClassifierState, opts ...pulumi.ResourceOption) (*DocumentClassifier, error) {
   159  	var resource DocumentClassifier
   160  	err := ctx.ReadResource("aws:comprehend/documentClassifier:DocumentClassifier", name, id, state, &resource, opts...)
   161  	if err != nil {
   162  		return nil, err
   163  	}
   164  	return &resource, nil
   165  }
   166  
   167  // Input properties used for looking up and filtering DocumentClassifier resources.
   168  type documentClassifierState struct {
   169  	// ARN of the Document Classifier version.
   170  	Arn *string `pulumi:"arn"`
   171  	// The ARN for an IAM Role which allows Comprehend to read the training and testing data.
   172  	DataAccessRoleArn *string `pulumi:"dataAccessRoleArn"`
   173  	// Configuration for the training and testing data.
   174  	// See the `inputDataConfig` Configuration Block section below.
   175  	InputDataConfig *DocumentClassifierInputDataConfig `pulumi:"inputDataConfig"`
   176  	// Two-letter language code for the language.
   177  	// One of `en`, `es`, `fr`, `it`, `de`, or `pt`.
   178  	LanguageCode *string `pulumi:"languageCode"`
   179  	// The document classification mode.
   180  	// One of `MULTI_CLASS` or `MULTI_LABEL`.
   181  	// `MULTI_CLASS` is also known as "Single Label" in the AWS Console.
   182  	Mode *string `pulumi:"mode"`
   183  	// KMS Key used to encrypt trained Document Classifiers.
   184  	// Can be a KMS Key ID or a KMS Key ARN.
   185  	ModelKmsKeyId *string `pulumi:"modelKmsKeyId"`
   186  	// Name for the Document Classifier.
   187  	// Has a maximum length of 63 characters.
   188  	// Can contain upper- and lower-case letters, numbers, and hypen (`-`).
   189  	//
   190  	// The following arguments are optional:
   191  	Name *string `pulumi:"name"`
   192  	// Configuration for the output results of training.
   193  	// See the `outputDataConfig` Configuration Block section below.
   194  	OutputDataConfig *DocumentClassifierOutputDataConfig `pulumi:"outputDataConfig"`
   195  	// A map of tags to assign to the resource. If configured with a provider `defaultTags` Configuration Block present, tags with matching keys will overwrite those defined at the provider-level.
   196  	Tags map[string]string `pulumi:"tags"`
   197  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   198  	//
   199  	// Deprecated: Please use `tags` instead.
   200  	TagsAll map[string]string `pulumi:"tagsAll"`
   201  	// Name for the version of the Document Classifier.
   202  	// Each version must have a unique name within the Document Classifier.
   203  	// If omitted, the provider will assign a random, unique version name.
   204  	// If explicitly set to `""`, no version name will be set.
   205  	// Has a maximum length of 63 characters.
   206  	// Can contain upper- and lower-case letters, numbers, and hypen (`-`).
   207  	// Conflicts with `versionNamePrefix`.
   208  	VersionName *string `pulumi:"versionName"`
   209  	// Creates a unique version name beginning with the specified prefix.
   210  	// Has a maximum length of 37 characters.
   211  	// Can contain upper- and lower-case letters, numbers, and hypen (`-`).
   212  	// Conflicts with `versionName`.
   213  	VersionNamePrefix *string `pulumi:"versionNamePrefix"`
   214  	// KMS Key used to encrypt storage volumes during job processing.
   215  	// Can be a KMS Key ID or a KMS Key ARN.
   216  	VolumeKmsKeyId *string `pulumi:"volumeKmsKeyId"`
   217  	// Configuration parameters for VPC to contain Document Classifier resources.
   218  	// See the `vpcConfig` Configuration Block section below.
   219  	VpcConfig *DocumentClassifierVpcConfig `pulumi:"vpcConfig"`
   220  }
   221  
   222  type DocumentClassifierState struct {
   223  	// ARN of the Document Classifier version.
   224  	Arn pulumi.StringPtrInput
   225  	// The ARN for an IAM Role which allows Comprehend to read the training and testing data.
   226  	DataAccessRoleArn pulumi.StringPtrInput
   227  	// Configuration for the training and testing data.
   228  	// See the `inputDataConfig` Configuration Block section below.
   229  	InputDataConfig DocumentClassifierInputDataConfigPtrInput
   230  	// Two-letter language code for the language.
   231  	// One of `en`, `es`, `fr`, `it`, `de`, or `pt`.
   232  	LanguageCode pulumi.StringPtrInput
   233  	// The document classification mode.
   234  	// One of `MULTI_CLASS` or `MULTI_LABEL`.
   235  	// `MULTI_CLASS` is also known as "Single Label" in the AWS Console.
   236  	Mode pulumi.StringPtrInput
   237  	// KMS Key used to encrypt trained Document Classifiers.
   238  	// Can be a KMS Key ID or a KMS Key ARN.
   239  	ModelKmsKeyId pulumi.StringPtrInput
   240  	// Name for the Document Classifier.
   241  	// Has a maximum length of 63 characters.
   242  	// Can contain upper- and lower-case letters, numbers, and hypen (`-`).
   243  	//
   244  	// The following arguments are optional:
   245  	Name pulumi.StringPtrInput
   246  	// Configuration for the output results of training.
   247  	// See the `outputDataConfig` Configuration Block section below.
   248  	OutputDataConfig DocumentClassifierOutputDataConfigPtrInput
   249  	// A map of tags to assign to the resource. If configured with a provider `defaultTags` Configuration Block present, tags with matching keys will overwrite those defined at the provider-level.
   250  	Tags pulumi.StringMapInput
   251  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   252  	//
   253  	// Deprecated: Please use `tags` instead.
   254  	TagsAll pulumi.StringMapInput
   255  	// Name for the version of the Document Classifier.
   256  	// Each version must have a unique name within the Document Classifier.
   257  	// If omitted, the provider will assign a random, unique version name.
   258  	// If explicitly set to `""`, no version name will be set.
   259  	// Has a maximum length of 63 characters.
   260  	// Can contain upper- and lower-case letters, numbers, and hypen (`-`).
   261  	// Conflicts with `versionNamePrefix`.
   262  	VersionName pulumi.StringPtrInput
   263  	// Creates a unique version name beginning with the specified prefix.
   264  	// Has a maximum length of 37 characters.
   265  	// Can contain upper- and lower-case letters, numbers, and hypen (`-`).
   266  	// Conflicts with `versionName`.
   267  	VersionNamePrefix pulumi.StringPtrInput
   268  	// KMS Key used to encrypt storage volumes during job processing.
   269  	// Can be a KMS Key ID or a KMS Key ARN.
   270  	VolumeKmsKeyId pulumi.StringPtrInput
   271  	// Configuration parameters for VPC to contain Document Classifier resources.
   272  	// See the `vpcConfig` Configuration Block section below.
   273  	VpcConfig DocumentClassifierVpcConfigPtrInput
   274  }
   275  
   276  func (DocumentClassifierState) ElementType() reflect.Type {
   277  	return reflect.TypeOf((*documentClassifierState)(nil)).Elem()
   278  }
   279  
   280  type documentClassifierArgs struct {
   281  	// The ARN for an IAM Role which allows Comprehend to read the training and testing data.
   282  	DataAccessRoleArn string `pulumi:"dataAccessRoleArn"`
   283  	// Configuration for the training and testing data.
   284  	// See the `inputDataConfig` Configuration Block section below.
   285  	InputDataConfig DocumentClassifierInputDataConfig `pulumi:"inputDataConfig"`
   286  	// Two-letter language code for the language.
   287  	// One of `en`, `es`, `fr`, `it`, `de`, or `pt`.
   288  	LanguageCode string `pulumi:"languageCode"`
   289  	// The document classification mode.
   290  	// One of `MULTI_CLASS` or `MULTI_LABEL`.
   291  	// `MULTI_CLASS` is also known as "Single Label" in the AWS Console.
   292  	Mode *string `pulumi:"mode"`
   293  	// KMS Key used to encrypt trained Document Classifiers.
   294  	// Can be a KMS Key ID or a KMS Key ARN.
   295  	ModelKmsKeyId *string `pulumi:"modelKmsKeyId"`
   296  	// Name for the Document Classifier.
   297  	// Has a maximum length of 63 characters.
   298  	// Can contain upper- and lower-case letters, numbers, and hypen (`-`).
   299  	//
   300  	// The following arguments are optional:
   301  	Name *string `pulumi:"name"`
   302  	// Configuration for the output results of training.
   303  	// See the `outputDataConfig` Configuration Block section below.
   304  	OutputDataConfig *DocumentClassifierOutputDataConfig `pulumi:"outputDataConfig"`
   305  	// A map of tags to assign to the resource. If configured with a provider `defaultTags` Configuration Block present, tags with matching keys will overwrite those defined at the provider-level.
   306  	Tags map[string]string `pulumi:"tags"`
   307  	// Name for the version of the Document Classifier.
   308  	// Each version must have a unique name within the Document Classifier.
   309  	// If omitted, the provider will assign a random, unique version name.
   310  	// If explicitly set to `""`, no version name will be set.
   311  	// Has a maximum length of 63 characters.
   312  	// Can contain upper- and lower-case letters, numbers, and hypen (`-`).
   313  	// Conflicts with `versionNamePrefix`.
   314  	VersionName *string `pulumi:"versionName"`
   315  	// Creates a unique version name beginning with the specified prefix.
   316  	// Has a maximum length of 37 characters.
   317  	// Can contain upper- and lower-case letters, numbers, and hypen (`-`).
   318  	// Conflicts with `versionName`.
   319  	VersionNamePrefix *string `pulumi:"versionNamePrefix"`
   320  	// KMS Key used to encrypt storage volumes during job processing.
   321  	// Can be a KMS Key ID or a KMS Key ARN.
   322  	VolumeKmsKeyId *string `pulumi:"volumeKmsKeyId"`
   323  	// Configuration parameters for VPC to contain Document Classifier resources.
   324  	// See the `vpcConfig` Configuration Block section below.
   325  	VpcConfig *DocumentClassifierVpcConfig `pulumi:"vpcConfig"`
   326  }
   327  
   328  // The set of arguments for constructing a DocumentClassifier resource.
   329  type DocumentClassifierArgs struct {
   330  	// The ARN for an IAM Role which allows Comprehend to read the training and testing data.
   331  	DataAccessRoleArn pulumi.StringInput
   332  	// Configuration for the training and testing data.
   333  	// See the `inputDataConfig` Configuration Block section below.
   334  	InputDataConfig DocumentClassifierInputDataConfigInput
   335  	// Two-letter language code for the language.
   336  	// One of `en`, `es`, `fr`, `it`, `de`, or `pt`.
   337  	LanguageCode pulumi.StringInput
   338  	// The document classification mode.
   339  	// One of `MULTI_CLASS` or `MULTI_LABEL`.
   340  	// `MULTI_CLASS` is also known as "Single Label" in the AWS Console.
   341  	Mode pulumi.StringPtrInput
   342  	// KMS Key used to encrypt trained Document Classifiers.
   343  	// Can be a KMS Key ID or a KMS Key ARN.
   344  	ModelKmsKeyId pulumi.StringPtrInput
   345  	// Name for the Document Classifier.
   346  	// Has a maximum length of 63 characters.
   347  	// Can contain upper- and lower-case letters, numbers, and hypen (`-`).
   348  	//
   349  	// The following arguments are optional:
   350  	Name pulumi.StringPtrInput
   351  	// Configuration for the output results of training.
   352  	// See the `outputDataConfig` Configuration Block section below.
   353  	OutputDataConfig DocumentClassifierOutputDataConfigPtrInput
   354  	// A map of tags to assign to the resource. If configured with a provider `defaultTags` Configuration Block present, tags with matching keys will overwrite those defined at the provider-level.
   355  	Tags pulumi.StringMapInput
   356  	// Name for the version of the Document Classifier.
   357  	// Each version must have a unique name within the Document Classifier.
   358  	// If omitted, the provider will assign a random, unique version name.
   359  	// If explicitly set to `""`, no version name will be set.
   360  	// Has a maximum length of 63 characters.
   361  	// Can contain upper- and lower-case letters, numbers, and hypen (`-`).
   362  	// Conflicts with `versionNamePrefix`.
   363  	VersionName pulumi.StringPtrInput
   364  	// Creates a unique version name beginning with the specified prefix.
   365  	// Has a maximum length of 37 characters.
   366  	// Can contain upper- and lower-case letters, numbers, and hypen (`-`).
   367  	// Conflicts with `versionName`.
   368  	VersionNamePrefix pulumi.StringPtrInput
   369  	// KMS Key used to encrypt storage volumes during job processing.
   370  	// Can be a KMS Key ID or a KMS Key ARN.
   371  	VolumeKmsKeyId pulumi.StringPtrInput
   372  	// Configuration parameters for VPC to contain Document Classifier resources.
   373  	// See the `vpcConfig` Configuration Block section below.
   374  	VpcConfig DocumentClassifierVpcConfigPtrInput
   375  }
   376  
   377  func (DocumentClassifierArgs) ElementType() reflect.Type {
   378  	return reflect.TypeOf((*documentClassifierArgs)(nil)).Elem()
   379  }
   380  
   381  type DocumentClassifierInput interface {
   382  	pulumi.Input
   383  
   384  	ToDocumentClassifierOutput() DocumentClassifierOutput
   385  	ToDocumentClassifierOutputWithContext(ctx context.Context) DocumentClassifierOutput
   386  }
   387  
   388  func (*DocumentClassifier) ElementType() reflect.Type {
   389  	return reflect.TypeOf((**DocumentClassifier)(nil)).Elem()
   390  }
   391  
   392  func (i *DocumentClassifier) ToDocumentClassifierOutput() DocumentClassifierOutput {
   393  	return i.ToDocumentClassifierOutputWithContext(context.Background())
   394  }
   395  
   396  func (i *DocumentClassifier) ToDocumentClassifierOutputWithContext(ctx context.Context) DocumentClassifierOutput {
   397  	return pulumi.ToOutputWithContext(ctx, i).(DocumentClassifierOutput)
   398  }
   399  
   400  // DocumentClassifierArrayInput is an input type that accepts DocumentClassifierArray and DocumentClassifierArrayOutput values.
   401  // You can construct a concrete instance of `DocumentClassifierArrayInput` via:
   402  //
   403  //	DocumentClassifierArray{ DocumentClassifierArgs{...} }
   404  type DocumentClassifierArrayInput interface {
   405  	pulumi.Input
   406  
   407  	ToDocumentClassifierArrayOutput() DocumentClassifierArrayOutput
   408  	ToDocumentClassifierArrayOutputWithContext(context.Context) DocumentClassifierArrayOutput
   409  }
   410  
   411  type DocumentClassifierArray []DocumentClassifierInput
   412  
   413  func (DocumentClassifierArray) ElementType() reflect.Type {
   414  	return reflect.TypeOf((*[]*DocumentClassifier)(nil)).Elem()
   415  }
   416  
   417  func (i DocumentClassifierArray) ToDocumentClassifierArrayOutput() DocumentClassifierArrayOutput {
   418  	return i.ToDocumentClassifierArrayOutputWithContext(context.Background())
   419  }
   420  
   421  func (i DocumentClassifierArray) ToDocumentClassifierArrayOutputWithContext(ctx context.Context) DocumentClassifierArrayOutput {
   422  	return pulumi.ToOutputWithContext(ctx, i).(DocumentClassifierArrayOutput)
   423  }
   424  
   425  // DocumentClassifierMapInput is an input type that accepts DocumentClassifierMap and DocumentClassifierMapOutput values.
   426  // You can construct a concrete instance of `DocumentClassifierMapInput` via:
   427  //
   428  //	DocumentClassifierMap{ "key": DocumentClassifierArgs{...} }
   429  type DocumentClassifierMapInput interface {
   430  	pulumi.Input
   431  
   432  	ToDocumentClassifierMapOutput() DocumentClassifierMapOutput
   433  	ToDocumentClassifierMapOutputWithContext(context.Context) DocumentClassifierMapOutput
   434  }
   435  
   436  type DocumentClassifierMap map[string]DocumentClassifierInput
   437  
   438  func (DocumentClassifierMap) ElementType() reflect.Type {
   439  	return reflect.TypeOf((*map[string]*DocumentClassifier)(nil)).Elem()
   440  }
   441  
   442  func (i DocumentClassifierMap) ToDocumentClassifierMapOutput() DocumentClassifierMapOutput {
   443  	return i.ToDocumentClassifierMapOutputWithContext(context.Background())
   444  }
   445  
   446  func (i DocumentClassifierMap) ToDocumentClassifierMapOutputWithContext(ctx context.Context) DocumentClassifierMapOutput {
   447  	return pulumi.ToOutputWithContext(ctx, i).(DocumentClassifierMapOutput)
   448  }
   449  
   450  type DocumentClassifierOutput struct{ *pulumi.OutputState }
   451  
   452  func (DocumentClassifierOutput) ElementType() reflect.Type {
   453  	return reflect.TypeOf((**DocumentClassifier)(nil)).Elem()
   454  }
   455  
   456  func (o DocumentClassifierOutput) ToDocumentClassifierOutput() DocumentClassifierOutput {
   457  	return o
   458  }
   459  
   460  func (o DocumentClassifierOutput) ToDocumentClassifierOutputWithContext(ctx context.Context) DocumentClassifierOutput {
   461  	return o
   462  }
   463  
   464  // ARN of the Document Classifier version.
   465  func (o DocumentClassifierOutput) Arn() pulumi.StringOutput {
   466  	return o.ApplyT(func(v *DocumentClassifier) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   467  }
   468  
   469  // The ARN for an IAM Role which allows Comprehend to read the training and testing data.
   470  func (o DocumentClassifierOutput) DataAccessRoleArn() pulumi.StringOutput {
   471  	return o.ApplyT(func(v *DocumentClassifier) pulumi.StringOutput { return v.DataAccessRoleArn }).(pulumi.StringOutput)
   472  }
   473  
   474  // Configuration for the training and testing data.
   475  // See the `inputDataConfig` Configuration Block section below.
   476  func (o DocumentClassifierOutput) InputDataConfig() DocumentClassifierInputDataConfigOutput {
   477  	return o.ApplyT(func(v *DocumentClassifier) DocumentClassifierInputDataConfigOutput { return v.InputDataConfig }).(DocumentClassifierInputDataConfigOutput)
   478  }
   479  
   480  // Two-letter language code for the language.
   481  // One of `en`, `es`, `fr`, `it`, `de`, or `pt`.
   482  func (o DocumentClassifierOutput) LanguageCode() pulumi.StringOutput {
   483  	return o.ApplyT(func(v *DocumentClassifier) pulumi.StringOutput { return v.LanguageCode }).(pulumi.StringOutput)
   484  }
   485  
   486  // The document classification mode.
   487  // One of `MULTI_CLASS` or `MULTI_LABEL`.
   488  // `MULTI_CLASS` is also known as "Single Label" in the AWS Console.
   489  func (o DocumentClassifierOutput) Mode() pulumi.StringPtrOutput {
   490  	return o.ApplyT(func(v *DocumentClassifier) pulumi.StringPtrOutput { return v.Mode }).(pulumi.StringPtrOutput)
   491  }
   492  
   493  // KMS Key used to encrypt trained Document Classifiers.
   494  // Can be a KMS Key ID or a KMS Key ARN.
   495  func (o DocumentClassifierOutput) ModelKmsKeyId() pulumi.StringPtrOutput {
   496  	return o.ApplyT(func(v *DocumentClassifier) pulumi.StringPtrOutput { return v.ModelKmsKeyId }).(pulumi.StringPtrOutput)
   497  }
   498  
   499  // Name for the Document Classifier.
   500  // Has a maximum length of 63 characters.
   501  // Can contain upper- and lower-case letters, numbers, and hypen (`-`).
   502  //
   503  // The following arguments are optional:
   504  func (o DocumentClassifierOutput) Name() pulumi.StringOutput {
   505  	return o.ApplyT(func(v *DocumentClassifier) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   506  }
   507  
   508  // Configuration for the output results of training.
   509  // See the `outputDataConfig` Configuration Block section below.
   510  func (o DocumentClassifierOutput) OutputDataConfig() DocumentClassifierOutputDataConfigOutput {
   511  	return o.ApplyT(func(v *DocumentClassifier) DocumentClassifierOutputDataConfigOutput { return v.OutputDataConfig }).(DocumentClassifierOutputDataConfigOutput)
   512  }
   513  
   514  // A map of tags to assign to the resource. If configured with a provider `defaultTags` Configuration Block present, tags with matching keys will overwrite those defined at the provider-level.
   515  func (o DocumentClassifierOutput) Tags() pulumi.StringMapOutput {
   516  	return o.ApplyT(func(v *DocumentClassifier) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   517  }
   518  
   519  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   520  //
   521  // Deprecated: Please use `tags` instead.
   522  func (o DocumentClassifierOutput) TagsAll() pulumi.StringMapOutput {
   523  	return o.ApplyT(func(v *DocumentClassifier) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   524  }
   525  
   526  // Name for the version of the Document Classifier.
   527  // Each version must have a unique name within the Document Classifier.
   528  // If omitted, the provider will assign a random, unique version name.
   529  // If explicitly set to `""`, no version name will be set.
   530  // Has a maximum length of 63 characters.
   531  // Can contain upper- and lower-case letters, numbers, and hypen (`-`).
   532  // Conflicts with `versionNamePrefix`.
   533  func (o DocumentClassifierOutput) VersionName() pulumi.StringOutput {
   534  	return o.ApplyT(func(v *DocumentClassifier) pulumi.StringOutput { return v.VersionName }).(pulumi.StringOutput)
   535  }
   536  
   537  // Creates a unique version name beginning with the specified prefix.
   538  // Has a maximum length of 37 characters.
   539  // Can contain upper- and lower-case letters, numbers, and hypen (`-`).
   540  // Conflicts with `versionName`.
   541  func (o DocumentClassifierOutput) VersionNamePrefix() pulumi.StringOutput {
   542  	return o.ApplyT(func(v *DocumentClassifier) pulumi.StringOutput { return v.VersionNamePrefix }).(pulumi.StringOutput)
   543  }
   544  
   545  // KMS Key used to encrypt storage volumes during job processing.
   546  // Can be a KMS Key ID or a KMS Key ARN.
   547  func (o DocumentClassifierOutput) VolumeKmsKeyId() pulumi.StringPtrOutput {
   548  	return o.ApplyT(func(v *DocumentClassifier) pulumi.StringPtrOutput { return v.VolumeKmsKeyId }).(pulumi.StringPtrOutput)
   549  }
   550  
   551  // Configuration parameters for VPC to contain Document Classifier resources.
   552  // See the `vpcConfig` Configuration Block section below.
   553  func (o DocumentClassifierOutput) VpcConfig() DocumentClassifierVpcConfigPtrOutput {
   554  	return o.ApplyT(func(v *DocumentClassifier) DocumentClassifierVpcConfigPtrOutput { return v.VpcConfig }).(DocumentClassifierVpcConfigPtrOutput)
   555  }
   556  
   557  type DocumentClassifierArrayOutput struct{ *pulumi.OutputState }
   558  
   559  func (DocumentClassifierArrayOutput) ElementType() reflect.Type {
   560  	return reflect.TypeOf((*[]*DocumentClassifier)(nil)).Elem()
   561  }
   562  
   563  func (o DocumentClassifierArrayOutput) ToDocumentClassifierArrayOutput() DocumentClassifierArrayOutput {
   564  	return o
   565  }
   566  
   567  func (o DocumentClassifierArrayOutput) ToDocumentClassifierArrayOutputWithContext(ctx context.Context) DocumentClassifierArrayOutput {
   568  	return o
   569  }
   570  
   571  func (o DocumentClassifierArrayOutput) Index(i pulumi.IntInput) DocumentClassifierOutput {
   572  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *DocumentClassifier {
   573  		return vs[0].([]*DocumentClassifier)[vs[1].(int)]
   574  	}).(DocumentClassifierOutput)
   575  }
   576  
   577  type DocumentClassifierMapOutput struct{ *pulumi.OutputState }
   578  
   579  func (DocumentClassifierMapOutput) ElementType() reflect.Type {
   580  	return reflect.TypeOf((*map[string]*DocumentClassifier)(nil)).Elem()
   581  }
   582  
   583  func (o DocumentClassifierMapOutput) ToDocumentClassifierMapOutput() DocumentClassifierMapOutput {
   584  	return o
   585  }
   586  
   587  func (o DocumentClassifierMapOutput) ToDocumentClassifierMapOutputWithContext(ctx context.Context) DocumentClassifierMapOutput {
   588  	return o
   589  }
   590  
   591  func (o DocumentClassifierMapOutput) MapIndex(k pulumi.StringInput) DocumentClassifierOutput {
   592  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *DocumentClassifier {
   593  		return vs[0].(map[string]*DocumentClassifier)[vs[1].(string)]
   594  	}).(DocumentClassifierOutput)
   595  }
   596  
   597  func init() {
   598  	pulumi.RegisterInputType(reflect.TypeOf((*DocumentClassifierInput)(nil)).Elem(), &DocumentClassifier{})
   599  	pulumi.RegisterInputType(reflect.TypeOf((*DocumentClassifierArrayInput)(nil)).Elem(), DocumentClassifierArray{})
   600  	pulumi.RegisterInputType(reflect.TypeOf((*DocumentClassifierMapInput)(nil)).Elem(), DocumentClassifierMap{})
   601  	pulumi.RegisterOutputType(DocumentClassifierOutput{})
   602  	pulumi.RegisterOutputType(DocumentClassifierArrayOutput{})
   603  	pulumi.RegisterOutputType(DocumentClassifierMapOutput{})
   604  }