| // Copyright (c) HashiCorp, Inc. |
| // SPDX-License-Identifier: BUSL-1.1 |
| |
| syntax = "proto3"; |
| package terraform1.packages; |
| |
| import "terraform1.proto"; |
| |
| // The Packages service provides helper functions for retrieving Terraform |
| // modules and providers. |
| // |
| // Unlike the Dependencies service, the Packages service does not require any |
| // existing configuration or sourcebundle to function. |
| // |
| // This service is designed for use with a specific command-line tool, and is |
| // currently experimental. It can be changed and removed without warning, even |
| // in patch releases. |
| service Packages { |
| rpc ProviderPackageVersions(ProviderPackageVersions.Request) returns (ProviderPackageVersions.Response); |
| rpc FetchProviderPackage(FetchProviderPackage.Request) returns (FetchProviderPackage.Response); |
| |
| rpc ModulePackageVersions(ModulePackageVersions.Request) returns (ModulePackageVersions.Response); |
| rpc ModulePackageSourceAddr(ModulePackageSourceAddr.Request) returns (ModulePackageSourceAddr.Response); |
| rpc FetchModulePackage(FetchModulePackage.Request) returns (FetchModulePackage.Response); |
| } |
| |
| message ProviderPackageVersions { |
| message Request { |
| string source_addr = 1; |
| } |
| message Response { |
| repeated string versions = 1; |
| repeated terraform1.Diagnostic diagnostics = 2; |
| } |
| } |
| |
| message FetchProviderPackage { |
| message Request { |
| string cache_dir = 1; |
| |
| string source_addr = 2; |
| string version = 3; |
| repeated string platforms = 4; |
| repeated string hashes = 5; |
| } |
| message Response { |
| // Each requested platform will return a result in this list. The order |
| // of the returned results will match the order of the requested |
| // platforms. If the binary for a given platform could not be downloaded |
| // there will still be an entry in the results with diagnostics |
| // explaining why. |
| repeated FetchProviderPackage.PlatformResult results = 1; |
| repeated terraform1.Diagnostic diagnostics = 2; |
| } |
| message PlatformResult { |
| terraform1.ProviderPackage provider = 1; |
| repeated terraform1.Diagnostic diagnostics = 2; |
| } |
| } |
| |
| message ModulePackageVersions { |
| message Request { |
| string source_addr = 2; |
| } |
| message Response { |
| repeated string versions = 1; |
| repeated terraform1.Diagnostic diagnostics = 2; |
| } |
| } |
| |
| message ModulePackageSourceAddr { |
| message Request { |
| string source_addr = 1; |
| string version = 2; |
| } |
| message Response { |
| string url = 1; |
| repeated terraform1.Diagnostic diagnostics = 2; |
| } |
| } |
| |
| message FetchModulePackage { |
| message Request { |
| string cache_dir = 1; |
| |
| string url = 2; |
| } |
| message Response { |
| repeated terraform1.Diagnostic diagnostics = 1; |
| } |
| } |