/*
 * 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 sagemaker-2017-07-24.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.SageMaker.Model
{
    /// 
    /// Container for the parameters to the CreateCodeRepository operation.
    /// Creates a Git repository as a resource in your SageMaker account. You can associate
    /// the repository with notebook instances so that you can use Git source control for
    /// the notebooks you create. The Git repository is a resource in your SageMaker account,
    /// so it can be associated with more than one notebook instance, and it persists independently
    /// from the lifecycle of any notebook instances it is associated with.
    /// 
    ///  
    /// 
    /// The repository can be hosted either in Amazon
    /// Web Services CodeCommit or in any other Git repository.
    /// 
    /// 
    public partial class CreateCodeRepositoryRequest : AmazonSageMakerRequest
    {
        private string _codeRepositoryName;
        private GitConfig _gitConfig;
        private List _tags = new List();
        /// 
        /// Gets and sets the property CodeRepositoryName. 
        /// 
        /// The name of the Git repository. The name must have 1 to 63 characters. Valid characters
        /// are a-z, A-Z, 0-9, and - (hyphen).
        /// 
        /// 
        [AWSProperty(Required=true, Min=1, Max=63)]
        public string CodeRepositoryName
        {
            get { return this._codeRepositoryName; }
            set { this._codeRepositoryName = value; }
        }
        // Check to see if CodeRepositoryName property is set
        internal bool IsSetCodeRepositoryName()
        {
            return this._codeRepositoryName != null;
        }
        /// 
        /// Gets and sets the property GitConfig. 
        /// 
        /// Specifies details about the repository, including the URL where the repository is
        /// located, the default branch, and credentials to use to access the repository.
        /// 
        /// 
        [AWSProperty(Required=true)]
        public GitConfig GitConfig
        {
            get { return this._gitConfig; }
            set { this._gitConfig = value; }
        }
        // Check to see if GitConfig property is set
        internal bool IsSetGitConfig()
        {
            return this._gitConfig != null;
        }
        /// 
        /// Gets and sets the property Tags. 
        /// 
        /// An array of key-value pairs. You can use tags to categorize your Amazon Web Services
        /// resources in different ways, for example, by purpose, owner, or environment. For more
        /// information, see Tagging
        /// Amazon Web Services Resources.
        /// 
        /// 
        [AWSProperty(Min=0, Max=50)]
        public List 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; 
        }
    }
}