/** * 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 WorkDocs { namespace Model { /** */ class AddResourcePermissionsRequest : public WorkDocsRequest { public: AWS_WORKDOCS_API AddResourcePermissionsRequest(); // 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 "AddResourcePermissions"; } AWS_WORKDOCS_API Aws::String SerializePayload() const override; AWS_WORKDOCS_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

Amazon WorkDocs authentication token. Not required when using Amazon Web * Services administrator credentials to access the API.

*/ inline const Aws::String& GetAuthenticationToken() const{ return m_authenticationToken; } /** *

Amazon WorkDocs authentication token. Not required when using Amazon Web * Services administrator credentials to access the API.

*/ inline bool AuthenticationTokenHasBeenSet() const { return m_authenticationTokenHasBeenSet; } /** *

Amazon WorkDocs authentication token. Not required when using Amazon Web * Services administrator credentials to access the API.

*/ inline void SetAuthenticationToken(const Aws::String& value) { m_authenticationTokenHasBeenSet = true; m_authenticationToken = value; } /** *

Amazon WorkDocs authentication token. Not required when using Amazon Web * Services administrator credentials to access the API.

*/ inline void SetAuthenticationToken(Aws::String&& value) { m_authenticationTokenHasBeenSet = true; m_authenticationToken = std::move(value); } /** *

Amazon WorkDocs authentication token. Not required when using Amazon Web * Services administrator credentials to access the API.

*/ inline void SetAuthenticationToken(const char* value) { m_authenticationTokenHasBeenSet = true; m_authenticationToken.assign(value); } /** *

Amazon WorkDocs authentication token. Not required when using Amazon Web * Services administrator credentials to access the API.

*/ inline AddResourcePermissionsRequest& WithAuthenticationToken(const Aws::String& value) { SetAuthenticationToken(value); return *this;} /** *

Amazon WorkDocs authentication token. Not required when using Amazon Web * Services administrator credentials to access the API.

*/ inline AddResourcePermissionsRequest& WithAuthenticationToken(Aws::String&& value) { SetAuthenticationToken(std::move(value)); return *this;} /** *

Amazon WorkDocs authentication token. Not required when using Amazon Web * Services administrator credentials to access the API.

*/ inline AddResourcePermissionsRequest& WithAuthenticationToken(const char* value) { SetAuthenticationToken(value); return *this;} /** *

The ID of the resource.

*/ inline const Aws::String& GetResourceId() const{ return m_resourceId; } /** *

The ID of the resource.

*/ inline bool ResourceIdHasBeenSet() const { return m_resourceIdHasBeenSet; } /** *

The ID of the resource.

*/ inline void SetResourceId(const Aws::String& value) { m_resourceIdHasBeenSet = true; m_resourceId = value; } /** *

The ID of the resource.

*/ inline void SetResourceId(Aws::String&& value) { m_resourceIdHasBeenSet = true; m_resourceId = std::move(value); } /** *

The ID of the resource.

*/ inline void SetResourceId(const char* value) { m_resourceIdHasBeenSet = true; m_resourceId.assign(value); } /** *

The ID of the resource.

*/ inline AddResourcePermissionsRequest& WithResourceId(const Aws::String& value) { SetResourceId(value); return *this;} /** *

The ID of the resource.

*/ inline AddResourcePermissionsRequest& WithResourceId(Aws::String&& value) { SetResourceId(std::move(value)); return *this;} /** *

The ID of the resource.

*/ inline AddResourcePermissionsRequest& WithResourceId(const char* value) { SetResourceId(value); return *this;} /** *

The users, groups, or organization being granted permission.

*/ inline const Aws::Vector& GetPrincipals() const{ return m_principals; } /** *

The users, groups, or organization being granted permission.

*/ inline bool PrincipalsHasBeenSet() const { return m_principalsHasBeenSet; } /** *

The users, groups, or organization being granted permission.

*/ inline void SetPrincipals(const Aws::Vector& value) { m_principalsHasBeenSet = true; m_principals = value; } /** *

The users, groups, or organization being granted permission.

*/ inline void SetPrincipals(Aws::Vector&& value) { m_principalsHasBeenSet = true; m_principals = std::move(value); } /** *

The users, groups, or organization being granted permission.

*/ inline AddResourcePermissionsRequest& WithPrincipals(const Aws::Vector& value) { SetPrincipals(value); return *this;} /** *

The users, groups, or organization being granted permission.

*/ inline AddResourcePermissionsRequest& WithPrincipals(Aws::Vector&& value) { SetPrincipals(std::move(value)); return *this;} /** *

The users, groups, or organization being granted permission.

*/ inline AddResourcePermissionsRequest& AddPrincipals(const SharePrincipal& value) { m_principalsHasBeenSet = true; m_principals.push_back(value); return *this; } /** *

The users, groups, or organization being granted permission.

*/ inline AddResourcePermissionsRequest& AddPrincipals(SharePrincipal&& value) { m_principalsHasBeenSet = true; m_principals.push_back(std::move(value)); return *this; } /** *

The notification options.

*/ inline const NotificationOptions& GetNotificationOptions() const{ return m_notificationOptions; } /** *

The notification options.

*/ inline bool NotificationOptionsHasBeenSet() const { return m_notificationOptionsHasBeenSet; } /** *

The notification options.

*/ inline void SetNotificationOptions(const NotificationOptions& value) { m_notificationOptionsHasBeenSet = true; m_notificationOptions = value; } /** *

The notification options.

*/ inline void SetNotificationOptions(NotificationOptions&& value) { m_notificationOptionsHasBeenSet = true; m_notificationOptions = std::move(value); } /** *

The notification options.

*/ inline AddResourcePermissionsRequest& WithNotificationOptions(const NotificationOptions& value) { SetNotificationOptions(value); return *this;} /** *

The notification options.

*/ inline AddResourcePermissionsRequest& WithNotificationOptions(NotificationOptions&& value) { SetNotificationOptions(std::move(value)); return *this;} private: Aws::String m_authenticationToken; bool m_authenticationTokenHasBeenSet = false; Aws::String m_resourceId; bool m_resourceIdHasBeenSet = false; Aws::Vector m_principals; bool m_principalsHasBeenSet = false; NotificationOptions m_notificationOptions; bool m_notificationOptionsHasBeenSet = false; }; } // namespace Model } // namespace WorkDocs } // namespace Aws