/* * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ /* * Do not modify this file. This file is generated from the securitylake-2018-05-10.normal.json service model. */ using System; using System.Collections.Generic; using System.Xml.Serialization; using System.Text; using System.IO; using System.Net; using Amazon.Runtime; using Amazon.Runtime.Internal; namespace Amazon.SecurityLake.Model { /// <summary> /// Provides details about the Amazon Security Lake account subscription. Subscribers /// are notified of new objects for a source as the data is written to your Amazon S3 /// bucket for Security Lake. /// </summary> public partial class SubscriberResource { private List<string> _accessTypes = new List<string>(); private DateTime? _createdAt; private string _resourceShareArn; private string _resourceShareName; private string _roleArn; private string _s3BucketArn; private List<LogSourceResource> _sources = new List<LogSourceResource>(); private string _subscriberArn; private string _subscriberDescription; private string _subscriberEndpoint; private string _subscriberId; private AwsIdentity _subscriberIdentity; private string _subscriberName; private SubscriberStatus _subscriberStatus; private DateTime? _updatedAt; /// <summary> /// Gets and sets the property AccessTypes. /// <para> /// You can choose to notify subscribers of new objects with an Amazon Simple Queue Service /// (Amazon SQS) queue or through messaging to an HTTPS endpoint provided by the subscriber. /// </para> /// /// <para> /// Subscribers can consume data by directly querying Lake Formation tables in your Amazon /// S3 bucket through services like Amazon Athena. This subscription type is defined as /// <code>LAKEFORMATION</code>. /// </para> /// </summary> public List<string> AccessTypes { get { return this._accessTypes; } set { this._accessTypes = value; } } // Check to see if AccessTypes property is set internal bool IsSetAccessTypes() { return this._accessTypes != null && this._accessTypes.Count > 0; } /// <summary> /// Gets and sets the property CreatedAt. /// <para> /// The date and time when the subscriber was created. /// </para> /// </summary> public DateTime CreatedAt { get { return this._createdAt.GetValueOrDefault(); } set { this._createdAt = value; } } // Check to see if CreatedAt property is set internal bool IsSetCreatedAt() { return this._createdAt.HasValue; } /// <summary> /// Gets and sets the property ResourceShareArn. /// <para> /// The Amazon Resource Name (ARN) which uniquely defines the AWS RAM resource share. /// Before accepting the RAM resource share invitation, you can view details related to /// the RAM resource share. /// </para> /// /// <para> /// This field is available only for Lake Formation subscribers created after March 8, /// 2023. /// </para> /// </summary> public string ResourceShareArn { get { return this._resourceShareArn; } set { this._resourceShareArn = value; } } // Check to see if ResourceShareArn property is set internal bool IsSetResourceShareArn() { return this._resourceShareArn != null; } /// <summary> /// Gets and sets the property ResourceShareName. /// <para> /// The name of the resource share. /// </para> /// </summary> public string ResourceShareName { get { return this._resourceShareName; } set { this._resourceShareName = value; } } // Check to see if ResourceShareName property is set internal bool IsSetResourceShareName() { return this._resourceShareName != null; } /// <summary> /// Gets and sets the property RoleArn. /// <para> /// The Amazon Resource Name (ARN) specifying the role of the subscriber. /// </para> /// </summary> public string RoleArn { get { return this._roleArn; } set { this._roleArn = value; } } // Check to see if RoleArn property is set internal bool IsSetRoleArn() { return this._roleArn != null; } /// <summary> /// Gets and sets the property S3BucketArn. /// <para> /// The ARN for the Amazon S3 bucket. /// </para> /// </summary> public string S3BucketArn { get { return this._s3BucketArn; } set { this._s3BucketArn = value; } } // Check to see if S3BucketArn property is set internal bool IsSetS3BucketArn() { return this._s3BucketArn != null; } /// <summary> /// Gets and sets the property Sources. /// <para> /// Amazon Security Lake supports log and event collection for natively supported Amazon /// Web Services. For more information, see the <a href="https://docs.aws.amazon.com/security-lake/latest/userguide/source-management.html">Amazon /// Security Lake User Guide</a>. /// </para> /// </summary> [AWSProperty(Required=true)] public List<LogSourceResource> Sources { get { return this._sources; } set { this._sources = value; } } // Check to see if Sources property is set internal bool IsSetSources() { return this._sources != null && this._sources.Count > 0; } /// <summary> /// Gets and sets the property SubscriberArn. /// <para> /// The subscriber ARN of the Amazon Security Lake subscriber account. /// </para> /// </summary> [AWSProperty(Required=true, Min=1, Max=1011)] public string SubscriberArn { get { return this._subscriberArn; } set { this._subscriberArn = value; } } // Check to see if SubscriberArn property is set internal bool IsSetSubscriberArn() { return this._subscriberArn != null; } /// <summary> /// Gets and sets the property SubscriberDescription. /// <para> /// The subscriber descriptions for a subscriber account. The description for a subscriber /// includes <code>subscriberName</code>, <code>accountID</code>, <code>externalID</code>, /// and <code>subscriberId</code>. /// </para> /// </summary> public string SubscriberDescription { get { return this._subscriberDescription; } set { this._subscriberDescription = value; } } // Check to see if SubscriberDescription property is set internal bool IsSetSubscriberDescription() { return this._subscriberDescription != null; } /// <summary> /// Gets and sets the property SubscriberEndpoint. /// <para> /// The subscriber endpoint to which exception messages are posted. /// </para> /// </summary> public string SubscriberEndpoint { get { return this._subscriberEndpoint; } set { this._subscriberEndpoint = value; } } // Check to see if SubscriberEndpoint property is set internal bool IsSetSubscriberEndpoint() { return this._subscriberEndpoint != null; } /// <summary> /// Gets and sets the property SubscriberId. /// <para> /// The subscriber ID of the Amazon Security Lake subscriber account. /// </para> /// </summary> [AWSProperty(Required=true)] public string SubscriberId { get { return this._subscriberId; } set { this._subscriberId = value; } } // Check to see if SubscriberId property is set internal bool IsSetSubscriberId() { return this._subscriberId != null; } /// <summary> /// Gets and sets the property SubscriberIdentity. /// <para> /// The AWS identity used to access your data. /// </para> /// </summary> [AWSProperty(Required=true)] public AwsIdentity SubscriberIdentity { get { return this._subscriberIdentity; } set { this._subscriberIdentity = value; } } // Check to see if SubscriberIdentity property is set internal bool IsSetSubscriberIdentity() { return this._subscriberIdentity != null; } /// <summary> /// Gets and sets the property SubscriberName. /// <para> /// The name of your Amazon Security Lake subscriber account. /// </para> /// </summary> [AWSProperty(Required=true)] public string SubscriberName { get { return this._subscriberName; } set { this._subscriberName = value; } } // Check to see if SubscriberName property is set internal bool IsSetSubscriberName() { return this._subscriberName != null; } /// <summary> /// Gets and sets the property SubscriberStatus. /// <para> /// The subscriber status of the Amazon Security Lake subscriber account. /// </para> /// </summary> public SubscriberStatus SubscriberStatus { get { return this._subscriberStatus; } set { this._subscriberStatus = value; } } // Check to see if SubscriberStatus property is set internal bool IsSetSubscriberStatus() { return this._subscriberStatus != null; } /// <summary> /// Gets and sets the property UpdatedAt. /// <para> /// The date and time when the subscriber was last updated. /// </para> /// </summary> public DateTime UpdatedAt { get { return this._updatedAt.GetValueOrDefault(); } set { this._updatedAt = value; } } // Check to see if UpdatedAt property is set internal bool IsSetUpdatedAt() { return this._updatedAt.HasValue; } } }