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

Assigns Athena workgroups (and hence their queries) to capacity reservations. * A capacity reservation can have only one capacity assignment configuration, but * the capacity assignment configuration can be made up of multiple individual * assignments. Each assignment specifies how Athena queries can consume capacity * from the capacity reservation that their workgroup is mapped to.

See * Also:

AWS * API Reference

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

The name of the reservation that the capacity assignment configuration is * for.

*/ inline const Aws::String& GetCapacityReservationName() const{ return m_capacityReservationName; } /** *

The name of the reservation that the capacity assignment configuration is * for.

*/ inline bool CapacityReservationNameHasBeenSet() const { return m_capacityReservationNameHasBeenSet; } /** *

The name of the reservation that the capacity assignment configuration is * for.

*/ inline void SetCapacityReservationName(const Aws::String& value) { m_capacityReservationNameHasBeenSet = true; m_capacityReservationName = value; } /** *

The name of the reservation that the capacity assignment configuration is * for.

*/ inline void SetCapacityReservationName(Aws::String&& value) { m_capacityReservationNameHasBeenSet = true; m_capacityReservationName = std::move(value); } /** *

The name of the reservation that the capacity assignment configuration is * for.

*/ inline void SetCapacityReservationName(const char* value) { m_capacityReservationNameHasBeenSet = true; m_capacityReservationName.assign(value); } /** *

The name of the reservation that the capacity assignment configuration is * for.

*/ inline CapacityAssignmentConfiguration& WithCapacityReservationName(const Aws::String& value) { SetCapacityReservationName(value); return *this;} /** *

The name of the reservation that the capacity assignment configuration is * for.

*/ inline CapacityAssignmentConfiguration& WithCapacityReservationName(Aws::String&& value) { SetCapacityReservationName(std::move(value)); return *this;} /** *

The name of the reservation that the capacity assignment configuration is * for.

*/ inline CapacityAssignmentConfiguration& WithCapacityReservationName(const char* value) { SetCapacityReservationName(value); return *this;} /** *

The list of assignments that make up the capacity assignment * configuration.

*/ inline const Aws::Vector& GetCapacityAssignments() const{ return m_capacityAssignments; } /** *

The list of assignments that make up the capacity assignment * configuration.

*/ inline bool CapacityAssignmentsHasBeenSet() const { return m_capacityAssignmentsHasBeenSet; } /** *

The list of assignments that make up the capacity assignment * configuration.

*/ inline void SetCapacityAssignments(const Aws::Vector& value) { m_capacityAssignmentsHasBeenSet = true; m_capacityAssignments = value; } /** *

The list of assignments that make up the capacity assignment * configuration.

*/ inline void SetCapacityAssignments(Aws::Vector&& value) { m_capacityAssignmentsHasBeenSet = true; m_capacityAssignments = std::move(value); } /** *

The list of assignments that make up the capacity assignment * configuration.

*/ inline CapacityAssignmentConfiguration& WithCapacityAssignments(const Aws::Vector& value) { SetCapacityAssignments(value); return *this;} /** *

The list of assignments that make up the capacity assignment * configuration.

*/ inline CapacityAssignmentConfiguration& WithCapacityAssignments(Aws::Vector&& value) { SetCapacityAssignments(std::move(value)); return *this;} /** *

The list of assignments that make up the capacity assignment * configuration.

*/ inline CapacityAssignmentConfiguration& AddCapacityAssignments(const CapacityAssignment& value) { m_capacityAssignmentsHasBeenSet = true; m_capacityAssignments.push_back(value); return *this; } /** *

The list of assignments that make up the capacity assignment * configuration.

*/ inline CapacityAssignmentConfiguration& AddCapacityAssignments(CapacityAssignment&& value) { m_capacityAssignmentsHasBeenSet = true; m_capacityAssignments.push_back(std::move(value)); return *this; } private: Aws::String m_capacityReservationName; bool m_capacityReservationNameHasBeenSet = false; Aws::Vector m_capacityAssignments; bool m_capacityAssignmentsHasBeenSet = false; }; } // namespace Model } // namespace Athena } // namespace Aws