/*
* 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 codeartifact-2018-09-22.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.CodeArtifact.Model
{
///
/// Container for the parameters to the PutPackageOriginConfiguration operation.
/// Sets the package origin configuration for a package.
///
///
///
/// The package origin configuration determines how new versions of a package can be added
/// to a repository. You can allow or block direct publishing of new package versions,
/// or ingestion and retaining of new package versions from an external connection or
/// upstream source. For more information about package origin controls and configuration,
/// see Editing
/// package origin controls in the CodeArtifact User Guide.
///
///
///
/// PutPackageOriginConfiguration
can be called on a package that doesn't
/// yet exist in the repository. When called on a package that does not exist, a package
/// is created in the repository with no versions and the requested restrictions are set
/// on the package. This can be used to preemptively block ingesting or retaining any
/// versions from external connections or upstream repositories, or to block publishing
/// any versions of the package into the repository before connecting any package managers
/// or publishers to the repository.
///
///
public partial class PutPackageOriginConfigurationRequest : AmazonCodeArtifactRequest
{
private string _domain;
private string _domainOwner;
private PackageFormat _format;
private string _awsNamespace;
private string _package;
private string _repository;
private PackageOriginRestrictions _restrictions;
///
/// Gets and sets the property Domain.
///
/// The name of the domain that contains the repository that contains the package.
///
///
[AWSProperty(Required=true, Min=2, Max=50)]
public string Domain
{
get { return this._domain; }
set { this._domain = value; }
}
// Check to see if Domain property is set
internal bool IsSetDomain()
{
return this._domain != null;
}
///
/// Gets and sets the property DomainOwner.
///
/// The 12-digit account number of the Amazon Web Services account that owns the domain.
/// It does not include dashes or spaces.
///
///
[AWSProperty(Min=12, Max=12)]
public string DomainOwner
{
get { return this._domainOwner; }
set { this._domainOwner = value; }
}
// Check to see if DomainOwner property is set
internal bool IsSetDomainOwner()
{
return this._domainOwner != null;
}
///
/// Gets and sets the property Format.
///
/// A format that specifies the type of the package to be updated.
///
///
[AWSProperty(Required=true)]
public PackageFormat Format
{
get { return this._format; }
set { this._format = value; }
}
// Check to see if Format property is set
internal bool IsSetFormat()
{
return this._format != null;
}
///
/// Gets and sets the property Namespace.
///
/// The namespace of the package to be updated. The package component that specifies its
/// namespace depends on its type. For example:
///
/// -
///
/// The namespace of a Maven package is its
groupId
.
///
/// -
///
/// The namespace of an npm package is its
scope
.
///
/// -
///
/// Python and NuGet packages do not contain a corresponding component, packages of those
/// formats do not have a namespace.
///
///
-
///
/// The namespace of a generic package is its
namespace
.
///
///
///
[AWSProperty(Min=1, Max=255)]
public string Namespace
{
get { return this._awsNamespace; }
set { this._awsNamespace = value; }
}
// Check to see if Namespace property is set
internal bool IsSetNamespace()
{
return this._awsNamespace != null;
}
///
/// Gets and sets the property Package.
///
/// The name of the package to be updated.
///
///
[AWSProperty(Required=true, Min=1, Max=255)]
public string Package
{
get { return this._package; }
set { this._package = value; }
}
// Check to see if Package property is set
internal bool IsSetPackage()
{
return this._package != null;
}
///
/// Gets and sets the property Repository.
///
/// The name of the repository that contains the package.
///
///
[AWSProperty(Required=true, Min=2, Max=100)]
public string Repository
{
get { return this._repository; }
set { this._repository = value; }
}
// Check to see if Repository property is set
internal bool IsSetRepository()
{
return this._repository != null;
}
///
/// Gets and sets the property Restrictions.
///
/// A PackageOriginRestrictions
/// object that contains information about the upstream
and publish
/// package origin restrictions. The upstream
restriction determines if new
/// package versions can be ingested or retained from external connections or upstream
/// repositories. The publish
restriction determines if new package versions
/// can be published directly to the repository.
///
///
///
/// You must include both the desired upstream
and publish
restrictions.
///
///
[AWSProperty(Required=true)]
public PackageOriginRestrictions Restrictions
{
get { return this._restrictions; }
set { this._restrictions = value; }
}
// Check to see if Restrictions property is set
internal bool IsSetRestrictions()
{
return this._restrictions != null;
}
}
}