/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include namespace Aws { namespace EC2 { namespace Model { /** */ class ModifyFpgaImageAttributeRequest : public EC2Request { public: AWS_EC2_API ModifyFpgaImageAttributeRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "ModifyFpgaImageAttribute"; } AWS_EC2_API Aws::String SerializePayload() const override; protected: AWS_EC2_API void DumpBodyToUrl(Aws::Http::URI& uri ) const override; public: /** *

Checks whether you have the required permissions for the action, without * actually making the request, and provides an error response. If you have the * required permissions, the error response is DryRunOperation. * Otherwise, it is UnauthorizedOperation.

*/ inline bool GetDryRun() const{ return m_dryRun; } /** *

Checks whether you have the required permissions for the action, without * actually making the request, and provides an error response. If you have the * required permissions, the error response is DryRunOperation. * Otherwise, it is UnauthorizedOperation.

*/ inline bool DryRunHasBeenSet() const { return m_dryRunHasBeenSet; } /** *

Checks whether you have the required permissions for the action, without * actually making the request, and provides an error response. If you have the * required permissions, the error response is DryRunOperation. * Otherwise, it is UnauthorizedOperation.

*/ inline void SetDryRun(bool value) { m_dryRunHasBeenSet = true; m_dryRun = value; } /** *

Checks whether you have the required permissions for the action, without * actually making the request, and provides an error response. If you have the * required permissions, the error response is DryRunOperation. * Otherwise, it is UnauthorizedOperation.

*/ inline ModifyFpgaImageAttributeRequest& WithDryRun(bool value) { SetDryRun(value); return *this;} /** *

The ID of the AFI.

*/ inline const Aws::String& GetFpgaImageId() const{ return m_fpgaImageId; } /** *

The ID of the AFI.

*/ inline bool FpgaImageIdHasBeenSet() const { return m_fpgaImageIdHasBeenSet; } /** *

The ID of the AFI.

*/ inline void SetFpgaImageId(const Aws::String& value) { m_fpgaImageIdHasBeenSet = true; m_fpgaImageId = value; } /** *

The ID of the AFI.

*/ inline void SetFpgaImageId(Aws::String&& value) { m_fpgaImageIdHasBeenSet = true; m_fpgaImageId = std::move(value); } /** *

The ID of the AFI.

*/ inline void SetFpgaImageId(const char* value) { m_fpgaImageIdHasBeenSet = true; m_fpgaImageId.assign(value); } /** *

The ID of the AFI.

*/ inline ModifyFpgaImageAttributeRequest& WithFpgaImageId(const Aws::String& value) { SetFpgaImageId(value); return *this;} /** *

The ID of the AFI.

*/ inline ModifyFpgaImageAttributeRequest& WithFpgaImageId(Aws::String&& value) { SetFpgaImageId(std::move(value)); return *this;} /** *

The ID of the AFI.

*/ inline ModifyFpgaImageAttributeRequest& WithFpgaImageId(const char* value) { SetFpgaImageId(value); return *this;} /** *

The name of the attribute.

*/ inline const FpgaImageAttributeName& GetAttribute() const{ return m_attribute; } /** *

The name of the attribute.

*/ inline bool AttributeHasBeenSet() const { return m_attributeHasBeenSet; } /** *

The name of the attribute.

*/ inline void SetAttribute(const FpgaImageAttributeName& value) { m_attributeHasBeenSet = true; m_attribute = value; } /** *

The name of the attribute.

*/ inline void SetAttribute(FpgaImageAttributeName&& value) { m_attributeHasBeenSet = true; m_attribute = std::move(value); } /** *

The name of the attribute.

*/ inline ModifyFpgaImageAttributeRequest& WithAttribute(const FpgaImageAttributeName& value) { SetAttribute(value); return *this;} /** *

The name of the attribute.

*/ inline ModifyFpgaImageAttributeRequest& WithAttribute(FpgaImageAttributeName&& value) { SetAttribute(std::move(value)); return *this;} /** *

The operation type.

*/ inline const OperationType& GetOperationType() const{ return m_operationType; } /** *

The operation type.

*/ inline bool OperationTypeHasBeenSet() const { return m_operationTypeHasBeenSet; } /** *

The operation type.

*/ inline void SetOperationType(const OperationType& value) { m_operationTypeHasBeenSet = true; m_operationType = value; } /** *

The operation type.

*/ inline void SetOperationType(OperationType&& value) { m_operationTypeHasBeenSet = true; m_operationType = std::move(value); } /** *

The operation type.

*/ inline ModifyFpgaImageAttributeRequest& WithOperationType(const OperationType& value) { SetOperationType(value); return *this;} /** *

The operation type.

*/ inline ModifyFpgaImageAttributeRequest& WithOperationType(OperationType&& value) { SetOperationType(std::move(value)); return *this;} /** *

The Amazon Web Services account IDs. This parameter is valid only when * modifying the loadPermission attribute.

*/ inline const Aws::Vector& GetUserIds() const{ return m_userIds; } /** *

The Amazon Web Services account IDs. This parameter is valid only when * modifying the loadPermission attribute.

*/ inline bool UserIdsHasBeenSet() const { return m_userIdsHasBeenSet; } /** *

The Amazon Web Services account IDs. This parameter is valid only when * modifying the loadPermission attribute.

*/ inline void SetUserIds(const Aws::Vector& value) { m_userIdsHasBeenSet = true; m_userIds = value; } /** *

The Amazon Web Services account IDs. This parameter is valid only when * modifying the loadPermission attribute.

*/ inline void SetUserIds(Aws::Vector&& value) { m_userIdsHasBeenSet = true; m_userIds = std::move(value); } /** *

The Amazon Web Services account IDs. This parameter is valid only when * modifying the loadPermission attribute.

*/ inline ModifyFpgaImageAttributeRequest& WithUserIds(const Aws::Vector& value) { SetUserIds(value); return *this;} /** *

The Amazon Web Services account IDs. This parameter is valid only when * modifying the loadPermission attribute.

*/ inline ModifyFpgaImageAttributeRequest& WithUserIds(Aws::Vector&& value) { SetUserIds(std::move(value)); return *this;} /** *

The Amazon Web Services account IDs. This parameter is valid only when * modifying the loadPermission attribute.

*/ inline ModifyFpgaImageAttributeRequest& AddUserIds(const Aws::String& value) { m_userIdsHasBeenSet = true; m_userIds.push_back(value); return *this; } /** *

The Amazon Web Services account IDs. This parameter is valid only when * modifying the loadPermission attribute.

*/ inline ModifyFpgaImageAttributeRequest& AddUserIds(Aws::String&& value) { m_userIdsHasBeenSet = true; m_userIds.push_back(std::move(value)); return *this; } /** *

The Amazon Web Services account IDs. This parameter is valid only when * modifying the loadPermission attribute.

*/ inline ModifyFpgaImageAttributeRequest& AddUserIds(const char* value) { m_userIdsHasBeenSet = true; m_userIds.push_back(value); return *this; } /** *

The user groups. This parameter is valid only when modifying the * loadPermission attribute.

*/ inline const Aws::Vector& GetUserGroups() const{ return m_userGroups; } /** *

The user groups. This parameter is valid only when modifying the * loadPermission attribute.

*/ inline bool UserGroupsHasBeenSet() const { return m_userGroupsHasBeenSet; } /** *

The user groups. This parameter is valid only when modifying the * loadPermission attribute.

*/ inline void SetUserGroups(const Aws::Vector& value) { m_userGroupsHasBeenSet = true; m_userGroups = value; } /** *

The user groups. This parameter is valid only when modifying the * loadPermission attribute.

*/ inline void SetUserGroups(Aws::Vector&& value) { m_userGroupsHasBeenSet = true; m_userGroups = std::move(value); } /** *

The user groups. This parameter is valid only when modifying the * loadPermission attribute.

*/ inline ModifyFpgaImageAttributeRequest& WithUserGroups(const Aws::Vector& value) { SetUserGroups(value); return *this;} /** *

The user groups. This parameter is valid only when modifying the * loadPermission attribute.

*/ inline ModifyFpgaImageAttributeRequest& WithUserGroups(Aws::Vector&& value) { SetUserGroups(std::move(value)); return *this;} /** *

The user groups. This parameter is valid only when modifying the * loadPermission attribute.

*/ inline ModifyFpgaImageAttributeRequest& AddUserGroups(const Aws::String& value) { m_userGroupsHasBeenSet = true; m_userGroups.push_back(value); return *this; } /** *

The user groups. This parameter is valid only when modifying the * loadPermission attribute.

*/ inline ModifyFpgaImageAttributeRequest& AddUserGroups(Aws::String&& value) { m_userGroupsHasBeenSet = true; m_userGroups.push_back(std::move(value)); return *this; } /** *

The user groups. This parameter is valid only when modifying the * loadPermission attribute.

*/ inline ModifyFpgaImageAttributeRequest& AddUserGroups(const char* value) { m_userGroupsHasBeenSet = true; m_userGroups.push_back(value); return *this; } /** *

The product codes. After you add a product code to an AFI, it can't be * removed. This parameter is valid only when modifying the * productCodes attribute.

*/ inline const Aws::Vector& GetProductCodes() const{ return m_productCodes; } /** *

The product codes. After you add a product code to an AFI, it can't be * removed. This parameter is valid only when modifying the * productCodes attribute.

*/ inline bool ProductCodesHasBeenSet() const { return m_productCodesHasBeenSet; } /** *

The product codes. After you add a product code to an AFI, it can't be * removed. This parameter is valid only when modifying the * productCodes attribute.

*/ inline void SetProductCodes(const Aws::Vector& value) { m_productCodesHasBeenSet = true; m_productCodes = value; } /** *

The product codes. After you add a product code to an AFI, it can't be * removed. This parameter is valid only when modifying the * productCodes attribute.

*/ inline void SetProductCodes(Aws::Vector&& value) { m_productCodesHasBeenSet = true; m_productCodes = std::move(value); } /** *

The product codes. After you add a product code to an AFI, it can't be * removed. This parameter is valid only when modifying the * productCodes attribute.

*/ inline ModifyFpgaImageAttributeRequest& WithProductCodes(const Aws::Vector& value) { SetProductCodes(value); return *this;} /** *

The product codes. After you add a product code to an AFI, it can't be * removed. This parameter is valid only when modifying the * productCodes attribute.

*/ inline ModifyFpgaImageAttributeRequest& WithProductCodes(Aws::Vector&& value) { SetProductCodes(std::move(value)); return *this;} /** *

The product codes. After you add a product code to an AFI, it can't be * removed. This parameter is valid only when modifying the * productCodes attribute.

*/ inline ModifyFpgaImageAttributeRequest& AddProductCodes(const Aws::String& value) { m_productCodesHasBeenSet = true; m_productCodes.push_back(value); return *this; } /** *

The product codes. After you add a product code to an AFI, it can't be * removed. This parameter is valid only when modifying the * productCodes attribute.

*/ inline ModifyFpgaImageAttributeRequest& AddProductCodes(Aws::String&& value) { m_productCodesHasBeenSet = true; m_productCodes.push_back(std::move(value)); return *this; } /** *

The product codes. After you add a product code to an AFI, it can't be * removed. This parameter is valid only when modifying the * productCodes attribute.

*/ inline ModifyFpgaImageAttributeRequest& AddProductCodes(const char* value) { m_productCodesHasBeenSet = true; m_productCodes.push_back(value); return *this; } /** *

The load permission for the AFI.

*/ inline const LoadPermissionModifications& GetLoadPermission() const{ return m_loadPermission; } /** *

The load permission for the AFI.

*/ inline bool LoadPermissionHasBeenSet() const { return m_loadPermissionHasBeenSet; } /** *

The load permission for the AFI.

*/ inline void SetLoadPermission(const LoadPermissionModifications& value) { m_loadPermissionHasBeenSet = true; m_loadPermission = value; } /** *

The load permission for the AFI.

*/ inline void SetLoadPermission(LoadPermissionModifications&& value) { m_loadPermissionHasBeenSet = true; m_loadPermission = std::move(value); } /** *

The load permission for the AFI.

*/ inline ModifyFpgaImageAttributeRequest& WithLoadPermission(const LoadPermissionModifications& value) { SetLoadPermission(value); return *this;} /** *

The load permission for the AFI.

*/ inline ModifyFpgaImageAttributeRequest& WithLoadPermission(LoadPermissionModifications&& value) { SetLoadPermission(std::move(value)); return *this;} /** *

A description for the AFI.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

A description for the AFI.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

A description for the AFI.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

A description for the AFI.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

A description for the AFI.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

A description for the AFI.

*/ inline ModifyFpgaImageAttributeRequest& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

A description for the AFI.

*/ inline ModifyFpgaImageAttributeRequest& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

A description for the AFI.

*/ inline ModifyFpgaImageAttributeRequest& WithDescription(const char* value) { SetDescription(value); return *this;} /** *

A name for the AFI.

*/ inline const Aws::String& GetName() const{ return m_name; } /** *

A name for the AFI.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

A name for the AFI.

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

A name for the AFI.

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

A name for the AFI.

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

A name for the AFI.

*/ inline ModifyFpgaImageAttributeRequest& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

A name for the AFI.

*/ inline ModifyFpgaImageAttributeRequest& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

A name for the AFI.

*/ inline ModifyFpgaImageAttributeRequest& WithName(const char* value) { SetName(value); return *this;} private: bool m_dryRun; bool m_dryRunHasBeenSet = false; Aws::String m_fpgaImageId; bool m_fpgaImageIdHasBeenSet = false; FpgaImageAttributeName m_attribute; bool m_attributeHasBeenSet = false; OperationType m_operationType; bool m_operationTypeHasBeenSet = false; Aws::Vector m_userIds; bool m_userIdsHasBeenSet = false; Aws::Vector m_userGroups; bool m_userGroupsHasBeenSet = false; Aws::Vector m_productCodes; bool m_productCodesHasBeenSet = false; LoadPermissionModifications m_loadPermission; bool m_loadPermissionHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; }; } // namespace Model } // namespace EC2 } // namespace Aws