1 /** 2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 * SPDX-License-Identifier: Apache-2.0. 4 */ 5 6 #pragma once 7 #include <aws/appmesh/AppMesh_EXPORTS.h> 8 #include <aws/appmesh/model/VirtualGatewayBackendDefaults.h> 9 #include <aws/core/utils/memory/stl/AWSVector.h> 10 #include <aws/appmesh/model/VirtualGatewayLogging.h> 11 #include <aws/appmesh/model/VirtualGatewayListener.h> 12 #include <utility> 13 14 namespace Aws 15 { 16 namespace Utils 17 { 18 namespace Json 19 { 20 class JsonValue; 21 class JsonView; 22 } // namespace Json 23 } // namespace Utils 24 namespace AppMesh 25 { 26 namespace Model 27 { 28 29 /** 30 * <p>An object that represents the specification of a service mesh 31 * resource.</p><p><h3>See Also:</h3> <a 32 * href="http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/VirtualGatewaySpec">AWS 33 * API Reference</a></p> 34 */ 35 class AWS_APPMESH_API VirtualGatewaySpec 36 { 37 public: 38 VirtualGatewaySpec(); 39 VirtualGatewaySpec(Aws::Utils::Json::JsonView jsonValue); 40 VirtualGatewaySpec& operator=(Aws::Utils::Json::JsonView jsonValue); 41 Aws::Utils::Json::JsonValue Jsonize() const; 42 43 44 /** 45 * <p>A reference to an object that represents the defaults for backends.</p> 46 */ GetBackendDefaults()47 inline const VirtualGatewayBackendDefaults& GetBackendDefaults() const{ return m_backendDefaults; } 48 49 /** 50 * <p>A reference to an object that represents the defaults for backends.</p> 51 */ BackendDefaultsHasBeenSet()52 inline bool BackendDefaultsHasBeenSet() const { return m_backendDefaultsHasBeenSet; } 53 54 /** 55 * <p>A reference to an object that represents the defaults for backends.</p> 56 */ SetBackendDefaults(const VirtualGatewayBackendDefaults & value)57 inline void SetBackendDefaults(const VirtualGatewayBackendDefaults& value) { m_backendDefaultsHasBeenSet = true; m_backendDefaults = value; } 58 59 /** 60 * <p>A reference to an object that represents the defaults for backends.</p> 61 */ SetBackendDefaults(VirtualGatewayBackendDefaults && value)62 inline void SetBackendDefaults(VirtualGatewayBackendDefaults&& value) { m_backendDefaultsHasBeenSet = true; m_backendDefaults = std::move(value); } 63 64 /** 65 * <p>A reference to an object that represents the defaults for backends.</p> 66 */ WithBackendDefaults(const VirtualGatewayBackendDefaults & value)67 inline VirtualGatewaySpec& WithBackendDefaults(const VirtualGatewayBackendDefaults& value) { SetBackendDefaults(value); return *this;} 68 69 /** 70 * <p>A reference to an object that represents the defaults for backends.</p> 71 */ WithBackendDefaults(VirtualGatewayBackendDefaults && value)72 inline VirtualGatewaySpec& WithBackendDefaults(VirtualGatewayBackendDefaults&& value) { SetBackendDefaults(std::move(value)); return *this;} 73 74 75 /** 76 * <p>The listeners that the mesh endpoint is expected to receive inbound traffic 77 * from. You can specify one listener.</p> 78 */ GetListeners()79 inline const Aws::Vector<VirtualGatewayListener>& GetListeners() const{ return m_listeners; } 80 81 /** 82 * <p>The listeners that the mesh endpoint is expected to receive inbound traffic 83 * from. You can specify one listener.</p> 84 */ ListenersHasBeenSet()85 inline bool ListenersHasBeenSet() const { return m_listenersHasBeenSet; } 86 87 /** 88 * <p>The listeners that the mesh endpoint is expected to receive inbound traffic 89 * from. You can specify one listener.</p> 90 */ SetListeners(const Aws::Vector<VirtualGatewayListener> & value)91 inline void SetListeners(const Aws::Vector<VirtualGatewayListener>& value) { m_listenersHasBeenSet = true; m_listeners = value; } 92 93 /** 94 * <p>The listeners that the mesh endpoint is expected to receive inbound traffic 95 * from. You can specify one listener.</p> 96 */ SetListeners(Aws::Vector<VirtualGatewayListener> && value)97 inline void SetListeners(Aws::Vector<VirtualGatewayListener>&& value) { m_listenersHasBeenSet = true; m_listeners = std::move(value); } 98 99 /** 100 * <p>The listeners that the mesh endpoint is expected to receive inbound traffic 101 * from. You can specify one listener.</p> 102 */ WithListeners(const Aws::Vector<VirtualGatewayListener> & value)103 inline VirtualGatewaySpec& WithListeners(const Aws::Vector<VirtualGatewayListener>& value) { SetListeners(value); return *this;} 104 105 /** 106 * <p>The listeners that the mesh endpoint is expected to receive inbound traffic 107 * from. You can specify one listener.</p> 108 */ WithListeners(Aws::Vector<VirtualGatewayListener> && value)109 inline VirtualGatewaySpec& WithListeners(Aws::Vector<VirtualGatewayListener>&& value) { SetListeners(std::move(value)); return *this;} 110 111 /** 112 * <p>The listeners that the mesh endpoint is expected to receive inbound traffic 113 * from. You can specify one listener.</p> 114 */ AddListeners(const VirtualGatewayListener & value)115 inline VirtualGatewaySpec& AddListeners(const VirtualGatewayListener& value) { m_listenersHasBeenSet = true; m_listeners.push_back(value); return *this; } 116 117 /** 118 * <p>The listeners that the mesh endpoint is expected to receive inbound traffic 119 * from. You can specify one listener.</p> 120 */ AddListeners(VirtualGatewayListener && value)121 inline VirtualGatewaySpec& AddListeners(VirtualGatewayListener&& value) { m_listenersHasBeenSet = true; m_listeners.push_back(std::move(value)); return *this; } 122 123 124 GetLogging()125 inline const VirtualGatewayLogging& GetLogging() const{ return m_logging; } 126 127 LoggingHasBeenSet()128 inline bool LoggingHasBeenSet() const { return m_loggingHasBeenSet; } 129 130 SetLogging(const VirtualGatewayLogging & value)131 inline void SetLogging(const VirtualGatewayLogging& value) { m_loggingHasBeenSet = true; m_logging = value; } 132 133 SetLogging(VirtualGatewayLogging && value)134 inline void SetLogging(VirtualGatewayLogging&& value) { m_loggingHasBeenSet = true; m_logging = std::move(value); } 135 136 WithLogging(const VirtualGatewayLogging & value)137 inline VirtualGatewaySpec& WithLogging(const VirtualGatewayLogging& value) { SetLogging(value); return *this;} 138 139 WithLogging(VirtualGatewayLogging && value)140 inline VirtualGatewaySpec& WithLogging(VirtualGatewayLogging&& value) { SetLogging(std::move(value)); return *this;} 141 142 private: 143 144 VirtualGatewayBackendDefaults m_backendDefaults; 145 bool m_backendDefaultsHasBeenSet; 146 147 Aws::Vector<VirtualGatewayListener> m_listeners; 148 bool m_listenersHasBeenSet; 149 150 VirtualGatewayLogging m_logging; 151 bool m_loggingHasBeenSet; 152 }; 153 154 } // namespace Model 155 } // namespace AppMesh 156 } // namespace Aws 157