/* * 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 redshift-2012-12-01.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.Redshift.Model { /// /// Container for the parameters to the GetClusterCredentials operation. /// Returns a database user name and temporary password with temporary authorization to /// log on to an Amazon Redshift database. The action returns the database user name prefixed /// with IAM: if AutoCreate is False or IAMA: /// if AutoCreate is True. You can optionally specify one or /// more database user groups that the user will join at log on. By default, the temporary /// credentials expire in 900 seconds. You can optionally specify a duration between 900 /// seconds (15 minutes) and 3600 seconds (60 minutes). For more information, see Using /// IAM Authentication to Generate Database User Credentials in the Amazon Redshift /// Cluster Management Guide. /// /// /// /// The Identity and Access Management (IAM) user or role that runs GetClusterCredentials /// must have an IAM policy attached that allows access to all necessary actions and resources. /// For more information about permissions, see Resource /// Policies for GetClusterCredentials in the Amazon Redshift Cluster Management Guide. /// /// /// /// If the DbGroups parameter is specified, the IAM policy must allow the /// redshift:JoinGroup action with access to the listed dbgroups. /// /// /// /// /// In addition, if the AutoCreate parameter is set to True, /// then the policy must include the redshift:CreateClusterUser permission. /// /// /// /// If the DbName parameter is specified, the IAM policy must allow access /// to the resource dbname for the specified database name. /// /// public partial class GetClusterCredentialsRequest : AmazonRedshiftRequest { private bool? _autoCreate; private string _clusterIdentifier; private string _customDomainName; private List _dbGroups = new List(); private string _dbName; private string _dbUser; private int? _durationSeconds; /// /// Gets and sets the property AutoCreate. /// /// Create a database user with the name specified for the user named in DbUser /// if one does not exist. /// /// public bool AutoCreate { get { return this._autoCreate.GetValueOrDefault(); } set { this._autoCreate = value; } } // Check to see if AutoCreate property is set internal bool IsSetAutoCreate() { return this._autoCreate.HasValue; } /// /// Gets and sets the property ClusterIdentifier. /// /// The unique identifier of the cluster that contains the database for which you are /// requesting credentials. This parameter is case sensitive. /// /// [AWSProperty(Max=2147483647)] public string ClusterIdentifier { get { return this._clusterIdentifier; } set { this._clusterIdentifier = value; } } // Check to see if ClusterIdentifier property is set internal bool IsSetClusterIdentifier() { return this._clusterIdentifier != null; } /// /// Gets and sets the property CustomDomainName. /// /// The custom domain name for the cluster credentials. /// /// [AWSProperty(Max=2147483647)] public string CustomDomainName { get { return this._customDomainName; } set { this._customDomainName = value; } } // Check to see if CustomDomainName property is set internal bool IsSetCustomDomainName() { return this._customDomainName != null; } /// /// Gets and sets the property DbGroups. /// /// A list of the names of existing database groups that the user named in DbUser /// will join for the current session, in addition to any group memberships for an existing /// user. If not specified, a new user is added only to PUBLIC. /// /// /// /// Database group name constraints /// ///
  • /// /// Must be 1 to 64 alphanumeric characters or hyphens /// ///
  • /// /// Must contain only lowercase letters, numbers, underscore, plus sign, period (dot), /// at symbol (@), or hyphen. /// ///
  • /// /// First character must be a letter. /// ///
  • /// /// Must not contain a colon ( : ) or slash ( / ). /// ///
  • /// /// Cannot be a reserved word. A list of reserved words can be found in Reserved /// Words in the Amazon Redshift Database Developer Guide. /// ///
///
public List DbGroups { get { return this._dbGroups; } set { this._dbGroups = value; } } // Check to see if DbGroups property is set internal bool IsSetDbGroups() { return this._dbGroups != null && this._dbGroups.Count > 0; } /// /// Gets and sets the property DbName. /// /// The name of a database that DbUser is authorized to log on to. If DbName /// is not specified, DbUser can log on to any existing database. /// /// /// /// Constraints: /// ///
  • /// /// Must be 1 to 64 alphanumeric characters or hyphens /// ///
  • /// /// Must contain uppercase or lowercase letters, numbers, underscore, plus sign, period /// (dot), at symbol (@), or hyphen. /// ///
  • /// /// First character must be a letter. /// ///
  • /// /// Must not contain a colon ( : ) or slash ( / ). /// ///
  • /// /// Cannot be a reserved word. A list of reserved words can be found in Reserved /// Words in the Amazon Redshift Database Developer Guide. /// ///
///
[AWSProperty(Max=2147483647)] public string DbName { get { return this._dbName; } set { this._dbName = value; } } // Check to see if DbName property is set internal bool IsSetDbName() { return this._dbName != null; } /// /// Gets and sets the property DbUser. /// /// The name of a database user. If a user name matching DbUser exists in /// the database, the temporary user credentials have the same permissions as the existing /// user. If DbUser doesn't exist in the database and Autocreate /// is True, a new user is created using the value for DbUser /// with PUBLIC permissions. If a database user matching the value for DbUser /// doesn't exist and Autocreate is False, then the command /// succeeds but the connection attempt will fail because the user doesn't exist in the /// database. /// /// /// /// For more information, see CREATE /// USER in the Amazon Redshift Database Developer Guide. /// /// /// /// Constraints: /// ///
  • /// /// Must be 1 to 64 alphanumeric characters or hyphens. The user name can't be PUBLIC. /// ///
  • /// /// Must contain uppercase or lowercase letters, numbers, underscore, plus sign, period /// (dot), at symbol (@), or hyphen. /// ///
  • /// /// First character must be a letter. /// ///
  • /// /// Must not contain a colon ( : ) or slash ( / ). /// ///
  • /// /// Cannot be a reserved word. A list of reserved words can be found in Reserved /// Words in the Amazon Redshift Database Developer Guide. /// ///
///
[AWSProperty(Required=true, Max=2147483647)] public string DbUser { get { return this._dbUser; } set { this._dbUser = value; } } // Check to see if DbUser property is set internal bool IsSetDbUser() { return this._dbUser != null; } /// /// Gets and sets the property DurationSeconds. /// /// The number of seconds until the returned temporary password expires. /// /// /// /// Constraint: minimum 900, maximum 3600. /// /// /// /// Default: 900 /// /// public int DurationSeconds { get { return this._durationSeconds.GetValueOrDefault(); } set { this._durationSeconds = value; } } // Check to see if DurationSeconds property is set internal bool IsSetDurationSeconds() { return this._durationSeconds.HasValue; } } }