// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. package kinesisvideowebrtcstorage import ( "fmt" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awsutil" "github.com/aws/aws-sdk-go/aws/request" "github.com/aws/aws-sdk-go/private/protocol" "github.com/aws/aws-sdk-go/private/protocol/restjson" ) const opJoinStorageSession = "JoinStorageSession" // JoinStorageSessionRequest generates a "aws/request.Request" representing the // client's request for the JoinStorageSession operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See JoinStorageSession for more information on using the JoinStorageSession // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // Example sending a request using the JoinStorageSessionRequest method. // req, resp := client.JoinStorageSessionRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-video-webrtc-storage-2018-05-10/JoinStorageSession func (c *KinesisVideoWebRTCStorage) JoinStorageSessionRequest(input *JoinStorageSessionInput) (req *request.Request, output *JoinStorageSessionOutput) { op := &request.Operation{ Name: opJoinStorageSession, HTTPMethod: "POST", HTTPPath: "/joinStorageSession", } if input == nil { input = &JoinStorageSessionInput{} } output = &JoinStorageSessionOutput{} req = c.newRequest(op, input, output) req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) return } // JoinStorageSession API operation for Amazon Kinesis Video WebRTC Storage. // // Join the ongoing one way-video and/or multi-way audio WebRTC session as a // video producing device for an input channel. If there’s no existing session // for the channel, a new streaming session needs to be created, and the Amazon // Resource Name (ARN) of the signaling channel must be provided. // // Currently for the SINGLE_MASTER type, a video producing device is able to // ingest both audio and video media into a stream, while viewers can only ingest // audio. Both a video producing device and viewers can join the session first, // and wait for other participants. // // While participants are having peer to peer conversations through webRTC, // the ingested media session will be stored into the Kinesis Video Stream. // Multiple viewers are able to playback real-time media. // // Customers can also use existing Kinesis Video Streams features like HLS or // DASH playback, Image generation, and more with ingested WebRTC media. // // Assume that only one video producing device client can be associated with // a session for the channel. If more than one client joins the session of a // specific channel as a video producing device, the most recent client request // takes precedence. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for Amazon Kinesis Video WebRTC Storage's // API operation JoinStorageSession for usage and error information. // // Returned Error Types: // // - ClientLimitExceededException // Kinesis Video Streams has throttled the request because you have exceeded // the limit of allowed client calls. Try making the call later. // // - InvalidArgumentException // The value for this input parameter is invalid. // // - AccessDeniedException // You do not have required permissions to perform this operation. // // - ResourceNotFoundException // The specified resource is not found. // // See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-video-webrtc-storage-2018-05-10/JoinStorageSession func (c *KinesisVideoWebRTCStorage) JoinStorageSession(input *JoinStorageSessionInput) (*JoinStorageSessionOutput, error) { req, out := c.JoinStorageSessionRequest(input) return out, req.Send() } // JoinStorageSessionWithContext is the same as JoinStorageSession with the addition of // the ability to pass a context and additional request options. // // See JoinStorageSession for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *KinesisVideoWebRTCStorage) JoinStorageSessionWithContext(ctx aws.Context, input *JoinStorageSessionInput, opts ...request.Option) (*JoinStorageSessionOutput, error) { req, out := c.JoinStorageSessionRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } // You do not have required permissions to perform this operation. type AccessDeniedException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` Message_ *string `locationName:"message" type:"string"` } // String returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s AccessDeniedException) String() string { return awsutil.Prettify(s) } // GoString returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s AccessDeniedException) GoString() string { return s.String() } func newErrorAccessDeniedException(v protocol.ResponseMetadata) error { return &AccessDeniedException{ RespMetadata: v, } } // Code returns the exception type name. func (s *AccessDeniedException) Code() string { return "AccessDeniedException" } // Message returns the exception's message. func (s *AccessDeniedException) Message() string { if s.Message_ != nil { return *s.Message_ } return "" } // OrigErr always returns nil, satisfies awserr.Error interface. func (s *AccessDeniedException) OrigErr() error { return nil } func (s *AccessDeniedException) Error() string { return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } // Status code returns the HTTP status code for the request's response error. func (s *AccessDeniedException) StatusCode() int { return s.RespMetadata.StatusCode } // RequestID returns the service's response RequestID for request. func (s *AccessDeniedException) RequestID() string { return s.RespMetadata.RequestID } // Kinesis Video Streams has throttled the request because you have exceeded // the limit of allowed client calls. Try making the call later. type ClientLimitExceededException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` Message_ *string `locationName:"message" type:"string"` } // String returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s ClientLimitExceededException) String() string { return awsutil.Prettify(s) } // GoString returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s ClientLimitExceededException) GoString() string { return s.String() } func newErrorClientLimitExceededException(v protocol.ResponseMetadata) error { return &ClientLimitExceededException{ RespMetadata: v, } } // Code returns the exception type name. func (s *ClientLimitExceededException) Code() string { return "ClientLimitExceededException" } // Message returns the exception's message. func (s *ClientLimitExceededException) Message() string { if s.Message_ != nil { return *s.Message_ } return "" } // OrigErr always returns nil, satisfies awserr.Error interface. func (s *ClientLimitExceededException) OrigErr() error { return nil } func (s *ClientLimitExceededException) Error() string { return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } // Status code returns the HTTP status code for the request's response error. func (s *ClientLimitExceededException) StatusCode() int { return s.RespMetadata.StatusCode } // RequestID returns the service's response RequestID for request. func (s *ClientLimitExceededException) RequestID() string { return s.RespMetadata.RequestID } // The value for this input parameter is invalid. type InvalidArgumentException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` Message_ *string `locationName:"message" type:"string"` } // String returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s InvalidArgumentException) String() string { return awsutil.Prettify(s) } // GoString returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s InvalidArgumentException) GoString() string { return s.String() } func newErrorInvalidArgumentException(v protocol.ResponseMetadata) error { return &InvalidArgumentException{ RespMetadata: v, } } // Code returns the exception type name. func (s *InvalidArgumentException) Code() string { return "InvalidArgumentException" } // Message returns the exception's message. func (s *InvalidArgumentException) Message() string { if s.Message_ != nil { return *s.Message_ } return "" } // OrigErr always returns nil, satisfies awserr.Error interface. func (s *InvalidArgumentException) OrigErr() error { return nil } func (s *InvalidArgumentException) Error() string { return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } // Status code returns the HTTP status code for the request's response error. func (s *InvalidArgumentException) StatusCode() int { return s.RespMetadata.StatusCode } // RequestID returns the service's response RequestID for request. func (s *InvalidArgumentException) RequestID() string { return s.RespMetadata.RequestID } type JoinStorageSessionInput struct { _ struct{} `type:"structure"` // The Amazon Resource Name (ARN) of the signaling channel. // // ChannelArn is a required field ChannelArn *string `locationName:"channelArn" type:"string" required:"true"` } // String returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s JoinStorageSessionInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s JoinStorageSessionInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *JoinStorageSessionInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "JoinStorageSessionInput"} if s.ChannelArn == nil { invalidParams.Add(request.NewErrParamRequired("ChannelArn")) } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetChannelArn sets the ChannelArn field's value. func (s *JoinStorageSessionInput) SetChannelArn(v string) *JoinStorageSessionInput { s.ChannelArn = &v return s } type JoinStorageSessionOutput struct { _ struct{} `type:"structure"` } // String returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s JoinStorageSessionOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s JoinStorageSessionOutput) GoString() string { return s.String() } // The specified resource is not found. type ResourceNotFoundException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` Message_ *string `locationName:"message" type:"string"` } // String returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s ResourceNotFoundException) String() string { return awsutil.Prettify(s) } // GoString returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s ResourceNotFoundException) GoString() string { return s.String() } func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error { return &ResourceNotFoundException{ RespMetadata: v, } } // Code returns the exception type name. func (s *ResourceNotFoundException) Code() string { return "ResourceNotFoundException" } // Message returns the exception's message. func (s *ResourceNotFoundException) Message() string { if s.Message_ != nil { return *s.Message_ } return "" } // OrigErr always returns nil, satisfies awserr.Error interface. func (s *ResourceNotFoundException) OrigErr() error { return nil } func (s *ResourceNotFoundException) Error() string { return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } // Status code returns the HTTP status code for the request's response error. func (s *ResourceNotFoundException) StatusCode() int { return s.RespMetadata.StatusCode } // RequestID returns the service's response RequestID for request. func (s *ResourceNotFoundException) RequestID() string { return s.RespMetadata.RequestID }