> For the complete documentation index, see [llms.txt](https://developer.harness.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.harness.io/api-reference/iacm/provider-registry.md).

# Provider Registry

The provider-registry service implements HashiCorp's Provider Registry Protocol for private Terraform providers

## List providers

> Lists all providers for an account

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"provider-registry","description":"The provider-registry service implements HashiCorp's Provider Registry Protocol for private Terraform providers"}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/providers":{"get":{"tags":["provider-registry"],"summary":"List providers","description":"Lists all providers for an account","operationId":"provider-registry#list-providers","parameters":[{"name":"limit","in":"query","description":"Limit is the number of records to return for a page.","allowEmptyValue":true,"schema":{"type":"integer","description":"Limit is the number of records to return for a page.","default":30,"format":"int64","minimum":1,"maximum":1000}},{"name":"page","in":"query","description":"Page is the page number to return relative to the page 'limit'.","allowEmptyValue":true,"schema":{"type":"integer","description":"Page is the page number to return relative to the page 'limit'.","default":1,"format":"int64","minimum":1}},{"name":"searchTerm","in":"query","description":"Filter results by partial name match","allowEmptyValue":true,"schema":{"type":"string","description":"Filter results by partial name match","default":""}},{"name":"sort","in":"query","description":"Sort order for results","allowEmptyValue":true,"schema":{"type":"string","description":"Sort order for results","default":"name,ASC","enum":["name,ASC","name,DESC","updated,ASC","updated,DESC"]}},{"name":"Harness-Account","in":"header","description":"Account name","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account name"}}],"responses":{"200":{"description":"OK response.","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderCollection"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}}}}}},"components":{"schemas":{"ProviderCollection":{"type":"array","items":{"$ref":"#/components/schemas/Provider"},"description":"ProviderCollection is the result type for an array of Provider (default view)"},"Provider":{"type":"object","properties":{"account":{"type":"string","description":"Account that owns the provider"},"created":{"type":"integer","description":"Created is the unix timestamp at which the resource was originally created in milliseconds.","format":"int64"},"description":{"type":"string","description":"Description of the provider"},"domain_prefix":{"type":"string","description":"Domain prefix of the provider"},"id":{"type":"string","description":"Provider ID"},"namespace":{"type":"string","description":"Provider namespace"},"type":{"type":"string","description":"Provider type"},"updated":{"type":"integer","description":"Modified is the unix timestamp at which the resource was last modified in milliseconds.","format":"int64"},"versions":{"type":"array","items":{"$ref":"#/components/schemas/ProviderVersionMetadata"},"description":"Provider versions"}},"description":"Provider contains information about a Terraform provider (default view)","required":["id","account","type","description","versions","created","updated"]},"ProviderVersionMetadata":{"type":"object","properties":{"files":{"type":"array","items":{"type":"string"},"description":"Uploaded provider files"},"synced":{"type":"boolean","description":"Provider version synced"},"tier":{"type":"string","description":"Lifecycle tier of the version (supported, warning, deprecated)"},"version":{"type":"string","description":"Provider version"}},"description":"ProviderVersionMetadata contains metadata about a specific provider version (default view)","required":["version","synced","files"]},"RegistryError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Get provider

> Gets a provider by ID

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"provider-registry","description":"The provider-registry service implements HashiCorp's Provider Registry Protocol for private Terraform providers"}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/providers/{id}":{"get":{"tags":["provider-registry"],"summary":"Get provider","description":"Gets a provider by ID","operationId":"provider-registry#get-provider","parameters":[{"name":"id","in":"path","description":"Provider ID","required":true,"schema":{"type":"string","description":"Provider ID"}},{"name":"Harness-Account","in":"header","description":"Account name","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account name"}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetProviderResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}}}}}},"components":{"schemas":{"GetProviderResponse":{"type":"object","properties":{"account":{"type":"string","description":"Account that owns the provider"},"created":{"type":"integer","description":"Created is the unix timestamp at which the resource was originally created in milliseconds.","format":"int64"},"description":{"type":"string","description":"Description of the provider"},"domain_prefix":{"type":"string","description":"Domain prefix of the provider"},"id":{"type":"string","description":"Provider ID"},"namespace":{"type":"string","description":"Provider namespace"},"type":{"type":"string","description":"Provider type"},"updated":{"type":"integer","description":"Modified is the unix timestamp at which the resource was last modified in milliseconds.","format":"int64"},"versions":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmProviderRegistryProviderVersionMetadata"},"description":"Provider versions"}},"description":"Provider","required":["id","account","type","description","versions","created","updated"]},"HarnessIacmProviderRegistryProviderVersionMetadata":{"type":"object","properties":{"files":{"type":"array","items":{"type":"string"},"description":"Uploaded provider files"},"synced":{"type":"boolean","description":"Provider version synced"},"tier":{"type":"string","description":"Lifecycle tier of the version (supported, warning, deprecated)"},"version":{"type":"string","description":"Provider version"}},"description":"ProviderVersionMetadata contains metadata about a specific provider version","required":["version","synced","files"]},"RegistryError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Delete provider

> Deletes a provider

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"provider-registry","description":"The provider-registry service implements HashiCorp's Provider Registry Protocol for private Terraform providers"}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/providers/{id}":{"delete":{"tags":["provider-registry"],"summary":"Delete provider","description":"Deletes a provider","operationId":"provider-registry#delete-provider","parameters":[{"name":"id","in":"path","description":"Provider ID","required":true,"schema":{"type":"string","description":"Provider ID"}},{"name":"Harness-Account","in":"header","description":"Account name","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account name"}}],"responses":{"200":{"description":"OK response."},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}}}}}},"components":{"schemas":{"RegistryError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Get provider lifecycle rule

> Get the lifecycle rule for a provider

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"provider-registry","description":"The provider-registry service implements HashiCorp's Provider Registry Protocol for private Terraform providers"}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/providers/{id}/lifecycle":{"get":{"tags":["provider-registry"],"summary":"Get provider lifecycle rule","description":"Get the lifecycle rule for a provider","operationId":"provider-registry#get-provider-lifecycle","parameters":[{"name":"id","in":"path","description":"Provider ID","required":true,"schema":{"type":"string","description":"Provider ID"}},{"name":"Harness-Account","in":"header","description":"Account name","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account name"}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetProviderLifecycleResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}}}}}},"components":{"schemas":{"GetProviderLifecycleResponse":{"type":"object","properties":{"deprecated_action":{"type":"string","description":"Enforcement action for deprecated-tier versions","default":"fail","enum":["no_action","warn","fail"]},"overrides":{"type":"array","items":{"$ref":"#/components/schemas/ProviderLifecycleOverride"},"description":"Manual per-version tier overrides","maxItems":1000},"supported_action":{"type":"string","description":"Enforcement action for supported-tier versions","default":"no_action","enum":["no_action","warn","fail"]},"supported_count":{"type":"integer","description":"Number of most-recent non-pre-release versions classified as supported","format":"int64","minimum":1},"warning_action":{"type":"string","description":"Enforcement action for warning-tier versions","default":"warn","enum":["no_action","warn","fail"]},"warning_count":{"type":"integer","description":"Number of versions immediately after the supported window classified as warning","format":"int64","minimum":0}},"required":["supported_count","warning_count","supported_action","warning_action","deprecated_action"]},"ProviderLifecycleOverride":{"type":"object","properties":{"reason":{"type":"string","description":"Optional reason for this override","maxLength":1000},"tier":{"type":"string","description":"Lifecycle tier to assign to this version","enum":["supported","warning","deprecated"]},"version":{"type":"string","description":"Version string to override","minLength":1}},"description":"Manual lifecycle tier override for a specific provider version","required":["version","tier"]},"RegistryError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Upsert provider lifecycle rule

> Create or replace the lifecycle rule for a provider, atomically replacing all overrides

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"provider-registry","description":"The provider-registry service implements HashiCorp's Provider Registry Protocol for private Terraform providers"}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/providers/{id}/lifecycle":{"put":{"tags":["provider-registry"],"summary":"Upsert provider lifecycle rule","description":"Create or replace the lifecycle rule for a provider, atomically replacing all overrides","operationId":"provider-registry#put-provider-lifecycle","parameters":[{"name":"id","in":"path","description":"Provider ID","required":true,"schema":{"type":"string","description":"Provider ID"}},{"name":"Harness-Account","in":"header","description":"Account name","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account name"}}],"requestBody":{"description":"Lifecycle rule with overrides","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderLifecycleRule"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PutProviderLifecycleResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}}}}}},"components":{"schemas":{"ProviderLifecycleRule":{"type":"object","properties":{"deprecated_action":{"type":"string","description":"Enforcement action for deprecated-tier versions","default":"fail","enum":["no_action","warn","fail"]},"overrides":{"type":"array","items":{"$ref":"#/components/schemas/ProviderLifecycleOverride"},"description":"Manual per-version tier overrides","maxItems":1000},"supported_action":{"type":"string","description":"Enforcement action for supported-tier versions","default":"no_action","enum":["no_action","warn","fail"]},"supported_count":{"type":"integer","description":"Number of most-recent non-pre-release versions classified as supported","format":"int64","minimum":1},"warning_action":{"type":"string","description":"Enforcement action for warning-tier versions","default":"warn","enum":["no_action","warn","fail"]},"warning_count":{"type":"integer","description":"Number of versions immediately after the supported window classified as warning","format":"int64","minimum":0}},"description":"Lifecycle rule configuration for a provider registry provider","required":["supported_count","warning_count","supported_action","warning_action","deprecated_action"]},"ProviderLifecycleOverride":{"type":"object","properties":{"reason":{"type":"string","description":"Optional reason for this override","maxLength":1000},"tier":{"type":"string","description":"Lifecycle tier to assign to this version","enum":["supported","warning","deprecated"]},"version":{"type":"string","description":"Version string to override","minLength":1}},"description":"Manual lifecycle tier override for a specific provider version","required":["version","tier"]},"PutProviderLifecycleResponse":{"type":"object","properties":{"deprecated_action":{"type":"string","description":"Enforcement action for deprecated-tier versions","default":"fail","enum":["no_action","warn","fail"]},"overrides":{"type":"array","items":{"$ref":"#/components/schemas/ProviderLifecycleOverride"},"description":"Manual per-version tier overrides","maxItems":1000},"supported_action":{"type":"string","description":"Enforcement action for supported-tier versions","default":"no_action","enum":["no_action","warn","fail"]},"supported_count":{"type":"integer","description":"Number of most-recent non-pre-release versions classified as supported","format":"int64","minimum":1},"warning_action":{"type":"string","description":"Enforcement action for warning-tier versions","default":"warn","enum":["no_action","warn","fail"]},"warning_count":{"type":"integer","description":"Number of versions immediately after the supported window classified as warning","format":"int64","minimum":0}},"required":["supported_count","warning_count","supported_action","warning_action","deprecated_action"]},"RegistryError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Delete provider lifecycle rule

> Delete the lifecycle rule and all overrides for a provider; all versions revert to supported

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"provider-registry","description":"The provider-registry service implements HashiCorp's Provider Registry Protocol for private Terraform providers"}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/providers/{id}/lifecycle":{"delete":{"tags":["provider-registry"],"summary":"Delete provider lifecycle rule","description":"Delete the lifecycle rule and all overrides for a provider; all versions revert to supported","operationId":"provider-registry#delete-provider-lifecycle","parameters":[{"name":"id","in":"path","description":"Provider ID","required":true,"schema":{"type":"string","description":"Provider ID"}},{"name":"Harness-Account","in":"header","description":"Account name","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account name"}}],"responses":{"204":{"description":"No Content response."},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}}}}}},"components":{"schemas":{"RegistryError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Get provider version lifecycle status

> Compute the lifecycle tier and enforcement action for a specific provider version

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"provider-registry","description":"The provider-registry service implements HashiCorp's Provider Registry Protocol for private Terraform providers"}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/providers/{id}/lifecycle/versions/{version}":{"get":{"tags":["provider-registry"],"summary":"Get provider version lifecycle status","description":"Compute the lifecycle tier and enforcement action for a specific provider version","operationId":"provider-registry#get-provider-lifecycle-version-status","parameters":[{"name":"id","in":"path","description":"Provider ID","required":true,"schema":{"type":"string","description":"Provider ID"}},{"name":"version","in":"path","description":"Version to look up","required":true,"schema":{"type":"string","description":"Version to look up"}},{"name":"Harness-Account","in":"header","description":"Account name","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account name"}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetProviderLifecycleVersionStatusResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}}}}}},"components":{"schemas":{"GetProviderLifecycleVersionStatusResponse":{"type":"object","properties":{"action":{"type":"string","description":"Enforcement action derived from the tier's rule action","enum":["no_action","warn","fail"]},"minimum_supported_version":{"type":"string","description":"The lowest-numbered version currently in the supported tier"},"tier":{"type":"string","description":"Lifecycle tier: supported, warning, or deprecated","enum":["supported","warning","deprecated"]}},"required":["tier","action"]},"RegistryError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Create provider version

> Create a provider version

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"provider-registry","description":"The provider-registry service implements HashiCorp's Provider Registry Protocol for private Terraform providers"}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/providers/{id}/version":{"post":{"tags":["provider-registry"],"summary":"Create provider version","description":"Create a provider version","operationId":"provider-registry#create-provider-version","parameters":[{"name":"id","in":"path","description":"Provider ID","required":true,"schema":{"type":"string","description":"Provider ID"}},{"name":"Harness-Account","in":"header","description":"Account ID","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account ID"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProviderVersionRequestBody"}}}},"responses":{"201":{"description":"Created response."},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}}}}}},"components":{"schemas":{"CreateProviderVersionRequestBody":{"type":"object","properties":{"gpg_key_id":{"type":"string","description":"GPG key ID"},"protocol":{"type":"array","items":{"type":"string"},"description":"Supported Terraform protocol versions"},"version":{"type":"string","description":"Provider version"}},"required":["version","protocol","gpg_key_id"]},"RegistryError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Get provider version

> Get a provider version

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"provider-registry","description":"The provider-registry service implements HashiCorp's Provider Registry Protocol for private Terraform providers"}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/providers/{id}/version/{version}":{"get":{"tags":["provider-registry"],"summary":"Get provider version","description":"Get a provider version","operationId":"provider-registry#get-provider-version","parameters":[{"name":"id","in":"path","description":"Provider ID","required":true,"schema":{"type":"string","description":"Provider ID"}},{"name":"version","in":"path","description":"Provider version","required":true,"schema":{"type":"string","description":"Provider version"}},{"name":"Harness-Account","in":"header","description":"Account ID","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account ID"}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetProviderVersionResponseBody"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}}}}}},"components":{"schemas":{"GetProviderVersionResponseBody":{"type":"object","properties":{"gpg_key_id":{"type":"string","description":"GPG key ID"},"id":{"type":"string","description":"Provider version ID"},"protocols":{"type":"array","items":{"type":"string"},"description":"Supported Terraform protocol versions"}},"required":["id","gpg_key_id","protocols"]},"RegistryError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Update provider version

> Update a provider version

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"provider-registry","description":"The provider-registry service implements HashiCorp's Provider Registry Protocol for private Terraform providers"}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/providers/{id}/version/{version}":{"put":{"tags":["provider-registry"],"summary":"Update provider version","description":"Update a provider version","operationId":"provider-registry#update-provider-version","parameters":[{"name":"id","in":"path","description":"Provider ID","required":true,"schema":{"type":"string","description":"Provider ID"}},{"name":"version","in":"path","description":"Provider version","required":true,"schema":{"type":"string","description":"Provider version"}},{"name":"Harness-Account","in":"header","description":"Account ID","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account ID"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProviderVersionRequestBody"}}}},"responses":{"200":{"description":"OK response."},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}}}}}},"components":{"schemas":{"UpdateProviderVersionRequestBody":{"type":"object","properties":{"gpg_key_id":{"type":"string","description":"GPG key ID"},"protocol":{"type":"array","items":{"type":"string"},"description":"Supported Terraform protocol versions"}},"required":["protocol","gpg_key_id"]},"RegistryError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Delete provider version

> Delete a provider version

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"provider-registry","description":"The provider-registry service implements HashiCorp's Provider Registry Protocol for private Terraform providers"}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/providers/{id}/version/{version}":{"delete":{"tags":["provider-registry"],"summary":"Delete provider version","description":"Delete a provider version","operationId":"provider-registry#delete-provider-version","parameters":[{"name":"id","in":"path","description":"Provider ID","required":true,"schema":{"type":"string","description":"Provider ID"}},{"name":"version","in":"path","description":"Provider version","required":true,"schema":{"type":"string","description":"Provider version"}},{"name":"Harness-Account","in":"header","description":"Account ID","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account ID"}}],"responses":{"200":{"description":"OK response."},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}}}}}},"components":{"schemas":{"RegistryError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Delete file from a non synced provider version

> Delete a file from a non synced provider version

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"provider-registry","description":"The provider-registry service implements HashiCorp's Provider Registry Protocol for private Terraform providers"}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/providers/{id}/version/{version}/file/{filename}":{"delete":{"tags":["provider-registry"],"summary":"Delete file from a non synced provider version","description":"Delete a file from a non synced provider version","operationId":"provider-registry#delete-file","parameters":[{"name":"id","in":"path","description":"Provider ID","required":true,"schema":{"type":"string","description":"Provider ID"}},{"name":"version","in":"path","description":"Provider version","required":true,"schema":{"type":"string","description":"Provider version"}},{"name":"filename","in":"path","description":"File name","required":true,"schema":{"type":"string","description":"File name"}},{"name":"Harness-Account","in":"header","description":"Account ID","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account ID"}}],"responses":{"204":{"description":"No Content response."},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}}}}}},"components":{"schemas":{"RegistryError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Upload files

> Upload files to the provider registry

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"provider-registry","description":"The provider-registry service implements HashiCorp's Provider Registry Protocol for private Terraform providers"}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/providers/{id}/version/{version}/files":{"post":{"tags":["provider-registry"],"summary":"Upload files","description":"Upload files to the provider registry","operationId":"provider-registry#post-files","parameters":[{"name":"id","in":"path","description":"Provider ID","required":true,"schema":{"type":"string","description":"Provider ID"}},{"name":"version","in":"path","description":"Provider version","required":true,"schema":{"type":"string","description":"Provider version"}},{"name":"Harness-Account","in":"header","description":"Account ID","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account ID"}},{"name":"Content-Disposition","in":"header","description":"Content-Disposition header","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Content-Disposition header"}}],"responses":{"201":{"description":"Created response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostFilesResponseBody"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}}}}}},"components":{"schemas":{"PostFilesResponseBody":{"type":"object","properties":{"synced":{"type":"boolean","description":"Indicates if the provider version is synced"}}},"RegistryError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Publish a provider version

> Publish a provider version

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"provider-registry","description":"The provider-registry service implements HashiCorp's Provider Registry Protocol for private Terraform providers"}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/providers/{id}/version/{version}/publish":{"post":{"tags":["provider-registry"],"summary":"Publish a provider version","description":"Publish a provider version","operationId":"provider-registry#publish-provider-version","parameters":[{"name":"id","in":"path","description":"Provider ID","required":true,"schema":{"type":"string","description":"Provider ID"}},{"name":"version","in":"path","description":"Provider version","required":true,"schema":{"type":"string","description":"Provider version"}},{"name":"Harness-Account","in":"header","description":"Account ID","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account ID"}}],"responses":{"200":{"description":"OK response."},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}}}}}},"components":{"schemas":{"RegistryError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Create provider

> Create a provider

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"provider-registry","description":"The provider-registry service implements HashiCorp's Provider Registry Protocol for private Terraform providers"}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/providers/{type}":{"post":{"tags":["provider-registry"],"summary":"Create provider","description":"Create a provider","operationId":"provider-registry#create-provider","parameters":[{"name":"type","in":"path","description":"Provider type","required":true,"schema":{"type":"string","description":"Provider type"}},{"name":"Harness-Account","in":"header","description":"Account ID","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account ID"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProviderRequestBody"}}}},"responses":{"201":{"description":"Created response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProviderResponseBody"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}}}}}},"components":{"schemas":{"CreateProviderRequestBody":{"type":"object","properties":{"description":{"type":"string","description":"Provider description"}}},"CreateProviderResponseBody":{"type":"object","properties":{"id":{"type":"string","description":"Provider ID"}},"required":["id"]},"RegistryError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Get the provider domain

> Get the provider domain

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"provider-registry","description":"The provider-registry service implements HashiCorp's Provider Registry Protocol for private Terraform providers"}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/providers/get-provider-domain":{"get":{"tags":["provider-registry"],"summary":"Get the provider domain","description":"Get the provider domain","operationId":"provider-registry#get-provider-domain","parameters":[{"name":"Harness-Account","in":"header","description":"Account ID","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account ID"}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetProviderDomainResponseBody"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}}}}}},"components":{"schemas":{"GetProviderDomainResponseBody":{"type":"object","properties":{"domain":{"type":"string","description":"Domain"}},"required":["domain"]},"RegistryError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## List signing keys

> List all GPG signing keys for an account

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"provider-registry","description":"The provider-registry service implements HashiCorp's Provider Registry Protocol for private Terraform providers"}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/providers/keys":{"get":{"tags":["provider-registry"],"summary":"List signing keys","description":"List all GPG signing keys for an account","operationId":"provider-registry#list-signing-keys","parameters":[{"name":"limit","in":"query","description":"Limit is the number of records to return for a page.","allowEmptyValue":true,"schema":{"type":"integer","description":"Limit is the number of records to return for a page.","default":30,"format":"int64","minimum":1,"maximum":1000}},{"name":"page","in":"query","description":"Page is the page number to return relative to the page 'limit'.","allowEmptyValue":true,"schema":{"type":"integer","description":"Page is the page number to return relative to the page 'limit'.","default":1,"format":"int64","minimum":1}},{"name":"searchTerm","in":"query","description":"Filter results by partial name match","allowEmptyValue":true,"schema":{"type":"string","description":"Filter results by partial name match","default":""}},{"name":"sort","in":"query","description":"Sort order for results","allowEmptyValue":true,"schema":{"type":"string","description":"Sort order for results","default":"name,ASC","enum":["name,ASC","name,DESC","updated,ASC","updated,DESC"]}},{"name":"Harness-Account","in":"header","description":"Account ID","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account ID"}}],"responses":{"200":{"description":"OK response.","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SigningKeyCollection"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}}}}}},"components":{"schemas":{"SigningKeyCollection":{"type":"array","items":{"$ref":"#/components/schemas/SigningKey"},"description":"SigningKeyCollection is the result type for an array of SigningKey (default view)"},"SigningKey":{"type":"object","properties":{"ascii_armor":{"type":"string","description":"ASCII-armored GPG public key"},"created_at":{"type":"string","description":"Creation timestamp"},"id":{"type":"string","description":"ID of the signing key"},"key_id":{"type":"string","description":"GPG key ID"},"key_name":{"type":"string","description":"GPG key name"},"updated_at":{"type":"string","description":"Last updated timestamp"},"user":{"type":"string","description":"User who uploaded the key"}},"description":"SigningKey contains a GPG key for provider verification (default view)","required":["id","key_id","ascii_armor","key_name","created_at","updated_at","user"]},"RegistryError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Upload signing key

> Upload a GPG signing key for an account

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"provider-registry","description":"The provider-registry service implements HashiCorp's Provider Registry Protocol for private Terraform providers"}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/providers/keys":{"post":{"tags":["provider-registry"],"summary":"Upload signing key","description":"Upload a GPG signing key for an account","operationId":"provider-registry#upload-signing-key","parameters":[{"name":"Harness-Account","in":"header","description":"Account ID","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account ID"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadSigningKeyRequest"}}}},"responses":{"201":{"description":"Created response."},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}}}}}},"components":{"schemas":{"UploadSigningKeyRequest":{"type":"object","properties":{"ascii_armor":{"type":"string","description":"ASCII-armored GPG public key"},"key_id":{"type":"string","description":"GPG key ID"},"key_name":{"type":"string","description":"GPG key name"},"user":{"type":"string","description":"User who uploaded the key"}},"required":["key_id","key_name","ascii_armor","user"]},"RegistryError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Update a signing key for a provider

> Update a signing key for a provider

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"provider-registry","description":"The provider-registry service implements HashiCorp's Provider Registry Protocol for private Terraform providers"}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/providers/keys/{id}":{"put":{"tags":["provider-registry"],"summary":"Update a signing key for a provider","description":"Update a signing key for a provider","operationId":"provider-registry#update-signing-key","parameters":[{"name":"id","in":"path","description":"id of the key in the db","required":true,"schema":{"type":"string","description":"id of the key in the db"}},{"name":"Harness-Account","in":"header","description":"Account ID","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account ID"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadSigningKeyRequest"}}}},"responses":{"200":{"description":"OK response."},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}}}}}},"components":{"schemas":{"UploadSigningKeyRequest":{"type":"object","properties":{"ascii_armor":{"type":"string","description":"ASCII-armored GPG public key"},"key_id":{"type":"string","description":"GPG key ID"},"key_name":{"type":"string","description":"GPG key name"},"user":{"type":"string","description":"User who uploaded the key"}},"required":["key_id","key_name","ascii_armor","user"]},"RegistryError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Delete a signing key for a provider

> Delete a signing key for a provider

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"provider-registry","description":"The provider-registry service implements HashiCorp's Provider Registry Protocol for private Terraform providers"}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/providers/keys/{id}":{"delete":{"tags":["provider-registry"],"summary":"Delete a signing key for a provider","description":"Delete a signing key for a provider","operationId":"provider-registry#delete-signing-key","parameters":[{"name":"id","in":"path","description":"id of the key in the db","required":true,"schema":{"type":"string","description":"id of the key in the db"}},{"name":"Harness-Account","in":"header","description":"Account ID","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account ID"}}],"responses":{"204":{"description":"No Content response."},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}}}}}},"components":{"schemas":{"RegistryError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Batch check provider lifecycle status

> Batch-check lifecycle status for a list of providers resolved during terraform init; only violations are returned

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"provider-registry","description":"The provider-registry service implements HashiCorp's Provider Registry Protocol for private Terraform providers"}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/providers/lifecycle/batch-check":{"post":{"tags":["provider-registry"],"summary":"Batch check provider lifecycle status","description":"Batch-check lifecycle status for a list of providers resolved during terraform init; only violations are returned","operationId":"provider-registry#batch-check-provider-lifecycle","parameters":[{"name":"Harness-Account","in":"header","description":"Harness account ID","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Harness account ID"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchCheckProviderLifecycleRequest"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchCheckProviderLifecycleResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}}}}}},"components":{"schemas":{"BatchCheckProviderLifecycleRequest":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ProviderLifecycleBatchCheckItem"},"description":"List of providers to check","minItems":1,"maxItems":1000}},"required":["items"]},"ProviderLifecycleBatchCheckItem":{"type":"object","properties":{"namespace":{"type":"string","description":"Namespace identifying the provider scope","minLength":1},"type":{"type":"string","description":"Provider type","minLength":1},"version":{"type":"string","description":"Provider version to check","minLength":1}},"description":"A single provider item to check lifecycle status for","required":["namespace","type","version"]},"BatchCheckProviderLifecycleResponse":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/ProviderLifecycleBatchCheckResult"},"description":"Lifecycle violations found; items with no rule or supported tier are omitted"}},"required":["results"]},"ProviderLifecycleBatchCheckResult":{"type":"object","properties":{"action":{"type":"string","description":"Enforcement action for the tier","enum":["no_action","warn","fail"]},"minimum_supported_version":{"type":"string","description":"The lowest-numbered version currently in the supported tier"},"namespace":{"type":"string","description":"Namespace identifying the provider scope"},"tier":{"type":"string","description":"Lifecycle tier: warning or deprecated","enum":["warning","deprecated"]},"type":{"type":"string","description":"Provider type"},"version":{"type":"string","description":"Provider version"}},"description":"Lifecycle check result for a single provider item","required":["namespace","type","version","tier","action"]},"RegistryError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Get provider download information

> Returns download information for a specific provider version and platform

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"provider-registry","description":"The provider-registry service implements HashiCorp's Provider Registry Protocol for private Terraform providers"}],"servers":[{"url":"http://localhost:80"}],"paths":{"/provider/account/{account}/{type}/{version}/download/{os}/{arch}":{"get":{"tags":["provider-registry"],"summary":"Get provider download information","description":"Returns download information for a specific provider version and platform","operationId":"provider-registry#get-provider-download","parameters":[{"name":"account","in":"path","description":"Account that owns the provider","required":true,"schema":{"type":"string","description":"Account that owns the provider"}},{"name":"type","in":"path","description":"Provider type","required":true,"schema":{"type":"string","description":"Provider type"}},{"name":"version","in":"path","description":"Provider version","required":true,"schema":{"type":"string","description":"Provider version"}},{"name":"os","in":"path","description":"Operating system","required":true,"schema":{"type":"string","description":"Operating system"}},{"name":"arch","in":"path","description":"Architecture","required":true,"schema":{"type":"string","description":"Architecture"}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetProviderDownloadResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}}}}}},"components":{"schemas":{"GetProviderDownloadResponse":{"type":"object","properties":{"arch":{"type":"string","description":"Architecture"},"download_url":{"type":"string","description":"URL to download the provider binary"},"filename":{"type":"string","description":"Provider binary filename"},"os":{"type":"string","description":"Operating system"},"protocols":{"type":"array","items":{"type":"string"},"description":"Supported Terraform protocol versions"},"shasum":{"type":"string","description":"SHA256 checksum of the provider binary"},"shasums_signature_url":{"type":"string","description":"URL to download the checksums signature"},"shasums_url":{"type":"string","description":"URL to download the checksums file"},"signing_keys":{"$ref":"#/components/schemas/HarnessIacmProviderRegistrySigningKeys"}},"description":"Provider download information","required":["protocols","os","arch","filename","download_url","shasums_url","shasums_signature_url","shasum","signing_keys"]},"HarnessIacmProviderRegistrySigningKeys":{"type":"object","properties":{"gpg_public_keys":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmProviderRegistryGpgPublicKey"},"description":"GPG public keys"}},"description":"SigningKeys contains GPG public keys used for provider verification","required":["gpg_public_keys"]},"HarnessIacmProviderRegistryGpgPublicKey":{"type":"object","properties":{"ascii_armor":{"type":"string","description":"ASCII-armored GPG public key"},"key_id":{"type":"string","description":"GPG key ID"}},"description":"GPGPublicKey contains a GPG public key for provider verification","required":["key_id","ascii_armor"]},"RegistryError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Get provider file

> Download a provider file (binary, checksums, or signature)

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"provider-registry","description":"The provider-registry service implements HashiCorp's Provider Registry Protocol for private Terraform providers"}],"servers":[{"url":"http://localhost:80"}],"paths":{"/provider/account/{account}/{type}/{version}/download/{os}/{arch}/{filetype}":{"get":{"tags":["provider-registry"],"summary":"Get provider file","description":"Download a provider file (binary, checksums, or signature)","operationId":"provider-registry#get-file","parameters":[{"name":"token","in":"query","description":"Token to access the file","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Token to access the file"}},{"name":"account","in":"path","description":"Account identifier","required":true,"schema":{"type":"string","description":"Account identifier"}},{"name":"type","in":"path","description":"Provider type","required":true,"schema":{"type":"string","description":"Provider type"}},{"name":"version","in":"path","description":"Provider version","required":true,"schema":{"type":"string","description":"Provider version"}},{"name":"os","in":"path","description":"Operating system","required":true,"schema":{"type":"string","description":"Operating system"}},{"name":"arch","in":"path","description":"Architecture","required":true,"schema":{"type":"string","description":"Architecture"}},{"name":"filetype","in":"path","description":"Type of file to download","required":true,"schema":{"type":"string","description":"Type of file to download","enum":["binary","checksums","signature"]}}],"responses":{"200":{"description":"OK response.","headers":{"Content-Disposition":{"description":"Content-Disposition header","schema":{"type":"string","description":"Content-Disposition header"}},"Content-Type":{"description":"Content-Type header","schema":{"type":"string","description":"Content-Type header"}}},"content":{"application/json":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}}}}}},"components":{"schemas":{"RegistryError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## List provider versions

> Lists available versions for a provider

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"provider-registry","description":"The provider-registry service implements HashiCorp's Provider Registry Protocol for private Terraform providers"}],"servers":[{"url":"http://localhost:80"}],"paths":{"/provider/account/{account}/{type}/versions":{"get":{"tags":["provider-registry"],"summary":"List provider versions","description":"Lists available versions for a provider","operationId":"provider-registry#list-provider-versions","parameters":[{"name":"account","in":"path","description":"Account that owns the provider","required":true,"schema":{"type":"string","description":"Account that owns the provider"}},{"name":"type","in":"path","description":"Provider type","required":true,"schema":{"type":"string","description":"Provider type"}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListProviderVersionsResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/RegistryError"}}}}}}}},"components":{"schemas":{"ListProviderVersionsResponse":{"type":"object","properties":{"versions":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmProviderRegistryProviderVersion"},"description":"List of available provider versions"}},"description":"List of provider versions","required":["versions"]},"HarnessIacmProviderRegistryProviderVersion":{"type":"object","properties":{"platforms":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmProviderRegistryPlatform"},"description":"Supported platforms"},"protocols":{"type":"array","items":{"type":"string"},"description":"Supported Terraform protocol versions"},"version":{"type":"string","description":"Provider version"}},"description":"ProviderVersion contains information about a specific provider version","required":["version","protocols","platforms"]},"HarnessIacmProviderRegistryPlatform":{"type":"object","properties":{"arch":{"type":"string","description":"Architecture"},"os":{"type":"string","description":"Operating system"}},"description":"Platform defines an operating system and architecture combination","required":["os","arch"]},"RegistryError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```
