/** * 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 namespace Aws { namespace Organizations { namespace Model { /** */ class InviteAccountToOrganizationRequest : public OrganizationsRequest { public: AWS_ORGANIZATIONS_API InviteAccountToOrganizationRequest(); // 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 "InviteAccountToOrganization"; } AWS_ORGANIZATIONS_API Aws::String SerializePayload() const override; AWS_ORGANIZATIONS_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

The identifier (ID) of the Amazon Web Services account that you want to * invite to join your organization. This is a JSON object that contains the * following elements:

{ "Type": "ACCOUNT", "Id": "< account * id number >" }

If you use the CLI, you can submit this * as a single string, similar to the following example:

--target * Id=123456789012,Type=ACCOUNT

If you specify "Type": * "ACCOUNT", you must provide the Amazon Web Services account ID number as * the Id. If you specify "Type": "EMAIL", you must * specify the email address that is associated with the account.

* --target Id=diego@example.com,Type=EMAIL

*/ inline const HandshakeParty& GetTarget() const{ return m_target; } /** *

The identifier (ID) of the Amazon Web Services account that you want to * invite to join your organization. This is a JSON object that contains the * following elements:

{ "Type": "ACCOUNT", "Id": "< account * id number >" }

If you use the CLI, you can submit this * as a single string, similar to the following example:

--target * Id=123456789012,Type=ACCOUNT

If you specify "Type": * "ACCOUNT", you must provide the Amazon Web Services account ID number as * the Id. If you specify "Type": "EMAIL", you must * specify the email address that is associated with the account.

* --target Id=diego@example.com,Type=EMAIL

*/ inline bool TargetHasBeenSet() const { return m_targetHasBeenSet; } /** *

The identifier (ID) of the Amazon Web Services account that you want to * invite to join your organization. This is a JSON object that contains the * following elements:

{ "Type": "ACCOUNT", "Id": "< account * id number >" }

If you use the CLI, you can submit this * as a single string, similar to the following example:

--target * Id=123456789012,Type=ACCOUNT

If you specify "Type": * "ACCOUNT", you must provide the Amazon Web Services account ID number as * the Id. If you specify "Type": "EMAIL", you must * specify the email address that is associated with the account.

* --target Id=diego@example.com,Type=EMAIL

*/ inline void SetTarget(const HandshakeParty& value) { m_targetHasBeenSet = true; m_target = value; } /** *

The identifier (ID) of the Amazon Web Services account that you want to * invite to join your organization. This is a JSON object that contains the * following elements:

{ "Type": "ACCOUNT", "Id": "< account * id number >" }

If you use the CLI, you can submit this * as a single string, similar to the following example:

--target * Id=123456789012,Type=ACCOUNT

If you specify "Type": * "ACCOUNT", you must provide the Amazon Web Services account ID number as * the Id. If you specify "Type": "EMAIL", you must * specify the email address that is associated with the account.

* --target Id=diego@example.com,Type=EMAIL

*/ inline void SetTarget(HandshakeParty&& value) { m_targetHasBeenSet = true; m_target = std::move(value); } /** *

The identifier (ID) of the Amazon Web Services account that you want to * invite to join your organization. This is a JSON object that contains the * following elements:

{ "Type": "ACCOUNT", "Id": "< account * id number >" }

If you use the CLI, you can submit this * as a single string, similar to the following example:

--target * Id=123456789012,Type=ACCOUNT

If you specify "Type": * "ACCOUNT", you must provide the Amazon Web Services account ID number as * the Id. If you specify "Type": "EMAIL", you must * specify the email address that is associated with the account.

* --target Id=diego@example.com,Type=EMAIL

*/ inline InviteAccountToOrganizationRequest& WithTarget(const HandshakeParty& value) { SetTarget(value); return *this;} /** *

The identifier (ID) of the Amazon Web Services account that you want to * invite to join your organization. This is a JSON object that contains the * following elements:

{ "Type": "ACCOUNT", "Id": "< account * id number >" }

If you use the CLI, you can submit this * as a single string, similar to the following example:

--target * Id=123456789012,Type=ACCOUNT

If you specify "Type": * "ACCOUNT", you must provide the Amazon Web Services account ID number as * the Id. If you specify "Type": "EMAIL", you must * specify the email address that is associated with the account.

* --target Id=diego@example.com,Type=EMAIL

*/ inline InviteAccountToOrganizationRequest& WithTarget(HandshakeParty&& value) { SetTarget(std::move(value)); return *this;} /** *

Additional information that you want to include in the generated email to the * recipient account owner.

*/ inline const Aws::String& GetNotes() const{ return m_notes; } /** *

Additional information that you want to include in the generated email to the * recipient account owner.

*/ inline bool NotesHasBeenSet() const { return m_notesHasBeenSet; } /** *

Additional information that you want to include in the generated email to the * recipient account owner.

*/ inline void SetNotes(const Aws::String& value) { m_notesHasBeenSet = true; m_notes = value; } /** *

Additional information that you want to include in the generated email to the * recipient account owner.

*/ inline void SetNotes(Aws::String&& value) { m_notesHasBeenSet = true; m_notes = std::move(value); } /** *

Additional information that you want to include in the generated email to the * recipient account owner.

*/ inline void SetNotes(const char* value) { m_notesHasBeenSet = true; m_notes.assign(value); } /** *

Additional information that you want to include in the generated email to the * recipient account owner.

*/ inline InviteAccountToOrganizationRequest& WithNotes(const Aws::String& value) { SetNotes(value); return *this;} /** *

Additional information that you want to include in the generated email to the * recipient account owner.

*/ inline InviteAccountToOrganizationRequest& WithNotes(Aws::String&& value) { SetNotes(std::move(value)); return *this;} /** *

Additional information that you want to include in the generated email to the * recipient account owner.

*/ inline InviteAccountToOrganizationRequest& WithNotes(const char* value) { SetNotes(value); return *this;} /** *

A list of tags that you want to attach to the account when it becomes a * member of the organization. For each tag in the list, you must specify both a * tag key and a value. You can set the value to an empty string, but you can't set * it to null. For more information about tagging, see Tagging * Organizations resources in the Organizations User Guide.

*

Any tags in the request are checked for compliance with any applicable tag * policies when the request is made. The request is rejected if the tags in the * request don't match the requirements of the policy at that time. Tag policy * compliance is not checked again when the invitation is accepted * and the tags are actually attached to the account. That means that if the tag * policy changes between the invitation and the acceptance, then that tags could * potentially be non-compliant.

If any one of the tags * is not valid or if you exceed the allowed number of tags for an account, then * the entire request fails and invitations are not sent.

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

A list of tags that you want to attach to the account when it becomes a * member of the organization. For each tag in the list, you must specify both a * tag key and a value. You can set the value to an empty string, but you can't set * it to null. For more information about tagging, see Tagging * Organizations resources in the Organizations User Guide.

*

Any tags in the request are checked for compliance with any applicable tag * policies when the request is made. The request is rejected if the tags in the * request don't match the requirements of the policy at that time. Tag policy * compliance is not checked again when the invitation is accepted * and the tags are actually attached to the account. That means that if the tag * policy changes between the invitation and the acceptance, then that tags could * potentially be non-compliant.

If any one of the tags * is not valid or if you exceed the allowed number of tags for an account, then * the entire request fails and invitations are not sent.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

A list of tags that you want to attach to the account when it becomes a * member of the organization. For each tag in the list, you must specify both a * tag key and a value. You can set the value to an empty string, but you can't set * it to null. For more information about tagging, see Tagging * Organizations resources in the Organizations User Guide.

*

Any tags in the request are checked for compliance with any applicable tag * policies when the request is made. The request is rejected if the tags in the * request don't match the requirements of the policy at that time. Tag policy * compliance is not checked again when the invitation is accepted * and the tags are actually attached to the account. That means that if the tag * policy changes between the invitation and the acceptance, then that tags could * potentially be non-compliant.

If any one of the tags * is not valid or if you exceed the allowed number of tags for an account, then * the entire request fails and invitations are not sent.

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

A list of tags that you want to attach to the account when it becomes a * member of the organization. For each tag in the list, you must specify both a * tag key and a value. You can set the value to an empty string, but you can't set * it to null. For more information about tagging, see Tagging * Organizations resources in the Organizations User Guide.

*

Any tags in the request are checked for compliance with any applicable tag * policies when the request is made. The request is rejected if the tags in the * request don't match the requirements of the policy at that time. Tag policy * compliance is not checked again when the invitation is accepted * and the tags are actually attached to the account. That means that if the tag * policy changes between the invitation and the acceptance, then that tags could * potentially be non-compliant.

If any one of the tags * is not valid or if you exceed the allowed number of tags for an account, then * the entire request fails and invitations are not sent.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

A list of tags that you want to attach to the account when it becomes a * member of the organization. For each tag in the list, you must specify both a * tag key and a value. You can set the value to an empty string, but you can't set * it to null. For more information about tagging, see Tagging * Organizations resources in the Organizations User Guide.

*

Any tags in the request are checked for compliance with any applicable tag * policies when the request is made. The request is rejected if the tags in the * request don't match the requirements of the policy at that time. Tag policy * compliance is not checked again when the invitation is accepted * and the tags are actually attached to the account. That means that if the tag * policy changes between the invitation and the acceptance, then that tags could * potentially be non-compliant.

If any one of the tags * is not valid or if you exceed the allowed number of tags for an account, then * the entire request fails and invitations are not sent.

*/ inline InviteAccountToOrganizationRequest& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

A list of tags that you want to attach to the account when it becomes a * member of the organization. For each tag in the list, you must specify both a * tag key and a value. You can set the value to an empty string, but you can't set * it to null. For more information about tagging, see Tagging * Organizations resources in the Organizations User Guide.

*

Any tags in the request are checked for compliance with any applicable tag * policies when the request is made. The request is rejected if the tags in the * request don't match the requirements of the policy at that time. Tag policy * compliance is not checked again when the invitation is accepted * and the tags are actually attached to the account. That means that if the tag * policy changes between the invitation and the acceptance, then that tags could * potentially be non-compliant.

If any one of the tags * is not valid or if you exceed the allowed number of tags for an account, then * the entire request fails and invitations are not sent.

*/ inline InviteAccountToOrganizationRequest& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

A list of tags that you want to attach to the account when it becomes a * member of the organization. For each tag in the list, you must specify both a * tag key and a value. You can set the value to an empty string, but you can't set * it to null. For more information about tagging, see Tagging * Organizations resources in the Organizations User Guide.

*

Any tags in the request are checked for compliance with any applicable tag * policies when the request is made. The request is rejected if the tags in the * request don't match the requirements of the policy at that time. Tag policy * compliance is not checked again when the invitation is accepted * and the tags are actually attached to the account. That means that if the tag * policy changes between the invitation and the acceptance, then that tags could * potentially be non-compliant.

If any one of the tags * is not valid or if you exceed the allowed number of tags for an account, then * the entire request fails and invitations are not sent.

*/ inline InviteAccountToOrganizationRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

A list of tags that you want to attach to the account when it becomes a * member of the organization. For each tag in the list, you must specify both a * tag key and a value. You can set the value to an empty string, but you can't set * it to null. For more information about tagging, see Tagging * Organizations resources in the Organizations User Guide.

*

Any tags in the request are checked for compliance with any applicable tag * policies when the request is made. The request is rejected if the tags in the * request don't match the requirements of the policy at that time. Tag policy * compliance is not checked again when the invitation is accepted * and the tags are actually attached to the account. That means that if the tag * policy changes between the invitation and the acceptance, then that tags could * potentially be non-compliant.

If any one of the tags * is not valid or if you exceed the allowed number of tags for an account, then * the entire request fails and invitations are not sent.

*/ inline InviteAccountToOrganizationRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } private: HandshakeParty m_target; bool m_targetHasBeenSet = false; Aws::String m_notes; bool m_notesHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; }; } // namespace Model } // namespace Organizations } // namespace Aws