feat(proto): Format protobuf files with buf (#2033)

Formats all protobuf files with buf format. This ensures
a consistent style across all our protobuf files, similar
to gofumpt.
This commit is contained in:
Johan Brandhorst-Satzkorn authored and GitHub committed 2022-05-04 11:10:21 -04:00
1 parent 0fb9b35498
commit f69fbf2255
131 files changed
+2329 -1618

No files matched your search

@@ -2,95 +2,126 @@ syntax = "proto3";
package controller.api.resources.accounts.v1;
option go_package = "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/accounts;accounts";
import "google/protobuf/timestamp.proto";
import "google/protobuf/wrappers.proto";
import "google/protobuf/struct.proto";
import "google/api/visibility.proto";
import "controller/api/resources/scopes/v1/scope.proto";
import "controller/custom_options/v1/options.proto";
import "google/api/visibility.proto";
import "google/protobuf/struct.proto";
import "google/protobuf/timestamp.proto";
import "google/protobuf/wrappers.proto";
option go_package = "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/accounts;accounts";
// Account contains all fields related to an Account resource
message Account {
// Output only. The ID of the Account.
string id = 10; // @gotags: `class:"public"`
// Output only. The ID of the Account.
string id = 10; // @gotags: `class:"public"`
// Output only. Scope information for the Account.
resources.scopes.v1.ScopeInfo scope = 20;
// Output only. Scope information for the Account.
resources.scopes.v1.ScopeInfo scope = 20;
// Optional name for identification purposes.
google.protobuf.StringValue name = 30 [(custom_options.v1.generate_sdk_option) = true, (custom_options.v1.mask_mapping) = {this:"name" that: "Name"}]; // @gotags: `class:"public"`
// Optional name for identification purposes.
google.protobuf.StringValue name = 30 [
(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 = 40 [(custom_options.v1.generate_sdk_option) = true, (custom_options.v1.mask_mapping) = {this:"description" that: "Description"}]; // @gotags: `class:"public"`
// Optional user-set description for identification purposes.
google.protobuf.StringValue description = 40 [
(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 = 50 [json_name="created_time"]; // @gotags: `class:"public"`
// Output only. The time this resource was created.
google.protobuf.Timestamp created_time = 50 [json_name = "created_time"]; // @gotags: `class:"public"`
// Output only. The time this resource was last updated.
google.protobuf.Timestamp updated_time = 60 [json_name="updated_time"]; // @gotags: `class:"public"`
// Output only. The time this resource was last updated.
google.protobuf.Timestamp updated_time = 60 [json_name = "updated_time"]; // @gotags: `class:"public"`
// 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 = 70; // @gotags: `class:"public"`
// 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 = 70; // @gotags: `class:"public"`
// The type of this Account.
string type = 80; // @gotags: `class:"public"`
// The type of this Account.
string type = 80; // @gotags: `class:"public"`
// The ID of the Auth Method that is associated with this Account.
string auth_method_id = 90 [json_name="auth_method_id", (custom_options.v1.subtype_source_id) = true]; // @gotags: `class:"public"`
// The ID of the Auth Method that is associated with this Account.
string auth_method_id = 90 [
json_name = "auth_method_id",
(custom_options.v1.subtype_source_id) = true
]; // @gotags: `class:"public"`
oneof attrs {
// The attributes that are applicable for the specific Account type.
google.protobuf.Struct attributes = 100 [(custom_options.v1.generate_sdk_option) = true, (custom_options.v1.subtype) = "default"];
PasswordAccountAttributes password_account_attributes = 101 [
(google.api.field_visibility).restriction = "INTERNAL",
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.subtype) = "password"
];
OidcAccountAttributes oidc_account_attributes = 102 [
(google.api.field_visibility).restriction = "INTERNAL",
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.subtype) = "oidc"
];
}
oneof attrs {
// The attributes that are applicable for the specific Account type.
google.protobuf.Struct attributes = 100 [
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.subtype) = "default"
];
PasswordAccountAttributes password_account_attributes = 101 [
(google.api.field_visibility).restriction = "INTERNAL",
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.subtype) = "password"
];
OidcAccountAttributes oidc_account_attributes = 102 [
(google.api.field_visibility).restriction = "INTERNAL",
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.subtype) = "oidc"
];
}
// Output only. managed_group_ids indicates IDs of the managed groups that currently contain this account
repeated string managed_group_ids = 110 [json_name="managed_group_ids"]; // @gotags: `class:"public"`
// Output only. managed_group_ids indicates IDs of the managed groups that currently contain this account
repeated string managed_group_ids = 110 [json_name = "managed_group_ids"]; // @gotags: `class:"public"`
// Output only. The available actions on this resource for this user.
repeated string authorized_actions = 300 [json_name="authorized_actions"]; // @gotags: `class:"public"`
// Output only. The available actions on this resource for this user.
repeated string authorized_actions = 300 [json_name = "authorized_actions"]; // @gotags: `class:"public"`
}
// Attributes associated only with Accounts with type "password".
message PasswordAccountAttributes {
// The login name of this Account. This is unique per Auth Method.
string login_name = 10 [json_name="login_name", (custom_options.v1.generate_sdk_option) = true, (custom_options.v1.mask_mapping) = {this:"attributes.login_name" that: "LoginName"}]; // @gotags: `class:"sensitive"`
// The login name of this Account. This is unique per Auth Method.
string login_name = 10 [
json_name = "login_name",
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.mask_mapping) = {
this: "attributes.login_name"
that: "LoginName"
}
]; // @gotags: `class:"sensitive"`
// The password for this Account.
google.protobuf.StringValue password = 20 [(custom_options.v1.generate_sdk_option) = true]; // @gotags: `class:"secret"`
// The password for this Account.
google.protobuf.StringValue password = 20 [(custom_options.v1.generate_sdk_option) = true]; // @gotags: `class:"secret"`
}
// Attributes associated only with Accounts with type "oidc".
message OidcAccountAttributes {
// issuer is a case sensitive URL that maps to the OIDC iss claim.
// This value is immutable after creation time.
string issuer = 80 [json_name="issuer", (custom_options.v1.generate_sdk_option) = true]; // @gotags: `class:"public"`
// issuer is a case sensitive URL that maps to the OIDC iss claim.
// This value is immutable after creation time.
string issuer = 80 [
json_name = "issuer",
(custom_options.v1.generate_sdk_option) = true
]; // @gotags: `class:"public"`
// subject is a case sensitive string that maps to the OIDC sub claim.
// This value is immutable after creation time.
string subject = 90 [json_name="subject", (custom_options.v1.generate_sdk_option) = true]; // @gotags: `class:"public"`
// subject is a case sensitive string that maps to the OIDC sub claim.
// This value is immutable after creation time.
string subject = 90 [
json_name = "subject",
(custom_options.v1.generate_sdk_option) = true
]; // @gotags: `class:"public"`
// Output only. full_name is a string that maps to the OIDC name claim.
string full_name = 100 [json_name="full_name"]; // @gotags: `class:"public"`
// Output only. full_name is a string that maps to the OIDC name claim.
string full_name = 100 [json_name = "full_name"]; // @gotags: `class:"public"`
// Output only. email is a string that maps to the OIDC email claim.
string email = 110; // @gotags: `class:"public"`
// Output only. email is a string that maps to the OIDC email claim.
string email = 110; // @gotags: `class:"public"`
// Output only. token_claims are the marshaled claims from the token.
google.protobuf.Struct token_claims = 120;
// Output only. token_claims are the marshaled claims from the token.
google.protobuf.Struct token_claims = 120;
// Output only. userinfo_claims are the marshaled claims from userinfo.
google.protobuf.Struct userinfo_claims = 130;
// Output only. userinfo_claims are the marshaled claims from userinfo.
google.protobuf.Struct userinfo_claims = 130;
}
@@ -2,51 +2,64 @@ syntax = "proto3";
package controller.api.resources.authmethods.v1;
option go_package = "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/authmethods;authmethods";
import "google/protobuf/timestamp.proto";
import "google/protobuf/wrappers.proto";
import "google/protobuf/struct.proto";
import "google/api/visibility.proto";
import "controller/api/resources/scopes/v1/scope.proto";
import "controller/custom_options/v1/options.proto";
import "google/api/visibility.proto";
import "google/protobuf/struct.proto";
import "google/protobuf/timestamp.proto";
import "google/protobuf/wrappers.proto";
option go_package = "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/authmethods;authmethods";
option (custom_options.v1.domain) = "auth";
// AuthMethod contains all fields related to an Auth Method resource
message AuthMethod {
// Output only. The ID of the Auth Method.
string id = 10; // @gotags: `class:"public"`
string id = 10; // @gotags: `class:"public"`
// The ID of the Scope of which this Auth Method is a part.
string scope_id = 20 [json_name = "scope_id"]; // @gotags: `class:"public"`
string scope_id = 20 [json_name = "scope_id"]; // @gotags: `class:"public"`
// Output only. Scope information for this Auth method.
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"`
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"`
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"`
google.protobuf.Timestamp created_time = 60 [json_name = "created_time"]; // @gotags: `class:"public"`
// Output only. The time this resource was last updated.
google.protobuf.Timestamp updated_time = 70 [json_name = "updated_time"]; // @gotags: `class:"public"`
google.protobuf.Timestamp updated_time = 70 [json_name = "updated_time"]; // @gotags: `class:"public"`
// 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"`
uint32 version = 80; // @gotags: `class:"public"`
// The Auth Method type.
string type = 90; // @gotags: `class:"public"`
string type = 90; // @gotags: `class:"public"`
oneof attrs {
// The attributes that are applicable for the specific Auth Method type.
google.protobuf.Struct attributes = 100 [(custom_options.v1.generate_sdk_option) = true, (custom_options.v1.subtype) = "default"];
google.protobuf.Struct attributes = 100 [
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.subtype) = "default"
];
PasswordAuthMethodAttributes password_auth_method_attributes = 101 [
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.subtype) = "password",
@@ -61,10 +74,10 @@ message AuthMethod {
// Output only. Whether this auth method is the primary auth method for it's scope.
// To change this value update the primary_auth_method_id field on the scope.
bool is_primary = 110 [json_name = "is_primary"]; // @gotags: `class:"public"`
bool is_primary = 110 [json_name = "is_primary"]; // @gotags: `class:"public"`
// Output only. The available actions on this resource for this user.
repeated string authorized_actions = 300 [json_name = "authorized_actions"]; // @gotags: `class:"public"`
repeated string authorized_actions = 300 [json_name = "authorized_actions"]; // @gotags: `class:"public"`
// Output only. The authorized actions for the scope's collections.
map<string, google.protobuf.ListValue> authorized_collection_actions = 310 [json_name = "authorized_collection_actions"]; // classified as public via taggable implementation
@@ -73,78 +86,152 @@ message AuthMethod {
// The attributes of a password typed auth method.
message PasswordAuthMethodAttributes {
// The minimum length allowed for user names for Accounts in this Auth Method.
uint32 min_login_name_length = 10
[json_name = "min_login_name_length", (custom_options.v1.generate_sdk_option) = true, (custom_options.v1.mask_mapping) = { this: "attributes.min_login_name_length" that: "MinLoginNameLength" }]; // @gotags: `class:"public"`
uint32 min_login_name_length = 10 [
json_name = "min_login_name_length",
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.mask_mapping) = {
this: "attributes.min_login_name_length"
that: "MinLoginNameLength"
}
]; // @gotags: `class:"public"`
// The minimum length allowed for passwords for Accounts in this Auth Method.
uint32 min_password_length = 20
[json_name = "min_password_length", (custom_options.v1.generate_sdk_option) = true, (custom_options.v1.mask_mapping) = { this: "attributes.min_password_length" that: "MinPasswordLength" }]; // @gotags: `class:"public"`
uint32 min_password_length = 20 [
json_name = "min_password_length",
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.mask_mapping) = {
this: "attributes.min_password_length"
that: "MinPasswordLength"
}
]; // @gotags: `class:"public"`
}
// The attributes of an OIDC typed auth method.
message OidcAuthMethodAttributes {
// Output only. The state of the auth method. Will be "inactive",
// "active-private", or "active-public".
string state = 10 [json_name = "state"]; // @gotags: `class:"public"`
string state = 10 [json_name = "state"]; // @gotags: `class:"public"`
// The issuer URL. Boundary expects only the schema, host, and port and will
// strip off ".well-known/openid-configuration" if present. This will be
// used for configuration discovery as well as for validation of the "iss"
// claim.
google.protobuf.StringValue issuer = 20 [json_name = "issuer", (custom_options.v1.generate_sdk_option) = true, (custom_options.v1.mask_mapping) = { this: "attributes.issuer" that: "Issuer" }]; // @gotags: `class:"public"`
google.protobuf.StringValue issuer = 20 [
json_name = "issuer",
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.mask_mapping) = {
this: "attributes.issuer"
that: "Issuer"
}
]; // @gotags: `class:"public"`
// An OAuth 2.0 Client Identifier valid at the Authorization Server.
google.protobuf.StringValue client_id = 30
[json_name = "client_id", (custom_options.v1.generate_sdk_option) = true, (custom_options.v1.mask_mapping) = { this: "attributes.client_id" that: "ClientId" }]; // @gotags: `class:"public"`
google.protobuf.StringValue client_id = 30 [
json_name = "client_id",
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.mask_mapping) = {
this: "attributes.client_id"
that: "ClientId"
}
]; // @gotags: `class:"public"`
// Input only. The client's secret.
google.protobuf.StringValue client_secret = 40
[json_name = "client_secret", (custom_options.v1.generate_sdk_option) = true, (custom_options.v1.mask_mapping) = { this: "attributes.client_secret" that: "ClientSecret" }]; // @gotags: `class:"secret"`
google.protobuf.StringValue client_secret = 40 [
json_name = "client_secret",
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.mask_mapping) = {
this: "attributes.client_secret"
that: "ClientSecret"
}
]; // @gotags: `class:"secret"`
// Output only. The HMAC'd value of the clients secret to indicate whether
// the client secret has changed.
string client_secret_hmac = 50 [json_name = "client_secret_hmac"]; // @gotags: `class:"public"`
string client_secret_hmac = 50 [json_name = "client_secret_hmac"]; // @gotags: `class:"public"`
// The OIDC "max_age" parameter sent to the Authorization Server indicating
// a maximum acceptable time in seconds since the user's last authentication
// before requiring the user to reauthenticate. 0 indicates an immediate
// need to reauthenticate.
google.protobuf.UInt32Value max_age = 60 [json_name = "max_age", (custom_options.v1.generate_sdk_option) = true, (custom_options.v1.mask_mapping) = { this: "attributes.max_age" that: "MaxAge" }]; // @gotags: `class:"public"`
google.protobuf.UInt32Value max_age = 60 [
json_name = "max_age",
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.mask_mapping) = {
this: "attributes.max_age"
that: "MaxAge"
}
]; // @gotags: `class:"public"`
// The signing algorithms allowed for the auth method.
repeated string signing_algorithms = 70
[json_name = "signing_algorithms", (custom_options.v1.generate_sdk_option) = true, (custom_options.v1.mask_mapping) = { this: "attributes.signing_algorithms" that: "SigningAlgs" }]; // @gotags: `class:"public"`
repeated string signing_algorithms = 70 [
json_name = "signing_algorithms",
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.mask_mapping) = {
this: "attributes.signing_algorithms"
that: "SigningAlgs"
}
]; // @gotags: `class:"public"`
// The prefix that should be used for any URLs needed during the
// authentication flow. This includes the callback URL, the token retrieval
// URL, and the redirection URL used by the OIDC Authorization Server.
google.protobuf.StringValue api_url_prefix = 80
[json_name = "api_url_prefix", (custom_options.v1.generate_sdk_option) = true, (custom_options.v1.mask_mapping) = { this: "attributes.api_url_prefix" that: "ApiUrl" }]; // @gotags: `class:"public"`
google.protobuf.StringValue api_url_prefix = 80 [
json_name = "api_url_prefix",
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.mask_mapping) = {
this: "attributes.api_url_prefix"
that: "ApiUrl"
}
]; // @gotags: `class:"public"`
// Output only. The callback URL that should be configured on the
// Authorization Server to use during the authentication flow.
string callback_url = 90 [json_name = "callback_url"]; // @gotags: `class:"public"`
string callback_url = 90 [json_name = "callback_url"]; // @gotags: `class:"public"`
// Optional PEM-encoded X.509 CA certificates that can be used as trust anchors
// when connecting to an OIDC provider.
repeated string idp_ca_certs = 100
[json_name = "idp_ca_certs", (custom_options.v1.generate_sdk_option) = true, (custom_options.v1.mask_mapping) = { this: "attributes.idp_ca_certs" that: "Certificates" }]; // @gotags: `class:"public"`
repeated string idp_ca_certs = 100 [
json_name = "idp_ca_certs",
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.mask_mapping) = {
this: "attributes.idp_ca_certs"
that: "Certificates"
}
]; // @gotags: `class:"public"`
// Allowed audience claims for this auth method.
repeated string allowed_audiences = 110
[json_name = "allowed_audiences", (custom_options.v1.generate_sdk_option) = true, (custom_options.v1.mask_mapping) = { this: "attributes.allowed_audiences" that: "AudClaims" }]; // @gotags: `class:"public"`
repeated string allowed_audiences = 110 [
json_name = "allowed_audiences",
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.mask_mapping) = {
this: "attributes.allowed_audiences"
that: "AudClaims"
}
]; // @gotags: `class:"public"`
// Optional claims scopes that will be requested during authentication.
// see: https://openid.net/specs/openid-connect-core-1_0.html#ScopeClaims
repeated string claims_scopes = 112
[json_name = "claims_scopes", (custom_options.v1.generate_sdk_option) = true, (custom_options.v1.mask_mapping) = { this: "attributes.claims_scopes" that: "ClaimsScopes" }]; // @gotags: `class:"public"`
repeated string claims_scopes = 112 [
json_name = "claims_scopes",
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.mask_mapping) = {
this: "attributes.claims_scopes"
that: "ClaimsScopes"
}
]; // @gotags: `class:"public"`
// account_claim_maps are optional claim maps from custom claims to the
// standard claims of sub, name and email. These maps are represented as
// key=value where the key equals the from_claim and the value equals the
// to_claim. For example "oid=sub".
repeated string account_claim_maps = 113
[json_name = "account_claim_maps", (custom_options.v1.generate_sdk_option) = true, (custom_options.v1.mask_mapping) = { this: "attributes.account_claim_maps" that: "AccountClaimMaps" }]; // @gotags: `class:"public"`
repeated string account_claim_maps = 113 [
json_name = "account_claim_maps",
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.mask_mapping) = {
this: "attributes.account_claim_maps"
that: "AccountClaimMaps"
}
]; // @gotags: `class:"public"`
// If the Authorization Server's discovered configuration contains values
// that do not match the configuration set on this auth method, this can be
@@ -154,7 +241,10 @@ message OidcAuthMethodAttributes {
// will be treated the same as "false"; that is, every time the method is
// updated or the state is changed, this value must be set to "true" or it
// will be disabled.
bool disable_discovered_config_validation = 120 [json_name = "disable_discovered_config_validation", (custom_options.v1.generate_sdk_option) = true]; // @gotags: `class:"public"`
bool disable_discovered_config_validation = 120 [
json_name = "disable_discovered_config_validation",
(custom_options.v1.generate_sdk_option) = true
]; // @gotags: `class:"public"`
// dry_run, when set on an update request, indicates that the changes should
// not be persisted. Boundary will still perform the normal checks to confirm
@@ -162,42 +252,45 @@ message OidcAuthMethodAttributes {
// This value will also be set on the returned resource when set in the request
// along with the updated fields applied to the resource (but not persisted) as
// a result of the update request.
bool dry_run = 130 [json_name = "dry_run", (custom_options.v1.generate_sdk_option) = true]; // @gotags: `class:"public"`
bool dry_run = 130 [
json_name = "dry_run",
(custom_options.v1.generate_sdk_option) = true
]; // @gotags: `class:"public"`
}
// The structure of the OIDC authenticate start response, in the JSON object
message OidcAuthMethodAuthenticateStartResponse {
// The returned authentication URL
string auth_url = 10 [json_name = "auth_url"]; // @gotags: `class:"public"`
string auth_url = 10 [json_name = "auth_url"]; // @gotags: `class:"public"`
// The returned token ID
string token_id = 30 [json_name = "token_id"]; // @gotags: `class:"public"`
string token_id = 30 [json_name = "token_id"]; // @gotags: `class:"public"`
}
// The structure of OIDC callback request parameters
message OidcAuthMethodAuthenticateCallbackRequest {
// The returned code
string code = 10 [json_name = "code"]; // @gotags: `class:"secret"`
string code = 10 [json_name = "code"]; // @gotags: `class:"secret"`
// The returned state
string state = 20 [json_name = "state"]; // @gotags: `class:"public"`
string state = 20 [json_name = "state"]; // @gotags: `class:"public"`
// Error parameters, if they are returned
string error = 30 [json_name = "error"]; // @gotags: `class:"public"`
string error_description = 40 [json_name = "error_description"]; // @gotags: `class:"public"`
string error_uri = 50 [json_name = "error_uri"]; // @gotags: `class:"public"`
string error = 30 [json_name = "error"]; // @gotags: `class:"public"`
string error_description = 40 [json_name = "error_description"]; // @gotags: `class:"public"`
string error_uri = 50 [json_name = "error_uri"]; // @gotags: `class:"public"`
}
// The structure of OIDC callback response parameters
message OidcAuthMethodAuthenticateCallbackResponse {
// The final redirection URL
string final_redirect_url = 10 [json_name = "final_redirect_url"]; // @gotags: `class:"public"`
string final_redirect_url = 10 [json_name = "final_redirect_url"]; // @gotags: `class:"public"`
}
// The structure of OIDC token request parameters
message OidcAuthMethodAuthenticateTokenRequest {
// The ID of the pending token
string token_id = 10 [json_name = "token_id"]; // @gotags: `class:"secret"`
string token_id = 10 [json_name = "token_id"]; // @gotags: `class:"secret"`
}
// Internal only: the structure of a token response if it _does not_ contain a
@@ -205,5 +298,5 @@ message OidcAuthMethodAuthenticateTokenRequest {
message OidcAuthMethodAuthenticateTokenResponse {
// The status. This will always be "unknown". It will never be forwarded to
// the consumer.
string status = 10; // @gotags: `class:"public"`
string status = 10; // @gotags: `class:"public"`
}
@@ -2,46 +2,46 @@ syntax = "proto3";
package controller.api.resources.authtokens.v1;
option go_package = "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/authtokens;authtokens";
import "google/protobuf/timestamp.proto";
import "controller/api/resources/scopes/v1/scope.proto";
import "google/protobuf/timestamp.proto";
option go_package = "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/authtokens;authtokens";
// AuthToken contains all fields related to an Auth Token resource
message AuthToken {
// Output only. The ID of the Auth Token.
string id = 10; // @gotags: `class:"public"`
// Output only. The ID of the Auth Token.
string id = 10; // @gotags: `class:"public"`
// The Scope in which this Auth Token was generated.
string scope_id = 20 [json_name="scope_id"]; // @gotags: `class:"public"`
// The Scope in which this Auth Token was generated.
string scope_id = 20 [json_name = "scope_id"]; // @gotags: `class:"public"`
// Output only. Scope information for this resource.
resources.scopes.v1.ScopeInfo scope = 30;
// Output only. Scope information for this resource.
resources.scopes.v1.ScopeInfo scope = 30;
// Output only. The token value, which will only be populated after authentication and is only ever visible to the end user whose login request resulted in this Auth Token being created.
string token = 40; // @gotags: `class:"secret"`
// Output only. The token value, which will only be populated after authentication and is only ever visible to the end user whose login request resulted in this Auth Token being created.
string token = 40; // @gotags: `class:"secret"`
// Output only. The ID of the User associated with this Auth Token.
string user_id = 50 [json_name="user_id"]; // @gotags: `class:"public"`
// Output only. The ID of the User associated with this Auth Token.
string user_id = 50 [json_name = "user_id"]; // @gotags: `class:"public"`
// Output only. The ID of the Auth Method associated with this Auth Token.
string auth_method_id = 60 [json_name="auth_method_id"]; // @gotags: `class:"public"`
// Output only. The ID of the Auth Method associated with this Auth Token.
string auth_method_id = 60 [json_name = "auth_method_id"]; // @gotags: `class:"public"`
// Output only. The ID of the Account associated with this Auth Token.
string account_id = 70 [json_name="account_id"]; // @gotags: `class:"public"`
// Output only. The ID of the Account associated with this Auth Token.
string account_id = 70 [json_name = "account_id"]; // @gotags: `class:"public"`
// Output only. The time this resource was created.
google.protobuf.Timestamp created_time = 80 [json_name="created_time"]; // @gotags: `class:"public"`
// Output only. The time this resource was created.
google.protobuf.Timestamp created_time = 80 [json_name = "created_time"]; // @gotags: `class:"public"`
// Output only. The time this resource was last updated.
google.protobuf.Timestamp updated_time = 90 [json_name="updated_time"]; // @gotags: `class:"public"`
// Output only. The time this resource was last updated.
google.protobuf.Timestamp updated_time = 90 [json_name = "updated_time"]; // @gotags: `class:"public"`
// Output only. The approximate time this Auth Token was last used.
google.protobuf.Timestamp approximate_last_used_time = 100 [json_name = "approximate_last_used_time"]; // @gotags: `class:"public"`
// Output only. The approximate time this Auth Token was last used.
google.protobuf.Timestamp approximate_last_used_time = 100 [json_name = "approximate_last_used_time"]; // @gotags: `class:"public"`
// Output only. The time this Auth Token expires.
google.protobuf.Timestamp expiration_time = 110 [json_name="expiration_time"]; // @gotags: `class:"public"`
// Output only. The time this Auth Token expires.
google.protobuf.Timestamp expiration_time = 110 [json_name = "expiration_time"]; // @gotags: `class:"public"`
// Output only. The available actions on this resource for this user.
repeated string authorized_actions = 300 [json_name="authorized_actions"]; // @gotags: `class:"public"`
// Output only. The available actions on this resource for this user.
repeated string authorized_actions = 300 [json_name = "authorized_actions"]; // @gotags: `class:"public"`
}
@@ -2,14 +2,14 @@ syntax = "proto3";
package controller.api.resources.credentiallibraries.v1;
option go_package = "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/credentiallibraries;credentiallibraries";
import "google/protobuf/timestamp.proto";
import "google/protobuf/wrappers.proto";
import "google/protobuf/struct.proto";
import "google/api/visibility.proto";
import "controller/api/resources/scopes/v1/scope.proto";
import "controller/custom_options/v1/options.proto";
import "google/api/visibility.proto";
import "google/protobuf/struct.proto";
import "google/protobuf/timestamp.proto";
import "google/protobuf/wrappers.proto";
option go_package = "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/credentiallibraries;credentiallibraries";
// CredentialLibrary contains all fields related to an Credential Library resource
message CredentialLibrary {
@@ -26,10 +26,22 @@ message CredentialLibrary {
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"`
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"`
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"`
@@ -61,20 +73,46 @@ message CredentialLibrary {
repeated string authorized_actions = 300 [json_name = "authorized_actions"]; // @gotags: `class:"public"`
// The type of credential this library will issue, defaults to Unspecified
string credential_type = 310 [json_name = "credential_type", (custom_options.v1.generate_sdk_option) = true]; // @gotags: `class:"public"`
string credential_type = 310 [
json_name = "credential_type",
(custom_options.v1.generate_sdk_option) = true
]; // @gotags: `class:"public"`
// The credential mapping overrides
google.protobuf.Struct credential_mapping_overrides = 320 [json_name = "credential_mapping_overrides", (custom_options.v1.generate_sdk_option) = true];
google.protobuf.Struct credential_mapping_overrides = 320 [
json_name = "credential_mapping_overrides",
(custom_options.v1.generate_sdk_option) = true
];
}
// The attributes of a vault typed Credential Library.
message VaultCredentialLibraryAttributes {
// The path in Vault to request credentials from.
google.protobuf.StringValue path = 10 [(custom_options.v1.generate_sdk_option) = true, (custom_options.v1.mask_mapping) = { this: "attributes.path" that: "VaultPath" }]; // @gotags: `class:"public"`
google.protobuf.StringValue path = 10 [
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.mask_mapping) = {
this: "attributes.path"
that: "VaultPath"
}
]; // @gotags: `class:"public"`
// The HTTP method the library uses to communicate with Vault.
google.protobuf.StringValue http_method = 20 [json_name = "http_method", (custom_options.v1.generate_sdk_option) = true, (custom_options.v1.mask_mapping) = { this: "attributes.http_method" that: "HttpMethod" }]; // @gotags: `class:"public"`
google.protobuf.StringValue http_method = 20 [
json_name = "http_method",
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.mask_mapping) = {
this: "attributes.http_method"
that: "HttpMethod"
}
]; // @gotags: `class:"public"`
// The body of the HTTP request the library sends to vault. When set http_method must be "POST"
google.protobuf.StringValue http_request_body = 30 [json_name = "http_request_body", (custom_options.v1.generate_sdk_option) = true, (custom_options.v1.mask_mapping) = { this: "attributes.http_request_body" that: "HttpRequestBody" }]; // @gotags: `class:"secret"`
google.protobuf.StringValue http_request_body = 30 [
json_name = "http_request_body",
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.mask_mapping) = {
this: "attributes.http_request_body"
that: "HttpRequestBody"
}
]; // @gotags: `class:"secret"`
}
@@ -2,14 +2,14 @@ syntax = "proto3";
package controller.api.resources.credentialstores.v1;
option go_package = "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/credentialstores;credentialstores";
import "google/protobuf/timestamp.proto";
import "google/protobuf/wrappers.proto";
import "google/protobuf/struct.proto";
import "google/api/visibility.proto";
import "controller/api/resources/scopes/v1/scope.proto";
import "controller/custom_options/v1/options.proto";
import "google/api/visibility.proto";
import "google/protobuf/struct.proto";
import "google/protobuf/timestamp.proto";
import "google/protobuf/wrappers.proto";
option go_package = "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/credentialstores;credentialstores";
// CredentialStore contains all fields related to an Credential Store resource
message CredentialStore {
@@ -23,10 +23,22 @@ message CredentialStore {
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"`
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"`
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"`
@@ -64,22 +76,64 @@ message CredentialStore {
// The attributes of a vault typed Credential Store.
message VaultCredentialStoreAttributes {
// The complete url address of vault.
google.protobuf.StringValue address = 10 [json_name = "address", (custom_options.v1.generate_sdk_option) = true, (custom_options.v1.mask_mapping) = { this: "attributes.address" that: "VaultAddress" }]; // @gotags: `class:"public"`
google.protobuf.StringValue address = 10 [
json_name = "address",
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.mask_mapping) = {
this: "attributes.address"
that: "VaultAddress"
}
]; // @gotags: `class:"public"`
// The namespace of vault used by this store
google.protobuf.StringValue namespace = 20 [json_name = "namespace", (custom_options.v1.generate_sdk_option) = true, (custom_options.v1.mask_mapping) = { this: "attributes.namespace" that: "Namespace" }]; // @gotags: `class:"public"`
google.protobuf.StringValue namespace = 20 [
json_name = "namespace",
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.mask_mapping) = {
this: "attributes.namespace"
that: "Namespace"
}
]; // @gotags: `class:"public"`
// The PEM encoded CA cert to verify the vault server's ssl certificate
google.protobuf.StringValue ca_cert = 30 [json_name = "ca_cert", (custom_options.v1.generate_sdk_option) = true, (custom_options.v1.mask_mapping) = { this: "attributes.ca_cert" that: "CaCert" }]; // @gotags: `class:"public"`
google.protobuf.StringValue ca_cert = 30 [
json_name = "ca_cert",
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.mask_mapping) = {
this: "attributes.ca_cert"
that: "CaCert"
}
]; // @gotags: `class:"public"`
// The value to use as the SNI host when connecting to vault via TLS.
google.protobuf.StringValue tls_server_name = 40 [json_name = "tls_server_name", (custom_options.v1.generate_sdk_option) = true, (custom_options.v1.mask_mapping) = { this: "attributes.tls_server_name" that: "TlsServerName" }]; // @gotags: `class:"public"`
google.protobuf.StringValue tls_server_name = 40 [
json_name = "tls_server_name",
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.mask_mapping) = {
this: "attributes.tls_server_name"
that: "TlsServerName"
}
]; // @gotags: `class:"public"`
// When set to true verification of the TLS certificate is disabled.
google.protobuf.BoolValue tls_skip_verify = 50 [json_name = "tls_skip_verify", (custom_options.v1.generate_sdk_option) = true, (custom_options.v1.mask_mapping) = { this: "attributes.tls_skip_verify" that: "TlsSkipVerify" }]; // @gotags: `class:"public"`
google.protobuf.BoolValue tls_skip_verify = 50 [
json_name = "tls_skip_verify",
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.mask_mapping) = {
this: "attributes.tls_skip_verify"
that: "TlsSkipVerify"
}
]; // @gotags: `class:"public"`
// Input only. The current vault token used by this credential store for creating new credentials.
google.protobuf.StringValue token = 60 [json_name = "token", (custom_options.v1.generate_sdk_option) = true, (custom_options.v1.mask_mapping) = { this: "attributes.token" that: "Token" }]; // @gotags: `class:"secret"`
google.protobuf.StringValue token = 60 [
json_name = "token",
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.mask_mapping) = {
this: "attributes.token"
that: "Token"
}
]; // @gotags: `class:"secret"`
// Output only. The hmac value of the vault token used by this credential store.
string token_hmac = 70 [json_name = "token_hmac"]; // @gotags: `class:"public"`
@@ -88,10 +142,24 @@ message VaultCredentialStoreAttributes {
// optional private key included in the bundle. It is an error to include
// the private key in this bundle as well as setting the certificate_key
// field.
google.protobuf.StringValue client_certificate = 80 [json_name = "client_certificate", (custom_options.v1.generate_sdk_option) = true, (custom_options.v1.mask_mapping) = { this: "attributes.client_certificate" that: "Certificate" }]; // @gotags: `class:"secret"`
google.protobuf.StringValue client_certificate = 80 [
json_name = "client_certificate",
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.mask_mapping) = {
this: "attributes.client_certificate"
that: "Certificate"
}
]; // @gotags: `class:"secret"`
// Input only. A client certificate private key.
google.protobuf.StringValue client_certificate_key = 90 [json_name = "client_certificate_key", (custom_options.v1.generate_sdk_option) = true, (custom_options.v1.mask_mapping) = { this: "attributes.client_certificate_key" that: "CertificateKey" }]; // @gotags: `class:"secret"`
google.protobuf.StringValue client_certificate_key = 90 [
json_name = "client_certificate_key",
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.mask_mapping) = {
this: "attributes.client_certificate_key"
that: "CertificateKey"
}
]; // @gotags: `class:"secret"`
// Output only. The hmac value of the private key used by the credential store.
string client_certificate_key_hmac = 100 [json_name = "client_certificate_key_hmac"]; // @gotags: `class:"public"`
@@ -2,54 +2,66 @@ syntax = "proto3";
package controller.api.resources.groups.v1;
option go_package = "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/groups;groups";
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";
import "google/protobuf/timestamp.proto";
import "google/protobuf/wrappers.proto";
option go_package = "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/groups;groups";
message Member {
// Output only. The ID of the member.
string id = 10; // @gotags: `class:"public"`
// Output only. The ID of the member.
string id = 10; // @gotags: `class:"public"`
// Output only. The Scope ID of the member.
string scope_id = 20 [json_name="scope_id"]; // @gotags: `class:"public"`
// Output only. The Scope ID of the member.
string scope_id = 20 [json_name = "scope_id"]; // @gotags: `class:"public"`
}
// Group contains all fields related to a Group resource
message Group {
// Output only. The ID of the Group.
string id = 10; // @gotags: `class:"public"`
// Output only. The ID of the Group.
string id = 10; // @gotags: `class:"public"`
// The ID of the scope of which this Group is a part.
string scope_id = 20 [json_name="scope_id"]; // @gotags: `class:"public"`
// The ID of the scope of which this Group is a part.
string scope_id = 20 [json_name = "scope_id"]; // @gotags: `class:"public"`
// Output only. Scope information for this Group.
resources.scopes.v1.ScopeInfo scope = 30;
// Output only. Scope information for this Group.
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 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 descripton 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"`
// Optional user-set descripton 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"`
// Output only. The time this resource was created.
google.protobuf.Timestamp created_time = 60 [json_name = "created_time"]; // @gotags: `class:"public"`
// Output only. The time this resource was last updated.
google.protobuf.Timestamp updated_time = 70 [json_name="updated_time"]; // @gotags: `class:"public"`
// Output only. The time this resource was last updated.
google.protobuf.Timestamp updated_time = 70 [json_name = "updated_time"]; // @gotags: `class:"public"`
// 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"`
// 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. Contains the list of member IDs in this Group.
repeated string member_ids = 90 [json_name="member_ids"]; // @gotags: `class:"public"`
// Output only. Contains the list of member IDs in this Group.
repeated string member_ids = 90 [json_name = "member_ids"]; // @gotags: `class:"public"`
// Output only. The members of this Group.
repeated Member members = 100;
// Output only. The members of this Group.
repeated Member members = 100;
// Output only. The available actions on this resource for this user.
repeated string authorized_actions = 300 [json_name="authorized_actions"]; // @gotags: `class:"public"`
// Output only. The available actions on this resource for this user.
repeated string authorized_actions = 300 [json_name = "authorized_actions"]; // @gotags: `class:"public"`
}
@@ -2,65 +2,83 @@ syntax = "proto3";
package controller.api.resources.hostcatalogs.v1;
option go_package = "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/hostcatalogs;hostcatalogs";
import "controller/api/resources/plugins/v1/plugin.proto";
import "controller/api/resources/scopes/v1/scope.proto";
import "controller/custom_options/v1/options.proto";
import "google/protobuf/struct.proto";
import "google/protobuf/timestamp.proto";
import "google/protobuf/wrappers.proto";
import "google/protobuf/struct.proto";
import "controller/api/resources/scopes/v1/scope.proto";
import "controller/api/resources/plugins/v1/plugin.proto";
import "controller/custom_options/v1/options.proto";
option go_package = "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/hostcatalogs;hostcatalogs";
// HostCatalog manages Hosts and Host Sets
message HostCatalog {
// Output only. The ID of the host.
string id = 10; // @gotags: `class:"public"`
// Output only. The ID of the host.
string id = 10; // @gotags: `class:"public"`
// The ID of the Scope of which this Host Catalog is a part.
string scope_id = 20 [json_name="scope_id"]; // @gotags: `class:"public"`
// The ID of the Scope of which this Host Catalog is a part.
string scope_id = 20 [json_name = "scope_id"]; // @gotags: `class:"public"`
// Output only. Scope information for this resource.
resources.scopes.v1.ScopeInfo scope = 30;
// Output only. Scope information for this resource.
resources.scopes.v1.ScopeInfo scope = 30;
// The ID of the plugin of which this catalog is created.
string plugin_id = 34 [json_name="plugin_id", (custom_options.v1.generate_sdk_option) = true]; // @gotags: `class:"public"`
// The ID of the plugin of which this catalog is created.
string plugin_id = 34 [
json_name = "plugin_id",
(custom_options.v1.generate_sdk_option) = true
]; // @gotags: `class:"public"`
// Output only. Plugin information for this resource.
resources.plugins.v1.PluginInfo plugin = 35;
// Output only. Plugin information for this resource.
resources.plugins.v1.PluginInfo plugin = 35;
// 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 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"`
// 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"`
// Output only. The time this resource was created.
google.protobuf.Timestamp created_time = 60 [json_name = "created_time"]; // @gotags: `class:"public"`
// Output only. The time this resource was last updated.
google.protobuf.Timestamp updated_time = 70 [json_name="updated_time"]; // @gotags: `class:"public"`
// Output only. The time this resource was last updated.
google.protobuf.Timestamp updated_time = 70 [json_name = "updated_time"]; // @gotags: `class:"public"`
// 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"`
// 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"`
// The type of Host Catalog.
string type = 90; // @gotags: `class:"public"`
// The type of Host Catalog.
string type = 90; // @gotags: `class:"public"`
oneof attrs {
// Attributes specific to the catalog type.
google.protobuf.Struct attributes = 100 [(custom_options.v1.generate_sdk_option) = true, (custom_options.v1.subtype) = "default"];
}
oneof attrs {
// Attributes specific to the catalog type.
google.protobuf.Struct attributes = 100 [
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.subtype) = "default"
];
}
// Secrets specific to the catalog type. These are never output.
google.protobuf.Struct secrets = 110 [(custom_options.v1.generate_sdk_option) = true];
// Secrets specific to the catalog type. These are never output.
google.protobuf.Struct secrets = 110 [(custom_options.v1.generate_sdk_option) = true];
// Output only. The HMAC of the last secrets supplied via the API, if any.
string secrets_hmac = 120; // @gotags: `class:"public"`
// Output only. The HMAC of the last secrets supplied via the API, if any.
string secrets_hmac = 120; // @gotags: `class:"public"`
// Output only. The available actions on this resource for this user.
repeated string authorized_actions = 300 [json_name="authorized_actions"]; // @gotags: `class:"public"`
// Output only. The available actions on this resource for this user.
repeated string authorized_actions = 300 [json_name = "authorized_actions"]; // @gotags: `class:"public"`
// Output only. The authorized actions for the scope's collections.
map<string, google.protobuf.ListValue> authorized_collection_actions = 310 [json_name="authorized_collection_actions"]; // classified as public via taggable implementation
// Output only. The authorized actions for the scope's collections.
map<string, google.protobuf.ListValue> authorized_collection_actions = 310 [json_name = "authorized_collection_actions"]; // classified as public via taggable implementation
}
@@ -2,76 +2,100 @@ syntax = "proto3";
package controller.api.resources.hosts.v1;
option go_package = "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/hosts;hosts";
import "controller/api/resources/plugins/v1/plugin.proto";
import "controller/api/resources/scopes/v1/scope.proto";
import "controller/custom_options/v1/options.proto";
import "google/api/visibility.proto";
import "google/protobuf/struct.proto";
import "google/protobuf/timestamp.proto";
import "google/protobuf/wrappers.proto";
import "google/api/visibility.proto";
import "controller/api/resources/scopes/v1/scope.proto";
import "controller/api/resources/plugins/v1/plugin.proto";
import "controller/custom_options/v1/options.proto";
option go_package = "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/hosts;hosts";
// Host contains all fields related to a Host resource
message Host {
// Output only. The ID of the Host.
string id = 10; // @gotags: `class:"public"`
// Output only. The ID of the Host.
string id = 10; // @gotags: `class:"public"`
// The Host Catalog of which this Host is a part.
string host_catalog_id = 20 [json_name="host_catalog_id", (custom_options.v1.subtype_source_id) = true]; // @gotags: `class:"public"`
// The Host Catalog of which this Host is a part.
string host_catalog_id = 20 [
json_name = "host_catalog_id",
(custom_options.v1.subtype_source_id) = true
]; // @gotags: `class:"public"`
// Output only. Scope information for this resource.
resources.scopes.v1.ScopeInfo scope = 30;
// Output only. Scope information for this resource.
resources.scopes.v1.ScopeInfo scope = 30;
// Output only. Plugin information for this resource.
resources.plugins.v1.PluginInfo plugin = 35;
// Output only. Plugin information for this resource.
resources.plugins.v1.PluginInfo plugin = 35;
// 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 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"`
// 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"`
// Output only. The time this resource was created.
google.protobuf.Timestamp created_time = 60 [json_name = "created_time"]; // @gotags: `class:"public"`
// Output only. The time this resource was last updated.
google.protobuf.Timestamp updated_time = 70 [json_name="updated_time"]; // @gotags: `class:"public"`
// Output only. The time this resource was last updated.
google.protobuf.Timestamp updated_time = 70 [json_name = "updated_time"]; // @gotags: `class:"public"`
// 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"`
// 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"`
// The type of the resource.
string type = 90; // @gotags: `class:"public"`
// The type of the resource.
string type = 90; // @gotags: `class:"public"`
// Output only. A list of Host Sets containing this Host.
repeated string host_set_ids = 100 [json_name="host_set_ids"]; // @gotags: `class:"public"`
// Output only. A list of Host Sets containing this Host.
repeated string host_set_ids = 100 [json_name = "host_set_ids"]; // @gotags: `class:"public"`
oneof attrs {
// The attributes that are applicable to the specific Host type.
google.protobuf.Struct attributes = 110 [(custom_options.v1.generate_sdk_option) = true, (custom_options.v1.subtype) = "default"];
StaticHostAttributes static_host_attributes = 111 [
(google.api.field_visibility).restriction = "INTERNAL",
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.subtype) = "static"
];
}
oneof attrs {
// The attributes that are applicable to the specific Host type.
google.protobuf.Struct attributes = 110 [
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.subtype) = "default"
];
StaticHostAttributes static_host_attributes = 111 [
(google.api.field_visibility).restriction = "INTERNAL",
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.subtype) = "static"
];
}
// Output only. The list of ip addresses associated with this host.
repeated string ip_addresses = 120; // @gotags: `class:"public"`
// Output only. The list of ip addresses associated with this host.
repeated string ip_addresses = 120; // @gotags: `class:"public"`
// Output only. The list of dns addresses associated with this host.
repeated string dns_names = 130; // @gotags: `class:"public"`
// Output only. The list of dns addresses associated with this host.
repeated string dns_names = 130; // @gotags: `class:"public"`
// Output only. The external ID of the host, if any.
string external_id = 140; // @gotags: `class:"public"`
// Output only. The external ID of the host, if any.
string external_id = 140; // @gotags: `class:"public"`
// Output only. The available actions on this resource for this user.
repeated string authorized_actions = 300 [json_name="authorized_actions"]; // @gotags: `class:"public"`
// Output only. The available actions on this resource for this user.
repeated string authorized_actions = 300 [json_name = "authorized_actions"]; // @gotags: `class:"public"`
}
message StaticHostAttributes {
// The address (DNS or IP name) used to reach the Host.
google.protobuf.StringValue address = 10 [(custom_options.v1.generate_sdk_option) = true, (custom_options.v1.mask_mapping) = {this:"attributes.address" that: "address"}]; // @gotags: `class:"public"`
// The address (DNS or IP name) used to reach the Host.
google.protobuf.StringValue address = 10 [
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.mask_mapping) = {
this: "attributes.address"
that: "address"
}
]; // @gotags: `class:"public"`
}
@@ -2,72 +2,101 @@ syntax = "proto3";
package controller.api.resources.hostsets.v1;
option go_package = "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/hostsets;hostsets";
import "controller/api/resources/plugins/v1/plugin.proto";
import "controller/api/resources/scopes/v1/scope.proto";
import "controller/custom_options/v1/options.proto";
import "google/protobuf/struct.proto";
import "google/protobuf/timestamp.proto";
import "google/protobuf/wrappers.proto";
import "controller/api/resources/scopes/v1/scope.proto";
import "controller/api/resources/plugins/v1/plugin.proto";
import "controller/custom_options/v1/options.proto";
option go_package = "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/hostsets;hostsets";
// HostSet is a collection of Hosts created and managed by a Host Catalog
message HostSet {
// Output only. The ID of the Host Set.
string id = 10; // @gotags: `class:"public"`
// Output only. The ID of the Host Set.
string id = 10; // @gotags: `class:"public"`
// The Host Catalog of which this Host Set is a part.
string host_catalog_id = 20 [json_name="host_catalog_id"]; // @gotags: `class:"public"`
// The Host Catalog of which this Host Set is a part.
string host_catalog_id = 20 [json_name = "host_catalog_id"]; // @gotags: `class:"public"`
// Output only. Scope information for this resource.
resources.scopes.v1.ScopeInfo scope = 30;
// Output only. Scope information for this resource.
resources.scopes.v1.ScopeInfo scope = 30;
// Output only. Plugin information for this resource.
resources.plugins.v1.PluginInfo plugin = 35;
// Output only. Plugin information for this resource.
resources.plugins.v1.PluginInfo plugin = 35;
// 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 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"`
// 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"`
// Output only. The time this resource was created.
google.protobuf.Timestamp created_time = 60 [json_name = "created_time"]; // @gotags: `class:"public"`
// Output only. The time this resource was last updated.
google.protobuf.Timestamp updated_time = 70 [json_name="updated_time"]; // @gotags: `class:"public"`
// Output only. The time this resource was last updated.
google.protobuf.Timestamp updated_time = 70 [json_name = "updated_time"]; // @gotags: `class:"public"`
// 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"`
// 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"`
// The type of the Host Set.
string type = 90; // @gotags: `class:"public"`
// The type of the Host Set.
string type = 90; // @gotags: `class:"public"`
// Output only. A list of Hosts in this Host Set.
repeated string host_ids = 100 [json_name="host_ids"]; // @gotags: `class:"public"`
// Output only. A list of Hosts in this Host Set.
repeated string host_ids = 100 [json_name = "host_ids"]; // @gotags: `class:"public"`
// multiple possible endpoints for a host. Preferences are specified by
// "cidr:<valid IPv4/6 CIDR>" or "dns:<globbed name>", specifying which IP
// address or DNS name out of a host's available possibilities should be
// preferred. If no preferences are specified, a value will be chosen from
// among all avialable values using a built-in priority order. May not be
// valid for all plugin types.
repeated string preferred_endpoints = 101 [json_name="preferred_endpoints", (custom_options.v1.generate_sdk_option) = true, (custom_options.v1.mask_mapping) = {this:"preferred_endpoints" that: "PreferredEndpoints"}]; // @gotags: `class:"public"`
// multiple possible endpoints for a host. Preferences are specified by
// "cidr:<valid IPv4/6 CIDR>" or "dns:<globbed name>", specifying which IP
// address or DNS name out of a host's available possibilities should be
// preferred. If no preferences are specified, a value will be chosen from
// among all avialable values using a built-in priority order. May not be
// valid for all plugin types.
repeated string preferred_endpoints = 101 [
json_name = "preferred_endpoints",
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.mask_mapping) = {
this: "preferred_endpoints"
that: "PreferredEndpoints"
}
]; // @gotags: `class:"public"`
// An interger number of seconds indicating the amount of time that should
// elapse between syncs of the host set. The interval will be applied to the
// end of the previous sync operation, not the start. Setting to -1 will
// disable syncing for that host set; setting to zero will cause the set to
// use Boundary's default. The default may change between releases. May not
// be valid for all plugin types.
google.protobuf.Int32Value sync_interval_seconds = 102 [json_name="sync_interval_seconds", (custom_options.v1.generate_sdk_option) = true, (custom_options.v1.mask_mapping) = {this:"sync_interval_seconds" that: "SyncIntervalSeconds"}]; // @gotags: `class:"public"`
// An interger number of seconds indicating the amount of time that should
// elapse between syncs of the host set. The interval will be applied to the
// end of the previous sync operation, not the start. Setting to -1 will
// disable syncing for that host set; setting to zero will cause the set to
// use Boundary's default. The default may change between releases. May not
// be valid for all plugin types.
google.protobuf.Int32Value sync_interval_seconds = 102 [
json_name = "sync_interval_seconds",
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.mask_mapping) = {
this: "sync_interval_seconds"
that: "SyncIntervalSeconds"
}
]; // @gotags: `class:"public"`
oneof attrs {
// The attributes that are applicable for the specific Host Set type.
google.protobuf.Struct attributes = 110 [(custom_options.v1.generate_sdk_option) = true, (custom_options.v1.subtype) = "default"];
}
oneof attrs {
// The attributes that are applicable for the specific Host Set type.
google.protobuf.Struct attributes = 110 [
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.subtype) = "default"
];
}
// Output only. The available actions on this resource for this user.
repeated string authorized_actions = 300 [json_name="authorized_actions"]; // @gotags: `class:"public"`
// Output only. The available actions on this resource for this user.
repeated string authorized_actions = 300 [json_name = "authorized_actions"]; // @gotags: `class:"public"`
}
@@ -2,67 +2,89 @@ syntax = "proto3";
package controller.api.resources.managedgroups.v1;
option go_package = "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/managedgroups;managedgroups";
import "google/protobuf/timestamp.proto";
import "google/protobuf/wrappers.proto";
import "google/protobuf/struct.proto";
import "google/api/visibility.proto";
import "controller/api/resources/scopes/v1/scope.proto";
import "controller/custom_options/v1/options.proto";
import "google/api/visibility.proto";
import "google/protobuf/struct.proto";
import "google/protobuf/timestamp.proto";
import "google/protobuf/wrappers.proto";
option go_package = "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/managedgroups;managedgroups";
// ManagedGroup contains all fields related to an ManagedGroup resource
message ManagedGroup {
// Output only. The ID of the ManagedGroup.
string id = 10; // @gotags: `class:"public"`
// Output only. The ID of the ManagedGroup.
string id = 10; // @gotags: `class:"public"`
// Output only. Scope information for the ManagedGroup.
resources.scopes.v1.ScopeInfo scope = 20;
// Output only. Scope information for the ManagedGroup.
resources.scopes.v1.ScopeInfo scope = 20;
// Optional name for identification purposes.
google.protobuf.StringValue name = 30 [(custom_options.v1.generate_sdk_option) = true, (custom_options.v1.mask_mapping) = {this:"name" that: "Name"}]; // @gotags: `class:"public"`
// Optional name for identification purposes.
google.protobuf.StringValue name = 30 [
(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 = 40 [(custom_options.v1.generate_sdk_option) = true, (custom_options.v1.mask_mapping) = {this:"description" that: "Description"}]; // @gotags: `class:"public"`
// Optional user-set description for identification purposes.
google.protobuf.StringValue description = 40 [
(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 = 50 [json_name="created_time"]; // @gotags: `class:"public"`
// Output only. The time this resource was created.
google.protobuf.Timestamp created_time = 50 [json_name = "created_time"]; // @gotags: `class:"public"`
// Output only. The time this resource was last updated.
google.protobuf.Timestamp updated_time = 60 [json_name="updated_time"]; // @gotags: `class:"public"`
// Output only. The time this resource was last updated.
google.protobuf.Timestamp updated_time = 60 [json_name = "updated_time"]; // @gotags: `class:"public"`
// 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 = 70; // @gotags: `class:"public"`
// 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 = 70; // @gotags: `class:"public"`
// The type of this ManagedGroup.
string type = 80; // @gotags: `class:"public"`
// The type of this ManagedGroup.
string type = 80; // @gotags: `class:"public"`
// The ID of the Auth Method that is associated with this ManagedGroup.
string auth_method_id = 90 [json_name="auth_method_id", (custom_options.v1.subtype_source_id) = true]; // @gotags: `class:"public"`
// The ID of the Auth Method that is associated with this ManagedGroup.
string auth_method_id = 90 [
json_name = "auth_method_id",
(custom_options.v1.subtype_source_id) = true
]; // @gotags: `class:"public"`
oneof attrs {
// The attributes that are applicable for the specific ManagedGroup type.
google.protobuf.Struct attributes = 100 [
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.subtype) = "default"
];
OidcManagedGroupAttributes oidc_managed_group_attributes = 101 [
(google.api.field_visibility).restriction = "INTERNAL",
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.subtype) = "oidc"
];
}
oneof attrs {
// The attributes that are applicable for the specific ManagedGroup type.
google.protobuf.Struct attributes = 100 [
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.subtype) = "default"
];
OidcManagedGroupAttributes oidc_managed_group_attributes = 101 [
(google.api.field_visibility).restriction = "INTERNAL",
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.subtype) = "oidc"
];
}
// Output only. The IDs of the current set of members (accounts) that are associated with this ManagedGroup.
repeated string member_ids = 110 [json_name="member_ids"]; // @gotags: `class:"public"`
// Output only. The IDs of the current set of members (accounts) that are associated with this ManagedGroup.
repeated string member_ids = 110 [json_name = "member_ids"]; // @gotags: `class:"public"`
// Output only. The available actions on this resource for this user.
repeated string authorized_actions = 300 [json_name="authorized_actions"]; // @gotags: `class:"public"`
// Output only. The available actions on this resource for this user.
repeated string authorized_actions = 300 [json_name = "authorized_actions"]; // @gotags: `class:"public"`
}
// Attributes associated only with ManagedGroups with type "oidc".
message OidcManagedGroupAttributes {
// The boolean expression filter to use to determine membership.
string filter = 10 [json_name="filter", (custom_options.v1.generate_sdk_option) = true, (custom_options.v1.mask_mapping) = {this:"attributes.filter" that: "Filter"}]; // @gotags: `class:"public"`
// The boolean expression filter to use to determine membership.
string filter = 10 [
json_name = "filter",
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.mask_mapping) = {
this: "attributes.filter"
that: "Filter"
}
]; // @gotags: `class:"public"`
}
@@ -6,11 +6,11 @@ option go_package = "github.com/hashicorp/boundary/sdk/pbs/controller/api/resour
message PluginInfo {
// Output only. The ID of the Plugin.
string id = 1; // @gotags: `class:"public"`
string id = 1; // @gotags: `class:"public"`
// Output only. The name of the plugin resource in boundary, if any.
string name = 2; // @gotags: `class:"public"`
string name = 2; // @gotags: `class:"public"`
// Output only. The description of the plugin in boundary, if any.
string description = 3; // @gotags: `class:"public"`
string description = 3; // @gotags: `class:"public"`
}
@@ -2,88 +2,107 @@ 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";
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"`
// Output only. The ID of the principal.
string id = 1; // @gotags: `class:"public"`
// Output only. The type of the principal.
string type = 2; // @gotags: `class:"public"`
// Output only. The type of the principal.
string type = 2; // @gotags: `class:"public"`
// Output only. The Scope of the principal.
string scope_id = 3 [json_name="scope_id"]; // @gotags: `class:"public"`
// Output only. The Scope of the principal.
string scope_id = 3 [json_name = "scope_id"]; // @gotags: `class:"public"`
}
message GrantJson {
// Output only. The ID, if set.
string id = 1; // @gotags: `class:"public"`
// Output only. The ID, if set.
string id = 1; // @gotags: `class:"public"`
// Output only. The type, if set.
string type = 2; // @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"`
// 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 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 canonically-formatted string.
string canonical = 2; // @gotags: `class:"public"`
// Output only. The JSON representation of the grant.
GrantJson json = 3;
// 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; // @gotags: `class:"public"`
// Output only. The ID of the Role.
string id = 10; // @gotags: `class:"public"`
// The ID of the Scope containing this Role.
string scope_id = 20 [json_name="scope_id"]; // @gotags: `class:"public"`
// The ID of the Scope containing this Role.
string scope_id = 20 [json_name = "scope_id"]; // @gotags: `class:"public"`
// Output only. Scope information for this resource.
resources.scopes.v1.ScopeInfo scope = 30;
// 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 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"`
// 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"`
// Output only. The time this resource was created.
google.protobuf.Timestamp created_time = 60 [json_name = "created_time"]; // @gotags: `class:"public"`
// Output only. The time this resource was last updated.
google.protobuf.Timestamp updated_time = 70 [json_name="updated_time"]; // @gotags: `class:"public"`
// Output only. The time this resource was last updated.
google.protobuf.Timestamp updated_time = 70 [json_name = "updated_time"]; // @gotags: `class:"public"`
// 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"`
// 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"`
// 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"}]; // @gotags: `class:"public"`
// 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"
}
]; // @gotags: `class:"public"`
// 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"`
// 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"`
// Output only. The principals that are assigned to this role.
repeated Principal principals = 110;
// 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 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 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"`
// Output only. The available actions on this resource for this user.
repeated string authorized_actions = 300 [json_name = "authorized_actions"]; // @gotags: `class:"public"`
}
@@ -2,71 +2,85 @@ syntax = "proto3";
package controller.api.resources.scopes.v1;
option go_package = "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/scopes;scopes";
import "controller/custom_options/v1/options.proto";
import "google/protobuf/struct.proto";
import "google/protobuf/timestamp.proto";
import "google/protobuf/wrappers.proto";
import "google/protobuf/struct.proto";
import "controller/custom_options/v1/options.proto";
option go_package = "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/scopes;scopes";
message ScopeInfo {
// Output only. The ID of the Scope.
string id = 1; // @gotags: `class:"public"`
string id = 1; // @gotags: `class:"public"`
// Output only. The type of the Scope.
string type = 2; // @gotags: `class:"public"`
string type = 2; // @gotags: `class:"public"`
// Output only. The name of the Scope, if any.
string name = 3; // @gotags: `class:"public"`
string name = 3; // @gotags: `class:"public"`
// Output only. The description of the Scope, if any.
string description = 4; // @gotags: `class:"public"`
string description = 4; // @gotags: `class:"public"`
// Output only. The ID of the parent Scope, if any. This field will be empty if this is the "global" scope.
string parent_scope_id = 5 [json_name = "parent_scope_id"]; // @gotags: `class:"public"`
string parent_scope_id = 5 [json_name = "parent_scope_id"]; // @gotags: `class:"public"`
}
// Scope contains all fields related to a Scope resource
message Scope {
// Output only. The ID of the Scope.
string id = 10; // @gotags: `class:"public"`
string id = 10; // @gotags: `class:"public"`
// The ID of the Scope this resource is in. If this is the "global" Scope this field will be empty.
string scope_id = 20 [json_name = "scope_id"]; // @gotags: `class:"public"`
string scope_id = 20 [json_name = "scope_id"]; // @gotags: `class:"public"`
// Output only. Scope information for this resource.
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"`
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 descripton 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"`
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"`
google.protobuf.Timestamp created_time = 60 [json_name = "created_time"]; // @gotags: `class:"public"`
// Output only. The time this resource was last updated.
google.protobuf.Timestamp updated_time = 70 [json_name = "updated_time"]; // @gotags: `class:"public"`
google.protobuf.Timestamp updated_time = 70 [json_name = "updated_time"]; // @gotags: `class:"public"`
// 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"`
uint32 version = 80; // @gotags: `class:"public"`
// The type of the resource.
string type = 90; // @gotags: `class:"public"`
string type = 90; // @gotags: `class:"public"`
// The ID of the primary auth method for this scope. A primary auth method
// is allowed to vivify users when new accounts are created and is the source for the users account info
google.protobuf.StringValue primary_auth_method_id = 100 [
json_name = "primary_auth_method_id",
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.mask_mapping) = { this: "primary_auth_method_id" that: "PrimaryAuthMethodId" }
]; // @gotags: `class:"public"`
(custom_options.v1.mask_mapping) = {
this: "primary_auth_method_id"
that: "PrimaryAuthMethodId"
}
]; // @gotags: `class:"public"`
// Output only. The available actions on this resource for this user.
repeated string authorized_actions = 300 [json_name = "authorized_actions"]; // @gotags: `class:"public"`
repeated string authorized_actions = 300 [json_name = "authorized_actions"]; // @gotags: `class:"public"`
// Output only. The authorized actions for the scope's collections.
map<string, google.protobuf.ListValue> authorized_collection_actions = 310 [json_name = "authorized_collection_actions"];
@@ -2,10 +2,10 @@ syntax = "proto3";
package controller.api.resources.sessions.v1;
option go_package = "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/sessions;sessions";
import "google/protobuf/timestamp.proto";
import "controller/api/resources/scopes/v1/scope.proto";
import "google/protobuf/timestamp.proto";
option go_package = "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/sessions;sessions";
message WorkerInfo {
// The address of the worker.
@@ -25,27 +25,26 @@ message SessionState {
// Connection contains information about a specific connection in a session
message Connection {
// client_tcp_address of the connection
string client_tcp_address = 3; // @gotags: `class:"public"`
// client_tcp_address of the connection
string client_tcp_address = 3; // @gotags: `class:"public"`
// client_tcp_port of the connection
uint32 client_tcp_port = 4; // @gotags: `class:"public"`
// client_tcp_port of the connection
uint32 client_tcp_port = 4; // @gotags: `class:"public"`
// endpoint_tcp_address of the connection
string endpoint_tcp_address = 5; // @gotags: `class:"public"`
// endpoint_tcp_address of the connection
string endpoint_tcp_address = 5; // @gotags: `class:"public"`
// endpoint_tcp_port of the connection
uint32 endpoint_tcp_port = 6; // @gotags: `class:"public"`
// endpoint_tcp_port of the connection
uint32 endpoint_tcp_port = 6; // @gotags: `class:"public"`
// bytes_up of the connection
uint64 bytes_up = 7; // @gotags: `class:"public"`
// bytes_up of the connection
uint64 bytes_up = 7; // @gotags: `class:"public"`
// bytes_down of the connection
uint64 bytes_down = 8; // @gotags: `class:"public"`
// bytes_down of the connection
uint64 bytes_down = 8; // @gotags: `class:"public"`
// closed_reason of the conneciont
string closed_reason = 9; // @gotags: `class:"public"`
// closed_reason of the conneciont
string closed_reason = 9; // @gotags: `class:"public"`
}
// Session contains all fields related to a Session resource
@@ -108,7 +107,7 @@ message Session {
string termination_reason = 210 [json_name = "termination_reason"]; // @gotags: `class:"public"`
// Output only. The available actions on this resource for this user.
repeated string authorized_actions = 300 [json_name="authorized_actions"]; // @gotags: `class:"public"`
repeated string authorized_actions = 300 [json_name = "authorized_actions"]; // @gotags: `class:"public"`
// Output only. The associated connections with this session.
repeated Connection connections = 310;
@@ -2,14 +2,14 @@ syntax = "proto3";
package controller.api.resources.targets.v1;
option go_package = "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/targets;targets";
import "google/protobuf/timestamp.proto";
import "google/protobuf/wrappers.proto";
import "google/protobuf/struct.proto";
import "google/api/visibility.proto";
import "controller/api/resources/scopes/v1/scope.proto";
import "controller/custom_options/v1/options.proto";
import "google/api/visibility.proto";
import "google/protobuf/struct.proto";
import "google/protobuf/timestamp.proto";
import "google/protobuf/wrappers.proto";
option go_package = "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/targets;targets";
message HostSource {
// Output only. The ID of the Host Set.
@@ -85,7 +85,7 @@ message SessionCredential {
// Output only. The secret of this credential base64 encoded.
SessionSecret secret = 20;
// Output only. The fields of the strongly typed credential, empty if the credential type of the
// Output only. The fields of the strongly typed credential, empty if the credential type of the
// credential source is unspecified.
google.protobuf.Struct credential = 40;
}
@@ -102,10 +102,22 @@ message Target {
resources.scopes.v1.ScopeInfo scope = 30;
// Required 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"`
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"`
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"`
@@ -133,21 +145,45 @@ message Target {
repeated HostSource host_sources = 430 [json_name = "host_sources"];
// Maximum total lifetime of a created Session, in seconds.
google.protobuf.UInt32Value session_max_seconds = 120
[json_name = "session_max_seconds", (custom_options.v1.generate_sdk_option) = true, (custom_options.v1.mask_mapping) = { this: "session_max_seconds" that: "SessionMaxSeconds" }]; // @gotags: `class:"public"`
google.protobuf.UInt32Value session_max_seconds = 120 [
json_name = "session_max_seconds",
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.mask_mapping) = {
this: "session_max_seconds"
that: "SessionMaxSeconds"
}
]; // @gotags: `class:"public"`
// Maximum number of connections allowed in a Session. Unlimited is indicated by the value -1.
google.protobuf.Int32Value session_connection_limit = 130
[json_name = "session_connection_limit", (custom_options.v1.generate_sdk_option) = true, (custom_options.v1.mask_mapping) = { this: "session_connection_limit" that: "SessionConnectionLimit" }]; // @gotags: `class:"public"`
google.protobuf.Int32Value session_connection_limit = 130 [
json_name = "session_connection_limit",
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.mask_mapping) = {
this: "session_connection_limit"
that: "SessionConnectionLimit"
}
]; // @gotags: `class:"public"`
// Optional boolean expression to filter the workers that are allowed to satisfy this request.
google.protobuf.StringValue worker_filter = 140
[json_name = "worker_filter", (custom_options.v1.generate_sdk_option) = true, (custom_options.v1.mask_mapping) = { this: "worker_filter" that: "WorkerFilter" }]; // @gotags: `class:"public"`
google.protobuf.StringValue worker_filter = 140 [
json_name = "worker_filter",
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.mask_mapping) = {
this: "worker_filter"
that: "WorkerFilter"
}
]; // @gotags: `class:"public"`
// Output only. The IDs of the application credential library ids associated with this Target. Deprecated: use application_credential_source_ids instead.
repeated string application_credential_library_ids = 150 [json_name = "application_credential_library_ids", deprecated = true]; // @gotags: `class:"public"`
repeated string application_credential_library_ids = 150 [
json_name = "application_credential_library_ids",
deprecated = true
]; // @gotags: `class:"public"`
// Output only. The application credential libraries associated with this Target. Deprecated: use application_credential_sources instead.
repeated CredentialLibrary application_credential_libraries = 180 [json_name = "application_credential_libraries", deprecated = true];
repeated CredentialLibrary application_credential_libraries = 180 [
json_name = "application_credential_libraries",
deprecated = true
];
// Output only. The IDs of the application credential source ids associated with this Target.
repeated string application_credential_source_ids = 400 [json_name = "application_credential_source_ids"]; // @gotags: `class:"public"`
@@ -179,47 +215,53 @@ message Target {
// TcpTargetAttributes contains attributes relevant to Targets of type "tcp"
message TcpTargetAttributes {
// The default TCP port that will be used when connecting to the endpoint unless overridden by a Host Set or Host.
google.protobuf.UInt32Value default_port = 10
[json_name = "default_port", (custom_options.v1.generate_sdk_option) = true, (custom_options.v1.mask_mapping) = { this: "attributes.default_port" that: "DefaultPort" }]; // @gotags: `class:"public"`
google.protobuf.UInt32Value default_port = 10 [
json_name = "default_port",
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.mask_mapping) = {
this: "attributes.default_port"
that: "DefaultPort"
}
]; // @gotags: `class:"public"`
}
// WorkerInfo contains information about workers, returned in to the client in SessionAuthorization
message WorkerInfo {
// Output only. The address of the worker.
string address = 10; // @gotags: `class:"public"`
string address = 10; // @gotags: `class:"public"`
}
// SessionAuthorizationData contains the fields needed by the proxy command to connect to a worker. It is marshaled inside the SessionAuthorization message.
message SessionAuthorizationData {
// Output only. The ID of the session.
string session_id = 10 [json_name = "session_id"]; // @gotags: `class:"public"`
string session_id = 10 [json_name = "session_id"]; // @gotags: `class:"public"`
// Output only. The ID of the Target authorizing this session.
string target_id = 20 [json_name = "target_id"]; // @gotags: `class:"public"`
string target_id = 20 [json_name = "target_id"]; // @gotags: `class:"public"`
// Output only. Scope information for this the Target that authorized this session.
resources.scopes.v1.ScopeInfo scope = 30;
// Output only. The time this resource was created.
google.protobuf.Timestamp created_time = 40 [json_name = "created_time"]; // @gotags: `class:"public"`
google.protobuf.Timestamp created_time = 40 [json_name = "created_time"]; // @gotags: `class:"public"`
// Output only. Type of the session (e.g. tcp, ssh, etc.).
string type = 80; // @gotags: `class:"public"`
string type = 80; // @gotags: `class:"public"`
// Output only. The connection limit being applied to this session. -1 means unlimited. This is not actually enforced on the client side but it provides for better listener handling by including it.
int32 connection_limit = 90 [json_name = "connection_limit"];
// Output only. The certificate to use when connecting. Raw DER bytes.
bytes certificate = 120; // @gotags: `class:"sensitive"`
bytes certificate = 120; // @gotags: `class:"sensitive"`
// Output only. The private key to use when connecting. We are using Ed25519, so this is purely raw bytes, no marshaling.
bytes private_key = 130 [json_name = "private_key"]; // @gotags: `class:"secret"`
bytes private_key = 130 [json_name = "private_key"]; // @gotags: `class:"secret"`
// Output only. The host ID...not used for security purposes, but for some special command handling (e.g. ssh host key aliasing).
string host_id = 140; // @gotags: `class:"public"`
string host_id = 140; // @gotags: `class:"public"`
// Output only. The endpoint, for some special command handling.
string endpoint = 141; // @gotags: `class:"public"`
string endpoint = 141; // @gotags: `class:"public"`
// Output only. Worker information. The first worker in the array should be prioritized.
repeated WorkerInfo worker_info = 150 [json_name = "worker_info"];
@@ -228,34 +270,34 @@ message SessionAuthorizationData {
// SessionAuthorization contains all fields related to authorization for a Session. It's in the Targets package because it's returned by a Target's authorize action.
message SessionAuthorization {
// Output only. The ID of the Session.
string session_id = 10 [json_name = "session_id"]; // @gotags: `class:"public"`
string session_id = 10 [json_name = "session_id"]; // @gotags: `class:"public"`
// Output only. The ID of the Target authorizing this Session.
string target_id = 20 [json_name = "target_id"]; // @gotags: `class:"public"`
string target_id = 20 [json_name = "target_id"]; // @gotags: `class:"public"`
// Output only. Scope information for this resource.
resources.scopes.v1.ScopeInfo scope = 30;
// Output only. The time this resource was created.
google.protobuf.Timestamp created_time = 40 [json_name = "created_time"]; // @gotags: `class:"public"`
google.protobuf.Timestamp created_time = 40 [json_name = "created_time"]; // @gotags: `class:"public"`
// Output only. The User for which this Session was authorized.
string user_id = 50 [json_name = "user_id"]; // @gotags: `class:"public"`
string user_id = 50 [json_name = "user_id"]; // @gotags: `class:"public"`
// Output only. The Host Set containing the Host being used for this Session.
string host_set_id = 60 [json_name = "host_set_id"]; // @gotags: `class:"public"`
string host_set_id = 60 [json_name = "host_set_id"]; // @gotags: `class:"public"`
// Output only. The Host whose address is being used as the endpoint for this Session.
string host_id = 70 [json_name = "host_id"]; // @gotags: `class:"public"`
string host_id = 70 [json_name = "host_id"]; // @gotags: `class:"public"`
// Output only. Type of the Session (e.g. tcp, ssh, etc.).
string type = 80; // @gotags: `class:"public"`
string type = 80; // @gotags: `class:"public"`
// Output only. The marshaled SessionAuthorizationData message containing all information that the proxy needs.
string authorization_token = 90 [json_name = "authorization_token"]; // @gotags: `class:"private"`
string authorization_token = 90 [json_name = "authorization_token"]; // @gotags: `class:"private"`
// Output only. The endpoint address that the worker will connect to, useful for setting TLS parameters.
string endpoint = 100; // @gotags: `class:"public"`
string endpoint = 100; // @gotags: `class:"public"`
// Output only. The credentials for this session.
repeated SessionCredential credentials = 110 [json_name = "credentials"];
@@ -2,12 +2,12 @@ syntax = "proto3";
package controller.api.resources.users.v1;
option go_package = "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/users;users";
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";
import "google/protobuf/timestamp.proto";
import "google/protobuf/wrappers.proto";
option go_package = "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/users;users";
message Account {
// Output only. The ID of the Account.
@@ -29,10 +29,22 @@ message User {
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:"sensitive"`
google.protobuf.StringValue name = 40 [
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.mask_mapping) = {
this: "name"
that: "name"
}
]; // @gotags: `class:"sensitive"`
// 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:"sensitive"`
google.protobuf.StringValue description = 50 [
(custom_options.v1.generate_sdk_option) = true,
(custom_options.v1.mask_mapping) = {
this: "description"
that: "description"
}
]; // @gotags: `class:"sensitive"`
// Output only. The time this resource was created.
google.protobuf.Timestamp created_time = 60 [json_name = "created_time"]; // @gotags: `class:"public"`