/* * 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 qldb-2019-01-02.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.QLDB.Model { /// /// Container for the parameters to the CreateLedger operation. /// Creates a new ledger in your Amazon Web Services account in the current Region. /// public partial class CreateLedgerRequest : AmazonQLDBRequest { private bool? _deletionProtection; private string _kmsKey; private string _name; private PermissionsMode _permissionsMode; private Dictionary _tags = new Dictionary(); /// /// Gets and sets the property DeletionProtection. /// /// Specifies whether the ledger is protected from being deleted by any user. If not defined /// during ledger creation, this feature is enabled (true) by default. /// /// /// /// If deletion protection is enabled, you must first disable it before you can delete /// the ledger. You can disable it by calling the UpdateLedger operation /// to set this parameter to false. /// /// public bool DeletionProtection { get { return this._deletionProtection.GetValueOrDefault(); } set { this._deletionProtection = value; } } // Check to see if DeletionProtection property is set internal bool IsSetDeletionProtection() { return this._deletionProtection.HasValue; } /// /// Gets and sets the property KmsKey. /// /// The key in Key Management Service (KMS) to use for encryption of data at rest in the /// ledger. For more information, see Encryption /// at rest in the Amazon QLDB Developer Guide. /// /// /// /// Use one of the following options to specify this parameter: /// ///
  • /// /// AWS_OWNED_KMS_KEY: Use an KMS key that is owned and managed by Amazon /// Web Services on your behalf. /// ///
  • /// /// Undefined: By default, use an Amazon Web Services owned KMS key. /// ///
  • /// /// A valid symmetric customer managed KMS key: Use the specified symmetric encryption /// KMS key in your account that you create, own, and manage. /// /// /// /// Amazon QLDB does not support asymmetric keys. For more information, see Using /// symmetric and asymmetric keys in the Key Management Service Developer Guide. /// ///
/// /// To specify a customer managed KMS key, you can use its key ID, Amazon Resource Name /// (ARN), alias name, or alias ARN. When using an alias name, prefix it with "alias/". /// To specify a key in a different Amazon Web Services account, you must use the key /// ARN or alias ARN. /// /// /// /// For example: /// ///
  • /// /// Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab /// ///
  • /// /// Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab /// /// ///
  • /// /// Alias name: alias/ExampleAlias /// ///
  • /// /// Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias /// ///
/// /// For more information, see Key /// identifiers (KeyId) in the Key Management Service Developer Guide. /// ///
[AWSProperty(Max=1600)] public string KmsKey { get { return this._kmsKey; } set { this._kmsKey = value; } } // Check to see if KmsKey property is set internal bool IsSetKmsKey() { return this._kmsKey != null; } /// /// Gets and sets the property Name. /// /// The name of the ledger that you want to create. The name must be unique among all /// of the ledgers in your Amazon Web Services account in the current Region. /// /// /// /// Naming constraints for ledger names are defined in Quotas /// in Amazon QLDB in the Amazon QLDB Developer Guide. /// /// [AWSProperty(Required=true, Min=1, Max=32)] public string Name { get { return this._name; } set { this._name = value; } } // Check to see if Name property is set internal bool IsSetName() { return this._name != null; } /// /// Gets and sets the property PermissionsMode. /// /// The permissions mode to assign to the ledger that you want to create. This parameter /// can have one of the following values: /// ///
  • /// /// ALLOW_ALL: A legacy permissions mode that enables access control with /// API-level granularity for ledgers. /// /// /// /// This mode allows users who have the SendCommand API permission for this /// ledger to run all PartiQL commands (hence, ALLOW_ALL) on any tables in /// the specified ledger. This mode disregards any table-level or command-level IAM permissions /// policies that you create for the ledger. /// ///
  • /// /// STANDARD: (Recommended) A permissions mode that enables access /// control with finer granularity for ledgers, tables, and PartiQL commands. /// /// /// /// By default, this mode denies all user requests to run any PartiQL commands on any /// tables in this ledger. To allow PartiQL commands to run, you must create IAM permissions /// policies for specific table resources and PartiQL actions, in addition to the SendCommand /// API permission for the ledger. For information, see Getting /// started with the standard permissions mode in the Amazon QLDB Developer Guide. /// ///
/// /// We strongly recommend using the STANDARD permissions mode to maximize /// the security of your ledger data. /// /// ///
[AWSProperty(Required=true)] public PermissionsMode PermissionsMode { get { return this._permissionsMode; } set { this._permissionsMode = value; } } // Check to see if PermissionsMode property is set internal bool IsSetPermissionsMode() { return this._permissionsMode != null; } /// /// Gets and sets the property Tags. /// /// The key-value pairs to add as tags to the ledger that you want to create. Tag keys /// are case sensitive. Tag values are case sensitive and can be null. /// /// [AWSProperty(Min=0, Max=200)] public Dictionary Tags { get { return this._tags; } set { this._tags = value; } } // Check to see if Tags property is set internal bool IsSetTags() { return this._tags != null && this._tags.Count > 0; } } }