github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/medialive/channel.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 medialive
     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 MediaLive Channel.
    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/medialive"
    30  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    31  //
    32  // )
    33  //
    34  //	func main() {
    35  //		pulumi.Run(func(ctx *pulumi.Context) error {
    36  //			_, err := medialive.NewChannel(ctx, "example", &medialive.ChannelArgs{
    37  //				Name:         pulumi.String("example-channel"),
    38  //				ChannelClass: pulumi.String("STANDARD"),
    39  //				RoleArn:      pulumi.Any(exampleAwsIamRole.Arn),
    40  //				InputSpecification: &medialive.ChannelInputSpecificationArgs{
    41  //					Codec:           pulumi.String("AVC"),
    42  //					InputResolution: pulumi.String("HD"),
    43  //					MaximumBitrate:  pulumi.String("MAX_20_MBPS"),
    44  //				},
    45  //				InputAttachments: medialive.ChannelInputAttachmentArray{
    46  //					&medialive.ChannelInputAttachmentArgs{
    47  //						InputAttachmentName: pulumi.String("example-input"),
    48  //						InputId:             pulumi.Any(exampleAwsMedialiveInput.Id),
    49  //					},
    50  //				},
    51  //				Destinations: medialive.ChannelDestinationArray{
    52  //					&medialive.ChannelDestinationArgs{
    53  //						Id: pulumi.String("destination"),
    54  //						Settings: medialive.ChannelDestinationSettingArray{
    55  //							&medialive.ChannelDestinationSettingArgs{
    56  //								Url: pulumi.String(fmt.Sprintf("s3://%v/test1", main.Id)),
    57  //							},
    58  //							&medialive.ChannelDestinationSettingArgs{
    59  //								Url: pulumi.String(fmt.Sprintf("s3://%v/test2", main2.Id)),
    60  //							},
    61  //						},
    62  //					},
    63  //				},
    64  //				EncoderSettings: &medialive.ChannelEncoderSettingsArgs{
    65  //					TimecodeConfig: &medialive.ChannelEncoderSettingsTimecodeConfigArgs{
    66  //						Source: pulumi.String("EMBEDDED"),
    67  //					},
    68  //					AudioDescriptions: medialive.ChannelEncoderSettingsAudioDescriptionArray{
    69  //						&medialive.ChannelEncoderSettingsAudioDescriptionArgs{
    70  //							AudioSelectorName: pulumi.String("example audio selector"),
    71  //							Name:              pulumi.String("audio-selector"),
    72  //						},
    73  //					},
    74  //					VideoDescriptions: medialive.ChannelEncoderSettingsVideoDescriptionArray{
    75  //						&medialive.ChannelEncoderSettingsVideoDescriptionArgs{
    76  //							Name: pulumi.String("example-video"),
    77  //						},
    78  //					},
    79  //					OutputGroups: medialive.ChannelEncoderSettingsOutputGroupArray{
    80  //						&medialive.ChannelEncoderSettingsOutputGroupArgs{
    81  //							OutputGroupSettings: &medialive.ChannelEncoderSettingsOutputGroupOutputGroupSettingsArgs{
    82  //								ArchiveGroupSettings: medialive.ChannelEncoderSettingsOutputGroupOutputGroupSettingsArchiveGroupSettingArray{
    83  //									&medialive.ChannelEncoderSettingsOutputGroupOutputGroupSettingsArchiveGroupSettingArgs{
    84  //										Destination: &medialive.ChannelEncoderSettingsOutputGroupOutputGroupSettingsArchiveGroupSettingDestinationArgs{
    85  //											DestinationRefId: pulumi.String("destination"),
    86  //										},
    87  //									},
    88  //								},
    89  //							},
    90  //							Outputs: medialive.ChannelEncoderSettingsOutputGroupOutputTypeArray{
    91  //								&medialive.ChannelEncoderSettingsOutputGroupOutputTypeArgs{
    92  //									OutputName:           pulumi.String("example-name"),
    93  //									VideoDescriptionName: pulumi.String("example-video"),
    94  //									AudioDescriptionNames: pulumi.StringArray{
    95  //										pulumi.String("audio-selector"),
    96  //									},
    97  //									OutputSettings: &medialive.ChannelEncoderSettingsOutputGroupOutputOutputSettingsArgs{
    98  //										ArchiveOutputSettings: &medialive.ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsArgs{
    99  //											NameModifier: pulumi.String("_1"),
   100  //											Extension:    pulumi.String("m2ts"),
   101  //											ContainerSettings: &medialive.ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsArgs{
   102  //												M2tsSettings: &medialive.ChannelEncoderSettingsOutputGroupOutputOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsArgs{
   103  //													AudioBufferModel: pulumi.String("ATSC"),
   104  //													BufferModel:      pulumi.String("MULTIPLEX"),
   105  //													RateMode:         pulumi.String("CBR"),
   106  //												},
   107  //											},
   108  //										},
   109  //									},
   110  //								},
   111  //							},
   112  //						},
   113  //					},
   114  //				},
   115  //			})
   116  //			if err != nil {
   117  //				return err
   118  //			}
   119  //			return nil
   120  //		})
   121  //	}
   122  //
   123  // ```
   124  // <!--End PulumiCodeChooser -->
   125  //
   126  // ## Import
   127  //
   128  // Using `pulumi import`, import MediaLive Channel using the `channel_id`. For example:
   129  //
   130  // ```sh
   131  // $ pulumi import aws:medialive/channel:Channel example 1234567
   132  // ```
   133  type Channel struct {
   134  	pulumi.CustomResourceState
   135  
   136  	// ARN of the Channel.
   137  	Arn pulumi.StringOutput `pulumi:"arn"`
   138  	// Specification of CDI inputs for this channel. See CDI Input Specification for more details.
   139  	CdiInputSpecification ChannelCdiInputSpecificationPtrOutput `pulumi:"cdiInputSpecification"`
   140  	// Concise argument description.
   141  	ChannelClass pulumi.StringOutput `pulumi:"channelClass"`
   142  	// ID of the channel in MediaPackage that is the destination for this output group.
   143  	ChannelId pulumi.StringOutput `pulumi:"channelId"`
   144  	// Destinations for channel. See Destinations for more details.
   145  	Destinations ChannelDestinationArrayOutput `pulumi:"destinations"`
   146  	// Encoder settings. See Encoder Settings for more details.
   147  	EncoderSettings ChannelEncoderSettingsOutput `pulumi:"encoderSettings"`
   148  	// Input attachments for the channel. See Input Attachments for more details.
   149  	InputAttachments ChannelInputAttachmentArrayOutput `pulumi:"inputAttachments"`
   150  	// Specification of network and file inputs for the channel.
   151  	InputSpecification ChannelInputSpecificationOutput `pulumi:"inputSpecification"`
   152  	// The log level to write to Cloudwatch logs.
   153  	LogLevel pulumi.StringOutput `pulumi:"logLevel"`
   154  	// Maintenance settings for this channel. See Maintenance for more details.
   155  	Maintenance ChannelMaintenanceOutput `pulumi:"maintenance"`
   156  	// Name of the Channel.
   157  	//
   158  	// The following arguments are optional:
   159  	Name pulumi.StringOutput `pulumi:"name"`
   160  	// Concise argument description.
   161  	RoleArn pulumi.StringPtrOutput `pulumi:"roleArn"`
   162  	// Whether to start/stop channel. Default: `false`
   163  	StartChannel pulumi.BoolPtrOutput `pulumi:"startChannel"`
   164  	// A map of tags to assign to the channel. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   165  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   166  	// Deprecated: Please use `tags` instead.
   167  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   168  	// Settings for the VPC outputs. See VPC for more details.
   169  	Vpc ChannelVpcPtrOutput `pulumi:"vpc"`
   170  }
   171  
   172  // NewChannel registers a new resource with the given unique name, arguments, and options.
   173  func NewChannel(ctx *pulumi.Context,
   174  	name string, args *ChannelArgs, opts ...pulumi.ResourceOption) (*Channel, error) {
   175  	if args == nil {
   176  		return nil, errors.New("missing one or more required arguments")
   177  	}
   178  
   179  	if args.ChannelClass == nil {
   180  		return nil, errors.New("invalid value for required argument 'ChannelClass'")
   181  	}
   182  	if args.Destinations == nil {
   183  		return nil, errors.New("invalid value for required argument 'Destinations'")
   184  	}
   185  	if args.EncoderSettings == nil {
   186  		return nil, errors.New("invalid value for required argument 'EncoderSettings'")
   187  	}
   188  	if args.InputAttachments == nil {
   189  		return nil, errors.New("invalid value for required argument 'InputAttachments'")
   190  	}
   191  	if args.InputSpecification == nil {
   192  		return nil, errors.New("invalid value for required argument 'InputSpecification'")
   193  	}
   194  	opts = internal.PkgResourceDefaultOpts(opts)
   195  	var resource Channel
   196  	err := ctx.RegisterResource("aws:medialive/channel:Channel", name, args, &resource, opts...)
   197  	if err != nil {
   198  		return nil, err
   199  	}
   200  	return &resource, nil
   201  }
   202  
   203  // GetChannel gets an existing Channel resource's state with the given name, ID, and optional
   204  // state properties that are used to uniquely qualify the lookup (nil if not required).
   205  func GetChannel(ctx *pulumi.Context,
   206  	name string, id pulumi.IDInput, state *ChannelState, opts ...pulumi.ResourceOption) (*Channel, error) {
   207  	var resource Channel
   208  	err := ctx.ReadResource("aws:medialive/channel:Channel", name, id, state, &resource, opts...)
   209  	if err != nil {
   210  		return nil, err
   211  	}
   212  	return &resource, nil
   213  }
   214  
   215  // Input properties used for looking up and filtering Channel resources.
   216  type channelState struct {
   217  	// ARN of the Channel.
   218  	Arn *string `pulumi:"arn"`
   219  	// Specification of CDI inputs for this channel. See CDI Input Specification for more details.
   220  	CdiInputSpecification *ChannelCdiInputSpecification `pulumi:"cdiInputSpecification"`
   221  	// Concise argument description.
   222  	ChannelClass *string `pulumi:"channelClass"`
   223  	// ID of the channel in MediaPackage that is the destination for this output group.
   224  	ChannelId *string `pulumi:"channelId"`
   225  	// Destinations for channel. See Destinations for more details.
   226  	Destinations []ChannelDestination `pulumi:"destinations"`
   227  	// Encoder settings. See Encoder Settings for more details.
   228  	EncoderSettings *ChannelEncoderSettings `pulumi:"encoderSettings"`
   229  	// Input attachments for the channel. See Input Attachments for more details.
   230  	InputAttachments []ChannelInputAttachment `pulumi:"inputAttachments"`
   231  	// Specification of network and file inputs for the channel.
   232  	InputSpecification *ChannelInputSpecification `pulumi:"inputSpecification"`
   233  	// The log level to write to Cloudwatch logs.
   234  	LogLevel *string `pulumi:"logLevel"`
   235  	// Maintenance settings for this channel. See Maintenance for more details.
   236  	Maintenance *ChannelMaintenance `pulumi:"maintenance"`
   237  	// Name of the Channel.
   238  	//
   239  	// The following arguments are optional:
   240  	Name *string `pulumi:"name"`
   241  	// Concise argument description.
   242  	RoleArn *string `pulumi:"roleArn"`
   243  	// Whether to start/stop channel. Default: `false`
   244  	StartChannel *bool `pulumi:"startChannel"`
   245  	// A map of tags to assign to the channel. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   246  	Tags map[string]string `pulumi:"tags"`
   247  	// Deprecated: Please use `tags` instead.
   248  	TagsAll map[string]string `pulumi:"tagsAll"`
   249  	// Settings for the VPC outputs. See VPC for more details.
   250  	Vpc *ChannelVpc `pulumi:"vpc"`
   251  }
   252  
   253  type ChannelState struct {
   254  	// ARN of the Channel.
   255  	Arn pulumi.StringPtrInput
   256  	// Specification of CDI inputs for this channel. See CDI Input Specification for more details.
   257  	CdiInputSpecification ChannelCdiInputSpecificationPtrInput
   258  	// Concise argument description.
   259  	ChannelClass pulumi.StringPtrInput
   260  	// ID of the channel in MediaPackage that is the destination for this output group.
   261  	ChannelId pulumi.StringPtrInput
   262  	// Destinations for channel. See Destinations for more details.
   263  	Destinations ChannelDestinationArrayInput
   264  	// Encoder settings. See Encoder Settings for more details.
   265  	EncoderSettings ChannelEncoderSettingsPtrInput
   266  	// Input attachments for the channel. See Input Attachments for more details.
   267  	InputAttachments ChannelInputAttachmentArrayInput
   268  	// Specification of network and file inputs for the channel.
   269  	InputSpecification ChannelInputSpecificationPtrInput
   270  	// The log level to write to Cloudwatch logs.
   271  	LogLevel pulumi.StringPtrInput
   272  	// Maintenance settings for this channel. See Maintenance for more details.
   273  	Maintenance ChannelMaintenancePtrInput
   274  	// Name of the Channel.
   275  	//
   276  	// The following arguments are optional:
   277  	Name pulumi.StringPtrInput
   278  	// Concise argument description.
   279  	RoleArn pulumi.StringPtrInput
   280  	// Whether to start/stop channel. Default: `false`
   281  	StartChannel pulumi.BoolPtrInput
   282  	// A map of tags to assign to the channel. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   283  	Tags pulumi.StringMapInput
   284  	// Deprecated: Please use `tags` instead.
   285  	TagsAll pulumi.StringMapInput
   286  	// Settings for the VPC outputs. See VPC for more details.
   287  	Vpc ChannelVpcPtrInput
   288  }
   289  
   290  func (ChannelState) ElementType() reflect.Type {
   291  	return reflect.TypeOf((*channelState)(nil)).Elem()
   292  }
   293  
   294  type channelArgs struct {
   295  	// Specification of CDI inputs for this channel. See CDI Input Specification for more details.
   296  	CdiInputSpecification *ChannelCdiInputSpecification `pulumi:"cdiInputSpecification"`
   297  	// Concise argument description.
   298  	ChannelClass string `pulumi:"channelClass"`
   299  	// Destinations for channel. See Destinations for more details.
   300  	Destinations []ChannelDestination `pulumi:"destinations"`
   301  	// Encoder settings. See Encoder Settings for more details.
   302  	EncoderSettings ChannelEncoderSettings `pulumi:"encoderSettings"`
   303  	// Input attachments for the channel. See Input Attachments for more details.
   304  	InputAttachments []ChannelInputAttachment `pulumi:"inputAttachments"`
   305  	// Specification of network and file inputs for the channel.
   306  	InputSpecification ChannelInputSpecification `pulumi:"inputSpecification"`
   307  	// The log level to write to Cloudwatch logs.
   308  	LogLevel *string `pulumi:"logLevel"`
   309  	// Maintenance settings for this channel. See Maintenance for more details.
   310  	Maintenance *ChannelMaintenance `pulumi:"maintenance"`
   311  	// Name of the Channel.
   312  	//
   313  	// The following arguments are optional:
   314  	Name *string `pulumi:"name"`
   315  	// Concise argument description.
   316  	RoleArn *string `pulumi:"roleArn"`
   317  	// Whether to start/stop channel. Default: `false`
   318  	StartChannel *bool `pulumi:"startChannel"`
   319  	// A map of tags to assign to the channel. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   320  	Tags map[string]string `pulumi:"tags"`
   321  	// Settings for the VPC outputs. See VPC for more details.
   322  	Vpc *ChannelVpc `pulumi:"vpc"`
   323  }
   324  
   325  // The set of arguments for constructing a Channel resource.
   326  type ChannelArgs struct {
   327  	// Specification of CDI inputs for this channel. See CDI Input Specification for more details.
   328  	CdiInputSpecification ChannelCdiInputSpecificationPtrInput
   329  	// Concise argument description.
   330  	ChannelClass pulumi.StringInput
   331  	// Destinations for channel. See Destinations for more details.
   332  	Destinations ChannelDestinationArrayInput
   333  	// Encoder settings. See Encoder Settings for more details.
   334  	EncoderSettings ChannelEncoderSettingsInput
   335  	// Input attachments for the channel. See Input Attachments for more details.
   336  	InputAttachments ChannelInputAttachmentArrayInput
   337  	// Specification of network and file inputs for the channel.
   338  	InputSpecification ChannelInputSpecificationInput
   339  	// The log level to write to Cloudwatch logs.
   340  	LogLevel pulumi.StringPtrInput
   341  	// Maintenance settings for this channel. See Maintenance for more details.
   342  	Maintenance ChannelMaintenancePtrInput
   343  	// Name of the Channel.
   344  	//
   345  	// The following arguments are optional:
   346  	Name pulumi.StringPtrInput
   347  	// Concise argument description.
   348  	RoleArn pulumi.StringPtrInput
   349  	// Whether to start/stop channel. Default: `false`
   350  	StartChannel pulumi.BoolPtrInput
   351  	// A map of tags to assign to the channel. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   352  	Tags pulumi.StringMapInput
   353  	// Settings for the VPC outputs. See VPC for more details.
   354  	Vpc ChannelVpcPtrInput
   355  }
   356  
   357  func (ChannelArgs) ElementType() reflect.Type {
   358  	return reflect.TypeOf((*channelArgs)(nil)).Elem()
   359  }
   360  
   361  type ChannelInput interface {
   362  	pulumi.Input
   363  
   364  	ToChannelOutput() ChannelOutput
   365  	ToChannelOutputWithContext(ctx context.Context) ChannelOutput
   366  }
   367  
   368  func (*Channel) ElementType() reflect.Type {
   369  	return reflect.TypeOf((**Channel)(nil)).Elem()
   370  }
   371  
   372  func (i *Channel) ToChannelOutput() ChannelOutput {
   373  	return i.ToChannelOutputWithContext(context.Background())
   374  }
   375  
   376  func (i *Channel) ToChannelOutputWithContext(ctx context.Context) ChannelOutput {
   377  	return pulumi.ToOutputWithContext(ctx, i).(ChannelOutput)
   378  }
   379  
   380  // ChannelArrayInput is an input type that accepts ChannelArray and ChannelArrayOutput values.
   381  // You can construct a concrete instance of `ChannelArrayInput` via:
   382  //
   383  //	ChannelArray{ ChannelArgs{...} }
   384  type ChannelArrayInput interface {
   385  	pulumi.Input
   386  
   387  	ToChannelArrayOutput() ChannelArrayOutput
   388  	ToChannelArrayOutputWithContext(context.Context) ChannelArrayOutput
   389  }
   390  
   391  type ChannelArray []ChannelInput
   392  
   393  func (ChannelArray) ElementType() reflect.Type {
   394  	return reflect.TypeOf((*[]*Channel)(nil)).Elem()
   395  }
   396  
   397  func (i ChannelArray) ToChannelArrayOutput() ChannelArrayOutput {
   398  	return i.ToChannelArrayOutputWithContext(context.Background())
   399  }
   400  
   401  func (i ChannelArray) ToChannelArrayOutputWithContext(ctx context.Context) ChannelArrayOutput {
   402  	return pulumi.ToOutputWithContext(ctx, i).(ChannelArrayOutput)
   403  }
   404  
   405  // ChannelMapInput is an input type that accepts ChannelMap and ChannelMapOutput values.
   406  // You can construct a concrete instance of `ChannelMapInput` via:
   407  //
   408  //	ChannelMap{ "key": ChannelArgs{...} }
   409  type ChannelMapInput interface {
   410  	pulumi.Input
   411  
   412  	ToChannelMapOutput() ChannelMapOutput
   413  	ToChannelMapOutputWithContext(context.Context) ChannelMapOutput
   414  }
   415  
   416  type ChannelMap map[string]ChannelInput
   417  
   418  func (ChannelMap) ElementType() reflect.Type {
   419  	return reflect.TypeOf((*map[string]*Channel)(nil)).Elem()
   420  }
   421  
   422  func (i ChannelMap) ToChannelMapOutput() ChannelMapOutput {
   423  	return i.ToChannelMapOutputWithContext(context.Background())
   424  }
   425  
   426  func (i ChannelMap) ToChannelMapOutputWithContext(ctx context.Context) ChannelMapOutput {
   427  	return pulumi.ToOutputWithContext(ctx, i).(ChannelMapOutput)
   428  }
   429  
   430  type ChannelOutput struct{ *pulumi.OutputState }
   431  
   432  func (ChannelOutput) ElementType() reflect.Type {
   433  	return reflect.TypeOf((**Channel)(nil)).Elem()
   434  }
   435  
   436  func (o ChannelOutput) ToChannelOutput() ChannelOutput {
   437  	return o
   438  }
   439  
   440  func (o ChannelOutput) ToChannelOutputWithContext(ctx context.Context) ChannelOutput {
   441  	return o
   442  }
   443  
   444  // ARN of the Channel.
   445  func (o ChannelOutput) Arn() pulumi.StringOutput {
   446  	return o.ApplyT(func(v *Channel) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   447  }
   448  
   449  // Specification of CDI inputs for this channel. See CDI Input Specification for more details.
   450  func (o ChannelOutput) CdiInputSpecification() ChannelCdiInputSpecificationPtrOutput {
   451  	return o.ApplyT(func(v *Channel) ChannelCdiInputSpecificationPtrOutput { return v.CdiInputSpecification }).(ChannelCdiInputSpecificationPtrOutput)
   452  }
   453  
   454  // Concise argument description.
   455  func (o ChannelOutput) ChannelClass() pulumi.StringOutput {
   456  	return o.ApplyT(func(v *Channel) pulumi.StringOutput { return v.ChannelClass }).(pulumi.StringOutput)
   457  }
   458  
   459  // ID of the channel in MediaPackage that is the destination for this output group.
   460  func (o ChannelOutput) ChannelId() pulumi.StringOutput {
   461  	return o.ApplyT(func(v *Channel) pulumi.StringOutput { return v.ChannelId }).(pulumi.StringOutput)
   462  }
   463  
   464  // Destinations for channel. See Destinations for more details.
   465  func (o ChannelOutput) Destinations() ChannelDestinationArrayOutput {
   466  	return o.ApplyT(func(v *Channel) ChannelDestinationArrayOutput { return v.Destinations }).(ChannelDestinationArrayOutput)
   467  }
   468  
   469  // Encoder settings. See Encoder Settings for more details.
   470  func (o ChannelOutput) EncoderSettings() ChannelEncoderSettingsOutput {
   471  	return o.ApplyT(func(v *Channel) ChannelEncoderSettingsOutput { return v.EncoderSettings }).(ChannelEncoderSettingsOutput)
   472  }
   473  
   474  // Input attachments for the channel. See Input Attachments for more details.
   475  func (o ChannelOutput) InputAttachments() ChannelInputAttachmentArrayOutput {
   476  	return o.ApplyT(func(v *Channel) ChannelInputAttachmentArrayOutput { return v.InputAttachments }).(ChannelInputAttachmentArrayOutput)
   477  }
   478  
   479  // Specification of network and file inputs for the channel.
   480  func (o ChannelOutput) InputSpecification() ChannelInputSpecificationOutput {
   481  	return o.ApplyT(func(v *Channel) ChannelInputSpecificationOutput { return v.InputSpecification }).(ChannelInputSpecificationOutput)
   482  }
   483  
   484  // The log level to write to Cloudwatch logs.
   485  func (o ChannelOutput) LogLevel() pulumi.StringOutput {
   486  	return o.ApplyT(func(v *Channel) pulumi.StringOutput { return v.LogLevel }).(pulumi.StringOutput)
   487  }
   488  
   489  // Maintenance settings for this channel. See Maintenance for more details.
   490  func (o ChannelOutput) Maintenance() ChannelMaintenanceOutput {
   491  	return o.ApplyT(func(v *Channel) ChannelMaintenanceOutput { return v.Maintenance }).(ChannelMaintenanceOutput)
   492  }
   493  
   494  // Name of the Channel.
   495  //
   496  // The following arguments are optional:
   497  func (o ChannelOutput) Name() pulumi.StringOutput {
   498  	return o.ApplyT(func(v *Channel) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   499  }
   500  
   501  // Concise argument description.
   502  func (o ChannelOutput) RoleArn() pulumi.StringPtrOutput {
   503  	return o.ApplyT(func(v *Channel) pulumi.StringPtrOutput { return v.RoleArn }).(pulumi.StringPtrOutput)
   504  }
   505  
   506  // Whether to start/stop channel. Default: `false`
   507  func (o ChannelOutput) StartChannel() pulumi.BoolPtrOutput {
   508  	return o.ApplyT(func(v *Channel) pulumi.BoolPtrOutput { return v.StartChannel }).(pulumi.BoolPtrOutput)
   509  }
   510  
   511  // A map of tags to assign to the channel. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   512  func (o ChannelOutput) Tags() pulumi.StringMapOutput {
   513  	return o.ApplyT(func(v *Channel) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   514  }
   515  
   516  // Deprecated: Please use `tags` instead.
   517  func (o ChannelOutput) TagsAll() pulumi.StringMapOutput {
   518  	return o.ApplyT(func(v *Channel) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   519  }
   520  
   521  // Settings for the VPC outputs. See VPC for more details.
   522  func (o ChannelOutput) Vpc() ChannelVpcPtrOutput {
   523  	return o.ApplyT(func(v *Channel) ChannelVpcPtrOutput { return v.Vpc }).(ChannelVpcPtrOutput)
   524  }
   525  
   526  type ChannelArrayOutput struct{ *pulumi.OutputState }
   527  
   528  func (ChannelArrayOutput) ElementType() reflect.Type {
   529  	return reflect.TypeOf((*[]*Channel)(nil)).Elem()
   530  }
   531  
   532  func (o ChannelArrayOutput) ToChannelArrayOutput() ChannelArrayOutput {
   533  	return o
   534  }
   535  
   536  func (o ChannelArrayOutput) ToChannelArrayOutputWithContext(ctx context.Context) ChannelArrayOutput {
   537  	return o
   538  }
   539  
   540  func (o ChannelArrayOutput) Index(i pulumi.IntInput) ChannelOutput {
   541  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Channel {
   542  		return vs[0].([]*Channel)[vs[1].(int)]
   543  	}).(ChannelOutput)
   544  }
   545  
   546  type ChannelMapOutput struct{ *pulumi.OutputState }
   547  
   548  func (ChannelMapOutput) ElementType() reflect.Type {
   549  	return reflect.TypeOf((*map[string]*Channel)(nil)).Elem()
   550  }
   551  
   552  func (o ChannelMapOutput) ToChannelMapOutput() ChannelMapOutput {
   553  	return o
   554  }
   555  
   556  func (o ChannelMapOutput) ToChannelMapOutputWithContext(ctx context.Context) ChannelMapOutput {
   557  	return o
   558  }
   559  
   560  func (o ChannelMapOutput) MapIndex(k pulumi.StringInput) ChannelOutput {
   561  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Channel {
   562  		return vs[0].(map[string]*Channel)[vs[1].(string)]
   563  	}).(ChannelOutput)
   564  }
   565  
   566  func init() {
   567  	pulumi.RegisterInputType(reflect.TypeOf((*ChannelInput)(nil)).Elem(), &Channel{})
   568  	pulumi.RegisterInputType(reflect.TypeOf((*ChannelArrayInput)(nil)).Elem(), ChannelArray{})
   569  	pulumi.RegisterInputType(reflect.TypeOf((*ChannelMapInput)(nil)).Elem(), ChannelMap{})
   570  	pulumi.RegisterOutputType(ChannelOutput{})
   571  	pulumi.RegisterOutputType(ChannelArrayOutput{})
   572  	pulumi.RegisterOutputType(ChannelMapOutput{})
   573  }