smithy4s.com.amazonaws.kinesis.StartStreamEncryptionInput.scala Maven / Gradle / Ivy
package com.amazonaws.kinesis
import smithy4s.Hints
import smithy4s.Schema
import smithy4s.ShapeId
import smithy4s.ShapeTag
import smithy4s.schema.Schema.struct
/** @param StreamName
* The name of the stream for which to start encrypting records.
* @param EncryptionType
* The encryption type to use. The only valid value is KMS
.
* @param KeyId
* The GUID for the customer-managed Amazon Web Services KMS key to use for encryption.
* This value can be a globally unique identifier, a fully specified Amazon Resource Name
* (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
*
*
*
* @param StreamARN
* The ARN of the stream.
*/
final case class StartStreamEncryptionInput(encryptionType: EncryptionType, keyId: KeyId, streamName: Option[StreamName] = None, streamARN: Option[StreamARN] = None)
object StartStreamEncryptionInput extends ShapeTag.Companion[StartStreamEncryptionInput] {
val id: ShapeId = ShapeId("com.amazonaws.kinesis", "StartStreamEncryptionInput")
val hints: Hints = Hints(
smithy.api.Input(),
).lazily
// constructor using the original order from the spec
private def make(streamName: Option[StreamName], encryptionType: EncryptionType, keyId: KeyId, streamARN: Option[StreamARN]): StartStreamEncryptionInput = StartStreamEncryptionInput(encryptionType, keyId, streamName, streamARN)
implicit val schema: Schema[StartStreamEncryptionInput] = struct(
StreamName.schema.optional[StartStreamEncryptionInput]("StreamName", _.streamName).addHints(smithy.api.Documentation("The name of the stream for which to start encrypting records.
")),
EncryptionType.schema.required[StartStreamEncryptionInput]("EncryptionType", _.encryptionType).addHints(smithy.api.Documentation("The encryption type to use. The only valid value is KMS
.
")),
KeyId.schema.required[StartStreamEncryptionInput]("KeyId", _.keyId).addHints(smithy.api.Documentation("The GUID for the customer-managed Amazon Web Services KMS key to use for encryption.\n This value can be a globally unique identifier, a fully specified Amazon Resource Name\n (ARN) to either an alias or a key, or an alias name prefixed by \"alias/\".You can also\n use a master key owned by Kinesis Data Streams by specifying the alias\n aws/kinesis
.
\n \n - \n
Key ARN example:\n arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012
\n
\n \n - \n
Alias ARN example:\n arn:aws:kms:us-east-1:123456789012:alias/MyAliasName
\n
\n \n - \n
Globally unique key ID example:\n 12345678-1234-1234-1234-123456789012
\n
\n \n - \n
Alias name example: alias/MyAliasName
\n
\n \n - \n
Master key owned by Kinesis Data Streams:\n alias/aws/kinesis
\n
\n \n
")),
StreamARN.schema.optional[StartStreamEncryptionInput]("StreamARN", _.streamARN).addHints(smithy.api.Documentation("The ARN of the stream.
")),
)(make).withId(id).addHints(hints)
}