github.com/argoproj/argo-cd/v2@v2.10.9/server/repository/repository.proto (about)

     1  syntax = "proto3";
     2  option go_package = "github.com/argoproj/argo-cd/v2/pkg/apiclient/repository";
     3  
     4  // Repository Service
     5  //
     6  // Repository Service API performs CRUD actions against repository resources
     7  package repository;
     8  
     9  import "google/api/annotations.proto";
    10  import "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1/generated.proto";
    11  import "github.com/argoproj/argo-cd/v2/reposerver/repository/repository.proto";
    12  
    13  // RepoAppsQuery is a query for Repository apps
    14  message RepoAppsQuery {
    15  	string repo = 1;
    16  	string revision = 2;
    17  	string appName = 3;
    18  	string appProject = 4;
    19  }
    20  
    21  
    22  // AppInfo contains application type and app file path
    23  message AppInfo {
    24  	string type = 1;
    25  	string path = 2;
    26  }
    27  
    28  // RepoAppDetailsQuery contains query information for app details request
    29  message RepoAppDetailsQuery {
    30  	github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ApplicationSource source = 1;
    31  	string appName = 2;
    32  	string appProject = 3;
    33  }
    34  
    35  // RepoAppsResponse contains applications of specified repository
    36  message RepoAppsResponse {
    37  	repeated AppInfo items = 1;
    38  }
    39  
    40  // RepoQuery is a query for Repository resources
    41  message RepoQuery {
    42  	// Repo URL for query
    43  	string repo = 1;
    44  	// Whether to force a cache refresh on repo's connection state
    45  	bool forceRefresh = 2;
    46  }
    47  
    48  // RepoAccessQuery is a query for checking access to a repo
    49  message RepoAccessQuery {
    50  	// The URL to the repo
    51  	string repo = 1;
    52  	// Username for accessing repo
    53  	string username = 2;
    54  	// Password for accessing repo
    55  	string password = 3;
    56  	// Private key data for accessing SSH repository
    57  	string sshPrivateKey = 4;
    58  	// Whether to skip certificate or host key validation
    59  	bool   insecure = 5;
    60  	// TLS client cert data for accessing HTTPS repository
    61  	string tlsClientCertData = 6;
    62  	// TLS client cert key for accessing HTTPS repository
    63  	string tlsClientCertKey = 7;
    64  	// The type of the repo
    65  	string type = 9;
    66  	// The name of the repo
    67  	string name = 10;
    68  	// Whether helm-oci support should be enabled for this repo
    69  	bool enableOci = 11;
    70  	// Github App Private Key PEM data
    71  	string githubAppPrivateKey = 12;
    72  	// Github App ID of the app used to access the repo
    73  	int64 githubAppID = 13;
    74  	// Github App Installation ID of the installed GitHub App
    75  	int64 githubAppInstallationID = 14;
    76  	// Github App Enterprise base url if empty will default to https://api.github.com
    77  	string githubAppEnterpriseBaseUrl = 15;
    78  	// HTTP/HTTPS proxy to access the repository
    79  	string proxy = 16;
    80  	// Reference between project and repository that allow you automatically to be added as item inside SourceRepos project entity
    81  	string project = 17;
    82  	// Google Cloud Platform service account key
    83  	string gcpServiceAccountKey = 18;
    84  	// Whether to force HTTP basic auth
    85  	bool forceHttpBasicAuth = 19;
    86  }
    87  
    88  message RepoResponse {}
    89  
    90  // RepoCreateRequest is a request for creating repository config
    91  message RepoCreateRequest {
    92  	// Repository definition
    93  	github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.Repository repo = 1;
    94  	// Whether to create in upsert mode
    95  	bool upsert = 2;
    96  	// Whether to operate on credential set instead of repository
    97  	bool credsOnly = 3;
    98  }
    99  
   100  message RepoUpdateRequest {
   101  	github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.Repository repo = 1;
   102  }
   103  
   104  // RepositoryService
   105  service RepositoryService {
   106  
   107  	// List returns list of repos or repository credentials
   108  	rpc List(RepoQuery) returns (github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.RepositoryList) {
   109  		option (google.api.http).get = "/api/v1/repositories";
   110  		option deprecated = true;
   111  	}
   112  
   113  		// Get returns a repository or its credentials
   114  	rpc Get(RepoQuery) returns (github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.Repository) {
   115  		option (google.api.http).get = "/api/v1/repositories/{repo}";
   116  	}
   117  
   118  	// ListRepositories gets a list of all configured repositories
   119  	rpc ListRepositories(RepoQuery) returns (github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.RepositoryList) {
   120  		option (google.api.http).get = "/api/v1/repositories";
   121  	}
   122  
   123  	rpc ListRefs(RepoQuery) returns (Refs) {
   124  		option (google.api.http).get = "/api/v1/repositories/{repo}/refs";
   125  	}
   126  
   127  	// ListApps returns list of apps in the repo
   128  	rpc ListApps(RepoAppsQuery) returns (RepoAppsResponse) {
   129  		option (google.api.http).get = "/api/v1/repositories/{repo}/apps";
   130  	}
   131  
   132  	// GetAppDetails returns application details by given path
   133  	rpc GetAppDetails(RepoAppDetailsQuery) returns (repository.RepoAppDetailsResponse) {
   134  		option (google.api.http) = {
   135  			post: "/api/v1/repositories/{source.repoURL}/appdetails"
   136  			body: "*"
   137  		};
   138  	}
   139  
   140  	// GetHelmCharts returns list of helm charts in the specified repository
   141  	rpc GetHelmCharts(RepoQuery) returns (repository.HelmChartsResponse) {
   142  		option (google.api.http).get = "/api/v1/repositories/{repo}/helmcharts";
   143  	}
   144  
   145  	// Create creates a repo or a repo credential set
   146  	rpc Create(RepoCreateRequest) returns (github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.Repository) {
   147  		option (google.api.http) = {
   148  			post: "/api/v1/repositories"
   149  			body: "repo"
   150  		};
   151  		option deprecated = true;
   152  	}
   153  
   154  	// CreateRepository creates a new repository configuration
   155  	rpc CreateRepository(RepoCreateRequest) returns (github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.Repository) {
   156  		option (google.api.http) = {
   157  			post: "/api/v1/repositories"
   158  			body: "repo"
   159  		};
   160  	}
   161  
   162  	// Update updates a repo or repo credential set
   163  	rpc Update(RepoUpdateRequest) returns (github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.Repository) {
   164  		option (google.api.http) = {
   165  			put: "/api/v1/repositories/{repo.repo}"
   166  			body: "repo"
   167  		};
   168  		option deprecated = true;
   169  	}
   170  
   171  	// UpdateRepository updates a repository configuration
   172  	rpc UpdateRepository(RepoUpdateRequest) returns (github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.Repository) {
   173  		option (google.api.http) = {
   174  			put: "/api/v1/repositories/{repo.repo}"
   175  			body: "repo"
   176  		};
   177  	}
   178  
   179  	// Delete deletes a repository from the configuration
   180  	rpc Delete(RepoQuery) returns (RepoResponse) {
   181  		option (google.api.http).delete = "/api/v1/repositories/{repo}";
   182  		option deprecated = true;
   183  	}
   184  
   185  	// DeleteRepository deletes a repository from the configuration
   186  	rpc DeleteRepository(RepoQuery) returns (RepoResponse) {
   187  		option (google.api.http).delete = "/api/v1/repositories/{repo}";
   188  	}
   189  
   190  	// ValidateAccess validates access to a repository with given parameters
   191  	rpc ValidateAccess(RepoAccessQuery) returns (RepoResponse) {
   192  		option (google.api.http) = {
   193  			post: "/api/v1/repositories/{repo}/validate"
   194  			body: "repo"
   195  		};
   196  	}
   197  }