proto/ic/v1/ic_service.proto (153 lines of code) (raw):
// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
// Package v1 ic provides protocol buffer versions of the DAM API, allowing
// end points to receive requests and returns responses using these messages.
package ic.v1;
import "proto/common/v1/account.proto"; /* copybara-comment */
import "proto/common/v1/common.proto"; /* copybara-comment */
import "proto/common/v1/oauthclient.proto"; /* copybara-comment */
option go_package = "github.com/GoogleCloudPlatform/healthcare-federated-access-services/proto/ic/v1";
///////////////////////////////////////////////////
message IcConfig {
string version = 1;
int64 revision = 2;
double commit_time = 3;
map<string, common.IdentityProvider> identity_providers = 4;
map<string, common.Client> clients = 5;
ConfigOptions options = 7;
map<string, string> ui = 8;
}
message ConfigOptions {
int32 account_name_length = 1 [deprecated = true];
bool read_only_master_realm = 2;
string default_passport_token_ttl = 4 [deprecated = true];
string max_passport_token_ttl = 5 [deprecated = true];
string auth_code_token_ttl = 6 [deprecated = true];
string access_token_ttl = 7 [deprecated = true];
string refresh_token_ttl = 8 [deprecated = true];
string claim_ttl_cap = 9;
map<string, common.Descriptor> computed_descriptors = 10
[json_name = "descriptors"];
}
message IcSecrets {
string version = 1;
int64 revision = 2;
double commit_time = 3;
map<string, string> client_secrets = 4;
map<string, string> id_provider_secrets = 5;
message TokenKeys {
string private_key = 1;
string public_key = 2;
}
map<string, TokenKeys> token_keys = 6;
}
message ReadOnlyConfig {
string dex_url = 1;
string dex_port = 2;
}
message Realm {}
///////////////////////////////////////////////////
message ConfigModification {
int64 revision = 1;
bool dry_run = 3;
}
message GetInfoRequest {}
message GetInfoResponse {
string name = 1;
repeated string versions = 2;
int64 start_time = 3;
repeated string modules = 4;
map<string, string> ui = 5;
}
message RealmRequest {
Realm item = 1;
}
message RealmResponse {}
message GetIdentityProvidersRequest {}
message GetIdentityProvidersResponse {
map<string, common.IdentityProvider> identity_providers = 1;
}
message GetTokenRequest {}
message ConfigRequest {
IcConfig item = 1;
ConfigModification modification = 2;
}
message ConfigResponse {}
message ConfigIdentityProviderRequest {
common.IdentityProvider item = 1;
string client_secret = 3;
ConfigModification modification = 2;
}
message ConfigIdProviderResponse {}
message ConfigOptionsRequest {
ConfigOptions item = 1;
ConfigModification modification = 2;
}
message ConfigOptionsResponse {}
message AccountRequest {
common.Account item = 1;
ConfigModification modification = 2;
}
message AccountResponse {
common.Account account = 1;
}
message AccountSubjectRequest {
common.ConnectedAccount item = 1;
ConfigModification modification = 2;
}
message AccountSubjectResponse {
common.ConnectedAccount item = 1;
}
message SubjectClaimsRequest {
ConfigModification modification = 1;
}
message SubjectClaimsResponse {
repeated common.Assertion assertions = 1;
}
message TokenMetadata {
string token_type = 1;
int64 issued_at = 2;
string scope = 3;
string identity_provider = 4;
string subject = 5;
string nonce = 6;
}
message TokenMetadataRequest {}
message TokenMetadataResponse {
TokenMetadata token_metadata = 1;
}
message TokensMetadataRequest {}
message TokensMetadataResponse {
map<string, TokenMetadata> tokens_metadata = 1;
}
message RevocationRequest {
string token = 1;
}
///////////////////////////////////////////////////
message LoginPageProviders {
message ProviderEntry {
string name = 1;
string url = 2;
map<string, string> ui = 3;
}
map<string, ProviderEntry> idps = 1;
map<string, ProviderEntry> personas = 2;
}
message GetPersonasResponse {
message Meta {
repeated string claim_names = 1;
}
map<string, Meta> personas = 1;
}