/** * 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 #include namespace Aws { namespace SecurityLake { namespace Model { /** */ class CreateSubscriberRequest : public SecurityLakeRequest { public: AWS_SECURITYLAKE_API CreateSubscriberRequest(); // 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 "CreateSubscriber"; } AWS_SECURITYLAKE_API Aws::String SerializePayload() const override; /** *

The Amazon S3 or Lake Formation access type.

*/ inline const Aws::Vector& GetAccessTypes() const{ return m_accessTypes; } /** *

The Amazon S3 or Lake Formation access type.

*/ inline bool AccessTypesHasBeenSet() const { return m_accessTypesHasBeenSet; } /** *

The Amazon S3 or Lake Formation access type.

*/ inline void SetAccessTypes(const Aws::Vector& value) { m_accessTypesHasBeenSet = true; m_accessTypes = value; } /** *

The Amazon S3 or Lake Formation access type.

*/ inline void SetAccessTypes(Aws::Vector&& value) { m_accessTypesHasBeenSet = true; m_accessTypes = std::move(value); } /** *

The Amazon S3 or Lake Formation access type.

*/ inline CreateSubscriberRequest& WithAccessTypes(const Aws::Vector& value) { SetAccessTypes(value); return *this;} /** *

The Amazon S3 or Lake Formation access type.

*/ inline CreateSubscriberRequest& WithAccessTypes(Aws::Vector&& value) { SetAccessTypes(std::move(value)); return *this;} /** *

The Amazon S3 or Lake Formation access type.

*/ inline CreateSubscriberRequest& AddAccessTypes(const AccessType& value) { m_accessTypesHasBeenSet = true; m_accessTypes.push_back(value); return *this; } /** *

The Amazon S3 or Lake Formation access type.

*/ inline CreateSubscriberRequest& AddAccessTypes(AccessType&& value) { m_accessTypesHasBeenSet = true; m_accessTypes.push_back(std::move(value)); return *this; } /** *

The supported Amazon Web Services from which logs and events are collected. * Security Lake supports log and event collection for natively supported Amazon * Web Services.

*/ inline const Aws::Vector& GetSources() const{ return m_sources; } /** *

The supported Amazon Web Services from which logs and events are collected. * Security Lake supports log and event collection for natively supported Amazon * Web Services.

*/ inline bool SourcesHasBeenSet() const { return m_sourcesHasBeenSet; } /** *

The supported Amazon Web Services from which logs and events are collected. * Security Lake supports log and event collection for natively supported Amazon * Web Services.

*/ inline void SetSources(const Aws::Vector& value) { m_sourcesHasBeenSet = true; m_sources = value; } /** *

The supported Amazon Web Services from which logs and events are collected. * Security Lake supports log and event collection for natively supported Amazon * Web Services.

*/ inline void SetSources(Aws::Vector&& value) { m_sourcesHasBeenSet = true; m_sources = std::move(value); } /** *

The supported Amazon Web Services from which logs and events are collected. * Security Lake supports log and event collection for natively supported Amazon * Web Services.

*/ inline CreateSubscriberRequest& WithSources(const Aws::Vector& value) { SetSources(value); return *this;} /** *

The supported Amazon Web Services from which logs and events are collected. * Security Lake supports log and event collection for natively supported Amazon * Web Services.

*/ inline CreateSubscriberRequest& WithSources(Aws::Vector&& value) { SetSources(std::move(value)); return *this;} /** *

The supported Amazon Web Services from which logs and events are collected. * Security Lake supports log and event collection for natively supported Amazon * Web Services.

*/ inline CreateSubscriberRequest& AddSources(const LogSourceResource& value) { m_sourcesHasBeenSet = true; m_sources.push_back(value); return *this; } /** *

The supported Amazon Web Services from which logs and events are collected. * Security Lake supports log and event collection for natively supported Amazon * Web Services.

*/ inline CreateSubscriberRequest& AddSources(LogSourceResource&& value) { m_sourcesHasBeenSet = true; m_sources.push_back(std::move(value)); return *this; } /** *

The description for your subscriber account in Security Lake.

*/ inline const Aws::String& GetSubscriberDescription() const{ return m_subscriberDescription; } /** *

The description for your subscriber account in Security Lake.

*/ inline bool SubscriberDescriptionHasBeenSet() const { return m_subscriberDescriptionHasBeenSet; } /** *

The description for your subscriber account in Security Lake.

*/ inline void SetSubscriberDescription(const Aws::String& value) { m_subscriberDescriptionHasBeenSet = true; m_subscriberDescription = value; } /** *

The description for your subscriber account in Security Lake.

*/ inline void SetSubscriberDescription(Aws::String&& value) { m_subscriberDescriptionHasBeenSet = true; m_subscriberDescription = std::move(value); } /** *

The description for your subscriber account in Security Lake.

*/ inline void SetSubscriberDescription(const char* value) { m_subscriberDescriptionHasBeenSet = true; m_subscriberDescription.assign(value); } /** *

The description for your subscriber account in Security Lake.

*/ inline CreateSubscriberRequest& WithSubscriberDescription(const Aws::String& value) { SetSubscriberDescription(value); return *this;} /** *

The description for your subscriber account in Security Lake.

*/ inline CreateSubscriberRequest& WithSubscriberDescription(Aws::String&& value) { SetSubscriberDescription(std::move(value)); return *this;} /** *

The description for your subscriber account in Security Lake.

*/ inline CreateSubscriberRequest& WithSubscriberDescription(const char* value) { SetSubscriberDescription(value); return *this;} /** *

The AWS identity used to access your data.

*/ inline const AwsIdentity& GetSubscriberIdentity() const{ return m_subscriberIdentity; } /** *

The AWS identity used to access your data.

*/ inline bool SubscriberIdentityHasBeenSet() const { return m_subscriberIdentityHasBeenSet; } /** *

The AWS identity used to access your data.

*/ inline void SetSubscriberIdentity(const AwsIdentity& value) { m_subscriberIdentityHasBeenSet = true; m_subscriberIdentity = value; } /** *

The AWS identity used to access your data.

*/ inline void SetSubscriberIdentity(AwsIdentity&& value) { m_subscriberIdentityHasBeenSet = true; m_subscriberIdentity = std::move(value); } /** *

The AWS identity used to access your data.

*/ inline CreateSubscriberRequest& WithSubscriberIdentity(const AwsIdentity& value) { SetSubscriberIdentity(value); return *this;} /** *

The AWS identity used to access your data.

*/ inline CreateSubscriberRequest& WithSubscriberIdentity(AwsIdentity&& value) { SetSubscriberIdentity(std::move(value)); return *this;} /** *

The name of your Security Lake subscriber account.

*/ inline const Aws::String& GetSubscriberName() const{ return m_subscriberName; } /** *

The name of your Security Lake subscriber account.

*/ inline bool SubscriberNameHasBeenSet() const { return m_subscriberNameHasBeenSet; } /** *

The name of your Security Lake subscriber account.

*/ inline void SetSubscriberName(const Aws::String& value) { m_subscriberNameHasBeenSet = true; m_subscriberName = value; } /** *

The name of your Security Lake subscriber account.

*/ inline void SetSubscriberName(Aws::String&& value) { m_subscriberNameHasBeenSet = true; m_subscriberName = std::move(value); } /** *

The name of your Security Lake subscriber account.

*/ inline void SetSubscriberName(const char* value) { m_subscriberNameHasBeenSet = true; m_subscriberName.assign(value); } /** *

The name of your Security Lake subscriber account.

*/ inline CreateSubscriberRequest& WithSubscriberName(const Aws::String& value) { SetSubscriberName(value); return *this;} /** *

The name of your Security Lake subscriber account.

*/ inline CreateSubscriberRequest& WithSubscriberName(Aws::String&& value) { SetSubscriberName(std::move(value)); return *this;} /** *

The name of your Security Lake subscriber account.

*/ inline CreateSubscriberRequest& WithSubscriberName(const char* value) { SetSubscriberName(value); return *this;} /** *

An array of objects, one for each tag to associate with the subscriber. For * each tag, you must specify both a tag key and a tag value. A tag value cannot be * null, but it can be an empty string.

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

An array of objects, one for each tag to associate with the subscriber. For * each tag, you must specify both a tag key and a tag value. A tag value cannot be * null, but it can be an empty string.

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

An array of objects, one for each tag to associate with the subscriber. For * each tag, you must specify both a tag key and a tag value. A tag value cannot be * null, but it can be an empty string.

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

An array of objects, one for each tag to associate with the subscriber. For * each tag, you must specify both a tag key and a tag value. A tag value cannot be * null, but it can be an empty string.

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

An array of objects, one for each tag to associate with the subscriber. For * each tag, you must specify both a tag key and a tag value. A tag value cannot be * null, but it can be an empty string.

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

An array of objects, one for each tag to associate with the subscriber. For * each tag, you must specify both a tag key and a tag value. A tag value cannot be * null, but it can be an empty string.

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

An array of objects, one for each tag to associate with the subscriber. For * each tag, you must specify both a tag key and a tag value. A tag value cannot be * null, but it can be an empty string.

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

An array of objects, one for each tag to associate with the subscriber. For * each tag, you must specify both a tag key and a tag value. A tag value cannot be * null, but it can be an empty string.

*/ inline CreateSubscriberRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } private: Aws::Vector m_accessTypes; bool m_accessTypesHasBeenSet = false; Aws::Vector m_sources; bool m_sourcesHasBeenSet = false; Aws::String m_subscriberDescription; bool m_subscriberDescriptionHasBeenSet = false; AwsIdentity m_subscriberIdentity; bool m_subscriberIdentityHasBeenSet = false; Aws::String m_subscriberName; bool m_subscriberNameHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; }; } // namespace Model } // namespace SecurityLake } // namespace Aws