/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements. See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership. The ASF licenses this file
 * to you 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";

option java_multiple_files = true;
package org.apache.custos.core.tenant.management.api;

import "TenantProfile.proto";


message CreateTenantResponse {
  string client_id = 1;
  string client_secret = 2;
  bool is_activated = 3;
  double client_id_issued_at = 4;
  double client_secret_expires_at = 5;
  string registration_client_uri = 6;
  string token_endpoint_auth_method = 17;
  string msg = 7;
}

message GetTenantResponse {
  string client_id = 1;
  string client_name = 2;
  string requester_email = 3;
  string admin_first_name = 4;
  string admin_last_name = 5;
  string admin_email = 6;
  repeated string contacts = 7;
  repeated string redirect_uris = 8;
  repeated string grant_types = 9;
  double client_id_issued_at = 10;
  string client_uri = 11;
  string scope = 12;
  string domain = 13;
  string comment = 14;
  string logo_uri = 15;
  string application_type = 16;
  string jwks_uri = 17;
  string example_extension_parameter = 18;
  string tos_uri = 19;
  string policy_uri = 20;
  map<string, string> jwks = 21;
  string software_id = 22;
  string software_version = 23;
  string admin_username = 24;
}


message GetTenantRequest {
  string client_id = 1;
  int64 tenant_id = 2;
  org.apache.custos.core.tenant.profile.api.Tenant tenant = 4;
  Credentials credentials = 5;
}


message Credentials {
  string iam_client_id = 1;
  string iam_client_secret = 2;
  string ci_logon_client_id = 3;
  string ci_logon_client_secret = 4;
  string custos_client_id = 5;
  string custos_client_secret = 6;
  double custos_client_id_issued_at = 7;
  double custos_client_secret_expired_at = 8;
}

message UpdateTenantRequest {
  string client_id = 1;
  int64 tenant_id = 2;
  Credentials credentials = 3;
  org.apache.custos.core.tenant.profile.api.Tenant body = 4;
}

message DeleteTenantRequest {
  string client_id = 1;
  int64 tenant_id = 2;
  Credentials credentials = 3;
  org.apache.custos.core.tenant.profile.api.Tenant body = 4;
}

message GetCredentialsRequest {
  int64 tenant_id = 1;
}

message GetCredentialsResponse {
  string iam_client_id = 1;
  string iam_client_secret = 2;
  string ci_logon_client_id = 3;
  string ci_logon_client_secret = 4;
}

message TenantValidationRequest {
  string client_id = 1;
  string client_sec = 2;
}
