github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/transcribe/languageModel.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 transcribe
     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 Transcribe LanguageModel.
    16  //
    17  // > This resource can take a significant amount of time to provision. See Language Model [FAQ](https://aws.amazon.com/transcribe/faqs/) for more details.
    18  //
    19  // ## Example Usage
    20  //
    21  // ### Basic Usage
    22  //
    23  // <!--Start PulumiCodeChooser -->
    24  // ```go
    25  // package main
    26  //
    27  // import (
    28  //
    29  //	"encoding/json"
    30  //	"fmt"
    31  //
    32  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam"
    33  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3"
    34  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/transcribe"
    35  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    36  //
    37  // )
    38  //
    39  //	func main() {
    40  //		pulumi.Run(func(ctx *pulumi.Context) error {
    41  //			example, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{
    42  //				Statements: []iam.GetPolicyDocumentStatement{
    43  //					{
    44  //						Actions: []string{
    45  //							"sts:AssumeRole",
    46  //						},
    47  //						Principals: []iam.GetPolicyDocumentStatementPrincipal{
    48  //							{
    49  //								Type: "Service",
    50  //								Identifiers: []string{
    51  //									"transcribe.amazonaws.com",
    52  //								},
    53  //							},
    54  //						},
    55  //					},
    56  //				},
    57  //			}, nil)
    58  //			if err != nil {
    59  //				return err
    60  //			}
    61  //			exampleRole, err := iam.NewRole(ctx, "example", &iam.RoleArgs{
    62  //				Name:             pulumi.String("example"),
    63  //				AssumeRolePolicy: pulumi.String(example.Json),
    64  //			})
    65  //			if err != nil {
    66  //				return err
    67  //			}
    68  //			tmpJSON0, err := json.Marshal(map[string]interface{}{
    69  //				"Version": "2012-10-17",
    70  //				"Statement": []map[string]interface{}{
    71  //					map[string]interface{}{
    72  //						"Action": []string{
    73  //							"s3:GetObject",
    74  //							"s3:ListBucket",
    75  //						},
    76  //						"Effect": "Allow",
    77  //						"Resource": []string{
    78  //							"*",
    79  //						},
    80  //					},
    81  //				},
    82  //			})
    83  //			if err != nil {
    84  //				return err
    85  //			}
    86  //			json0 := string(tmpJSON0)
    87  //			_, err = iam.NewRolePolicy(ctx, "test_policy", &iam.RolePolicyArgs{
    88  //				Name:   pulumi.String("example"),
    89  //				Role:   exampleRole.ID(),
    90  //				Policy: pulumi.String(json0),
    91  //			})
    92  //			if err != nil {
    93  //				return err
    94  //			}
    95  //			exampleBucketV2, err := s3.NewBucketV2(ctx, "example", &s3.BucketV2Args{
    96  //				Bucket:       pulumi.String("example-transcribe"),
    97  //				ForceDestroy: pulumi.Bool(true),
    98  //			})
    99  //			if err != nil {
   100  //				return err
   101  //			}
   102  //			_, err = s3.NewBucketObjectv2(ctx, "object", &s3.BucketObjectv2Args{
   103  //				Bucket: exampleBucketV2.ID(),
   104  //				Key:    pulumi.String("transcribe/test1.txt"),
   105  //				Source: pulumi.NewFileAsset("test1.txt"),
   106  //			})
   107  //			if err != nil {
   108  //				return err
   109  //			}
   110  //			_, err = transcribe.NewLanguageModel(ctx, "example", &transcribe.LanguageModelArgs{
   111  //				ModelName:     pulumi.String("example"),
   112  //				BaseModelName: pulumi.String("NarrowBand"),
   113  //				InputDataConfig: &transcribe.LanguageModelInputDataConfigArgs{
   114  //					DataAccessRoleArn: exampleRole.Arn,
   115  //					S3Uri: exampleBucketV2.ID().ApplyT(func(id string) (string, error) {
   116  //						return fmt.Sprintf("s3://%v/transcribe/", id), nil
   117  //					}).(pulumi.StringOutput),
   118  //				},
   119  //				LanguageCode: pulumi.String("en-US"),
   120  //				Tags: pulumi.StringMap{
   121  //					"ENVIRONMENT": pulumi.String("development"),
   122  //				},
   123  //			})
   124  //			if err != nil {
   125  //				return err
   126  //			}
   127  //			return nil
   128  //		})
   129  //	}
   130  //
   131  // ```
   132  // <!--End PulumiCodeChooser -->
   133  //
   134  // ## Import
   135  //
   136  // Using `pulumi import`, import Transcribe LanguageModel using the `model_name`. For example:
   137  //
   138  // ```sh
   139  // $ pulumi import aws:transcribe/languageModel:LanguageModel example example-name
   140  // ```
   141  type LanguageModel struct {
   142  	pulumi.CustomResourceState
   143  
   144  	// ARN of the LanguageModel.
   145  	Arn pulumi.StringOutput `pulumi:"arn"`
   146  	// Name of reference base model.
   147  	BaseModelName pulumi.StringOutput `pulumi:"baseModelName"`
   148  	// The input data config for the LanguageModel. See Input Data Config for more details.
   149  	InputDataConfig LanguageModelInputDataConfigOutput `pulumi:"inputDataConfig"`
   150  	// The language code you selected for your language model. Refer to the [supported languages](https://docs.aws.amazon.com/transcribe/latest/dg/supported-languages.html) page for accepted codes.
   151  	LanguageCode pulumi.StringOutput `pulumi:"languageCode"`
   152  	// The model name.
   153  	ModelName pulumi.StringOutput `pulumi:"modelName"`
   154  	// A map of tags to assign to the LanguageModel. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   155  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   156  	// Deprecated: Please use `tags` instead.
   157  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   158  }
   159  
   160  // NewLanguageModel registers a new resource with the given unique name, arguments, and options.
   161  func NewLanguageModel(ctx *pulumi.Context,
   162  	name string, args *LanguageModelArgs, opts ...pulumi.ResourceOption) (*LanguageModel, error) {
   163  	if args == nil {
   164  		return nil, errors.New("missing one or more required arguments")
   165  	}
   166  
   167  	if args.BaseModelName == nil {
   168  		return nil, errors.New("invalid value for required argument 'BaseModelName'")
   169  	}
   170  	if args.InputDataConfig == nil {
   171  		return nil, errors.New("invalid value for required argument 'InputDataConfig'")
   172  	}
   173  	if args.LanguageCode == nil {
   174  		return nil, errors.New("invalid value for required argument 'LanguageCode'")
   175  	}
   176  	if args.ModelName == nil {
   177  		return nil, errors.New("invalid value for required argument 'ModelName'")
   178  	}
   179  	opts = internal.PkgResourceDefaultOpts(opts)
   180  	var resource LanguageModel
   181  	err := ctx.RegisterResource("aws:transcribe/languageModel:LanguageModel", name, args, &resource, opts...)
   182  	if err != nil {
   183  		return nil, err
   184  	}
   185  	return &resource, nil
   186  }
   187  
   188  // GetLanguageModel gets an existing LanguageModel resource's state with the given name, ID, and optional
   189  // state properties that are used to uniquely qualify the lookup (nil if not required).
   190  func GetLanguageModel(ctx *pulumi.Context,
   191  	name string, id pulumi.IDInput, state *LanguageModelState, opts ...pulumi.ResourceOption) (*LanguageModel, error) {
   192  	var resource LanguageModel
   193  	err := ctx.ReadResource("aws:transcribe/languageModel:LanguageModel", name, id, state, &resource, opts...)
   194  	if err != nil {
   195  		return nil, err
   196  	}
   197  	return &resource, nil
   198  }
   199  
   200  // Input properties used for looking up and filtering LanguageModel resources.
   201  type languageModelState struct {
   202  	// ARN of the LanguageModel.
   203  	Arn *string `pulumi:"arn"`
   204  	// Name of reference base model.
   205  	BaseModelName *string `pulumi:"baseModelName"`
   206  	// The input data config for the LanguageModel. See Input Data Config for more details.
   207  	InputDataConfig *LanguageModelInputDataConfig `pulumi:"inputDataConfig"`
   208  	// The language code you selected for your language model. Refer to the [supported languages](https://docs.aws.amazon.com/transcribe/latest/dg/supported-languages.html) page for accepted codes.
   209  	LanguageCode *string `pulumi:"languageCode"`
   210  	// The model name.
   211  	ModelName *string `pulumi:"modelName"`
   212  	// A map of tags to assign to the LanguageModel. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   213  	Tags map[string]string `pulumi:"tags"`
   214  	// Deprecated: Please use `tags` instead.
   215  	TagsAll map[string]string `pulumi:"tagsAll"`
   216  }
   217  
   218  type LanguageModelState struct {
   219  	// ARN of the LanguageModel.
   220  	Arn pulumi.StringPtrInput
   221  	// Name of reference base model.
   222  	BaseModelName pulumi.StringPtrInput
   223  	// The input data config for the LanguageModel. See Input Data Config for more details.
   224  	InputDataConfig LanguageModelInputDataConfigPtrInput
   225  	// The language code you selected for your language model. Refer to the [supported languages](https://docs.aws.amazon.com/transcribe/latest/dg/supported-languages.html) page for accepted codes.
   226  	LanguageCode pulumi.StringPtrInput
   227  	// The model name.
   228  	ModelName pulumi.StringPtrInput
   229  	// A map of tags to assign to the LanguageModel. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   230  	Tags pulumi.StringMapInput
   231  	// Deprecated: Please use `tags` instead.
   232  	TagsAll pulumi.StringMapInput
   233  }
   234  
   235  func (LanguageModelState) ElementType() reflect.Type {
   236  	return reflect.TypeOf((*languageModelState)(nil)).Elem()
   237  }
   238  
   239  type languageModelArgs struct {
   240  	// Name of reference base model.
   241  	BaseModelName string `pulumi:"baseModelName"`
   242  	// The input data config for the LanguageModel. See Input Data Config for more details.
   243  	InputDataConfig LanguageModelInputDataConfig `pulumi:"inputDataConfig"`
   244  	// The language code you selected for your language model. Refer to the [supported languages](https://docs.aws.amazon.com/transcribe/latest/dg/supported-languages.html) page for accepted codes.
   245  	LanguageCode string `pulumi:"languageCode"`
   246  	// The model name.
   247  	ModelName string `pulumi:"modelName"`
   248  	// A map of tags to assign to the LanguageModel. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   249  	Tags map[string]string `pulumi:"tags"`
   250  }
   251  
   252  // The set of arguments for constructing a LanguageModel resource.
   253  type LanguageModelArgs struct {
   254  	// Name of reference base model.
   255  	BaseModelName pulumi.StringInput
   256  	// The input data config for the LanguageModel. See Input Data Config for more details.
   257  	InputDataConfig LanguageModelInputDataConfigInput
   258  	// The language code you selected for your language model. Refer to the [supported languages](https://docs.aws.amazon.com/transcribe/latest/dg/supported-languages.html) page for accepted codes.
   259  	LanguageCode pulumi.StringInput
   260  	// The model name.
   261  	ModelName pulumi.StringInput
   262  	// A map of tags to assign to the LanguageModel. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   263  	Tags pulumi.StringMapInput
   264  }
   265  
   266  func (LanguageModelArgs) ElementType() reflect.Type {
   267  	return reflect.TypeOf((*languageModelArgs)(nil)).Elem()
   268  }
   269  
   270  type LanguageModelInput interface {
   271  	pulumi.Input
   272  
   273  	ToLanguageModelOutput() LanguageModelOutput
   274  	ToLanguageModelOutputWithContext(ctx context.Context) LanguageModelOutput
   275  }
   276  
   277  func (*LanguageModel) ElementType() reflect.Type {
   278  	return reflect.TypeOf((**LanguageModel)(nil)).Elem()
   279  }
   280  
   281  func (i *LanguageModel) ToLanguageModelOutput() LanguageModelOutput {
   282  	return i.ToLanguageModelOutputWithContext(context.Background())
   283  }
   284  
   285  func (i *LanguageModel) ToLanguageModelOutputWithContext(ctx context.Context) LanguageModelOutput {
   286  	return pulumi.ToOutputWithContext(ctx, i).(LanguageModelOutput)
   287  }
   288  
   289  // LanguageModelArrayInput is an input type that accepts LanguageModelArray and LanguageModelArrayOutput values.
   290  // You can construct a concrete instance of `LanguageModelArrayInput` via:
   291  //
   292  //	LanguageModelArray{ LanguageModelArgs{...} }
   293  type LanguageModelArrayInput interface {
   294  	pulumi.Input
   295  
   296  	ToLanguageModelArrayOutput() LanguageModelArrayOutput
   297  	ToLanguageModelArrayOutputWithContext(context.Context) LanguageModelArrayOutput
   298  }
   299  
   300  type LanguageModelArray []LanguageModelInput
   301  
   302  func (LanguageModelArray) ElementType() reflect.Type {
   303  	return reflect.TypeOf((*[]*LanguageModel)(nil)).Elem()
   304  }
   305  
   306  func (i LanguageModelArray) ToLanguageModelArrayOutput() LanguageModelArrayOutput {
   307  	return i.ToLanguageModelArrayOutputWithContext(context.Background())
   308  }
   309  
   310  func (i LanguageModelArray) ToLanguageModelArrayOutputWithContext(ctx context.Context) LanguageModelArrayOutput {
   311  	return pulumi.ToOutputWithContext(ctx, i).(LanguageModelArrayOutput)
   312  }
   313  
   314  // LanguageModelMapInput is an input type that accepts LanguageModelMap and LanguageModelMapOutput values.
   315  // You can construct a concrete instance of `LanguageModelMapInput` via:
   316  //
   317  //	LanguageModelMap{ "key": LanguageModelArgs{...} }
   318  type LanguageModelMapInput interface {
   319  	pulumi.Input
   320  
   321  	ToLanguageModelMapOutput() LanguageModelMapOutput
   322  	ToLanguageModelMapOutputWithContext(context.Context) LanguageModelMapOutput
   323  }
   324  
   325  type LanguageModelMap map[string]LanguageModelInput
   326  
   327  func (LanguageModelMap) ElementType() reflect.Type {
   328  	return reflect.TypeOf((*map[string]*LanguageModel)(nil)).Elem()
   329  }
   330  
   331  func (i LanguageModelMap) ToLanguageModelMapOutput() LanguageModelMapOutput {
   332  	return i.ToLanguageModelMapOutputWithContext(context.Background())
   333  }
   334  
   335  func (i LanguageModelMap) ToLanguageModelMapOutputWithContext(ctx context.Context) LanguageModelMapOutput {
   336  	return pulumi.ToOutputWithContext(ctx, i).(LanguageModelMapOutput)
   337  }
   338  
   339  type LanguageModelOutput struct{ *pulumi.OutputState }
   340  
   341  func (LanguageModelOutput) ElementType() reflect.Type {
   342  	return reflect.TypeOf((**LanguageModel)(nil)).Elem()
   343  }
   344  
   345  func (o LanguageModelOutput) ToLanguageModelOutput() LanguageModelOutput {
   346  	return o
   347  }
   348  
   349  func (o LanguageModelOutput) ToLanguageModelOutputWithContext(ctx context.Context) LanguageModelOutput {
   350  	return o
   351  }
   352  
   353  // ARN of the LanguageModel.
   354  func (o LanguageModelOutput) Arn() pulumi.StringOutput {
   355  	return o.ApplyT(func(v *LanguageModel) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   356  }
   357  
   358  // Name of reference base model.
   359  func (o LanguageModelOutput) BaseModelName() pulumi.StringOutput {
   360  	return o.ApplyT(func(v *LanguageModel) pulumi.StringOutput { return v.BaseModelName }).(pulumi.StringOutput)
   361  }
   362  
   363  // The input data config for the LanguageModel. See Input Data Config for more details.
   364  func (o LanguageModelOutput) InputDataConfig() LanguageModelInputDataConfigOutput {
   365  	return o.ApplyT(func(v *LanguageModel) LanguageModelInputDataConfigOutput { return v.InputDataConfig }).(LanguageModelInputDataConfigOutput)
   366  }
   367  
   368  // The language code you selected for your language model. Refer to the [supported languages](https://docs.aws.amazon.com/transcribe/latest/dg/supported-languages.html) page for accepted codes.
   369  func (o LanguageModelOutput) LanguageCode() pulumi.StringOutput {
   370  	return o.ApplyT(func(v *LanguageModel) pulumi.StringOutput { return v.LanguageCode }).(pulumi.StringOutput)
   371  }
   372  
   373  // The model name.
   374  func (o LanguageModelOutput) ModelName() pulumi.StringOutput {
   375  	return o.ApplyT(func(v *LanguageModel) pulumi.StringOutput { return v.ModelName }).(pulumi.StringOutput)
   376  }
   377  
   378  // A map of tags to assign to the LanguageModel. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   379  func (o LanguageModelOutput) Tags() pulumi.StringMapOutput {
   380  	return o.ApplyT(func(v *LanguageModel) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   381  }
   382  
   383  // Deprecated: Please use `tags` instead.
   384  func (o LanguageModelOutput) TagsAll() pulumi.StringMapOutput {
   385  	return o.ApplyT(func(v *LanguageModel) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   386  }
   387  
   388  type LanguageModelArrayOutput struct{ *pulumi.OutputState }
   389  
   390  func (LanguageModelArrayOutput) ElementType() reflect.Type {
   391  	return reflect.TypeOf((*[]*LanguageModel)(nil)).Elem()
   392  }
   393  
   394  func (o LanguageModelArrayOutput) ToLanguageModelArrayOutput() LanguageModelArrayOutput {
   395  	return o
   396  }
   397  
   398  func (o LanguageModelArrayOutput) ToLanguageModelArrayOutputWithContext(ctx context.Context) LanguageModelArrayOutput {
   399  	return o
   400  }
   401  
   402  func (o LanguageModelArrayOutput) Index(i pulumi.IntInput) LanguageModelOutput {
   403  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *LanguageModel {
   404  		return vs[0].([]*LanguageModel)[vs[1].(int)]
   405  	}).(LanguageModelOutput)
   406  }
   407  
   408  type LanguageModelMapOutput struct{ *pulumi.OutputState }
   409  
   410  func (LanguageModelMapOutput) ElementType() reflect.Type {
   411  	return reflect.TypeOf((*map[string]*LanguageModel)(nil)).Elem()
   412  }
   413  
   414  func (o LanguageModelMapOutput) ToLanguageModelMapOutput() LanguageModelMapOutput {
   415  	return o
   416  }
   417  
   418  func (o LanguageModelMapOutput) ToLanguageModelMapOutputWithContext(ctx context.Context) LanguageModelMapOutput {
   419  	return o
   420  }
   421  
   422  func (o LanguageModelMapOutput) MapIndex(k pulumi.StringInput) LanguageModelOutput {
   423  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *LanguageModel {
   424  		return vs[0].(map[string]*LanguageModel)[vs[1].(string)]
   425  	}).(LanguageModelOutput)
   426  }
   427  
   428  func init() {
   429  	pulumi.RegisterInputType(reflect.TypeOf((*LanguageModelInput)(nil)).Elem(), &LanguageModel{})
   430  	pulumi.RegisterInputType(reflect.TypeOf((*LanguageModelArrayInput)(nil)).Elem(), LanguageModelArray{})
   431  	pulumi.RegisterInputType(reflect.TypeOf((*LanguageModelMapInput)(nil)).Elem(), LanguageModelMap{})
   432  	pulumi.RegisterOutputType(LanguageModelOutput{})
   433  	pulumi.RegisterOutputType(LanguageModelArrayOutput{})
   434  	pulumi.RegisterOutputType(LanguageModelMapOutput{})
   435  }