// Code generated by smithy-go-codegen DO NOT EDIT.

// Package codeartifact provides the API client, operations, and parameter types
// for CodeArtifact.
//
// CodeArtifact is a fully managed artifact repository compatible with
// language-native package managers and build tools such as npm, Apache Maven, pip,
// and dotnet. You can use CodeArtifact to share packages with development teams
// and pull packages. Packages can be pulled from both public and CodeArtifact
// repositories. You can also create an upstream relationship between a
// CodeArtifact repository and another repository, which effectively merges their
// contents from the point of view of a package manager client. CodeArtifact
// Components Use the information in this guide to help you work with the following
// CodeArtifact components:
//
// * Repository: A CodeArtifact repository contains a set
// of package versions
// (https://docs.aws.amazon.com/codeartifact/latest/ug/welcome.html#welcome-concepts-package-version),
// each of which maps to a set of assets, or files. Repositories are polyglot, so a
// single repository can contain packages of any supported type. Each repository
// exposes endpoints for fetching and publishing packages using tools like the npm
// CLI, the Maven CLI ( mvn ), Python CLIs ( pip and twine), and NuGet CLIs (nuget
// and dotnet).
//
// * Domain: Repositories are aggregated into a higher-level entity
// known as a domain. All package assets and metadata are stored in the domain, but
// are consumed through repositories. A given package asset, such as a Maven JAR
// file, is stored once per domain, no matter how many repositories it's present
// in. All of the assets and metadata in a domain are encrypted with the same
// customer master key (CMK) stored in Key Management Service (KMS). Each
// repository is a member of a single domain and can't be moved to a different
// domain. The domain allows organizational policy to be applied across multiple
// repositories, such as which accounts can access repositories in the domain, and
// which public repositories can be used as sources of packages. Although an
// organization can have multiple domains, we recommend a single production domain
// that contains all published artifacts so that teams can find and share packages
// across their organization.
//
// * Package: A package is a bundle of software and the
// metadata required to resolve dependencies and install the software. CodeArtifact
// supports npm
// (https://docs.aws.amazon.com/codeartifact/latest/ug/using-npm.html), PyPI
// (https://docs.aws.amazon.com/codeartifact/latest/ug/using-python.html), Maven
// (https://docs.aws.amazon.com/codeartifact/latest/ug/using-maven), and NuGet
// (https://docs.aws.amazon.com/codeartifact/latest/ug/using-nuget) package
// formats.
//
// In CodeArtifact, a package consists of:
//
// * A name (for example,
// webpack is the name of a popular npm package)
//
// * An optional namespace (for
// example, @types in @types/node)
//
// * A set of versions (for example, 1.0.0, 1.0.1,
// 1.0.2, etc.)
//
// * Package-level metadata (for example, npm tags)
//
// * Package
// version: A version of a package, such as @types/node 12.6.9. The version number
// format and semantics vary for different package formats. For example, npm
// package versions must conform to the Semantic Versioning specification
// (https://semver.org/). In CodeArtifact, a package version consists of the
// version identifier, metadata at the package version level, and a set of
// assets.
//
// * Upstream repository: One repository is upstream of another when the
// package versions in it can be accessed from the repository endpoint of the
// downstream repository, effectively merging the contents of the two repositories
// from the point of view of a client. CodeArtifact allows creating an upstream
// relationship between two repositories.
//
// * Asset: An individual file stored in
// CodeArtifact associated with a package version, such as an npm .tgz file or
// Maven POM and JAR files.
//
// CodeArtifact supports these operations:
//
// *
// AssociateExternalConnection: Adds an existing external connection to a
// repository.
//
// * CopyPackageVersions: Copies package versions from one repository
// to another repository in the same domain.
//
// * CreateDomain: Creates a domain
//
// *
// CreateRepository: Creates a CodeArtifact repository in a domain.
//
// *
// DeleteDomain: Deletes a domain. You cannot delete a domain that contains
// repositories.
//
// * DeleteDomainPermissionsPolicy: Deletes the resource policy that
// is set on a domain.
//
// * DeletePackageVersions: Deletes versions of a package.
// After a package has been deleted, it can be republished, but its assets and
// metadata cannot be restored because they have been permanently removed from
// storage.
//
// * DeleteRepository: Deletes a repository.
//
// *
// DeleteRepositoryPermissionsPolicy: Deletes the resource policy that is set on a
// repository.
//
// * DescribeDomain: Returns a DomainDescription object that contains
// information about the requested domain.
//
// * DescribePackage: Returns a
// PackageDescription
// (https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_PackageDescription.html)
// object that contains details about a package.
//
// * DescribePackageVersion: Returns
// a PackageVersionDescription
// (https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_PackageVersionDescription.html)
// object that contains details about a package version.
//
// * DescribeRepository:
// Returns a RepositoryDescription object that contains detailed information about
// the requested repository.
//
// * DisposePackageVersions: Disposes versions of a
// package. A package version with the status Disposed cannot be restored because
// they have been permanently removed from storage.
//
// *
// DisassociateExternalConnection: Removes an existing external connection from a
// repository.
//
// * GetAuthorizationToken: Generates a temporary authorization token
// for accessing repositories in the domain. The token expires the authorization
// period has passed. The default authorization period is 12 hours and can be
// customized to any length with a maximum of 12 hours.
//
// *
// GetDomainPermissionsPolicy: Returns the policy of a resource that is attached to
// the specified domain.
//
// * GetPackageVersionAsset: Returns the contents of an
// asset that is in a package version.
//
// * GetPackageVersionReadme: Gets the readme
// file or descriptive text for a package version.
//
// * GetRepositoryEndpoint:
// Returns the endpoint of a repository for a specific package format. A repository
// has one endpoint for each package format:
//
// * maven
//
// * npm
//
// * nuget
//
// * pypi
//
// *
// GetRepositoryPermissionsPolicy: Returns the resource policy that is set on a
// repository.
//
// * ListDomains: Returns a list of DomainSummary objects. Each
// returned DomainSummary object contains information about a domain.
//
// *
// ListPackages: Lists the packages in a repository.
//
// * ListPackageVersionAssets:
// Lists the assets for a given package version.
//
// * ListPackageVersionDependencies:
// Returns a list of the direct dependencies for a package version.
//
// *
// ListPackageVersions: Returns a list of package versions for a specified package
// in a repository.
//
// * ListRepositories: Returns a list of repositories owned by
// the Amazon Web Services account that called this method.
//
// *
// ListRepositoriesInDomain: Returns a list of the repositories in a domain.
//
// *
// PutDomainPermissionsPolicy: Attaches a resource policy to a domain.
//
// *
// PutPackageOriginConfiguration: Sets the package origin configuration for a
// package, which determine how new versions of the package can be added to a
// specific repository.
//
// * PutRepositoryPermissionsPolicy: Sets the resource policy
// on a repository that specifies permissions to access it.
//
// *
// UpdatePackageVersionsStatus: Updates the status of one or more versions of a
// package.
//
// * UpdateRepository: Updates the properties of a repository.
package codeartifact
