/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include namespace Aws { namespace Http { class URI; } //namespace Http namespace Lambda { namespace Model { /** */ class InvokeWithResponseStreamRequest : public StreamingLambdaRequest { public: AWS_LAMBDA_API InvokeWithResponseStreamRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "InvokeWithResponseStream"; } AWS_LAMBDA_API void AddQueryStringParameters(Aws::Http::URI& uri) const override; AWS_LAMBDA_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** * Underlying Event Stream Decoder. */ inline Aws::Utils::Event::EventStreamDecoder& GetEventStreamDecoder() { return m_decoder; } /** * Underlying Event Stream Handler which is used to define callback functions. */ inline const InvokeWithResponseStreamHandler& GetEventStreamHandler() const { return m_handler; } /** * Underlying Event Stream Handler which is used to define callback functions. */ inline void SetEventStreamHandler(const InvokeWithResponseStreamHandler& value) { m_handler = value; m_decoder.ResetEventStreamHandler(&m_handler); } /** * Underlying Event Stream Handler which is used to define callback functions. */ inline InvokeWithResponseStreamRequest& WithEventStreamHandler(const InvokeWithResponseStreamHandler& value) { SetEventStreamHandler(value); return *this; } /** *

The name of the Lambda function.

Name formats *

  • Function namemy-function.

  • *
  • Function ARN – * arn:aws:lambda:us-west-2:123456789012:function:my-function.

    *
  • Partial ARN – * 123456789012:function:my-function.

The length * constraint applies only to the full ARN. If you specify only the function name, * it is limited to 64 characters in length.

*/ inline const Aws::String& GetFunctionName() const{ return m_functionName; } /** *

The name of the Lambda function.

Name formats *

  • Function namemy-function.

  • *
  • Function ARN – * arn:aws:lambda:us-west-2:123456789012:function:my-function.

    *
  • Partial ARN – * 123456789012:function:my-function.

The length * constraint applies only to the full ARN. If you specify only the function name, * it is limited to 64 characters in length.

*/ inline bool FunctionNameHasBeenSet() const { return m_functionNameHasBeenSet; } /** *

The name of the Lambda function.

Name formats *

  • Function namemy-function.

  • *
  • Function ARN – * arn:aws:lambda:us-west-2:123456789012:function:my-function.

    *
  • Partial ARN – * 123456789012:function:my-function.

The length * constraint applies only to the full ARN. If you specify only the function name, * it is limited to 64 characters in length.

*/ inline void SetFunctionName(const Aws::String& value) { m_functionNameHasBeenSet = true; m_functionName = value; } /** *

The name of the Lambda function.

Name formats *

  • Function namemy-function.

  • *
  • Function ARN – * arn:aws:lambda:us-west-2:123456789012:function:my-function.

    *
  • Partial ARN – * 123456789012:function:my-function.

The length * constraint applies only to the full ARN. If you specify only the function name, * it is limited to 64 characters in length.

*/ inline void SetFunctionName(Aws::String&& value) { m_functionNameHasBeenSet = true; m_functionName = std::move(value); } /** *

The name of the Lambda function.

Name formats *

  • Function namemy-function.

  • *
  • Function ARN – * arn:aws:lambda:us-west-2:123456789012:function:my-function.

    *
  • Partial ARN – * 123456789012:function:my-function.

The length * constraint applies only to the full ARN. If you specify only the function name, * it is limited to 64 characters in length.

*/ inline void SetFunctionName(const char* value) { m_functionNameHasBeenSet = true; m_functionName.assign(value); } /** *

The name of the Lambda function.

Name formats *

  • Function namemy-function.

  • *
  • Function ARN – * arn:aws:lambda:us-west-2:123456789012:function:my-function.

    *
  • Partial ARN – * 123456789012:function:my-function.

The length * constraint applies only to the full ARN. If you specify only the function name, * it is limited to 64 characters in length.

*/ inline InvokeWithResponseStreamRequest& WithFunctionName(const Aws::String& value) { SetFunctionName(value); return *this;} /** *

The name of the Lambda function.

Name formats *

  • Function namemy-function.

  • *
  • Function ARN – * arn:aws:lambda:us-west-2:123456789012:function:my-function.

    *
  • Partial ARN – * 123456789012:function:my-function.

The length * constraint applies only to the full ARN. If you specify only the function name, * it is limited to 64 characters in length.

*/ inline InvokeWithResponseStreamRequest& WithFunctionName(Aws::String&& value) { SetFunctionName(std::move(value)); return *this;} /** *

The name of the Lambda function.

Name formats *

  • Function namemy-function.

  • *
  • Function ARN – * arn:aws:lambda:us-west-2:123456789012:function:my-function.

    *
  • Partial ARN – * 123456789012:function:my-function.

The length * constraint applies only to the full ARN. If you specify only the function name, * it is limited to 64 characters in length.

*/ inline InvokeWithResponseStreamRequest& WithFunctionName(const char* value) { SetFunctionName(value); return *this;} /** *

Use one of the following options:

  • * RequestResponse (default) – Invoke the function synchronously. Keep * the connection open until the function returns a response or times out. The API * operation response includes the function response and additional data.

  • *
  • DryRun – Validate parameter values and verify that the IAM * user or role has permission to invoke the function.

*/ inline const ResponseStreamingInvocationType& GetInvocationType() const{ return m_invocationType; } /** *

Use one of the following options:

  • * RequestResponse (default) – Invoke the function synchronously. Keep * the connection open until the function returns a response or times out. The API * operation response includes the function response and additional data.

  • *
  • DryRun – Validate parameter values and verify that the IAM * user or role has permission to invoke the function.

*/ inline bool InvocationTypeHasBeenSet() const { return m_invocationTypeHasBeenSet; } /** *

Use one of the following options:

  • * RequestResponse (default) – Invoke the function synchronously. Keep * the connection open until the function returns a response or times out. The API * operation response includes the function response and additional data.

  • *
  • DryRun – Validate parameter values and verify that the IAM * user or role has permission to invoke the function.

*/ inline void SetInvocationType(const ResponseStreamingInvocationType& value) { m_invocationTypeHasBeenSet = true; m_invocationType = value; } /** *

Use one of the following options:

  • * RequestResponse (default) – Invoke the function synchronously. Keep * the connection open until the function returns a response or times out. The API * operation response includes the function response and additional data.

  • *
  • DryRun – Validate parameter values and verify that the IAM * user or role has permission to invoke the function.

*/ inline void SetInvocationType(ResponseStreamingInvocationType&& value) { m_invocationTypeHasBeenSet = true; m_invocationType = std::move(value); } /** *

Use one of the following options:

  • * RequestResponse (default) – Invoke the function synchronously. Keep * the connection open until the function returns a response or times out. The API * operation response includes the function response and additional data.

  • *
  • DryRun – Validate parameter values and verify that the IAM * user or role has permission to invoke the function.

*/ inline InvokeWithResponseStreamRequest& WithInvocationType(const ResponseStreamingInvocationType& value) { SetInvocationType(value); return *this;} /** *

Use one of the following options:

  • * RequestResponse (default) – Invoke the function synchronously. Keep * the connection open until the function returns a response or times out. The API * operation response includes the function response and additional data.

  • *
  • DryRun – Validate parameter values and verify that the IAM * user or role has permission to invoke the function.

*/ inline InvokeWithResponseStreamRequest& WithInvocationType(ResponseStreamingInvocationType&& value) { SetInvocationType(std::move(value)); return *this;} /** *

Set to Tail to include the execution log in the response. * Applies to synchronously invoked functions only.

*/ inline const LogType& GetLogType() const{ return m_logType; } /** *

Set to Tail to include the execution log in the response. * Applies to synchronously invoked functions only.

*/ inline bool LogTypeHasBeenSet() const { return m_logTypeHasBeenSet; } /** *

Set to Tail to include the execution log in the response. * Applies to synchronously invoked functions only.

*/ inline void SetLogType(const LogType& value) { m_logTypeHasBeenSet = true; m_logType = value; } /** *

Set to Tail to include the execution log in the response. * Applies to synchronously invoked functions only.

*/ inline void SetLogType(LogType&& value) { m_logTypeHasBeenSet = true; m_logType = std::move(value); } /** *

Set to Tail to include the execution log in the response. * Applies to synchronously invoked functions only.

*/ inline InvokeWithResponseStreamRequest& WithLogType(const LogType& value) { SetLogType(value); return *this;} /** *

Set to Tail to include the execution log in the response. * Applies to synchronously invoked functions only.

*/ inline InvokeWithResponseStreamRequest& WithLogType(LogType&& value) { SetLogType(std::move(value)); return *this;} /** *

Up to 3,583 bytes of base64-encoded data about the invoking client to pass to * the function in the context object.

*/ inline const Aws::String& GetClientContext() const{ return m_clientContext; } /** *

Up to 3,583 bytes of base64-encoded data about the invoking client to pass to * the function in the context object.

*/ inline bool ClientContextHasBeenSet() const { return m_clientContextHasBeenSet; } /** *

Up to 3,583 bytes of base64-encoded data about the invoking client to pass to * the function in the context object.

*/ inline void SetClientContext(const Aws::String& value) { m_clientContextHasBeenSet = true; m_clientContext = value; } /** *

Up to 3,583 bytes of base64-encoded data about the invoking client to pass to * the function in the context object.

*/ inline void SetClientContext(Aws::String&& value) { m_clientContextHasBeenSet = true; m_clientContext = std::move(value); } /** *

Up to 3,583 bytes of base64-encoded data about the invoking client to pass to * the function in the context object.

*/ inline void SetClientContext(const char* value) { m_clientContextHasBeenSet = true; m_clientContext.assign(value); } /** *

Up to 3,583 bytes of base64-encoded data about the invoking client to pass to * the function in the context object.

*/ inline InvokeWithResponseStreamRequest& WithClientContext(const Aws::String& value) { SetClientContext(value); return *this;} /** *

Up to 3,583 bytes of base64-encoded data about the invoking client to pass to * the function in the context object.

*/ inline InvokeWithResponseStreamRequest& WithClientContext(Aws::String&& value) { SetClientContext(std::move(value)); return *this;} /** *

Up to 3,583 bytes of base64-encoded data about the invoking client to pass to * the function in the context object.

*/ inline InvokeWithResponseStreamRequest& WithClientContext(const char* value) { SetClientContext(value); return *this;} /** *

The alias name.

*/ inline const Aws::String& GetQualifier() const{ return m_qualifier; } /** *

The alias name.

*/ inline bool QualifierHasBeenSet() const { return m_qualifierHasBeenSet; } /** *

The alias name.

*/ inline void SetQualifier(const Aws::String& value) { m_qualifierHasBeenSet = true; m_qualifier = value; } /** *

The alias name.

*/ inline void SetQualifier(Aws::String&& value) { m_qualifierHasBeenSet = true; m_qualifier = std::move(value); } /** *

The alias name.

*/ inline void SetQualifier(const char* value) { m_qualifierHasBeenSet = true; m_qualifier.assign(value); } /** *

The alias name.

*/ inline InvokeWithResponseStreamRequest& WithQualifier(const Aws::String& value) { SetQualifier(value); return *this;} /** *

The alias name.

*/ inline InvokeWithResponseStreamRequest& WithQualifier(Aws::String&& value) { SetQualifier(std::move(value)); return *this;} /** *

The alias name.

*/ inline InvokeWithResponseStreamRequest& WithQualifier(const char* value) { SetQualifier(value); return *this;} private: Aws::String m_functionName; bool m_functionNameHasBeenSet = false; ResponseStreamingInvocationType m_invocationType; bool m_invocationTypeHasBeenSet = false; LogType m_logType; bool m_logTypeHasBeenSet = false; Aws::String m_clientContext; bool m_clientContextHasBeenSet = false; Aws::String m_qualifier; bool m_qualifierHasBeenSet = false; InvokeWithResponseStreamHandler m_handler; Aws::Utils::Event::EventStreamDecoder m_decoder; }; } // namespace Model } // namespace Lambda } // namespace Aws