/** * 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@Edge function * association.

See Also:

AWS * API Reference

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Specifies the event type that triggers a Lambda@Edge 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@Edge 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@Edge 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@Edge 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@Edge 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@Edge 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@Edge 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@Edge 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@Edge 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@Edge 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 = false; EventType m_eventType; bool m_eventTypeHasBeenSet = false; bool m_includeBody; bool m_includeBodyHasBeenSet = false; }; } // namespace Model } // namespace CloudFront } // namespace Aws