Documentation ¶
Index ¶
- Constants
- Variables
- func CheckRepo(id string, request *resty.Request) (*resty.Response, error)
- func Create(ctx context.Context, d *schema.ResourceData, m interface{}, ...) diag.Diagnostics
- func DeleteRepo(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics
- func GetArtifactCount(repoKey string, client *resty.Client) (int, error)
- func GetDefaultRepoLayoutRef(repositoryType, packageType string) func() (interface{}, error)
- func HandleResetWithNonExistentValue(d *utilsdk.ResourceData, key string) string
- func MkRepoCreate(unpack unpacker.UnpackFunc, read schema.ReadContextFunc) schema.CreateContextFunc
- func MkRepoRead(pack packer.PackFunc, construct Constructor) schema.ReadContextFunc
- func MkRepoUpdate(unpack unpacker.UnpackFunc, read schema.ReadContextFunc) schema.UpdateContextFunc
- func MkResourceSchema(skeemas map[int16]map[string]*schema.Schema, packer packer.PackFunc, ...) *schema.Resource
- func ProjectEnvironmentsDiff(ctx context.Context, diff *schema.ResourceDiff, meta interface{}) error
- func RepoLayoutRefSchema(repositoryType string, packageType string) map[string]*schema.Schema
- func Resource(skeema map[string]*schema.Schema) *schema.Resource
- func ResourceUpgradeProjectKey(ctx context.Context, rawState map[string]any, meta any) (map[string]any, error)
- func Retry400(response *resty.Response, _ error) bool
- func Update(ctx context.Context, d *schema.ResourceData, m interface{}, ...) diag.Diagnostics
- func ValidateRepoLayoutRefSchemaOverride(_ interface{}, _ cty.Path) diag.Diagnostics
- func VerifyDisableProxy(_ context.Context, diff *schema.ResourceDiff, _ interface{}) error
- type ConanBaseParams
- type Constructor
- type ContentSynchronisation
- type ContentSynchronisationProperties
- type ContentSynchronisationSource
- type ContentSynchronisationStatistics
- type PrimaryKeyPairRefParam
- type ReadFunc
- type RepositoryFileList
- type SecondaryKeyPairRefParam
- type SupportedRepoClasses
Constants ¶
View Source
const ( AlpinePackageType = "alpine" AnsiblePackageType = "ansible" BowerPackageType = "bower" CargoPackageType = "cargo" ChefPackageType = "chef" CocoapodsPackageType = "cocoapods" ComposerPackageType = "composer" CondaPackageType = "conda" ConanPackageType = "conan" CranPackageType = "cran" DebianPackageType = "debian" DockerPackageType = "docker" GemsPackageType = "gems" GenericPackageType = "generic" GitLFSPackageType = "gitlfs" GoPackageType = "go" GradlePackageType = "gradle" HelmPackageType = "helm" HelmOCIPackageType = "helmoci" HuggingFacePackageType = "huggingfaceml" IvyPackageType = "ivy" MavenPackageType = "maven" NPMPackageType = "npm" NugetPackageType = "nuget" OCIPackageType = "oci" OpkgPackageType = "opkg" P2PackageType = "p2" PubPackageType = "pub" PuppetPackageType = "puppet" PyPiPackageType = "pypi" RPMPackageType = "rpm" SBTPackageType = "sbt" SwiftPackageType = "swift" TerraformBackendPackageType = "terraformbackend" TerraformModulePackageType = "terraform_module" TerraformProviderPackageType = "terraform_provider" TerraformPackageType = "terraform" VagrantPackageType = "vagrant" VCSPackageType = "vcs" )
View Source
const CustomProjectEnvironmentSupportedVersion = "7.53.1"
View Source
const RepositoriesEndpoint = "artifactory/api/repositories/{key}"
Variables ¶
View Source
var AlpinePrimaryKeyPairRef = map[string]*schema.Schema{ "primary_keypair_ref": { Type: schema.TypeString, Optional: true, Description: "Used to sign index files in Alpine Linux repositories. " + "See: https://www.jfrog.com/confluence/display/JFROG/Alpine+Linux+Repositories#AlpineLinuxRepositories-SigningAlpineLinuxIndex", }, }
View Source
var BaseSchemaV1 = map[string]*schema.Schema{ "key": { Type: schema.TypeString, Required: true, ForceNew: true, ValidateDiagFunc: validator.RepoKey, Description: "A mandatory identifier for the repository that must be unique. Must be 1 - 64 alphanumeric and hyphen characters. It cannot contain spaces or special characters.", }, "project_key": { Type: schema.TypeString, Optional: true, ValidateDiagFunc: validator.ProjectKey, Description: "Project key for assigning this repository to. Must be 2 - 32 lowercase alphanumeric and hyphen characters. When assigning repository to a project, repository key must be prefixed with project key, separated by a dash.", }, "project_environments": { Type: schema.TypeSet, Elem: &schema.Schema{Type: schema.TypeString}, MinItems: 0, MaxItems: 2, Set: schema.HashString, Optional: true, Computed: true, Description: "Project environment for assigning this repository to. Allow values: \"DEV\", \"PROD\", or one of custom environment. " + "Before Artifactory 7.53.1, up to 2 values (\"DEV\" and \"PROD\") are allowed. From 7.53.1 onward, only one value is allowed. " + "The attribute should only be used if the repository is already assigned to the existing project. If not, " + "the attribute will be ignored by Artifactory, but will remain in the Terraform state, which will create " + "state drift during the update.", }, "package_type": { Type: schema.TypeString, Required: false, Computed: true, ForceNew: true, }, "description": { Type: schema.TypeString, Optional: true, Description: "Public description.", }, "notes": { Type: schema.TypeString, Optional: true, Description: "Internal description.", }, "includes_pattern": { Type: schema.TypeString, Optional: true, Default: "**/*", Description: "List of comma-separated artifact patterns to include when evaluating artifact requests in the form of `x/y/**/z/*`. " + "When used, only artifacts matching one of the include patterns are served. By default, all artifacts are included (`**/*`).", }, "excludes_pattern": { Type: schema.TypeString, Optional: true, Description: "List of artifact patterns to exclude when evaluating artifact requests, in the form of `x/y/**/z/*`." + "By default no artifacts are excluded.", }, "repo_layout_ref": { Type: schema.TypeString, Optional: true, ValidateDiagFunc: ValidateRepoLayoutRefSchemaOverride, Description: "Sets the layout that the repository should use for storing and identifying modules. A recommended layout that corresponds to the package type defined is suggested, and index packages uploaded and calculate metadata accordingly.", }, }
View Source
var CompressionFormats = map[string]*schema.Schema{ "index_compression_formats": { Type: schema.TypeSet, Elem: &schema.Schema{ Type: schema.TypeString, }, Set: schema.HashString, Optional: true, }, }
View Source
var ConanBaseSchema = map[string]*schema.Schema{ "force_conan_authentication": { Type: schema.TypeBool, Optional: true, Default: false, Description: "Force basic authentication credentials in order to use this repository. Default value is 'false'.", }, }
View Source
var PackageTypesLikeGradle = []string{ GradlePackageType, SBTPackageType, IvyPackageType, }
View Source
var PrimaryKeyPairRef = map[string]*schema.Schema{ "primary_keypair_ref": { Type: schema.TypeString, Optional: true, ValidateDiagFunc: validation.ToDiagFunc(validation.StringIsNotEmpty), Description: "Primary keypair used to sign artifacts. Default value is empty.", }, }
View Source
var ProjectEnvironmentsSupported = []string{"DEV", "PROD"}
View Source
var ProxySchema = map[string]*schema.Schema{ "proxy": { Type: schema.TypeString, Optional: true, Description: "Proxy key from Artifactory Proxies settings. Can't be set if `disable_proxy = true`.", }, "disable_proxy": { Type: schema.TypeBool, Optional: true, Default: false, Description: "When set to `true`, the proxy is disabled, and not returned in the API response body. If there is a default proxy set for the Artifactory instance, it will be ignored, too. Introduced since Artifactory 7.41.7.", }, }
View Source
var SecondaryKeyPairRef = map[string]*schema.Schema{ "secondary_keypair_ref": { Type: schema.TypeString, Optional: true, ValidateDiagFunc: validation.ToDiagFunc(validation.StringIsNotEmpty), Description: "Secondary keypair used to sign artifacts.", }, }
Functions ¶
func Create ¶
func Create(ctx context.Context, d *schema.ResourceData, m interface{}, unpack unpacker.UnpackFunc) diag.Diagnostics
func DeleteRepo ¶
func DeleteRepo(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics
func GetArtifactCount ¶ added in v12.1.0
func GetDefaultRepoLayoutRef ¶
GetDefaultRepoLayoutRef return the default repo layout by Repository Type & Package Type
func HandleResetWithNonExistentValue ¶
func HandleResetWithNonExistentValue(d *utilsdk.ResourceData, key string) string
HandleResetWithNonExistentValue Special handling for field that requires non-existant value for RT
Artifactory REST API will not accept empty string or null to reset value to not set Instead, using a non-existant value works as a workaround To ensure we don't accidentally set the value to a valid value, we use a UUID v4 string
func MkRepoCreate ¶
func MkRepoCreate(unpack unpacker.UnpackFunc, read schema.ReadContextFunc) schema.CreateContextFunc
func MkRepoRead ¶
func MkRepoRead(pack packer.PackFunc, construct Constructor) schema.ReadContextFunc
func MkRepoUpdate ¶
func MkRepoUpdate(unpack unpacker.UnpackFunc, read schema.ReadContextFunc) schema.UpdateContextFunc
func MkResourceSchema ¶
func ProjectEnvironmentsDiff ¶
func ProjectEnvironmentsDiff(ctx context.Context, diff *schema.ResourceDiff, meta interface{}) error
func RepoLayoutRefSchema ¶
func Update ¶
func Update(ctx context.Context, d *schema.ResourceData, m interface{}, unpack unpacker.UnpackFunc) diag.Diagnostics
func ValidateRepoLayoutRefSchemaOverride ¶
func ValidateRepoLayoutRefSchemaOverride(_ interface{}, _ cty.Path) diag.Diagnostics
func VerifyDisableProxy ¶
func VerifyDisableProxy(_ context.Context, diff *schema.ResourceDiff, _ interface{}) error
Types ¶
type ConanBaseParams ¶
type Constructor ¶
type Constructor func() (interface{}, error)
Constructor Must return a pointer to a struct. When just returning a struct, resty gets confused and thinks it's a map
type ContentSynchronisation ¶
type ContentSynchronisation struct { Enabled bool `json:"enabled"` Statistics ContentSynchronisationStatistics `json:"statistics"` Properties ContentSynchronisationProperties `json:"properties"` Source ContentSynchronisationSource `json:"source"` }
type ContentSynchronisationProperties ¶
type ContentSynchronisationProperties struct {
Enabled bool `hcl:"properties_enabled" json:"enabled"`
}
type ContentSynchronisationSource ¶
type ContentSynchronisationSource struct {
OriginAbsenceDetection bool `hcl:"source_origin_absence_detection" json:"originAbsenceDetection"`
}
type ContentSynchronisationStatistics ¶
type ContentSynchronisationStatistics struct {
Enabled bool `hcl:"statistics_enabled" json:"enabled"`
}
type PrimaryKeyPairRefParam ¶
type PrimaryKeyPairRefParam struct {
PrimaryKeyPairRef string `hcl:"primary_keypair_ref" json:"primaryKeyPairRef"`
}
type ReadFunc ¶
type ReadFunc func(d *schema.ResourceData, m interface{}) error
type RepositoryFileList ¶ added in v12.1.0
type RepositoryFileList struct { URI string `json:"uri"` Files []json.RawMessage `json:"files"` }
type SecondaryKeyPairRefParam ¶
type SecondaryKeyPairRefParam struct {
SecondaryKeyPairRef string `hcl:"secondary_keypair_ref" json:"secondaryKeyPairRef"`
}
type SupportedRepoClasses ¶
Click to show internal directories.
Click to hide internal directories.