argo-cd/server/application/application.proto

384 lines
14 KiB
Protocol Buffer
Raw Normal View History

syntax = "proto2";
option go_package = "github.com/argoproj/argo-cd/v2/pkg/apiclient/application";
// Application Service
//
// Application Service API performs CRUD actions against application resources
package application;
import "gogoproto/gogo.proto";
import "google/api/annotations.proto";
import "k8s.io/api/core/v1/generated.proto";
2018-04-06 20:08:29 +00:00
import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto";
import "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1/generated.proto";
import "github.com/argoproj/argo-cd/v2/reposerver/repository/repository.proto";
// ApplicationQuery is a query for application resources
message ApplicationQuery {
// the application's name
optional string name = 1;
// forces application reconciliation if set to true
optional string refresh = 2;
// the project names to restrict returned list applications
repeated string project = 3 [(gogoproto.customname) = "Projects"];
// when specified with a watch call, shows changes that occur after that particular version of a resource.
optional string resourceVersion = 4 [(gogoproto.nullable) = false];
// the selector to to restrict returned list to applications only with matched labels
optional string selector = 5 [(gogoproto.nullable) = false];
// the repoURL to restrict returned list applications
optional string repo = 6 [(gogoproto.nullable) = false];
}
message NodeQuery {
// the application's name
optional string name = 1;
}
message RevisionMetadataQuery{
// the application's name
required string name = 1;
// the revision of the app
required string revision = 2;
}
// ApplicationEventsQuery is a query for application resource events
message ApplicationResourceEventsQuery {
required string name = 1;
required string resourceNamespace = 2 [(gogoproto.nullable) = false];
required string resourceName = 3 [(gogoproto.nullable) = false];
required string resourceUID = 4 [(gogoproto.nullable) = false];
}
// ManifestQuery is a query for manifest resources
message ApplicationManifestQuery {
required string name = 1;
optional string revision = 2 [(gogoproto.nullable) = false];
}
message ApplicationResponse {}
message ApplicationCreateRequest {
required github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.Application application = 1 [(gogoproto.nullable) = false];
optional bool upsert = 2;
optional bool validate = 3;
}
message ApplicationUpdateRequest {
required github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.Application application = 1;
optional bool validate = 2;
}
message ApplicationDeleteRequest {
required string name = 1;
optional bool cascade = 2;
feat: support background propagation policy while deleting applications (#5216) (#5524) * feat: support background propagation policy Currently, Argo CD only supports foreground propagation policy ie. delete all the resources in the foreground and then delete the application in the end. This PR introduces a new flag `propagation-policy` to decide the type of policy when cascading is enabled. It also adds an annotation `propagation-policy.argocd.argoproj.io`, which is used by the application controller to decide the order of deletion. Fixes: #5216 Signed-off-by: Chetan Banavikalmutt <chetanrns1997@gmail.com> * fix lint and doc errors Signed-off-by: Chetan Banavikalmutt <chetanrns1997@gmail.com> * update logs to display the application name Signed-off-by: Chetan Banavikalmutt <chetanrns1997@gmail.com> * address review comments * remove application name from logs since it's already present * update the propagation policy annotation key Signed-off-by: Chetan Banavikalmutt <chetanrns1997@gmail.com> * Add radio buttons in the UI to select propagation policy Signed-off-by: Chetan Banavikalmutt <chetanrns1997@gmail.com> * inject finalizers instead of annotations for specifying propagation policy Signed-off-by: Chetan Banavikalmutt <chetanrns1997@gmail.com> * rebase branch on master Signed-off-by: Chetan Banavikalmutt <chetanrns1997@gmail.com> * update the controller to set the policy only for application's resources Signed-off-by: Chetan Banavikalmutt <chetanrns1997@gmail.com> * fix the label of policy radio button Signed-off-by: Chetan Banavikalmutt <chetanrns1997@gmail.com>
2021-03-15 16:27:41 +00:00
optional string propagationPolicy = 3;
}
message SyncOptions {
repeated string items = 1;
}
// ApplicationSyncRequest is a request to apply the config state to live state
message ApplicationSyncRequest {
required string name = 1;
optional string revision = 2 [(gogoproto.nullable) = false];
optional bool dryRun = 3 [(gogoproto.nullable) = false];
optional bool prune = 4 [(gogoproto.nullable) = false];
optional github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.SyncStrategy strategy = 5;
repeated github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.SyncOperationResource resources = 7 [(gogoproto.nullable) = false];
2019-06-18 02:09:43 +00:00
repeated string manifests = 8;
repeated github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.Info infos = 9;
optional github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.RetryStrategy retryStrategy = 10;
optional SyncOptions syncOptions = 11;
}
// ApplicationUpdateSpecRequest is a request to update application spec
message ApplicationUpdateSpecRequest {
required string name = 1;
required github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ApplicationSpec spec = 2 [(gogoproto.nullable) = false];
optional bool validate = 3;
}
// ApplicationPatchRequest is a request to patch an application
message ApplicationPatchRequest {
required string name = 1;
required string patch = 2 [(gogoproto.nullable) = false];
required string patchType = 3 [(gogoproto.nullable) = false];
}
message ApplicationRollbackRequest {
required string name = 1;
required int64 id = 2 [(gogoproto.customname) = "ID", (gogoproto.nullable) = false];
optional bool dryRun = 3 [(gogoproto.nullable) = false];
optional bool prune = 4 [(gogoproto.nullable) = false];
}
message ApplicationResourceRequest {
required string name = 1;
required string namespace = 2 [(gogoproto.nullable) = false];
required string resourceName = 3 [(gogoproto.nullable) = false];
required string version = 4 [(gogoproto.nullable) = false];
required string group = 5 [(gogoproto.nullable) = false];
required string kind = 6 [(gogoproto.nullable) = false];
}
2018-12-28 23:57:52 +00:00
message ApplicationResourcePatchRequest {
required string name = 1;
required string namespace = 2 [(gogoproto.nullable) = false];
required string resourceName = 3 [(gogoproto.nullable) = false];
required string version = 4 [(gogoproto.nullable) = false];
required string group = 5 [(gogoproto.nullable) = false];
required string kind = 6 [(gogoproto.nullable) = false];
required string patch = 7 [(gogoproto.nullable) = false];
required string patchType = 8 [(gogoproto.nullable) = false];
}
2018-12-07 00:00:10 +00:00
message ApplicationResourceDeleteRequest {
required string name = 1;
required string namespace = 2 [(gogoproto.nullable) = false];
required string resourceName = 3 [(gogoproto.nullable) = false];
required string version = 4 [(gogoproto.nullable) = false];
required string group = 5 [(gogoproto.nullable) = false];
required string kind = 6 [(gogoproto.nullable) = false];
optional bool force = 7 [(gogoproto.nullable) = true];
optional bool orphan = 8 [(gogoproto.nullable) = true];
2018-12-07 00:00:10 +00:00
}
message ResourceActionRunRequest {
required string name = 1;
required string namespace = 2 [(gogoproto.nullable) = false];
required string resourceName = 3 [(gogoproto.nullable) = false];
required string version = 4 [(gogoproto.nullable) = false];
required string group = 5 [(gogoproto.nullable) = false];
required string kind = 6 [(gogoproto.nullable) = false];
required string action = 7 [(gogoproto.nullable) = false];
}
2018-12-07 00:00:10 +00:00
message ResourceActionsListResponse {
repeated github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ResourceAction actions = 1 [(gogoproto.nullable) = false];
}
message ApplicationResourceResponse {
required string manifest = 1 [(gogoproto.nullable) = false];
2018-04-09 17:39:46 +00:00
}
message ApplicationPodLogsQuery {
required string name = 1;
required string namespace = 2 [(gogoproto.nullable) = false];
feat: get pod logs (#5311) * feat: get pod logs sequential Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: check in the md file Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: get pod logs Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: fix conflicts Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: fix lint error Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: added timeout for test Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: update doc Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: update test Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: add unit test Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: add unit test Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: fix merge conflict Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: add e2e test Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: clone query Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: fix lint error Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: rename tail-lines to tail Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: fix when to send last message status Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: fix lint error Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: fix lint error Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: retry on the client side Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: fix lint error Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: fix lint error Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: fix lint error Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: fix lint error Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: fix lint error Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: fix lint error Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: if --follow, keep retry Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: added two more flags for CLI Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: added two more flags for CLI Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: added two more flags for CLI Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: added two more flags for CLI Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: error return when there are more than 10 pods to render. Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: if podname is present, use the same flow as if query by resource kind Signed-off-by: May Zhang <may_zhang@intuit.com>
2021-02-08 17:27:24 +00:00
optional string podName = 3;
required string container = 4 [(gogoproto.nullable) = false];
required int64 sinceSeconds = 5 [(gogoproto.nullable) = false];
optional k8s.io.apimachinery.pkg.apis.meta.v1.Time sinceTime = 6;
required int64 tailLines = 7 [(gogoproto.nullable) = false];
required bool follow = 8 [(gogoproto.nullable) = false];
optional string untilTime = 9;
optional string filter = 10;
feat: get pod logs (#5311) * feat: get pod logs sequential Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: check in the md file Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: get pod logs Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: fix conflicts Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: fix lint error Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: added timeout for test Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: update doc Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: update test Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: add unit test Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: add unit test Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: fix merge conflict Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: add e2e test Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: clone query Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: fix lint error Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: rename tail-lines to tail Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: fix when to send last message status Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: fix lint error Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: fix lint error Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: retry on the client side Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: fix lint error Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: fix lint error Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: fix lint error Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: fix lint error Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: fix lint error Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: fix lint error Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: if --follow, keep retry Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: added two more flags for CLI Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: added two more flags for CLI Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: added two more flags for CLI Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: added two more flags for CLI Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: error return when there are more than 10 pods to render. Signed-off-by: May Zhang <may_zhang@intuit.com> * feat: if podname is present, use the same flow as if query by resource kind Signed-off-by: May Zhang <may_zhang@intuit.com>
2021-02-08 17:27:24 +00:00
optional string kind = 11;
optional string group = 12;
optional string resourceName = 13 ;
2018-04-06 20:08:29 +00:00
}
message LogEntry {
required string content = 1 [(gogoproto.nullable) = false];
// deprecated in favor of timeStampStr since meta.v1.Time don't support nano time
required k8s.io.apimachinery.pkg.apis.meta.v1.Time timeStamp = 2 [(gogoproto.nullable) = false, deprecated=true];
required bool last = 3 [(gogoproto.nullable) = false];
required string timeStampStr = 4 [(gogoproto.nullable) = false];
required string podName = 5 [(gogoproto.nullable) = false];
2018-04-06 20:08:29 +00:00
}
message OperationTerminateRequest {
required string name = 1;
}
message ApplicationSyncWindowsQuery {
required string name = 1;
}
message ApplicationSyncWindowsResponse {
repeated ApplicationSyncWindow activeWindows = 1;
repeated ApplicationSyncWindow assignedWindows = 2;
required bool canSync = 3;
}
message ApplicationSyncWindow {
required string kind = 1;
required string schedule = 2;
required string duration = 3;
required bool manualSync = 4;
}
message OperationTerminateResponse {
}
message ResourcesQuery {
required string applicationName = 1 [(gogoproto.nullable) = true];
optional string namespace = 2 [(gogoproto.nullable) = false];
optional string name = 3 [(gogoproto.nullable) = false];
optional string version = 4 [(gogoproto.nullable) = false];
optional string group = 5 [(gogoproto.nullable) = false];
optional string kind = 6 [(gogoproto.nullable) = false];
}
message ManagedResourcesResponse {
repeated github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ResourceDiff items = 1;
}
// ApplicationService
service ApplicationService {
// List returns list of applications
rpc List(ApplicationQuery) returns (github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ApplicationList) {
option (google.api.http).get = "/api/v1/applications";
}
// ListResourceEvents returns a list of event resources
rpc ListResourceEvents(ApplicationResourceEventsQuery) returns (k8s.io.api.core.v1.EventList) {
option (google.api.http).get = "/api/v1/applications/{name}/events";
}
// Watch returns stream of application change events
rpc Watch(ApplicationQuery) returns (stream github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ApplicationWatchEvent) {
2018-02-28 05:37:23 +00:00
option (google.api.http).get = "/api/v1/stream/applications";
}
// Create creates an application
rpc Create (ApplicationCreateRequest) returns (github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.Application) {
option (google.api.http) = {
post: "/api/v1/applications"
body: "application"
};
}
// Get returns an application by name
rpc Get (ApplicationQuery) returns (github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.Application) {
option (google.api.http).get = "/api/v1/applications/{name}";
}
// Get returns sync windows of the application
rpc GetApplicationSyncWindows (ApplicationSyncWindowsQuery) returns (ApplicationSyncWindowsResponse) {
option (google.api.http).get = "/api/v1/applications/{name}/syncwindows";
}
// Get the meta-data (author, date, tags, message) for a specific revision of the application
rpc RevisionMetadata (RevisionMetadataQuery) returns (github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.RevisionMetadata) {
option (google.api.http).get = "/api/v1/applications/{name}/revisions/{revision}/metadata";
}
// GetManifests returns application manifests
rpc GetManifests (ApplicationManifestQuery) returns (repository.ManifestResponse) {
option (google.api.http).get = "/api/v1/applications/{name}/manifests";
}
// Update updates an application
rpc Update(ApplicationUpdateRequest) returns (github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.Application) {
option (google.api.http) = {
put: "/api/v1/applications/{application.metadata.name}"
body: "application"
};
}
Generate swagger files (#278) * Generate swagger files * Add basic Swagger definitions * Add reposerver swagger file * Consolidate swagger files * Move swagger files to swagger-ui directory instead * Put swagger files in swagger-ui * Fix order of operations * Move back to swagger directory * Serve API server swagger files raw for now * Serve reposerver swagger files from API server * Move back to subdirectories, thanks @alexmt * Fix comment on application Rollback * Update two more comments * Fix comment in session.proto * Update generated code * Update generated swagger docs * Fix comment for delete actions in cluster and repository swagger * Set expected collisions and invoke mixins * Update generated code * Create swagger mixins from codegen * Move swagger.json location, thanks @jazminGonzalez-Rivero * Add ref cleanup for swagger combined * Make fewer temp files when generating swagger * Delete intermediate swagger files * Serve new file at /swagger.json * Set up UI server * Update package lock * Commit generated swagger.json files * Add install commands for swagger * Use ReDoc server instead of Swagger UI server * Update lockfile * Make URL paths more consistent * Update package lock * Separate out handlers for Swagger UI, JSON * Rm unnecessary CORS headers ...since we're serving from the app server * Simplify serving * Further simplify serving code * Update package lock * Factor out swagger serving into util * Add test for Swagger server * Use ServeSwaggerUI method to run tests * Update package lock * Don't generate swagger for reposerver * Reset to master Gopkg.lock and server/server.go * Merge in prev change to server/server.go * Redo changes to Gopkg.lock * Fix number of conflicts * Update generated swagger.json for server * Fix issue with project feature error
2018-06-25 20:49:38 +00:00
// UpdateSpec updates an application spec
rpc UpdateSpec(ApplicationUpdateSpecRequest) returns (github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ApplicationSpec) {
option (google.api.http) = {
put: "/api/v1/applications/{name}/spec"
body: "spec"
};
}
// Patch patch an application
rpc Patch(ApplicationPatchRequest) returns (github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.Application) {
option (google.api.http) = {
patch: "/api/v1/applications/{name}"
body: "*"
};
}
// Delete deletes an application
rpc Delete(ApplicationDeleteRequest) returns (ApplicationResponse) {
option (google.api.http).delete = "/api/v1/applications/{name}";
}
// Sync syncs an application to its target state
rpc Sync(ApplicationSyncRequest) returns (github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.Application) {
option (google.api.http) = {
post: "/api/v1/applications/{name}/sync"
body: "*"
};
}
// ManagedResources returns list of managed resources
rpc ManagedResources(ResourcesQuery) returns (ManagedResourcesResponse) {
option (google.api.http).get = "/api/v1/applications/{applicationName}/managed-resources";
}
// ResourceTree returns resource tree
rpc ResourceTree(ResourcesQuery) returns (github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ApplicationTree) {
option (google.api.http).get = "/api/v1/applications/{applicationName}/resource-tree";
}
// Watch returns stream of application resource tree
rpc WatchResourceTree(ResourcesQuery) returns (stream github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ApplicationTree) {
option (google.api.http).get = "/api/v1/stream/applications/{applicationName}/resource-tree";
}
Generate swagger files (#278) * Generate swagger files * Add basic Swagger definitions * Add reposerver swagger file * Consolidate swagger files * Move swagger files to swagger-ui directory instead * Put swagger files in swagger-ui * Fix order of operations * Move back to swagger directory * Serve API server swagger files raw for now * Serve reposerver swagger files from API server * Move back to subdirectories, thanks @alexmt * Fix comment on application Rollback * Update two more comments * Fix comment in session.proto * Update generated code * Update generated swagger docs * Fix comment for delete actions in cluster and repository swagger * Set expected collisions and invoke mixins * Update generated code * Create swagger mixins from codegen * Move swagger.json location, thanks @jazminGonzalez-Rivero * Add ref cleanup for swagger combined * Make fewer temp files when generating swagger * Delete intermediate swagger files * Serve new file at /swagger.json * Set up UI server * Update package lock * Commit generated swagger.json files * Add install commands for swagger * Use ReDoc server instead of Swagger UI server * Update lockfile * Make URL paths more consistent * Update package lock * Separate out handlers for Swagger UI, JSON * Rm unnecessary CORS headers ...since we're serving from the app server * Simplify serving * Further simplify serving code * Update package lock * Factor out swagger serving into util * Add test for Swagger server * Use ServeSwaggerUI method to run tests * Update package lock * Don't generate swagger for reposerver * Reset to master Gopkg.lock and server/server.go * Merge in prev change to server/server.go * Redo changes to Gopkg.lock * Fix number of conflicts * Update generated swagger.json for server * Fix issue with project feature error
2018-06-25 20:49:38 +00:00
// Rollback syncs an application to its target state
rpc Rollback(ApplicationRollbackRequest) returns (github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.Application) {
option (google.api.http) = {
post: "/api/v1/applications/{name}/rollback"
body: "*"
};
}
// TerminateOperation terminates the currently running operation
rpc TerminateOperation(OperationTerminateRequest) returns (OperationTerminateResponse) {
option (google.api.http) = {
delete: "/api/v1/applications/{name}/operation";
};
}
// GetResource returns single application resource
rpc GetResource(ApplicationResourceRequest) returns (ApplicationResourceResponse) {
option (google.api.http).get = "/api/v1/applications/{name}/resource";
}
2018-12-28 23:57:52 +00:00
// PatchResource patch single application resource
rpc PatchResource(ApplicationResourcePatchRequest) returns (ApplicationResourceResponse) {
option (google.api.http) = {
post: "/api/v1/applications/{name}/resource"
body: "patch"
};
2018-12-28 23:57:52 +00:00
}
// ListResourceActions returns list of resource actions
rpc ListResourceActions(ApplicationResourceRequest) returns (ResourceActionsListResponse) {
option (google.api.http).get = "/api/v1/applications/{name}/resource/actions";
}
// RunResourceAction run resource action
rpc RunResourceAction(ResourceActionRunRequest) returns (ApplicationResponse) {
option (google.api.http) = {
post: "/api/v1/applications/{name}/resource/actions"
body: "action"
};
}
// DeleteResource deletes a single application resource
2018-12-07 00:00:10 +00:00
rpc DeleteResource(ApplicationResourceDeleteRequest) returns (ApplicationResponse) {
option (google.api.http).delete = "/api/v1/applications/{name}/resource";
2018-04-09 17:39:46 +00:00
}
2018-04-06 20:08:29 +00:00
// PodLogs returns stream of log entries for the specified pod. Pod
rpc PodLogs(ApplicationPodLogsQuery) returns (stream LogEntry) {
option (google.api.http) = {
get: "/api/v1/applications/{name}/pods/{podName}/logs"
additional_bindings {
get: "/api/v1/applications/{name}/logs"
}
};
2018-04-06 20:08:29 +00:00
}
}