/* * Copyright 2010-2019 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. */ package com.amazonaws.services.kinesis.model; import java.io.Serializable; /** *

* Represents the output for DescribeStreamSummary *

*/ public class StreamDescriptionSummary implements Serializable { /** *

* The name of the stream being described. *

*

* Constraints:
* Length: 1 - 128
* Pattern: [a-zA-Z0-9_.-]+
*/ private String streamName; /** *

* The Amazon Resource Name (ARN) for the stream being described. *

*/ private String streamARN; /** *

* The current status of the stream being described. The stream status is * one of the following states: *

* *

* Constraints:
* Allowed Values: CREATING, DELETING, ACTIVE, UPDATING */ private String streamStatus; /** *

* The current retention period, in hours. *

*

* Constraints:
* Range: 1 - 100000
*/ private Integer retentionPeriodHours; /** *

* The approximate time that the stream was created. *

*/ private java.util.Date streamCreationTimestamp; /** *

* Represents the current enhanced monitoring settings of the stream. *

*/ private java.util.List enhancedMonitoring = new java.util.ArrayList(); /** *

* The encryption type used. This value is one of the following: *

* *

* Constraints:
* Allowed Values: NONE, KMS */ private String encryptionType; /** *

* The GUID for the customer-managed AWS KMS key to use for encryption. This * value can be a globally unique identifier, a fully specified ARN to * either an alias or a key, or an alias name prefixed by "alias/".You can * also use a master key owned by Kinesis Data Streams by specifying the * alias aws/kinesis. *

* *

* Constraints:
* Length: 1 - 2048
*/ private String keyId; /** *

* The number of open shards in the stream. *

*

* Constraints:
* Range: 0 - 1000000
*/ private Integer openShardCount; /** *

* The name of the stream being described. *

*

* Constraints:
* Length: 1 - 128
* Pattern: [a-zA-Z0-9_.-]+
* * @return

* The name of the stream being described. *

*/ public String getStreamName() { return streamName; } /** *

* The name of the stream being described. *

*

* Constraints:
* Length: 1 - 128
* Pattern: [a-zA-Z0-9_.-]+
* * @param streamName

* The name of the stream being described. *

*/ public void setStreamName(String streamName) { this.streamName = streamName; } /** *

* The name of the stream being described. *

*

* Returns a reference to this object so that method calls can be chained * together. *

* Constraints:
* Length: 1 - 128
* Pattern: [a-zA-Z0-9_.-]+
* * @param streamName

* The name of the stream being described. *

* @return A reference to this updated object so that method calls can be * chained together. */ public StreamDescriptionSummary withStreamName(String streamName) { this.streamName = streamName; return this; } /** *

* The Amazon Resource Name (ARN) for the stream being described. *

* * @return

* The Amazon Resource Name (ARN) for the stream being described. *

*/ public String getStreamARN() { return streamARN; } /** *

* The Amazon Resource Name (ARN) for the stream being described. *

* * @param streamARN

* The Amazon Resource Name (ARN) for the stream being described. *

*/ public void setStreamARN(String streamARN) { this.streamARN = streamARN; } /** *

* The Amazon Resource Name (ARN) for the stream being described. *

*

* Returns a reference to this object so that method calls can be chained * together. * * @param streamARN

* The Amazon Resource Name (ARN) for the stream being described. *

* @return A reference to this updated object so that method calls can be * chained together. */ public StreamDescriptionSummary withStreamARN(String streamARN) { this.streamARN = streamARN; return this; } /** *

* The current status of the stream being described. The stream status is * one of the following states: *

* *

* Constraints:
* Allowed Values: CREATING, DELETING, ACTIVE, UPDATING * * @return

* The current status of the stream being described. The stream * status is one of the following states: *

* * @see StreamStatus */ public String getStreamStatus() { return streamStatus; } /** *

* The current status of the stream being described. The stream status is * one of the following states: *

* *

* Constraints:
* Allowed Values: CREATING, DELETING, ACTIVE, UPDATING * * @param streamStatus

* The current status of the stream being described. The stream * status is one of the following states: *

* * @see StreamStatus */ public void setStreamStatus(String streamStatus) { this.streamStatus = streamStatus; } /** *

* The current status of the stream being described. The stream status is * one of the following states: *

* *

* Returns a reference to this object so that method calls can be chained * together. *

* Constraints:
* Allowed Values: CREATING, DELETING, ACTIVE, UPDATING * * @param streamStatus

* The current status of the stream being described. The stream * status is one of the following states: *

* * @return A reference to this updated object so that method calls can be * chained together. * @see StreamStatus */ public StreamDescriptionSummary withStreamStatus(String streamStatus) { this.streamStatus = streamStatus; return this; } /** *

* The current status of the stream being described. The stream status is * one of the following states: *

* *

* Constraints:
* Allowed Values: CREATING, DELETING, ACTIVE, UPDATING * * @param streamStatus

* The current status of the stream being described. The stream * status is one of the following states: *

* * @see StreamStatus */ public void setStreamStatus(StreamStatus streamStatus) { this.streamStatus = streamStatus.toString(); } /** *

* The current status of the stream being described. The stream status is * one of the following states: *

* *

* Returns a reference to this object so that method calls can be chained * together. *

* Constraints:
* Allowed Values: CREATING, DELETING, ACTIVE, UPDATING * * @param streamStatus

* The current status of the stream being described. The stream * status is one of the following states: *

* * @return A reference to this updated object so that method calls can be * chained together. * @see StreamStatus */ public StreamDescriptionSummary withStreamStatus(StreamStatus streamStatus) { this.streamStatus = streamStatus.toString(); return this; } /** *

* The current retention period, in hours. *

*

* Constraints:
* Range: 1 - 100000
* * @return

* The current retention period, in hours. *

*/ public Integer getRetentionPeriodHours() { return retentionPeriodHours; } /** *

* The current retention period, in hours. *

*

* Constraints:
* Range: 1 - 100000
* * @param retentionPeriodHours

* The current retention period, in hours. *

*/ public void setRetentionPeriodHours(Integer retentionPeriodHours) { this.retentionPeriodHours = retentionPeriodHours; } /** *

* The current retention period, in hours. *

*

* Returns a reference to this object so that method calls can be chained * together. *

* Constraints:
* Range: 1 - 100000
* * @param retentionPeriodHours

* The current retention period, in hours. *

* @return A reference to this updated object so that method calls can be * chained together. */ public StreamDescriptionSummary withRetentionPeriodHours(Integer retentionPeriodHours) { this.retentionPeriodHours = retentionPeriodHours; return this; } /** *

* The approximate time that the stream was created. *

* * @return

* The approximate time that the stream was created. *

*/ public java.util.Date getStreamCreationTimestamp() { return streamCreationTimestamp; } /** *

* The approximate time that the stream was created. *

* * @param streamCreationTimestamp

* The approximate time that the stream was created. *

*/ public void setStreamCreationTimestamp(java.util.Date streamCreationTimestamp) { this.streamCreationTimestamp = streamCreationTimestamp; } /** *

* The approximate time that the stream was created. *

*

* Returns a reference to this object so that method calls can be chained * together. * * @param streamCreationTimestamp

* The approximate time that the stream was created. *

* @return A reference to this updated object so that method calls can be * chained together. */ public StreamDescriptionSummary withStreamCreationTimestamp( java.util.Date streamCreationTimestamp) { this.streamCreationTimestamp = streamCreationTimestamp; return this; } /** *

* Represents the current enhanced monitoring settings of the stream. *

* * @return

* Represents the current enhanced monitoring settings of the * stream. *

*/ public java.util.List getEnhancedMonitoring() { return enhancedMonitoring; } /** *

* Represents the current enhanced monitoring settings of the stream. *

* * @param enhancedMonitoring

* Represents the current enhanced monitoring settings of the * stream. *

*/ public void setEnhancedMonitoring(java.util.Collection enhancedMonitoring) { if (enhancedMonitoring == null) { this.enhancedMonitoring = null; return; } this.enhancedMonitoring = new java.util.ArrayList(enhancedMonitoring); } /** *

* Represents the current enhanced monitoring settings of the stream. *

*

* Returns a reference to this object so that method calls can be chained * together. * * @param enhancedMonitoring

* Represents the current enhanced monitoring settings of the * stream. *

* @return A reference to this updated object so that method calls can be * chained together. */ public StreamDescriptionSummary withEnhancedMonitoring(EnhancedMetrics... enhancedMonitoring) { if (getEnhancedMonitoring() == null) { this.enhancedMonitoring = new java.util.ArrayList( enhancedMonitoring.length); } for (EnhancedMetrics value : enhancedMonitoring) { this.enhancedMonitoring.add(value); } return this; } /** *

* Represents the current enhanced monitoring settings of the stream. *

*

* Returns a reference to this object so that method calls can be chained * together. * * @param enhancedMonitoring

* Represents the current enhanced monitoring settings of the * stream. *

* @return A reference to this updated object so that method calls can be * chained together. */ public StreamDescriptionSummary withEnhancedMonitoring( java.util.Collection enhancedMonitoring) { setEnhancedMonitoring(enhancedMonitoring); return this; } /** *

* The encryption type used. This value is one of the following: *

*
    *
  • *

    * KMS *

    *
  • *
  • *

    * NONE *

    *
  • *
*

* Constraints:
* Allowed Values: NONE, KMS * * @return

* The encryption type used. This value is one of the following: *

*
    *
  • *

    * KMS *

    *
  • *
  • *

    * NONE *

    *
  • *
* @see EncryptionType */ public String getEncryptionType() { return encryptionType; } /** *

* The encryption type used. This value is one of the following: *

*
    *
  • *

    * KMS *

    *
  • *
  • *

    * NONE *

    *
  • *
*

* Constraints:
* Allowed Values: NONE, KMS * * @param encryptionType

* The encryption type used. This value is one of the following: *

*
    *
  • *

    * KMS *

    *
  • *
  • *

    * NONE *

    *
  • *
* @see EncryptionType */ public void setEncryptionType(String encryptionType) { this.encryptionType = encryptionType; } /** *

* The encryption type used. This value is one of the following: *

*
    *
  • *

    * KMS *

    *
  • *
  • *

    * NONE *

    *
  • *
*

* Returns a reference to this object so that method calls can be chained * together. *

* Constraints:
* Allowed Values: NONE, KMS * * @param encryptionType

* The encryption type used. This value is one of the following: *

*
    *
  • *

    * KMS *

    *
  • *
  • *

    * NONE *

    *
  • *
* @return A reference to this updated object so that method calls can be * chained together. * @see EncryptionType */ public StreamDescriptionSummary withEncryptionType(String encryptionType) { this.encryptionType = encryptionType; return this; } /** *

* The encryption type used. This value is one of the following: *

*
    *
  • *

    * KMS *

    *
  • *
  • *

    * NONE *

    *
  • *
*

* Constraints:
* Allowed Values: NONE, KMS * * @param encryptionType

* The encryption type used. This value is one of the following: *

*
    *
  • *

    * KMS *

    *
  • *
  • *

    * NONE *

    *
  • *
* @see EncryptionType */ public void setEncryptionType(EncryptionType encryptionType) { this.encryptionType = encryptionType.toString(); } /** *

* The encryption type used. This value is one of the following: *

*
    *
  • *

    * KMS *

    *
  • *
  • *

    * NONE *

    *
  • *
*

* Returns a reference to this object so that method calls can be chained * together. *

* Constraints:
* Allowed Values: NONE, KMS * * @param encryptionType

* The encryption type used. This value is one of the following: *

*
    *
  • *

    * KMS *

    *
  • *
  • *

    * NONE *

    *
  • *
* @return A reference to this updated object so that method calls can be * chained together. * @see EncryptionType */ public StreamDescriptionSummary withEncryptionType(EncryptionType encryptionType) { this.encryptionType = encryptionType.toString(); return this; } /** *

* The GUID for the customer-managed AWS KMS key to use for encryption. This * value can be a globally unique identifier, a fully specified ARN to * either an alias or a key, or an alias name prefixed by "alias/".You can * also use a master key owned by Kinesis Data Streams by specifying the * alias aws/kinesis. *

*
    *
  • *

    * Key ARN example: * arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 *

    *
  • *
  • *

    * Alias ARN example: * arn:aws:kms:us-east-1:123456789012:alias/MyAliasName *

    *
  • *
  • *

    * Globally unique key ID example: * 12345678-1234-1234-1234-123456789012 *

    *
  • *
  • *

    * Alias name example: alias/MyAliasName *

    *
  • *
  • *

    * Master key owned by Kinesis Data Streams: alias/aws/kinesis *

    *
  • *
*

* Constraints:
* Length: 1 - 2048
* * @return

* The GUID for the customer-managed AWS KMS key to use for * encryption. This value can be a globally unique identifier, a * fully specified ARN to either an alias or a key, or an alias name * prefixed by "alias/".You can also use a master key owned by * Kinesis Data Streams by specifying the alias * aws/kinesis. *

*
    *
  • *

    * Key ARN example: * arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 *

    *
  • *
  • *

    * Alias ARN example: * arn:aws:kms:us-east-1:123456789012:alias/MyAliasName *

    *
  • *
  • *

    * Globally unique key ID example: * 12345678-1234-1234-1234-123456789012 *

    *
  • *
  • *

    * Alias name example: alias/MyAliasName *

    *
  • *
  • *

    * Master key owned by Kinesis Data Streams: * alias/aws/kinesis *

    *
  • *
*/ public String getKeyId() { return keyId; } /** *

* The GUID for the customer-managed AWS KMS key to use for encryption. This * value can be a globally unique identifier, a fully specified ARN to * either an alias or a key, or an alias name prefixed by "alias/".You can * also use a master key owned by Kinesis Data Streams by specifying the * alias aws/kinesis. *

*
    *
  • *

    * Key ARN example: * arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 *

    *
  • *
  • *

    * Alias ARN example: * arn:aws:kms:us-east-1:123456789012:alias/MyAliasName *

    *
  • *
  • *

    * Globally unique key ID example: * 12345678-1234-1234-1234-123456789012 *

    *
  • *
  • *

    * Alias name example: alias/MyAliasName *

    *
  • *
  • *

    * Master key owned by Kinesis Data Streams: alias/aws/kinesis *

    *
  • *
*

* Constraints:
* Length: 1 - 2048
* * @param keyId

* The GUID for the customer-managed AWS KMS key to use for * encryption. This value can be a globally unique identifier, a * fully specified ARN to either an alias or a key, or an alias * name prefixed by "alias/".You can also use a master key owned * by Kinesis Data Streams by specifying the alias * aws/kinesis. *

*
    *
  • *

    * Key ARN example: * arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 *

    *
  • *
  • *

    * Alias ARN example: * arn:aws:kms:us-east-1:123456789012:alias/MyAliasName *

    *
  • *
  • *

    * Globally unique key ID example: * 12345678-1234-1234-1234-123456789012 *

    *
  • *
  • *

    * Alias name example: alias/MyAliasName *

    *
  • *
  • *

    * Master key owned by Kinesis Data Streams: * alias/aws/kinesis *

    *
  • *
*/ public void setKeyId(String keyId) { this.keyId = keyId; } /** *

* The GUID for the customer-managed AWS KMS key to use for encryption. This * value can be a globally unique identifier, a fully specified ARN to * either an alias or a key, or an alias name prefixed by "alias/".You can * also use a master key owned by Kinesis Data Streams by specifying the * alias aws/kinesis. *

*
    *
  • *

    * Key ARN example: * arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 *

    *
  • *
  • *

    * Alias ARN example: * arn:aws:kms:us-east-1:123456789012:alias/MyAliasName *

    *
  • *
  • *

    * Globally unique key ID example: * 12345678-1234-1234-1234-123456789012 *

    *
  • *
  • *

    * Alias name example: alias/MyAliasName *

    *
  • *
  • *

    * Master key owned by Kinesis Data Streams: alias/aws/kinesis *

    *
  • *
*

* Returns a reference to this object so that method calls can be chained * together. *

* Constraints:
* Length: 1 - 2048
* * @param keyId

* The GUID for the customer-managed AWS KMS key to use for * encryption. This value can be a globally unique identifier, a * fully specified ARN to either an alias or a key, or an alias * name prefixed by "alias/".You can also use a master key owned * by Kinesis Data Streams by specifying the alias * aws/kinesis. *

*
    *
  • *

    * Key ARN example: * arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 *

    *
  • *
  • *

    * Alias ARN example: * arn:aws:kms:us-east-1:123456789012:alias/MyAliasName *

    *
  • *
  • *

    * Globally unique key ID example: * 12345678-1234-1234-1234-123456789012 *

    *
  • *
  • *

    * Alias name example: alias/MyAliasName *

    *
  • *
  • *

    * Master key owned by Kinesis Data Streams: * alias/aws/kinesis *

    *
  • *
* @return A reference to this updated object so that method calls can be * chained together. */ public StreamDescriptionSummary withKeyId(String keyId) { this.keyId = keyId; return this; } /** *

* The number of open shards in the stream. *

*

* Constraints:
* Range: 0 - 1000000
* * @return

* The number of open shards in the stream. *

*/ public Integer getOpenShardCount() { return openShardCount; } /** *

* The number of open shards in the stream. *

*

* Constraints:
* Range: 0 - 1000000
* * @param openShardCount

* The number of open shards in the stream. *

*/ public void setOpenShardCount(Integer openShardCount) { this.openShardCount = openShardCount; } /** *

* The number of open shards in the stream. *

*

* Returns a reference to this object so that method calls can be chained * together. *

* Constraints:
* Range: 0 - 1000000
* * @param openShardCount

* The number of open shards in the stream. *

* @return A reference to this updated object so that method calls can be * chained together. */ public StreamDescriptionSummary withOpenShardCount(Integer openShardCount) { this.openShardCount = openShardCount; return this; } /** * Returns a string representation of this object; useful for testing and * debugging. * * @return A string representation of this object. * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getStreamName() != null) sb.append("StreamName: " + getStreamName() + ","); if (getStreamARN() != null) sb.append("StreamARN: " + getStreamARN() + ","); if (getStreamStatus() != null) sb.append("StreamStatus: " + getStreamStatus() + ","); if (getRetentionPeriodHours() != null) sb.append("RetentionPeriodHours: " + getRetentionPeriodHours() + ","); if (getStreamCreationTimestamp() != null) sb.append("StreamCreationTimestamp: " + getStreamCreationTimestamp() + ","); if (getEnhancedMonitoring() != null) sb.append("EnhancedMonitoring: " + getEnhancedMonitoring() + ","); if (getEncryptionType() != null) sb.append("EncryptionType: " + getEncryptionType() + ","); if (getKeyId() != null) sb.append("KeyId: " + getKeyId() + ","); if (getOpenShardCount() != null) sb.append("OpenShardCount: " + getOpenShardCount()); sb.append("}"); return sb.toString(); } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getStreamName() == null) ? 0 : getStreamName().hashCode()); hashCode = prime * hashCode + ((getStreamARN() == null) ? 0 : getStreamARN().hashCode()); hashCode = prime * hashCode + ((getStreamStatus() == null) ? 0 : getStreamStatus().hashCode()); hashCode = prime * hashCode + ((getRetentionPeriodHours() == null) ? 0 : getRetentionPeriodHours().hashCode()); hashCode = prime * hashCode + ((getStreamCreationTimestamp() == null) ? 0 : getStreamCreationTimestamp() .hashCode()); hashCode = prime * hashCode + ((getEnhancedMonitoring() == null) ? 0 : getEnhancedMonitoring().hashCode()); hashCode = prime * hashCode + ((getEncryptionType() == null) ? 0 : getEncryptionType().hashCode()); hashCode = prime * hashCode + ((getKeyId() == null) ? 0 : getKeyId().hashCode()); hashCode = prime * hashCode + ((getOpenShardCount() == null) ? 0 : getOpenShardCount().hashCode()); return hashCode; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof StreamDescriptionSummary == false) return false; StreamDescriptionSummary other = (StreamDescriptionSummary) obj; if (other.getStreamName() == null ^ this.getStreamName() == null) return false; if (other.getStreamName() != null && other.getStreamName().equals(this.getStreamName()) == false) return false; if (other.getStreamARN() == null ^ this.getStreamARN() == null) return false; if (other.getStreamARN() != null && other.getStreamARN().equals(this.getStreamARN()) == false) return false; if (other.getStreamStatus() == null ^ this.getStreamStatus() == null) return false; if (other.getStreamStatus() != null && other.getStreamStatus().equals(this.getStreamStatus()) == false) return false; if (other.getRetentionPeriodHours() == null ^ this.getRetentionPeriodHours() == null) return false; if (other.getRetentionPeriodHours() != null && other.getRetentionPeriodHours().equals(this.getRetentionPeriodHours()) == false) return false; if (other.getStreamCreationTimestamp() == null ^ this.getStreamCreationTimestamp() == null) return false; if (other.getStreamCreationTimestamp() != null && other.getStreamCreationTimestamp().equals(this.getStreamCreationTimestamp()) == false) return false; if (other.getEnhancedMonitoring() == null ^ this.getEnhancedMonitoring() == null) return false; if (other.getEnhancedMonitoring() != null && other.getEnhancedMonitoring().equals(this.getEnhancedMonitoring()) == false) return false; if (other.getEncryptionType() == null ^ this.getEncryptionType() == null) return false; if (other.getEncryptionType() != null && other.getEncryptionType().equals(this.getEncryptionType()) == false) return false; if (other.getKeyId() == null ^ this.getKeyId() == null) return false; if (other.getKeyId() != null && other.getKeyId().equals(this.getKeyId()) == false) return false; if (other.getOpenShardCount() == null ^ this.getOpenShardCount() == null) return false; if (other.getOpenShardCount() != null && other.getOpenShardCount().equals(this.getOpenShardCount()) == false) return false; return true; } }