import * as plugins from '../plugins.ts';
import * as data from '../data/index.ts';

export interface IReq_GetRegistryTags extends plugins.typedrequestInterfaces.implementsTR<
  plugins.typedrequestInterfaces.ITypedRequest,
  IReq_GetRegistryTags
> {
  method: 'getRegistryTags';
  request: {
    identity: data.IIdentity;
    serviceName: string;
  };
  response: {
    tags: string[];
  };
}

export interface IReq_GetRegistryTokens extends plugins.typedrequestInterfaces.implementsTR<
  plugins.typedrequestInterfaces.ITypedRequest,
  IReq_GetRegistryTokens
> {
  method: 'getRegistryTokens';
  request: {
    identity: data.IIdentity;
  };
  response: {
    tokens: data.IRegistryToken[];
  };
}

export interface IReq_CreateRegistryToken extends plugins.typedrequestInterfaces.implementsTR<
  plugins.typedrequestInterfaces.ITypedRequest,
  IReq_CreateRegistryToken
> {
  method: 'createRegistryToken';
  request: {
    identity: data.IIdentity;
    tokenConfig: data.ICreateTokenRequest;
  };
  response: {
    result: data.ITokenCreatedResponse;
  };
}

export interface IReq_DeleteRegistryToken extends plugins.typedrequestInterfaces.implementsTR<
  plugins.typedrequestInterfaces.ITypedRequest,
  IReq_DeleteRegistryToken
> {
  method: 'deleteRegistryToken';
  request: {
    identity: data.IIdentity;
    tokenId: number;
  };
  response: {
    ok: boolean;
  };
}
