diff --git a/CHANGELOG.md b/CHANGELOG.md index 490782d9..442eee60 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## 12.1.0 (September 26, 2024). Tested on Artifactory 7.90.10 with Terraform 1.9.6 and OpenTofu 1.8.2 + +IMPROVEMENTS: + +* **New Resource:** artifactory_virtual_cocoapods_repository, which was missing from the provider. Issue: [#1079](https://github.com/jfrog/terraform-provider-artifactory/issues/1079) PR: [#1084](https://github.com/jfrog/terraform-provider-artifactory/pull/1084) + ## 12.0.0 (September 16, 2024). Tested on Artifactory 7.90.10 with Terraform 1.9.6 and OpenTofu 1.8.2 BREAKING CHANGES: diff --git a/docs/resources/virtual_cocoapods_repository.md b/docs/resources/virtual_cocoapods_repository.md new file mode 100644 index 00000000..d688afe3 --- /dev/null +++ b/docs/resources/virtual_cocoapods_repository.md @@ -0,0 +1,38 @@ +--- +subcategory: "Virtual Repositories" +--- +# Artifactory Virtual Cocoapods Repository Resource + +Creates a virtual Cocoapods repository. Official documentation can be found [here](https://jfrog.com/help/r/jfrog-artifactory-documentation/set-up-virtual-cocoapods-repositories). + +## Example Usage + +```hcl +resource "artifactory_virtual_cocoapods_repository" "foo-cocoapods" { + key = "foo-cocoapods" + repositories = [] + description = "A test virtual repo" + notes = "Internal description" + includes_pattern = "com/jfrog/**,cloud/jfrog/**" + excludes_pattern = "com/google/**" +} +``` + +## Argument Reference + +Arguments have a one to one mapping with the [JFrog API](https://www.jfrog.com/confluence/display/RTF/Repository+Configuration+JSON). +The following arguments are supported, along with the [common list of arguments for the virtual repositories](virtual.md): + +* `key` - (Required) A mandatory identifier for the repository that must be unique. It cannot begin with a number or + contain spaces or special characters. +* `repositories` - (Optional) The effective list of actual repositories included in this virtual repository. +* `description` - (Optional) +* `notes` - (Optional) + +## Import + +Virtual repositories can be imported using their name, e.g. + +``` +$ terraform import artifactory_virtual_cocoapods_repository.foo-composer foo-cocoapods +``` diff --git a/pkg/artifactory/resource/repository/default_repo_layout_map.go b/pkg/artifactory/resource/repository/default_repo_layout_map.go index bcd2e199..1ac7d3ca 100644 --- a/pkg/artifactory/resource/repository/default_repo_layout_map.go +++ b/pkg/artifactory/resource/repository/default_repo_layout_map.go @@ -60,6 +60,7 @@ var defaultRepoLayoutMap = map[string]SupportedRepoClasses{ SupportedRepoTypes: map[string]bool{ "local": true, "remote": true, + "virtual": true, "federated": true, }, }, diff --git a/pkg/artifactory/resource/repository/virtual/virtual.go b/pkg/artifactory/resource/repository/virtual/virtual.go index c7e5c352..751e017b 100644 --- a/pkg/artifactory/resource/repository/virtual/virtual.go +++ b/pkg/artifactory/resource/repository/virtual/virtual.go @@ -39,6 +39,7 @@ func (bp RepositoryBaseParams) Id() string { } var PackageTypesLikeGeneric = []string{ + repository.CocoapodsPackageType, repository.ComposerPackageType, repository.GemsPackageType, repository.GenericPackageType,