* Install buf with go install This reduces the impact of using buf on our dependency closure, which was significant. It also avoids potential issues with building buf given our own internal dependency constraints. This has caused issues (including crashes!) in the past. See https://github.com/cockroachdb/cockroach/issues/67216#issuecomment-874176186 for more discussion on using tool dependencies generally, and https://github.com/bufbuild/buf/issues/52 for an example of where this sort of thing caused an issue for a user. * Upgrade buf version We should migrate to v1 sooner rather than later, as it has some breaking changes from v0. * Change buf lint/breaking commands These commands were moved up one level for v1 * Migrate to buf.yaml to v1 * Remove unused imports These were uncovered by using "buf lint". * Use buf v1.3.1 * Depend on googleapis and grpc-gateway via BSR * Switch to buf for proto generation * Remove third party dependency * Remove unused tools and scripts * Move local protos up one level * Temporarily don't fail on breaking changes * Generate CI config * Fix generation of controller.json * Replace use of deprecated flag * Remove unused import, regenerate files * Remove temporary skipping over breaking check
90 lines
3.3 KiB
Protocol Buffer
90 lines
3.3 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package controller.api.resources.roles.v1;
|
|
|
|
option go_package = "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/roles;roles";
|
|
|
|
import "google/protobuf/timestamp.proto";
|
|
import "google/protobuf/wrappers.proto";
|
|
import "controller/api/resources/scopes/v1/scope.proto";
|
|
import "controller/custom_options/v1/options.proto";
|
|
|
|
message Principal {
|
|
// Output only. The ID of the principal.
|
|
string id = 1;
|
|
|
|
// Output only. The type of the principal.
|
|
string type = 2;
|
|
|
|
// Output only. The Scope of the principal.
|
|
string scope_id = 3 [json_name="scope_id"];
|
|
}
|
|
|
|
message GrantJson {
|
|
// Output only. The ID, if set.
|
|
string id = 1;
|
|
|
|
// Output only. The type, if set.
|
|
string type = 2;
|
|
|
|
// Output only. The actions.
|
|
repeated string actions = 3;
|
|
}
|
|
|
|
message Grant {
|
|
// Output only. The original user-supplied string.
|
|
string raw = 1;
|
|
|
|
// Output only. The canonically-formatted string.
|
|
string canonical = 2;
|
|
|
|
// Output only. The JSON representation of the grant.
|
|
GrantJson json = 3;
|
|
}
|
|
|
|
// Role contains all fields related to a Role resource
|
|
message Role {
|
|
// Output only. The ID of the Role.
|
|
string id = 10;
|
|
|
|
// The ID of the Scope containing this Role.
|
|
string scope_id = 20 [json_name="scope_id"];
|
|
|
|
// Output only. Scope information for this resource.
|
|
resources.scopes.v1.ScopeInfo scope = 30;
|
|
|
|
// Optional name for identification purposes.
|
|
google.protobuf.StringValue name = 40 [(custom_options.v1.generate_sdk_option) = true, (custom_options.v1.mask_mapping) = {this:"name" that: "name"}];
|
|
|
|
// Optional user-set description for identification purposes.
|
|
google.protobuf.StringValue description = 50 [(custom_options.v1.generate_sdk_option) = true, (custom_options.v1.mask_mapping) = {this:"description" that: "description"}];
|
|
|
|
// Output only. The time this resource was created.
|
|
google.protobuf.Timestamp created_time = 60 [json_name="created_time"];
|
|
|
|
// Output only. The time this resource was last updated.
|
|
google.protobuf.Timestamp updated_time = 70 [json_name="updated_time"];
|
|
|
|
// Version is used in mutation requests, after the initial creation, to ensure this resource has not changed.
|
|
// The mutation will fail if the version does not match the latest known good version.
|
|
uint32 version = 80;
|
|
|
|
// The Scope the grants will apply to. If the Role is at the global scope, this can be an org or project. If the Role is at an org scope, this can be a project within the org. It is invalid for this to be anything other than the Role's scope when the Role's scope is a project.
|
|
google.protobuf.StringValue grant_scope_id = 90 [json_name="grant_scope_id", (custom_options.v1.generate_sdk_option) = true, (custom_options.v1.mask_mapping) = {this:"grant_scope_id" that: "GrantScopeId"}];
|
|
|
|
// Output only. The IDs (only) of principals that are assigned to this role.
|
|
repeated string principal_ids = 100 [json_name="principal_ids"];
|
|
|
|
// Output only. The principals that are assigned to this role.
|
|
repeated Principal principals = 110;
|
|
|
|
// Output only. The grants that this role provides for its principals.
|
|
repeated string grant_strings = 120 [json_name="grant_strings"];
|
|
|
|
// Output only. The parsed grant information.
|
|
repeated Grant grants = 130;
|
|
|
|
// Output only. The available actions on this resource for this user.
|
|
repeated string authorized_actions = 300 [json_name="authorized_actions"];
|
|
}
|