Files
threshold/internal/proto/controller/api/resources/roles/v1/role.proto
T
Johan Brandhorst-SatzkornandJeff Mitchell c6f3c375f3 api: remove deprecated grant_scope_id field (#4886)
* api: remove deprecated grant_scope_id field

The grant_scope_id field was deprecated in 0.15.0, so we can remove
it for 0.17.0.

* Fix tests

* Fix more tests

* Remove an option and some related code that stuck around

* Fix bats tests

---------

Co-authored-by: Jeff Mitchell <jeffrey.mitchell@gmail.com>
2024-06-17 12:09:33 -07:00

119 lines
4.6 KiB
Protocol Buffer

// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0
syntax = "proto3";
package controller.api.resources.roles.v1;
import "controller/api/resources/scopes/v1/scope.proto";
import "controller/custom_options/v1/options.proto";
import "google/protobuf/timestamp.proto";
import "google/protobuf/wrappers.proto";
option go_package = "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/roles;roles";
message Principal {
// Output only. The ID of the principal.
string id = 1; // @gotags: `class:"public" eventstream:"observation"`
// Output only. The type of the principal.
string type = 2; // @gotags: `class:"public" eventstream:"observation"`
// Output only. The Scope of the principal.
string scope_id = 3 [json_name = "scope_id"]; // @gotags: `class:"public" eventstream:"observation"`
}
message GrantJson {
// Output only. The ID, if set.
// Deprecated: use "ids" instead.
string id = 1 [deprecated = true]; // @gotags: `class:"public"`
// Output only. The IDs, if set.
repeated string ids = 4; // @gotags: `class:"public"`
// Output only. The type, if set.
string type = 2; // @gotags: `class:"public"`
// Output only. The actions.
repeated string actions = 3; // @gotags: `class:"public"`
}
message Grant {
// Output only. The original user-supplied string.
string raw = 1; // @gotags: `class:"public"`
// Output only. The canonically-formatted string.
string canonical = 2; // @gotags: `class:"public"`
// Output only. The JSON representation of the grant.
GrantJson json = 3;
}
// Role contains all fields related to a Role resource
message Role {
// Used to be "grant_scope_id", replaced with "grant_scope_ids".
reserved 90;
reserved "grant_scope_id";
// Output only. The ID of the Role.
string id = 10; // @gotags: `class:"public" eventstream:"observation"`
// The ID of the Scope containing this Role.
string scope_id = 20 [json_name = "scope_id"]; // @gotags: `class:"public" eventstream:"observation"`
// 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"
}
]; // @gotags: `class:"public"`
// 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"
}
]; // @gotags: `class:"public"`
// Output only. The time this resource was created.
google.protobuf.Timestamp created_time = 60 [json_name = "created_time"]; // @gotags: `class:"public" eventstream:"observation"`
// Output only. The time this resource was last updated.
google.protobuf.Timestamp updated_time = 70 [json_name = "updated_time"]; // @gotags: `class:"public" eventstream:"observation"`
// 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; // @gotags: `class:"public"`
// Output only. The IDs of Scopes the grants will apply to. This can include
// the role's own scope ID, or "this" for the same behavior; specific IDs of
// scopes that are children of the role's scope; the value "children" to match
// all direct child scopes of the role's scope; or the value "descendants" to
// match all descendant scopes (e.g. child scopes, children of child scopes;
// only valid at "global" scope since it is the only one with children of
// children).
repeated string grant_scope_ids = 91 [json_name = "grant_scope_ids"]; // @gotags: `class:"public" eventstream:"observation"`
// Output only. The IDs (only) of principals that are assigned to this role.
repeated string principal_ids = 100 [json_name = "principal_ids"]; // @gotags: `class:"public" eventstream:"observation"`
// 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"]; // @gotags: `class:"public"`
// 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"]; // @gotags: `class:"public"`
}