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

Gets the suite definition configuration.

See Also:

AWS * API Reference

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

Gets the suite definition name. This is a required parameter.

*/ inline const Aws::String& GetSuiteDefinitionName() const{ return m_suiteDefinitionName; } /** *

Gets the suite definition name. This is a required parameter.

*/ inline bool SuiteDefinitionNameHasBeenSet() const { return m_suiteDefinitionNameHasBeenSet; } /** *

Gets the suite definition name. This is a required parameter.

*/ inline void SetSuiteDefinitionName(const Aws::String& value) { m_suiteDefinitionNameHasBeenSet = true; m_suiteDefinitionName = value; } /** *

Gets the suite definition name. This is a required parameter.

*/ inline void SetSuiteDefinitionName(Aws::String&& value) { m_suiteDefinitionNameHasBeenSet = true; m_suiteDefinitionName = std::move(value); } /** *

Gets the suite definition name. This is a required parameter.

*/ inline void SetSuiteDefinitionName(const char* value) { m_suiteDefinitionNameHasBeenSet = true; m_suiteDefinitionName.assign(value); } /** *

Gets the suite definition name. This is a required parameter.

*/ inline SuiteDefinitionConfiguration& WithSuiteDefinitionName(const Aws::String& value) { SetSuiteDefinitionName(value); return *this;} /** *

Gets the suite definition name. This is a required parameter.

*/ inline SuiteDefinitionConfiguration& WithSuiteDefinitionName(Aws::String&& value) { SetSuiteDefinitionName(std::move(value)); return *this;} /** *

Gets the suite definition name. This is a required parameter.

*/ inline SuiteDefinitionConfiguration& WithSuiteDefinitionName(const char* value) { SetSuiteDefinitionName(value); return *this;} /** *

Gets the devices configured.

*/ inline const Aws::Vector& GetDevices() const{ return m_devices; } /** *

Gets the devices configured.

*/ inline bool DevicesHasBeenSet() const { return m_devicesHasBeenSet; } /** *

Gets the devices configured.

*/ inline void SetDevices(const Aws::Vector& value) { m_devicesHasBeenSet = true; m_devices = value; } /** *

Gets the devices configured.

*/ inline void SetDevices(Aws::Vector&& value) { m_devicesHasBeenSet = true; m_devices = std::move(value); } /** *

Gets the devices configured.

*/ inline SuiteDefinitionConfiguration& WithDevices(const Aws::Vector& value) { SetDevices(value); return *this;} /** *

Gets the devices configured.

*/ inline SuiteDefinitionConfiguration& WithDevices(Aws::Vector&& value) { SetDevices(std::move(value)); return *this;} /** *

Gets the devices configured.

*/ inline SuiteDefinitionConfiguration& AddDevices(const DeviceUnderTest& value) { m_devicesHasBeenSet = true; m_devices.push_back(value); return *this; } /** *

Gets the devices configured.

*/ inline SuiteDefinitionConfiguration& AddDevices(DeviceUnderTest&& value) { m_devicesHasBeenSet = true; m_devices.push_back(std::move(value)); return *this; } /** *

Gets the tests intended for qualification in a suite.

*/ inline bool GetIntendedForQualification() const{ return m_intendedForQualification; } /** *

Gets the tests intended for qualification in a suite.

*/ inline bool IntendedForQualificationHasBeenSet() const { return m_intendedForQualificationHasBeenSet; } /** *

Gets the tests intended for qualification in a suite.

*/ inline void SetIntendedForQualification(bool value) { m_intendedForQualificationHasBeenSet = true; m_intendedForQualification = value; } /** *

Gets the tests intended for qualification in a suite.

*/ inline SuiteDefinitionConfiguration& WithIntendedForQualification(bool value) { SetIntendedForQualification(value); return *this;} /** *

Verifies if the test suite is a long duration test.

*/ inline bool GetIsLongDurationTest() const{ return m_isLongDurationTest; } /** *

Verifies if the test suite is a long duration test.

*/ inline bool IsLongDurationTestHasBeenSet() const { return m_isLongDurationTestHasBeenSet; } /** *

Verifies if the test suite is a long duration test.

*/ inline void SetIsLongDurationTest(bool value) { m_isLongDurationTestHasBeenSet = true; m_isLongDurationTest = value; } /** *

Verifies if the test suite is a long duration test.

*/ inline SuiteDefinitionConfiguration& WithIsLongDurationTest(bool value) { SetIsLongDurationTest(value); return *this;} /** *

Gets the test suite root group. This is a required parameter. For updating or * creating the latest qualification suite, if * intendedForQualification is set to true, rootGroup can * be an empty string. If intendedForQualification is false, * rootGroup cannot be an empty string. If rootGroup is * empty, and intendedForQualification is set to true, all the * qualification tests are included, and the configuration is default.

For * a qualification suite, the minimum length is 0, and the maximum is 2048. For a * non-qualification suite, the minimum length is 1, and the maximum is 2048.

*/ inline const Aws::String& GetRootGroup() const{ return m_rootGroup; } /** *

Gets the test suite root group. This is a required parameter. For updating or * creating the latest qualification suite, if * intendedForQualification is set to true, rootGroup can * be an empty string. If intendedForQualification is false, * rootGroup cannot be an empty string. If rootGroup is * empty, and intendedForQualification is set to true, all the * qualification tests are included, and the configuration is default.

For * a qualification suite, the minimum length is 0, and the maximum is 2048. For a * non-qualification suite, the minimum length is 1, and the maximum is 2048.

*/ inline bool RootGroupHasBeenSet() const { return m_rootGroupHasBeenSet; } /** *

Gets the test suite root group. This is a required parameter. For updating or * creating the latest qualification suite, if * intendedForQualification is set to true, rootGroup can * be an empty string. If intendedForQualification is false, * rootGroup cannot be an empty string. If rootGroup is * empty, and intendedForQualification is set to true, all the * qualification tests are included, and the configuration is default.

For * a qualification suite, the minimum length is 0, and the maximum is 2048. For a * non-qualification suite, the minimum length is 1, and the maximum is 2048.

*/ inline void SetRootGroup(const Aws::String& value) { m_rootGroupHasBeenSet = true; m_rootGroup = value; } /** *

Gets the test suite root group. This is a required parameter. For updating or * creating the latest qualification suite, if * intendedForQualification is set to true, rootGroup can * be an empty string. If intendedForQualification is false, * rootGroup cannot be an empty string. If rootGroup is * empty, and intendedForQualification is set to true, all the * qualification tests are included, and the configuration is default.

For * a qualification suite, the minimum length is 0, and the maximum is 2048. For a * non-qualification suite, the minimum length is 1, and the maximum is 2048.

*/ inline void SetRootGroup(Aws::String&& value) { m_rootGroupHasBeenSet = true; m_rootGroup = std::move(value); } /** *

Gets the test suite root group. This is a required parameter. For updating or * creating the latest qualification suite, if * intendedForQualification is set to true, rootGroup can * be an empty string. If intendedForQualification is false, * rootGroup cannot be an empty string. If rootGroup is * empty, and intendedForQualification is set to true, all the * qualification tests are included, and the configuration is default.

For * a qualification suite, the minimum length is 0, and the maximum is 2048. For a * non-qualification suite, the minimum length is 1, and the maximum is 2048.

*/ inline void SetRootGroup(const char* value) { m_rootGroupHasBeenSet = true; m_rootGroup.assign(value); } /** *

Gets the test suite root group. This is a required parameter. For updating or * creating the latest qualification suite, if * intendedForQualification is set to true, rootGroup can * be an empty string. If intendedForQualification is false, * rootGroup cannot be an empty string. If rootGroup is * empty, and intendedForQualification is set to true, all the * qualification tests are included, and the configuration is default.

For * a qualification suite, the minimum length is 0, and the maximum is 2048. For a * non-qualification suite, the minimum length is 1, and the maximum is 2048.

*/ inline SuiteDefinitionConfiguration& WithRootGroup(const Aws::String& value) { SetRootGroup(value); return *this;} /** *

Gets the test suite root group. This is a required parameter. For updating or * creating the latest qualification suite, if * intendedForQualification is set to true, rootGroup can * be an empty string. If intendedForQualification is false, * rootGroup cannot be an empty string. If rootGroup is * empty, and intendedForQualification is set to true, all the * qualification tests are included, and the configuration is default.

For * a qualification suite, the minimum length is 0, and the maximum is 2048. For a * non-qualification suite, the minimum length is 1, and the maximum is 2048.

*/ inline SuiteDefinitionConfiguration& WithRootGroup(Aws::String&& value) { SetRootGroup(std::move(value)); return *this;} /** *

Gets the test suite root group. This is a required parameter. For updating or * creating the latest qualification suite, if * intendedForQualification is set to true, rootGroup can * be an empty string. If intendedForQualification is false, * rootGroup cannot be an empty string. If rootGroup is * empty, and intendedForQualification is set to true, all the * qualification tests are included, and the configuration is default.

For * a qualification suite, the minimum length is 0, and the maximum is 2048. For a * non-qualification suite, the minimum length is 1, and the maximum is 2048.

*/ inline SuiteDefinitionConfiguration& WithRootGroup(const char* value) { SetRootGroup(value); return *this;} /** *

Gets the device permission ARN. This is a required parameter.

*/ inline const Aws::String& GetDevicePermissionRoleArn() const{ return m_devicePermissionRoleArn; } /** *

Gets the device permission ARN. This is a required parameter.

*/ inline bool DevicePermissionRoleArnHasBeenSet() const { return m_devicePermissionRoleArnHasBeenSet; } /** *

Gets the device permission ARN. This is a required parameter.

*/ inline void SetDevicePermissionRoleArn(const Aws::String& value) { m_devicePermissionRoleArnHasBeenSet = true; m_devicePermissionRoleArn = value; } /** *

Gets the device permission ARN. This is a required parameter.

*/ inline void SetDevicePermissionRoleArn(Aws::String&& value) { m_devicePermissionRoleArnHasBeenSet = true; m_devicePermissionRoleArn = std::move(value); } /** *

Gets the device permission ARN. This is a required parameter.

*/ inline void SetDevicePermissionRoleArn(const char* value) { m_devicePermissionRoleArnHasBeenSet = true; m_devicePermissionRoleArn.assign(value); } /** *

Gets the device permission ARN. This is a required parameter.

*/ inline SuiteDefinitionConfiguration& WithDevicePermissionRoleArn(const Aws::String& value) { SetDevicePermissionRoleArn(value); return *this;} /** *

Gets the device permission ARN. This is a required parameter.

*/ inline SuiteDefinitionConfiguration& WithDevicePermissionRoleArn(Aws::String&& value) { SetDevicePermissionRoleArn(std::move(value)); return *this;} /** *

Gets the device permission ARN. This is a required parameter.

*/ inline SuiteDefinitionConfiguration& WithDevicePermissionRoleArn(const char* value) { SetDevicePermissionRoleArn(value); return *this;} /** *

Sets the MQTT protocol that is configured in the suite definition.

*/ inline const Protocol& GetProtocol() const{ return m_protocol; } /** *

Sets the MQTT protocol that is configured in the suite definition.

*/ inline bool ProtocolHasBeenSet() const { return m_protocolHasBeenSet; } /** *

Sets the MQTT protocol that is configured in the suite definition.

*/ inline void SetProtocol(const Protocol& value) { m_protocolHasBeenSet = true; m_protocol = value; } /** *

Sets the MQTT protocol that is configured in the suite definition.

*/ inline void SetProtocol(Protocol&& value) { m_protocolHasBeenSet = true; m_protocol = std::move(value); } /** *

Sets the MQTT protocol that is configured in the suite definition.

*/ inline SuiteDefinitionConfiguration& WithProtocol(const Protocol& value) { SetProtocol(value); return *this;} /** *

Sets the MQTT protocol that is configured in the suite definition.

*/ inline SuiteDefinitionConfiguration& WithProtocol(Protocol&& value) { SetProtocol(std::move(value)); return *this;} private: Aws::String m_suiteDefinitionName; bool m_suiteDefinitionNameHasBeenSet = false; Aws::Vector m_devices; bool m_devicesHasBeenSet = false; bool m_intendedForQualification; bool m_intendedForQualificationHasBeenSet = false; bool m_isLongDurationTest; bool m_isLongDurationTestHasBeenSet = false; Aws::String m_rootGroup; bool m_rootGroupHasBeenSet = false; Aws::String m_devicePermissionRoleArn; bool m_devicePermissionRoleArnHasBeenSet = false; Protocol m_protocol; bool m_protocolHasBeenSet = false; }; } // namespace Model } // namespace IoTDeviceAdvisor } // namespace Aws