/**
 * Copyright IBM Corp. 2024, 2025
 */

interface ApimBase {
  api_version: string;
  name: string;
  type: string;
  url: string;
}

interface ApimEntityBase extends ApimBase {
  created_at: string;
  id: string;
  title: string;
  updated_at: string;
}
export interface ApimCatalog extends ApimEntityBase {
  org_url: string;
  owner_url: string;
}

export interface ApimOrg extends ApimEntityBase {
  org_type: string;
  owner_url: string;
  state: string;
}

export interface ApimConsumerOrg extends ApimEntityBase {
  state: string;
}

export interface ApimPermissions extends ApimEntityBase {
  scope_url: string;
  summary: string;
  permissions: string[];
}

export interface ApimUserInfo extends ApimBase {
  email: string;
  first_name: string;
  last_name: string;
  username: string;
  identity_provider: string;
  state: string;
}

export interface ApimGateway extends ApimEntityBase {
  org_url: string;
  catalog_url: string;
  catalog_base: string;
  state: string;
  gateway_service_type: string;
}

export interface ApimSpace extends ApimEntityBase {
  summary: string;
  owner_url: string;
  org_url: string;
  catalog_url: string;
}
