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

An object that represents the specification of a service mesh * resource.

See Also:

AWS * API Reference

*/ class VirtualGatewaySpec { public: AWS_APPMESH_API VirtualGatewaySpec(); AWS_APPMESH_API VirtualGatewaySpec(Aws::Utils::Json::JsonView jsonValue); AWS_APPMESH_API VirtualGatewaySpec& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_APPMESH_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

A reference to an object that represents the defaults for backends.

*/ inline const VirtualGatewayBackendDefaults& GetBackendDefaults() const{ return m_backendDefaults; } /** *

A reference to an object that represents the defaults for backends.

*/ inline bool BackendDefaultsHasBeenSet() const { return m_backendDefaultsHasBeenSet; } /** *

A reference to an object that represents the defaults for backends.

*/ inline void SetBackendDefaults(const VirtualGatewayBackendDefaults& value) { m_backendDefaultsHasBeenSet = true; m_backendDefaults = value; } /** *

A reference to an object that represents the defaults for backends.

*/ inline void SetBackendDefaults(VirtualGatewayBackendDefaults&& value) { m_backendDefaultsHasBeenSet = true; m_backendDefaults = std::move(value); } /** *

A reference to an object that represents the defaults for backends.

*/ inline VirtualGatewaySpec& WithBackendDefaults(const VirtualGatewayBackendDefaults& value) { SetBackendDefaults(value); return *this;} /** *

A reference to an object that represents the defaults for backends.

*/ inline VirtualGatewaySpec& WithBackendDefaults(VirtualGatewayBackendDefaults&& value) { SetBackendDefaults(std::move(value)); return *this;} /** *

The listeners that the mesh endpoint is expected to receive inbound traffic * from. You can specify one listener.

*/ inline const Aws::Vector& GetListeners() const{ return m_listeners; } /** *

The listeners that the mesh endpoint is expected to receive inbound traffic * from. You can specify one listener.

*/ inline bool ListenersHasBeenSet() const { return m_listenersHasBeenSet; } /** *

The listeners that the mesh endpoint is expected to receive inbound traffic * from. You can specify one listener.

*/ inline void SetListeners(const Aws::Vector& value) { m_listenersHasBeenSet = true; m_listeners = value; } /** *

The listeners that the mesh endpoint is expected to receive inbound traffic * from. You can specify one listener.

*/ inline void SetListeners(Aws::Vector&& value) { m_listenersHasBeenSet = true; m_listeners = std::move(value); } /** *

The listeners that the mesh endpoint is expected to receive inbound traffic * from. You can specify one listener.

*/ inline VirtualGatewaySpec& WithListeners(const Aws::Vector& value) { SetListeners(value); return *this;} /** *

The listeners that the mesh endpoint is expected to receive inbound traffic * from. You can specify one listener.

*/ inline VirtualGatewaySpec& WithListeners(Aws::Vector&& value) { SetListeners(std::move(value)); return *this;} /** *

The listeners that the mesh endpoint is expected to receive inbound traffic * from. You can specify one listener.

*/ inline VirtualGatewaySpec& AddListeners(const VirtualGatewayListener& value) { m_listenersHasBeenSet = true; m_listeners.push_back(value); return *this; } /** *

The listeners that the mesh endpoint is expected to receive inbound traffic * from. You can specify one listener.

*/ inline VirtualGatewaySpec& AddListeners(VirtualGatewayListener&& value) { m_listenersHasBeenSet = true; m_listeners.push_back(std::move(value)); return *this; } inline const VirtualGatewayLogging& GetLogging() const{ return m_logging; } inline bool LoggingHasBeenSet() const { return m_loggingHasBeenSet; } inline void SetLogging(const VirtualGatewayLogging& value) { m_loggingHasBeenSet = true; m_logging = value; } inline void SetLogging(VirtualGatewayLogging&& value) { m_loggingHasBeenSet = true; m_logging = std::move(value); } inline VirtualGatewaySpec& WithLogging(const VirtualGatewayLogging& value) { SetLogging(value); return *this;} inline VirtualGatewaySpec& WithLogging(VirtualGatewayLogging&& value) { SetLogging(std::move(value)); return *this;} private: VirtualGatewayBackendDefaults m_backendDefaults; bool m_backendDefaultsHasBeenSet = false; Aws::Vector m_listeners; bool m_listenersHasBeenSet = false; VirtualGatewayLogging m_logging; bool m_loggingHasBeenSet = false; }; } // namespace Model } // namespace AppMesh } // namespace Aws