/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include namespace Aws { namespace Utils { namespace Xml { class XmlNode; } // namespace Xml } // namespace Utils namespace CloudFront { namespace Model { /** *

A complex type that contains a Lambda function association.

See * Also:

AWS * API Reference

*/ class AWS_CLOUDFRONT_API LambdaFunctionAssociation { public: LambdaFunctionAssociation(); LambdaFunctionAssociation(const Aws::Utils::Xml::XmlNode& xmlNode); LambdaFunctionAssociation& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); void AddToNode(Aws::Utils::Xml::XmlNode& parentNode) const; /** *

The ARN of the Lambda function. You must specify the ARN of a function * version; you can't specify a Lambda alias or $LATEST.

*/ inline const Aws::String& GetLambdaFunctionARN() const{ return m_lambdaFunctionARN; } /** *

The ARN of the Lambda function. You must specify the ARN of a function * version; you can't specify a Lambda alias or $LATEST.

*/ inline bool LambdaFunctionARNHasBeenSet() const { return m_lambdaFunctionARNHasBeenSet; } /** *

The ARN of the Lambda function. You must specify the ARN of a function * version; you can't specify a Lambda alias or $LATEST.

*/ inline void SetLambdaFunctionARN(const Aws::String& value) { m_lambdaFunctionARNHasBeenSet = true; m_lambdaFunctionARN = value; } /** *

The ARN of the Lambda function. You must specify the ARN of a function * version; you can't specify a Lambda alias or $LATEST.

*/ inline void SetLambdaFunctionARN(Aws::String&& value) { m_lambdaFunctionARNHasBeenSet = true; m_lambdaFunctionARN = std::move(value); } /** *

The ARN of the Lambda function. You must specify the ARN of a function * version; you can't specify a Lambda alias or $LATEST.

*/ inline void SetLambdaFunctionARN(const char* value) { m_lambdaFunctionARNHasBeenSet = true; m_lambdaFunctionARN.assign(value); } /** *

The ARN of the Lambda function. You must specify the ARN of a function * version; you can't specify a Lambda alias or $LATEST.

*/ inline LambdaFunctionAssociation& WithLambdaFunctionARN(const Aws::String& value) { SetLambdaFunctionARN(value); return *this;} /** *

The ARN of the Lambda function. You must specify the ARN of a function * version; you can't specify a Lambda alias or $LATEST.

*/ inline LambdaFunctionAssociation& WithLambdaFunctionARN(Aws::String&& value) { SetLambdaFunctionARN(std::move(value)); return *this;} /** *

The ARN of the Lambda function. You must specify the ARN of a function * version; you can't specify a Lambda alias or $LATEST.

*/ inline LambdaFunctionAssociation& WithLambdaFunctionARN(const char* value) { SetLambdaFunctionARN(value); return *this;} /** *

Specifies the event type that triggers a Lambda function invocation. You can * specify the following values:

  • viewer-request: The * function executes when CloudFront receives a request from a viewer and before it * checks to see whether the requested object is in the edge cache.

  • *

    origin-request: The function executes only when CloudFront * sends a request to your origin. When the requested object is in the edge cache, * the function doesn't execute.

  • origin-response: * The function executes after CloudFront receives a response from the origin and * before it caches the object in the response. When the requested object is in the * edge cache, the function doesn't execute.

  • * viewer-response: The function executes before CloudFront returns * the requested object to the viewer. The function executes regardless of whether * the object was already in the edge cache.

    If the origin returns an HTTP * status code other than HTTP 200 (OK), the function doesn't execute.

  • *
*/ inline const EventType& GetEventType() const{ return m_eventType; } /** *

Specifies the event type that triggers a Lambda function invocation. You can * specify the following values:

  • viewer-request: The * function executes when CloudFront receives a request from a viewer and before it * checks to see whether the requested object is in the edge cache.

  • *

    origin-request: The function executes only when CloudFront * sends a request to your origin. When the requested object is in the edge cache, * the function doesn't execute.

  • origin-response: * The function executes after CloudFront receives a response from the origin and * before it caches the object in the response. When the requested object is in the * edge cache, the function doesn't execute.

  • * viewer-response: The function executes before CloudFront returns * the requested object to the viewer. The function executes regardless of whether * the object was already in the edge cache.

    If the origin returns an HTTP * status code other than HTTP 200 (OK), the function doesn't execute.

  • *
*/ inline bool EventTypeHasBeenSet() const { return m_eventTypeHasBeenSet; } /** *

Specifies the event type that triggers a Lambda function invocation. You can * specify the following values:

  • viewer-request: The * function executes when CloudFront receives a request from a viewer and before it * checks to see whether the requested object is in the edge cache.

  • *

    origin-request: The function executes only when CloudFront * sends a request to your origin. When the requested object is in the edge cache, * the function doesn't execute.

  • origin-response: * The function executes after CloudFront receives a response from the origin and * before it caches the object in the response. When the requested object is in the * edge cache, the function doesn't execute.

  • * viewer-response: The function executes before CloudFront returns * the requested object to the viewer. The function executes regardless of whether * the object was already in the edge cache.

    If the origin returns an HTTP * status code other than HTTP 200 (OK), the function doesn't execute.

  • *
*/ inline void SetEventType(const EventType& value) { m_eventTypeHasBeenSet = true; m_eventType = value; } /** *

Specifies the event type that triggers a Lambda function invocation. You can * specify the following values:

  • viewer-request: The * function executes when CloudFront receives a request from a viewer and before it * checks to see whether the requested object is in the edge cache.

  • *

    origin-request: The function executes only when CloudFront * sends a request to your origin. When the requested object is in the edge cache, * the function doesn't execute.

  • origin-response: * The function executes after CloudFront receives a response from the origin and * before it caches the object in the response. When the requested object is in the * edge cache, the function doesn't execute.

  • * viewer-response: The function executes before CloudFront returns * the requested object to the viewer. The function executes regardless of whether * the object was already in the edge cache.

    If the origin returns an HTTP * status code other than HTTP 200 (OK), the function doesn't execute.

  • *
*/ inline void SetEventType(EventType&& value) { m_eventTypeHasBeenSet = true; m_eventType = std::move(value); } /** *

Specifies the event type that triggers a Lambda function invocation. You can * specify the following values:

  • viewer-request: The * function executes when CloudFront receives a request from a viewer and before it * checks to see whether the requested object is in the edge cache.

  • *

    origin-request: The function executes only when CloudFront * sends a request to your origin. When the requested object is in the edge cache, * the function doesn't execute.

  • origin-response: * The function executes after CloudFront receives a response from the origin and * before it caches the object in the response. When the requested object is in the * edge cache, the function doesn't execute.

  • * viewer-response: The function executes before CloudFront returns * the requested object to the viewer. The function executes regardless of whether * the object was already in the edge cache.

    If the origin returns an HTTP * status code other than HTTP 200 (OK), the function doesn't execute.

  • *
*/ inline LambdaFunctionAssociation& WithEventType(const EventType& value) { SetEventType(value); return *this;} /** *

Specifies the event type that triggers a Lambda function invocation. You can * specify the following values:

  • viewer-request: The * function executes when CloudFront receives a request from a viewer and before it * checks to see whether the requested object is in the edge cache.

  • *

    origin-request: The function executes only when CloudFront * sends a request to your origin. When the requested object is in the edge cache, * the function doesn't execute.

  • origin-response: * The function executes after CloudFront receives a response from the origin and * before it caches the object in the response. When the requested object is in the * edge cache, the function doesn't execute.

  • * viewer-response: The function executes before CloudFront returns * the requested object to the viewer. The function executes regardless of whether * the object was already in the edge cache.

    If the origin returns an HTTP * status code other than HTTP 200 (OK), the function doesn't execute.

  • *
*/ inline LambdaFunctionAssociation& WithEventType(EventType&& value) { SetEventType(std::move(value)); return *this;} /** *

A flag that allows a Lambda function to have read access to the body content. * For more information, see Accessing * the Request Body by Choosing the Include Body Option in the Amazon * CloudFront Developer Guide.

*/ inline bool GetIncludeBody() const{ return m_includeBody; } /** *

A flag that allows a Lambda function to have read access to the body content. * For more information, see Accessing * the Request Body by Choosing the Include Body Option in the Amazon * CloudFront Developer Guide.

*/ inline bool IncludeBodyHasBeenSet() const { return m_includeBodyHasBeenSet; } /** *

A flag that allows a Lambda function to have read access to the body content. * For more information, see Accessing * the Request Body by Choosing the Include Body Option in the Amazon * CloudFront Developer Guide.

*/ inline void SetIncludeBody(bool value) { m_includeBodyHasBeenSet = true; m_includeBody = value; } /** *

A flag that allows a Lambda function to have read access to the body content. * For more information, see Accessing * the Request Body by Choosing the Include Body Option in the Amazon * CloudFront Developer Guide.

*/ inline LambdaFunctionAssociation& WithIncludeBody(bool value) { SetIncludeBody(value); return *this;} private: Aws::String m_lambdaFunctionARN; bool m_lambdaFunctionARNHasBeenSet; EventType m_eventType; bool m_eventTypeHasBeenSet; bool m_includeBody; bool m_includeBodyHasBeenSet; }; } // namespace Model } // namespace CloudFront } // namespace Aws