// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for
// license information.
// 
// Code generated by Microsoft (R) AutoRest Code Generator 0.17.0.0
// Changes may cause incorrect behavior and will be lost if the code is
// regenerated.

namespace Microsoft.Azure.Management.DataLake.Analytics.Models
{
    using System;
    using System.Linq;
    using System.Collections.Generic;
    using Newtonsoft.Json;
    using Microsoft.Rest;
    using Microsoft.Rest.Serialization;
    using Microsoft.Rest.Azure;

    /// <summary>
    /// A Data Lake Analytics catalog U-SQL secret item.
    /// </summary>
    public partial class USqlSecret : CatalogItem
    {
        /// <summary>
        /// Initializes a new instance of the USqlSecret class.
        /// </summary>
        public USqlSecret() { }

        /// <summary>
        /// Initializes a new instance of the USqlSecret class.
        /// </summary>
        /// <param name="computeAccountName">the name of the Data Lake Analytics account.</param>
        /// <param name="version">the version of the catalog item.</param>
        /// <param name="databaseName">the name of the database.</param>
        /// <param name="name">the name of the secret.</param>
        /// <param name="creationTime">the creation time of the credential object. This is the only information returned about a secret from a GET.</param>
        /// <param name="uri">the URI identifier for the secret in the format <hostname>:<port></param>
        /// <param name="password">the password for the secret to pass in</param>
        public USqlSecret(string computeAccountName = default(string), Guid? version = default(Guid?), string databaseName = default(string), string name = default(string), DateTimeOffset? creationTime = default(DateTimeOffset?), string uri = default(string), string password = default(string))
            : base(computeAccountName, version)
        {
            DatabaseName = databaseName;
            Name = name;
            CreationTime = creationTime;
            Uri = uri;
            Password = password;
        }

        /// <summary>
        /// Gets or sets the name of the database.
        /// </summary>
        [JsonProperty(PropertyName = "databaseName")]
        public string DatabaseName { get; set; }

        /// <summary>
        /// Gets or sets the name of the secret.
        /// </summary>
        [JsonProperty(PropertyName = "secretName")]
        public string Name { get; set; }

        /// <summary>
        /// Gets or sets the creation time of the credential object. This is
        /// the only information returned about a secret from a GET.
        /// </summary>
        [JsonProperty(PropertyName = "creationTime")]
        public DateTimeOffset? CreationTime { get; set; }

        /// <summary>
        /// Gets or sets the URI identifier for the secret in the format
        /// &lt;hostname&gt;:&lt;port&gt;
        /// </summary>
        [JsonProperty(PropertyName = "uri")]
        public string Uri { get; set; }

        /// <summary>
        /// Gets or sets the password for the secret to pass in
        /// </summary>
        [JsonProperty(PropertyName = "password")]
        public string Password { get; set; }

    }
}
