github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/opensearchingest/pipeline.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 opensearchingest
     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 OpenSearch Ingestion Pipeline.
    16  //
    17  // ## Example Usage
    18  //
    19  // ### Basic Usage
    20  //
    21  // <!--Start PulumiCodeChooser -->
    22  // ```go
    23  // package main
    24  //
    25  // import (
    26  //
    27  //	"encoding/json"
    28  //	"fmt"
    29  //
    30  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws"
    31  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam"
    32  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/opensearchingest"
    33  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    34  //
    35  // )
    36  //
    37  //	func main() {
    38  //		pulumi.Run(func(ctx *pulumi.Context) error {
    39  //			current, err := aws.GetRegion(ctx, nil, nil)
    40  //			if err != nil {
    41  //				return err
    42  //			}
    43  //			tmpJSON0, err := json.Marshal(map[string]interface{}{
    44  //				"Version": "2012-10-17",
    45  //				"Statement": []map[string]interface{}{
    46  //					map[string]interface{}{
    47  //						"Action": "sts:AssumeRole",
    48  //						"Effect": "Allow",
    49  //						"Sid":    "",
    50  //						"Principal": map[string]interface{}{
    51  //							"Service": "osis-pipelines.amazonaws.com",
    52  //						},
    53  //					},
    54  //				},
    55  //			})
    56  //			if err != nil {
    57  //				return err
    58  //			}
    59  //			json0 := string(tmpJSON0)
    60  //			example, err := iam.NewRole(ctx, "example", &iam.RoleArgs{
    61  //				AssumeRolePolicy: pulumi.String(json0),
    62  //			})
    63  //			if err != nil {
    64  //				return err
    65  //			}
    66  //			_, err = opensearchingest.NewPipeline(ctx, "example", &opensearchingest.PipelineArgs{
    67  //				PipelineName: pulumi.String("example"),
    68  //				PipelineConfigurationBody: example.Arn.ApplyT(func(arn string) (string, error) {
    69  //					return fmt.Sprintf(`version: "2"
    70  //
    71  // example-pipeline:
    72  //
    73  //	source:
    74  //	  http:
    75  //	    path: "/example"
    76  //	sink:
    77  //	  - s3:
    78  //	      aws:
    79  //	        sts_role_arn: "%v"
    80  //	        region: "%v"
    81  //	      bucket: "example"
    82  //	      threshold:
    83  //	        event_collect_timeout: "60s"
    84  //	      codec:
    85  //	        ndjson:
    86  //
    87  // `, arn, current.Name), nil
    88  //
    89  //				}).(pulumi.StringOutput),
    90  //				MaxUnits: pulumi.Int(1),
    91  //				MinUnits: pulumi.Int(1),
    92  //			})
    93  //			if err != nil {
    94  //				return err
    95  //			}
    96  //			return nil
    97  //		})
    98  //	}
    99  //
   100  // ```
   101  // <!--End PulumiCodeChooser -->
   102  //
   103  // ### Using file function
   104  //
   105  // <!--Start PulumiCodeChooser -->
   106  // ```go
   107  // package main
   108  //
   109  // import (
   110  //
   111  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/opensearchingest"
   112  //	"github.com/pulumi/pulumi-std/sdk/go/std"
   113  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   114  //
   115  // )
   116  //
   117  //	func main() {
   118  //		pulumi.Run(func(ctx *pulumi.Context) error {
   119  //			invokeFile, err := std.File(ctx, &std.FileArgs{
   120  //				Input: "example.yaml",
   121  //			}, nil)
   122  //			if err != nil {
   123  //				return err
   124  //			}
   125  //			_, err = opensearchingest.NewPipeline(ctx, "example", &opensearchingest.PipelineArgs{
   126  //				PipelineName:              pulumi.String("example"),
   127  //				PipelineConfigurationBody: invokeFile.Result,
   128  //				MaxUnits:                  pulumi.Int(1),
   129  //				MinUnits:                  pulumi.Int(1),
   130  //			})
   131  //			if err != nil {
   132  //				return err
   133  //			}
   134  //			return nil
   135  //		})
   136  //	}
   137  //
   138  // ```
   139  // <!--End PulumiCodeChooser -->
   140  //
   141  // ## Import
   142  //
   143  // Using `pulumi import`, import OpenSearch Ingestion Pipeline using the `id`. For example:
   144  //
   145  // ```sh
   146  // $ pulumi import aws:opensearchingest/pipeline:Pipeline example example
   147  // ```
   148  type Pipeline struct {
   149  	pulumi.CustomResourceState
   150  
   151  	// Key-value pairs to configure persistent buffering for the pipeline. See `bufferOptions` below.
   152  	BufferOptions PipelineBufferOptionsPtrOutput `pulumi:"bufferOptions"`
   153  	// Key-value pairs to configure encryption for data that is written to a persistent buffer. See `encryptionAtRestOptions` below.
   154  	EncryptionAtRestOptions PipelineEncryptionAtRestOptionsPtrOutput `pulumi:"encryptionAtRestOptions"`
   155  	// The list of ingestion endpoints for the pipeline, which you can send data to.
   156  	IngestEndpointUrls pulumi.StringArrayOutput `pulumi:"ingestEndpointUrls"`
   157  	// Key-value pairs to configure log publishing. See `logPublishingOptions` below.
   158  	LogPublishingOptions PipelineLogPublishingOptionsPtrOutput `pulumi:"logPublishingOptions"`
   159  	// The maximum pipeline capacity, in Ingestion Compute Units (ICUs).
   160  	MaxUnits pulumi.IntOutput `pulumi:"maxUnits"`
   161  	// The minimum pipeline capacity, in Ingestion Compute Units (ICUs).
   162  	MinUnits pulumi.IntOutput `pulumi:"minUnits"`
   163  	// Amazon Resource Name (ARN) of the pipeline.
   164  	PipelineArn pulumi.StringOutput `pulumi:"pipelineArn"`
   165  	// The pipeline configuration in YAML format. This argument accepts the pipeline configuration as a string or within a .yaml file. If you provide the configuration as a string, each new line must be escaped with \n.
   166  	PipelineConfigurationBody pulumi.StringOutput `pulumi:"pipelineConfigurationBody"`
   167  	// The name of the OpenSearch Ingestion pipeline to create. Pipeline names are unique across the pipelines owned by an account within an AWS Region.
   168  	//
   169  	// The following arguments are optional:
   170  	PipelineName pulumi.StringOutput `pulumi:"pipelineName"`
   171  	// A map of tags to assign to the pipeline. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   172  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   173  	// Deprecated: Please use `tags` instead.
   174  	TagsAll  pulumi.StringMapOutput    `pulumi:"tagsAll"`
   175  	Timeouts PipelineTimeoutsPtrOutput `pulumi:"timeouts"`
   176  	// Container for the values required to configure VPC access for the pipeline. If you don't specify these values, OpenSearch Ingestion creates the pipeline with a public endpoint. See `vpcOptions` below.
   177  	VpcOptions PipelineVpcOptionsPtrOutput `pulumi:"vpcOptions"`
   178  }
   179  
   180  // NewPipeline registers a new resource with the given unique name, arguments, and options.
   181  func NewPipeline(ctx *pulumi.Context,
   182  	name string, args *PipelineArgs, opts ...pulumi.ResourceOption) (*Pipeline, error) {
   183  	if args == nil {
   184  		return nil, errors.New("missing one or more required arguments")
   185  	}
   186  
   187  	if args.MaxUnits == nil {
   188  		return nil, errors.New("invalid value for required argument 'MaxUnits'")
   189  	}
   190  	if args.MinUnits == nil {
   191  		return nil, errors.New("invalid value for required argument 'MinUnits'")
   192  	}
   193  	if args.PipelineConfigurationBody == nil {
   194  		return nil, errors.New("invalid value for required argument 'PipelineConfigurationBody'")
   195  	}
   196  	if args.PipelineName == nil {
   197  		return nil, errors.New("invalid value for required argument 'PipelineName'")
   198  	}
   199  	opts = internal.PkgResourceDefaultOpts(opts)
   200  	var resource Pipeline
   201  	err := ctx.RegisterResource("aws:opensearchingest/pipeline:Pipeline", name, args, &resource, opts...)
   202  	if err != nil {
   203  		return nil, err
   204  	}
   205  	return &resource, nil
   206  }
   207  
   208  // GetPipeline gets an existing Pipeline resource's state with the given name, ID, and optional
   209  // state properties that are used to uniquely qualify the lookup (nil if not required).
   210  func GetPipeline(ctx *pulumi.Context,
   211  	name string, id pulumi.IDInput, state *PipelineState, opts ...pulumi.ResourceOption) (*Pipeline, error) {
   212  	var resource Pipeline
   213  	err := ctx.ReadResource("aws:opensearchingest/pipeline:Pipeline", name, id, state, &resource, opts...)
   214  	if err != nil {
   215  		return nil, err
   216  	}
   217  	return &resource, nil
   218  }
   219  
   220  // Input properties used for looking up and filtering Pipeline resources.
   221  type pipelineState struct {
   222  	// Key-value pairs to configure persistent buffering for the pipeline. See `bufferOptions` below.
   223  	BufferOptions *PipelineBufferOptions `pulumi:"bufferOptions"`
   224  	// Key-value pairs to configure encryption for data that is written to a persistent buffer. See `encryptionAtRestOptions` below.
   225  	EncryptionAtRestOptions *PipelineEncryptionAtRestOptions `pulumi:"encryptionAtRestOptions"`
   226  	// The list of ingestion endpoints for the pipeline, which you can send data to.
   227  	IngestEndpointUrls []string `pulumi:"ingestEndpointUrls"`
   228  	// Key-value pairs to configure log publishing. See `logPublishingOptions` below.
   229  	LogPublishingOptions *PipelineLogPublishingOptions `pulumi:"logPublishingOptions"`
   230  	// The maximum pipeline capacity, in Ingestion Compute Units (ICUs).
   231  	MaxUnits *int `pulumi:"maxUnits"`
   232  	// The minimum pipeline capacity, in Ingestion Compute Units (ICUs).
   233  	MinUnits *int `pulumi:"minUnits"`
   234  	// Amazon Resource Name (ARN) of the pipeline.
   235  	PipelineArn *string `pulumi:"pipelineArn"`
   236  	// The pipeline configuration in YAML format. This argument accepts the pipeline configuration as a string or within a .yaml file. If you provide the configuration as a string, each new line must be escaped with \n.
   237  	PipelineConfigurationBody *string `pulumi:"pipelineConfigurationBody"`
   238  	// The name of the OpenSearch Ingestion pipeline to create. Pipeline names are unique across the pipelines owned by an account within an AWS Region.
   239  	//
   240  	// The following arguments are optional:
   241  	PipelineName *string `pulumi:"pipelineName"`
   242  	// A map of tags to assign to the pipeline. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   243  	Tags map[string]string `pulumi:"tags"`
   244  	// Deprecated: Please use `tags` instead.
   245  	TagsAll  map[string]string `pulumi:"tagsAll"`
   246  	Timeouts *PipelineTimeouts `pulumi:"timeouts"`
   247  	// Container for the values required to configure VPC access for the pipeline. If you don't specify these values, OpenSearch Ingestion creates the pipeline with a public endpoint. See `vpcOptions` below.
   248  	VpcOptions *PipelineVpcOptions `pulumi:"vpcOptions"`
   249  }
   250  
   251  type PipelineState struct {
   252  	// Key-value pairs to configure persistent buffering for the pipeline. See `bufferOptions` below.
   253  	BufferOptions PipelineBufferOptionsPtrInput
   254  	// Key-value pairs to configure encryption for data that is written to a persistent buffer. See `encryptionAtRestOptions` below.
   255  	EncryptionAtRestOptions PipelineEncryptionAtRestOptionsPtrInput
   256  	// The list of ingestion endpoints for the pipeline, which you can send data to.
   257  	IngestEndpointUrls pulumi.StringArrayInput
   258  	// Key-value pairs to configure log publishing. See `logPublishingOptions` below.
   259  	LogPublishingOptions PipelineLogPublishingOptionsPtrInput
   260  	// The maximum pipeline capacity, in Ingestion Compute Units (ICUs).
   261  	MaxUnits pulumi.IntPtrInput
   262  	// The minimum pipeline capacity, in Ingestion Compute Units (ICUs).
   263  	MinUnits pulumi.IntPtrInput
   264  	// Amazon Resource Name (ARN) of the pipeline.
   265  	PipelineArn pulumi.StringPtrInput
   266  	// The pipeline configuration in YAML format. This argument accepts the pipeline configuration as a string or within a .yaml file. If you provide the configuration as a string, each new line must be escaped with \n.
   267  	PipelineConfigurationBody pulumi.StringPtrInput
   268  	// The name of the OpenSearch Ingestion pipeline to create. Pipeline names are unique across the pipelines owned by an account within an AWS Region.
   269  	//
   270  	// The following arguments are optional:
   271  	PipelineName pulumi.StringPtrInput
   272  	// A map of tags to assign to the pipeline. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   273  	Tags pulumi.StringMapInput
   274  	// Deprecated: Please use `tags` instead.
   275  	TagsAll  pulumi.StringMapInput
   276  	Timeouts PipelineTimeoutsPtrInput
   277  	// Container for the values required to configure VPC access for the pipeline. If you don't specify these values, OpenSearch Ingestion creates the pipeline with a public endpoint. See `vpcOptions` below.
   278  	VpcOptions PipelineVpcOptionsPtrInput
   279  }
   280  
   281  func (PipelineState) ElementType() reflect.Type {
   282  	return reflect.TypeOf((*pipelineState)(nil)).Elem()
   283  }
   284  
   285  type pipelineArgs struct {
   286  	// Key-value pairs to configure persistent buffering for the pipeline. See `bufferOptions` below.
   287  	BufferOptions *PipelineBufferOptions `pulumi:"bufferOptions"`
   288  	// Key-value pairs to configure encryption for data that is written to a persistent buffer. See `encryptionAtRestOptions` below.
   289  	EncryptionAtRestOptions *PipelineEncryptionAtRestOptions `pulumi:"encryptionAtRestOptions"`
   290  	// Key-value pairs to configure log publishing. See `logPublishingOptions` below.
   291  	LogPublishingOptions *PipelineLogPublishingOptions `pulumi:"logPublishingOptions"`
   292  	// The maximum pipeline capacity, in Ingestion Compute Units (ICUs).
   293  	MaxUnits int `pulumi:"maxUnits"`
   294  	// The minimum pipeline capacity, in Ingestion Compute Units (ICUs).
   295  	MinUnits int `pulumi:"minUnits"`
   296  	// The pipeline configuration in YAML format. This argument accepts the pipeline configuration as a string or within a .yaml file. If you provide the configuration as a string, each new line must be escaped with \n.
   297  	PipelineConfigurationBody string `pulumi:"pipelineConfigurationBody"`
   298  	// The name of the OpenSearch Ingestion pipeline to create. Pipeline names are unique across the pipelines owned by an account within an AWS Region.
   299  	//
   300  	// The following arguments are optional:
   301  	PipelineName string `pulumi:"pipelineName"`
   302  	// A map of tags to assign to the pipeline. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   303  	Tags     map[string]string `pulumi:"tags"`
   304  	Timeouts *PipelineTimeouts `pulumi:"timeouts"`
   305  	// Container for the values required to configure VPC access for the pipeline. If you don't specify these values, OpenSearch Ingestion creates the pipeline with a public endpoint. See `vpcOptions` below.
   306  	VpcOptions *PipelineVpcOptions `pulumi:"vpcOptions"`
   307  }
   308  
   309  // The set of arguments for constructing a Pipeline resource.
   310  type PipelineArgs struct {
   311  	// Key-value pairs to configure persistent buffering for the pipeline. See `bufferOptions` below.
   312  	BufferOptions PipelineBufferOptionsPtrInput
   313  	// Key-value pairs to configure encryption for data that is written to a persistent buffer. See `encryptionAtRestOptions` below.
   314  	EncryptionAtRestOptions PipelineEncryptionAtRestOptionsPtrInput
   315  	// Key-value pairs to configure log publishing. See `logPublishingOptions` below.
   316  	LogPublishingOptions PipelineLogPublishingOptionsPtrInput
   317  	// The maximum pipeline capacity, in Ingestion Compute Units (ICUs).
   318  	MaxUnits pulumi.IntInput
   319  	// The minimum pipeline capacity, in Ingestion Compute Units (ICUs).
   320  	MinUnits pulumi.IntInput
   321  	// The pipeline configuration in YAML format. This argument accepts the pipeline configuration as a string or within a .yaml file. If you provide the configuration as a string, each new line must be escaped with \n.
   322  	PipelineConfigurationBody pulumi.StringInput
   323  	// The name of the OpenSearch Ingestion pipeline to create. Pipeline names are unique across the pipelines owned by an account within an AWS Region.
   324  	//
   325  	// The following arguments are optional:
   326  	PipelineName pulumi.StringInput
   327  	// A map of tags to assign to the pipeline. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   328  	Tags     pulumi.StringMapInput
   329  	Timeouts PipelineTimeoutsPtrInput
   330  	// Container for the values required to configure VPC access for the pipeline. If you don't specify these values, OpenSearch Ingestion creates the pipeline with a public endpoint. See `vpcOptions` below.
   331  	VpcOptions PipelineVpcOptionsPtrInput
   332  }
   333  
   334  func (PipelineArgs) ElementType() reflect.Type {
   335  	return reflect.TypeOf((*pipelineArgs)(nil)).Elem()
   336  }
   337  
   338  type PipelineInput interface {
   339  	pulumi.Input
   340  
   341  	ToPipelineOutput() PipelineOutput
   342  	ToPipelineOutputWithContext(ctx context.Context) PipelineOutput
   343  }
   344  
   345  func (*Pipeline) ElementType() reflect.Type {
   346  	return reflect.TypeOf((**Pipeline)(nil)).Elem()
   347  }
   348  
   349  func (i *Pipeline) ToPipelineOutput() PipelineOutput {
   350  	return i.ToPipelineOutputWithContext(context.Background())
   351  }
   352  
   353  func (i *Pipeline) ToPipelineOutputWithContext(ctx context.Context) PipelineOutput {
   354  	return pulumi.ToOutputWithContext(ctx, i).(PipelineOutput)
   355  }
   356  
   357  // PipelineArrayInput is an input type that accepts PipelineArray and PipelineArrayOutput values.
   358  // You can construct a concrete instance of `PipelineArrayInput` via:
   359  //
   360  //	PipelineArray{ PipelineArgs{...} }
   361  type PipelineArrayInput interface {
   362  	pulumi.Input
   363  
   364  	ToPipelineArrayOutput() PipelineArrayOutput
   365  	ToPipelineArrayOutputWithContext(context.Context) PipelineArrayOutput
   366  }
   367  
   368  type PipelineArray []PipelineInput
   369  
   370  func (PipelineArray) ElementType() reflect.Type {
   371  	return reflect.TypeOf((*[]*Pipeline)(nil)).Elem()
   372  }
   373  
   374  func (i PipelineArray) ToPipelineArrayOutput() PipelineArrayOutput {
   375  	return i.ToPipelineArrayOutputWithContext(context.Background())
   376  }
   377  
   378  func (i PipelineArray) ToPipelineArrayOutputWithContext(ctx context.Context) PipelineArrayOutput {
   379  	return pulumi.ToOutputWithContext(ctx, i).(PipelineArrayOutput)
   380  }
   381  
   382  // PipelineMapInput is an input type that accepts PipelineMap and PipelineMapOutput values.
   383  // You can construct a concrete instance of `PipelineMapInput` via:
   384  //
   385  //	PipelineMap{ "key": PipelineArgs{...} }
   386  type PipelineMapInput interface {
   387  	pulumi.Input
   388  
   389  	ToPipelineMapOutput() PipelineMapOutput
   390  	ToPipelineMapOutputWithContext(context.Context) PipelineMapOutput
   391  }
   392  
   393  type PipelineMap map[string]PipelineInput
   394  
   395  func (PipelineMap) ElementType() reflect.Type {
   396  	return reflect.TypeOf((*map[string]*Pipeline)(nil)).Elem()
   397  }
   398  
   399  func (i PipelineMap) ToPipelineMapOutput() PipelineMapOutput {
   400  	return i.ToPipelineMapOutputWithContext(context.Background())
   401  }
   402  
   403  func (i PipelineMap) ToPipelineMapOutputWithContext(ctx context.Context) PipelineMapOutput {
   404  	return pulumi.ToOutputWithContext(ctx, i).(PipelineMapOutput)
   405  }
   406  
   407  type PipelineOutput struct{ *pulumi.OutputState }
   408  
   409  func (PipelineOutput) ElementType() reflect.Type {
   410  	return reflect.TypeOf((**Pipeline)(nil)).Elem()
   411  }
   412  
   413  func (o PipelineOutput) ToPipelineOutput() PipelineOutput {
   414  	return o
   415  }
   416  
   417  func (o PipelineOutput) ToPipelineOutputWithContext(ctx context.Context) PipelineOutput {
   418  	return o
   419  }
   420  
   421  // Key-value pairs to configure persistent buffering for the pipeline. See `bufferOptions` below.
   422  func (o PipelineOutput) BufferOptions() PipelineBufferOptionsPtrOutput {
   423  	return o.ApplyT(func(v *Pipeline) PipelineBufferOptionsPtrOutput { return v.BufferOptions }).(PipelineBufferOptionsPtrOutput)
   424  }
   425  
   426  // Key-value pairs to configure encryption for data that is written to a persistent buffer. See `encryptionAtRestOptions` below.
   427  func (o PipelineOutput) EncryptionAtRestOptions() PipelineEncryptionAtRestOptionsPtrOutput {
   428  	return o.ApplyT(func(v *Pipeline) PipelineEncryptionAtRestOptionsPtrOutput { return v.EncryptionAtRestOptions }).(PipelineEncryptionAtRestOptionsPtrOutput)
   429  }
   430  
   431  // The list of ingestion endpoints for the pipeline, which you can send data to.
   432  func (o PipelineOutput) IngestEndpointUrls() pulumi.StringArrayOutput {
   433  	return o.ApplyT(func(v *Pipeline) pulumi.StringArrayOutput { return v.IngestEndpointUrls }).(pulumi.StringArrayOutput)
   434  }
   435  
   436  // Key-value pairs to configure log publishing. See `logPublishingOptions` below.
   437  func (o PipelineOutput) LogPublishingOptions() PipelineLogPublishingOptionsPtrOutput {
   438  	return o.ApplyT(func(v *Pipeline) PipelineLogPublishingOptionsPtrOutput { return v.LogPublishingOptions }).(PipelineLogPublishingOptionsPtrOutput)
   439  }
   440  
   441  // The maximum pipeline capacity, in Ingestion Compute Units (ICUs).
   442  func (o PipelineOutput) MaxUnits() pulumi.IntOutput {
   443  	return o.ApplyT(func(v *Pipeline) pulumi.IntOutput { return v.MaxUnits }).(pulumi.IntOutput)
   444  }
   445  
   446  // The minimum pipeline capacity, in Ingestion Compute Units (ICUs).
   447  func (o PipelineOutput) MinUnits() pulumi.IntOutput {
   448  	return o.ApplyT(func(v *Pipeline) pulumi.IntOutput { return v.MinUnits }).(pulumi.IntOutput)
   449  }
   450  
   451  // Amazon Resource Name (ARN) of the pipeline.
   452  func (o PipelineOutput) PipelineArn() pulumi.StringOutput {
   453  	return o.ApplyT(func(v *Pipeline) pulumi.StringOutput { return v.PipelineArn }).(pulumi.StringOutput)
   454  }
   455  
   456  // The pipeline configuration in YAML format. This argument accepts the pipeline configuration as a string or within a .yaml file. If you provide the configuration as a string, each new line must be escaped with \n.
   457  func (o PipelineOutput) PipelineConfigurationBody() pulumi.StringOutput {
   458  	return o.ApplyT(func(v *Pipeline) pulumi.StringOutput { return v.PipelineConfigurationBody }).(pulumi.StringOutput)
   459  }
   460  
   461  // The name of the OpenSearch Ingestion pipeline to create. Pipeline names are unique across the pipelines owned by an account within an AWS Region.
   462  //
   463  // The following arguments are optional:
   464  func (o PipelineOutput) PipelineName() pulumi.StringOutput {
   465  	return o.ApplyT(func(v *Pipeline) pulumi.StringOutput { return v.PipelineName }).(pulumi.StringOutput)
   466  }
   467  
   468  // A map of tags to assign to the pipeline. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   469  func (o PipelineOutput) Tags() pulumi.StringMapOutput {
   470  	return o.ApplyT(func(v *Pipeline) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   471  }
   472  
   473  // Deprecated: Please use `tags` instead.
   474  func (o PipelineOutput) TagsAll() pulumi.StringMapOutput {
   475  	return o.ApplyT(func(v *Pipeline) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   476  }
   477  
   478  func (o PipelineOutput) Timeouts() PipelineTimeoutsPtrOutput {
   479  	return o.ApplyT(func(v *Pipeline) PipelineTimeoutsPtrOutput { return v.Timeouts }).(PipelineTimeoutsPtrOutput)
   480  }
   481  
   482  // Container for the values required to configure VPC access for the pipeline. If you don't specify these values, OpenSearch Ingestion creates the pipeline with a public endpoint. See `vpcOptions` below.
   483  func (o PipelineOutput) VpcOptions() PipelineVpcOptionsPtrOutput {
   484  	return o.ApplyT(func(v *Pipeline) PipelineVpcOptionsPtrOutput { return v.VpcOptions }).(PipelineVpcOptionsPtrOutput)
   485  }
   486  
   487  type PipelineArrayOutput struct{ *pulumi.OutputState }
   488  
   489  func (PipelineArrayOutput) ElementType() reflect.Type {
   490  	return reflect.TypeOf((*[]*Pipeline)(nil)).Elem()
   491  }
   492  
   493  func (o PipelineArrayOutput) ToPipelineArrayOutput() PipelineArrayOutput {
   494  	return o
   495  }
   496  
   497  func (o PipelineArrayOutput) ToPipelineArrayOutputWithContext(ctx context.Context) PipelineArrayOutput {
   498  	return o
   499  }
   500  
   501  func (o PipelineArrayOutput) Index(i pulumi.IntInput) PipelineOutput {
   502  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Pipeline {
   503  		return vs[0].([]*Pipeline)[vs[1].(int)]
   504  	}).(PipelineOutput)
   505  }
   506  
   507  type PipelineMapOutput struct{ *pulumi.OutputState }
   508  
   509  func (PipelineMapOutput) ElementType() reflect.Type {
   510  	return reflect.TypeOf((*map[string]*Pipeline)(nil)).Elem()
   511  }
   512  
   513  func (o PipelineMapOutput) ToPipelineMapOutput() PipelineMapOutput {
   514  	return o
   515  }
   516  
   517  func (o PipelineMapOutput) ToPipelineMapOutputWithContext(ctx context.Context) PipelineMapOutput {
   518  	return o
   519  }
   520  
   521  func (o PipelineMapOutput) MapIndex(k pulumi.StringInput) PipelineOutput {
   522  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Pipeline {
   523  		return vs[0].(map[string]*Pipeline)[vs[1].(string)]
   524  	}).(PipelineOutput)
   525  }
   526  
   527  func init() {
   528  	pulumi.RegisterInputType(reflect.TypeOf((*PipelineInput)(nil)).Elem(), &Pipeline{})
   529  	pulumi.RegisterInputType(reflect.TypeOf((*PipelineArrayInput)(nil)).Elem(), PipelineArray{})
   530  	pulumi.RegisterInputType(reflect.TypeOf((*PipelineMapInput)(nil)).Elem(), PipelineMap{})
   531  	pulumi.RegisterOutputType(PipelineOutput{})
   532  	pulumi.RegisterOutputType(PipelineArrayOutput{})
   533  	pulumi.RegisterOutputType(PipelineMapOutput{})
   534  }