/** * 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 Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace AppMesh { namespace Model { /** *

An object that represents the provider for a virtual service.

See * Also:

AWS * API Reference

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

The virtual node associated with a virtual service.

*/ inline const VirtualNodeServiceProvider& GetVirtualNode() const{ return m_virtualNode; } /** *

The virtual node associated with a virtual service.

*/ inline bool VirtualNodeHasBeenSet() const { return m_virtualNodeHasBeenSet; } /** *

The virtual node associated with a virtual service.

*/ inline void SetVirtualNode(const VirtualNodeServiceProvider& value) { m_virtualNodeHasBeenSet = true; m_virtualNode = value; } /** *

The virtual node associated with a virtual service.

*/ inline void SetVirtualNode(VirtualNodeServiceProvider&& value) { m_virtualNodeHasBeenSet = true; m_virtualNode = std::move(value); } /** *

The virtual node associated with a virtual service.

*/ inline VirtualServiceProvider& WithVirtualNode(const VirtualNodeServiceProvider& value) { SetVirtualNode(value); return *this;} /** *

The virtual node associated with a virtual service.

*/ inline VirtualServiceProvider& WithVirtualNode(VirtualNodeServiceProvider&& value) { SetVirtualNode(std::move(value)); return *this;} /** *

The virtual router associated with a virtual service.

*/ inline const VirtualRouterServiceProvider& GetVirtualRouter() const{ return m_virtualRouter; } /** *

The virtual router associated with a virtual service.

*/ inline bool VirtualRouterHasBeenSet() const { return m_virtualRouterHasBeenSet; } /** *

The virtual router associated with a virtual service.

*/ inline void SetVirtualRouter(const VirtualRouterServiceProvider& value) { m_virtualRouterHasBeenSet = true; m_virtualRouter = value; } /** *

The virtual router associated with a virtual service.

*/ inline void SetVirtualRouter(VirtualRouterServiceProvider&& value) { m_virtualRouterHasBeenSet = true; m_virtualRouter = std::move(value); } /** *

The virtual router associated with a virtual service.

*/ inline VirtualServiceProvider& WithVirtualRouter(const VirtualRouterServiceProvider& value) { SetVirtualRouter(value); return *this;} /** *

The virtual router associated with a virtual service.

*/ inline VirtualServiceProvider& WithVirtualRouter(VirtualRouterServiceProvider&& value) { SetVirtualRouter(std::move(value)); return *this;} private: VirtualNodeServiceProvider m_virtualNode; bool m_virtualNodeHasBeenSet = false; VirtualRouterServiceProvider m_virtualRouter; bool m_virtualRouterHasBeenSet = false; }; } // namespace Model } // namespace AppMesh } // namespace Aws