/** * 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 criteria for determining a request * match.

See Also:

AWS * API Reference

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

The gateway route host name to be matched on.

*/ inline const GatewayRouteHostnameMatch& GetHostname() const{ return m_hostname; } /** *

The gateway route host name to be matched on.

*/ inline bool HostnameHasBeenSet() const { return m_hostnameHasBeenSet; } /** *

The gateway route host name to be matched on.

*/ inline void SetHostname(const GatewayRouteHostnameMatch& value) { m_hostnameHasBeenSet = true; m_hostname = value; } /** *

The gateway route host name to be matched on.

*/ inline void SetHostname(GatewayRouteHostnameMatch&& value) { m_hostnameHasBeenSet = true; m_hostname = std::move(value); } /** *

The gateway route host name to be matched on.

*/ inline GrpcGatewayRouteMatch& WithHostname(const GatewayRouteHostnameMatch& value) { SetHostname(value); return *this;} /** *

The gateway route host name to be matched on.

*/ inline GrpcGatewayRouteMatch& WithHostname(GatewayRouteHostnameMatch&& value) { SetHostname(std::move(value)); return *this;} /** *

The gateway route metadata to be matched on.

*/ inline const Aws::Vector& GetMetadata() const{ return m_metadata; } /** *

The gateway route metadata to be matched on.

*/ inline bool MetadataHasBeenSet() const { return m_metadataHasBeenSet; } /** *

The gateway route metadata to be matched on.

*/ inline void SetMetadata(const Aws::Vector& value) { m_metadataHasBeenSet = true; m_metadata = value; } /** *

The gateway route metadata to be matched on.

*/ inline void SetMetadata(Aws::Vector&& value) { m_metadataHasBeenSet = true; m_metadata = std::move(value); } /** *

The gateway route metadata to be matched on.

*/ inline GrpcGatewayRouteMatch& WithMetadata(const Aws::Vector& value) { SetMetadata(value); return *this;} /** *

The gateway route metadata to be matched on.

*/ inline GrpcGatewayRouteMatch& WithMetadata(Aws::Vector&& value) { SetMetadata(std::move(value)); return *this;} /** *

The gateway route metadata to be matched on.

*/ inline GrpcGatewayRouteMatch& AddMetadata(const GrpcGatewayRouteMetadata& value) { m_metadataHasBeenSet = true; m_metadata.push_back(value); return *this; } /** *

The gateway route metadata to be matched on.

*/ inline GrpcGatewayRouteMatch& AddMetadata(GrpcGatewayRouteMetadata&& value) { m_metadataHasBeenSet = true; m_metadata.push_back(std::move(value)); return *this; } /** *

The port number to match from the request.

*/ inline int GetPort() const{ return m_port; } /** *

The port number to match from the request.

*/ inline bool PortHasBeenSet() const { return m_portHasBeenSet; } /** *

The port number to match from the request.

*/ inline void SetPort(int value) { m_portHasBeenSet = true; m_port = value; } /** *

The port number to match from the request.

*/ inline GrpcGatewayRouteMatch& WithPort(int value) { SetPort(value); return *this;} /** *

The fully qualified domain name for the service to match from the * request.

*/ inline const Aws::String& GetServiceName() const{ return m_serviceName; } /** *

The fully qualified domain name for the service to match from the * request.

*/ inline bool ServiceNameHasBeenSet() const { return m_serviceNameHasBeenSet; } /** *

The fully qualified domain name for the service to match from the * request.

*/ inline void SetServiceName(const Aws::String& value) { m_serviceNameHasBeenSet = true; m_serviceName = value; } /** *

The fully qualified domain name for the service to match from the * request.

*/ inline void SetServiceName(Aws::String&& value) { m_serviceNameHasBeenSet = true; m_serviceName = std::move(value); } /** *

The fully qualified domain name for the service to match from the * request.

*/ inline void SetServiceName(const char* value) { m_serviceNameHasBeenSet = true; m_serviceName.assign(value); } /** *

The fully qualified domain name for the service to match from the * request.

*/ inline GrpcGatewayRouteMatch& WithServiceName(const Aws::String& value) { SetServiceName(value); return *this;} /** *

The fully qualified domain name for the service to match from the * request.

*/ inline GrpcGatewayRouteMatch& WithServiceName(Aws::String&& value) { SetServiceName(std::move(value)); return *this;} /** *

The fully qualified domain name for the service to match from the * request.

*/ inline GrpcGatewayRouteMatch& WithServiceName(const char* value) { SetServiceName(value); return *this;} private: GatewayRouteHostnameMatch m_hostname; bool m_hostnameHasBeenSet = false; Aws::Vector m_metadata; bool m_metadataHasBeenSet = false; int m_port; bool m_portHasBeenSet = false; Aws::String m_serviceName; bool m_serviceNameHasBeenSet = false; }; } // namespace Model } // namespace AppMesh } // namespace Aws