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

Define and configure faster launching for output Windows AMIs.

See * Also:

AWS * API Reference

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

A Boolean that represents the current state of faster launching for the * Windows AMI. Set to true to start using Windows faster launching, * or false to stop using it.

*/ inline bool GetEnabled() const{ return m_enabled; } /** *

A Boolean that represents the current state of faster launching for the * Windows AMI. Set to true to start using Windows faster launching, * or false to stop using it.

*/ inline bool EnabledHasBeenSet() const { return m_enabledHasBeenSet; } /** *

A Boolean that represents the current state of faster launching for the * Windows AMI. Set to true to start using Windows faster launching, * or false to stop using it.

*/ inline void SetEnabled(bool value) { m_enabledHasBeenSet = true; m_enabled = value; } /** *

A Boolean that represents the current state of faster launching for the * Windows AMI. Set to true to start using Windows faster launching, * or false to stop using it.

*/ inline FastLaunchConfiguration& WithEnabled(bool value) { SetEnabled(value); return *this;} /** *

Configuration settings for managing the number of snapshots that are created * from pre-provisioned instances for the Windows AMI when faster launching is * enabled.

*/ inline const FastLaunchSnapshotConfiguration& GetSnapshotConfiguration() const{ return m_snapshotConfiguration; } /** *

Configuration settings for managing the number of snapshots that are created * from pre-provisioned instances for the Windows AMI when faster launching is * enabled.

*/ inline bool SnapshotConfigurationHasBeenSet() const { return m_snapshotConfigurationHasBeenSet; } /** *

Configuration settings for managing the number of snapshots that are created * from pre-provisioned instances for the Windows AMI when faster launching is * enabled.

*/ inline void SetSnapshotConfiguration(const FastLaunchSnapshotConfiguration& value) { m_snapshotConfigurationHasBeenSet = true; m_snapshotConfiguration = value; } /** *

Configuration settings for managing the number of snapshots that are created * from pre-provisioned instances for the Windows AMI when faster launching is * enabled.

*/ inline void SetSnapshotConfiguration(FastLaunchSnapshotConfiguration&& value) { m_snapshotConfigurationHasBeenSet = true; m_snapshotConfiguration = std::move(value); } /** *

Configuration settings for managing the number of snapshots that are created * from pre-provisioned instances for the Windows AMI when faster launching is * enabled.

*/ inline FastLaunchConfiguration& WithSnapshotConfiguration(const FastLaunchSnapshotConfiguration& value) { SetSnapshotConfiguration(value); return *this;} /** *

Configuration settings for managing the number of snapshots that are created * from pre-provisioned instances for the Windows AMI when faster launching is * enabled.

*/ inline FastLaunchConfiguration& WithSnapshotConfiguration(FastLaunchSnapshotConfiguration&& value) { SetSnapshotConfiguration(std::move(value)); return *this;} /** *

The maximum number of parallel instances that are launched for creating * resources.

*/ inline int GetMaxParallelLaunches() const{ return m_maxParallelLaunches; } /** *

The maximum number of parallel instances that are launched for creating * resources.

*/ inline bool MaxParallelLaunchesHasBeenSet() const { return m_maxParallelLaunchesHasBeenSet; } /** *

The maximum number of parallel instances that are launched for creating * resources.

*/ inline void SetMaxParallelLaunches(int value) { m_maxParallelLaunchesHasBeenSet = true; m_maxParallelLaunches = value; } /** *

The maximum number of parallel instances that are launched for creating * resources.

*/ inline FastLaunchConfiguration& WithMaxParallelLaunches(int value) { SetMaxParallelLaunches(value); return *this;} /** *

The launch template that the fast-launch enabled Windows AMI uses when it * launches Windows instances to create pre-provisioned snapshots.

*/ inline const FastLaunchLaunchTemplateSpecification& GetLaunchTemplate() const{ return m_launchTemplate; } /** *

The launch template that the fast-launch enabled Windows AMI uses when it * launches Windows instances to create pre-provisioned snapshots.

*/ inline bool LaunchTemplateHasBeenSet() const { return m_launchTemplateHasBeenSet; } /** *

The launch template that the fast-launch enabled Windows AMI uses when it * launches Windows instances to create pre-provisioned snapshots.

*/ inline void SetLaunchTemplate(const FastLaunchLaunchTemplateSpecification& value) { m_launchTemplateHasBeenSet = true; m_launchTemplate = value; } /** *

The launch template that the fast-launch enabled Windows AMI uses when it * launches Windows instances to create pre-provisioned snapshots.

*/ inline void SetLaunchTemplate(FastLaunchLaunchTemplateSpecification&& value) { m_launchTemplateHasBeenSet = true; m_launchTemplate = std::move(value); } /** *

The launch template that the fast-launch enabled Windows AMI uses when it * launches Windows instances to create pre-provisioned snapshots.

*/ inline FastLaunchConfiguration& WithLaunchTemplate(const FastLaunchLaunchTemplateSpecification& value) { SetLaunchTemplate(value); return *this;} /** *

The launch template that the fast-launch enabled Windows AMI uses when it * launches Windows instances to create pre-provisioned snapshots.

*/ inline FastLaunchConfiguration& WithLaunchTemplate(FastLaunchLaunchTemplateSpecification&& value) { SetLaunchTemplate(std::move(value)); return *this;} /** *

The owner account ID for the fast-launch enabled Windows AMI.

*/ inline const Aws::String& GetAccountId() const{ return m_accountId; } /** *

The owner account ID for the fast-launch enabled Windows AMI.

*/ inline bool AccountIdHasBeenSet() const { return m_accountIdHasBeenSet; } /** *

The owner account ID for the fast-launch enabled Windows AMI.

*/ inline void SetAccountId(const Aws::String& value) { m_accountIdHasBeenSet = true; m_accountId = value; } /** *

The owner account ID for the fast-launch enabled Windows AMI.

*/ inline void SetAccountId(Aws::String&& value) { m_accountIdHasBeenSet = true; m_accountId = std::move(value); } /** *

The owner account ID for the fast-launch enabled Windows AMI.

*/ inline void SetAccountId(const char* value) { m_accountIdHasBeenSet = true; m_accountId.assign(value); } /** *

The owner account ID for the fast-launch enabled Windows AMI.

*/ inline FastLaunchConfiguration& WithAccountId(const Aws::String& value) { SetAccountId(value); return *this;} /** *

The owner account ID for the fast-launch enabled Windows AMI.

*/ inline FastLaunchConfiguration& WithAccountId(Aws::String&& value) { SetAccountId(std::move(value)); return *this;} /** *

The owner account ID for the fast-launch enabled Windows AMI.

*/ inline FastLaunchConfiguration& WithAccountId(const char* value) { SetAccountId(value); return *this;} private: bool m_enabled; bool m_enabledHasBeenSet = false; FastLaunchSnapshotConfiguration m_snapshotConfiguration; bool m_snapshotConfigurationHasBeenSet = false; int m_maxParallelLaunches; bool m_maxParallelLaunchesHasBeenSet = false; FastLaunchLaunchTemplateSpecification m_launchTemplate; bool m_launchTemplateHasBeenSet = false; Aws::String m_accountId; bool m_accountIdHasBeenSet = false; }; } // namespace Model } // namespace imagebuilder } // namespace Aws