/** * 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 QuickSight { namespace Model { /** *

The configuration that determines what the type of layout will be used on a * sheet.

This is a union type structure. For this structure to be valid, * only one of the attributes can be defined.

See Also:

AWS * API Reference

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

A type of layout that can be used on a sheet. In a grid layout, visuals snap * to a grid with standard spacing and alignment. Dashboards are displayed as * designed, with options to fit to screen or view at actual size. A grid layout * can be configured to behave in one of two ways when the viewport is resized: * FIXED or RESPONSIVE.

*/ inline const GridLayoutConfiguration& GetGridLayout() const{ return m_gridLayout; } /** *

A type of layout that can be used on a sheet. In a grid layout, visuals snap * to a grid with standard spacing and alignment. Dashboards are displayed as * designed, with options to fit to screen or view at actual size. A grid layout * can be configured to behave in one of two ways when the viewport is resized: * FIXED or RESPONSIVE.

*/ inline bool GridLayoutHasBeenSet() const { return m_gridLayoutHasBeenSet; } /** *

A type of layout that can be used on a sheet. In a grid layout, visuals snap * to a grid with standard spacing and alignment. Dashboards are displayed as * designed, with options to fit to screen or view at actual size. A grid layout * can be configured to behave in one of two ways when the viewport is resized: * FIXED or RESPONSIVE.

*/ inline void SetGridLayout(const GridLayoutConfiguration& value) { m_gridLayoutHasBeenSet = true; m_gridLayout = value; } /** *

A type of layout that can be used on a sheet. In a grid layout, visuals snap * to a grid with standard spacing and alignment. Dashboards are displayed as * designed, with options to fit to screen or view at actual size. A grid layout * can be configured to behave in one of two ways when the viewport is resized: * FIXED or RESPONSIVE.

*/ inline void SetGridLayout(GridLayoutConfiguration&& value) { m_gridLayoutHasBeenSet = true; m_gridLayout = std::move(value); } /** *

A type of layout that can be used on a sheet. In a grid layout, visuals snap * to a grid with standard spacing and alignment. Dashboards are displayed as * designed, with options to fit to screen or view at actual size. A grid layout * can be configured to behave in one of two ways when the viewport is resized: * FIXED or RESPONSIVE.

*/ inline LayoutConfiguration& WithGridLayout(const GridLayoutConfiguration& value) { SetGridLayout(value); return *this;} /** *

A type of layout that can be used on a sheet. In a grid layout, visuals snap * to a grid with standard spacing and alignment. Dashboards are displayed as * designed, with options to fit to screen or view at actual size. A grid layout * can be configured to behave in one of two ways when the viewport is resized: * FIXED or RESPONSIVE.

*/ inline LayoutConfiguration& WithGridLayout(GridLayoutConfiguration&& value) { SetGridLayout(std::move(value)); return *this;} /** *

A free-form is optimized for a fixed width and has more control over the * exact placement of layout elements.

*/ inline const FreeFormLayoutConfiguration& GetFreeFormLayout() const{ return m_freeFormLayout; } /** *

A free-form is optimized for a fixed width and has more control over the * exact placement of layout elements.

*/ inline bool FreeFormLayoutHasBeenSet() const { return m_freeFormLayoutHasBeenSet; } /** *

A free-form is optimized for a fixed width and has more control over the * exact placement of layout elements.

*/ inline void SetFreeFormLayout(const FreeFormLayoutConfiguration& value) { m_freeFormLayoutHasBeenSet = true; m_freeFormLayout = value; } /** *

A free-form is optimized for a fixed width and has more control over the * exact placement of layout elements.

*/ inline void SetFreeFormLayout(FreeFormLayoutConfiguration&& value) { m_freeFormLayoutHasBeenSet = true; m_freeFormLayout = std::move(value); } /** *

A free-form is optimized for a fixed width and has more control over the * exact placement of layout elements.

*/ inline LayoutConfiguration& WithFreeFormLayout(const FreeFormLayoutConfiguration& value) { SetFreeFormLayout(value); return *this;} /** *

A free-form is optimized for a fixed width and has more control over the * exact placement of layout elements.

*/ inline LayoutConfiguration& WithFreeFormLayout(FreeFormLayoutConfiguration&& value) { SetFreeFormLayout(std::move(value)); return *this;} /** *

A section based layout organizes visuals into multiple sections and has * customized header, footer and page break.

*/ inline const SectionBasedLayoutConfiguration& GetSectionBasedLayout() const{ return m_sectionBasedLayout; } /** *

A section based layout organizes visuals into multiple sections and has * customized header, footer and page break.

*/ inline bool SectionBasedLayoutHasBeenSet() const { return m_sectionBasedLayoutHasBeenSet; } /** *

A section based layout organizes visuals into multiple sections and has * customized header, footer and page break.

*/ inline void SetSectionBasedLayout(const SectionBasedLayoutConfiguration& value) { m_sectionBasedLayoutHasBeenSet = true; m_sectionBasedLayout = value; } /** *

A section based layout organizes visuals into multiple sections and has * customized header, footer and page break.

*/ inline void SetSectionBasedLayout(SectionBasedLayoutConfiguration&& value) { m_sectionBasedLayoutHasBeenSet = true; m_sectionBasedLayout = std::move(value); } /** *

A section based layout organizes visuals into multiple sections and has * customized header, footer and page break.

*/ inline LayoutConfiguration& WithSectionBasedLayout(const SectionBasedLayoutConfiguration& value) { SetSectionBasedLayout(value); return *this;} /** *

A section based layout organizes visuals into multiple sections and has * customized header, footer and page break.

*/ inline LayoutConfiguration& WithSectionBasedLayout(SectionBasedLayoutConfiguration&& value) { SetSectionBasedLayout(std::move(value)); return *this;} private: GridLayoutConfiguration m_gridLayout; bool m_gridLayoutHasBeenSet = false; FreeFormLayoutConfiguration m_freeFormLayout; bool m_freeFormLayoutHasBeenSet = false; SectionBasedLayoutConfiguration m_sectionBasedLayout; bool m_sectionBasedLayoutHasBeenSet = false; }; } // namespace Model } // namespace QuickSight } // namespace Aws