@canonical/jujulib
Version:
Juju API client
127 lines (125 loc) • 3 kB
TypeScript
/**
Juju CharmHub version 1.
This facade is available on:
Controller-machine-agent
Machine-agent
Unit-agent
Models
NOTE: This file was generated using the Juju schema
from Juju 3.0-beta1 at the git SHA 61c87ab7e1.
Do not manually edit this file.
*/
import { ConnectionInfo, Transport } from "../../client.js";
import { Facade } from "../../types.js";
export interface BundleCharm {
name: string;
"package-id": string;
}
export interface Channel {
platforms: Platform[];
"released-at": string;
revision: number;
risk: string;
size: number;
track: string;
version: string;
}
export interface CharmHubBundle {
charms: BundleCharm[];
}
export interface CharmHubCharm {
config: Record<string, CharmOption>;
relations: Record<string, Record<string, string>>;
subordinate: boolean;
"used-by": string[];
}
export interface CharmHubEntityFindResult {
errors: ErrorResponse;
result: FindResponse[];
}
export interface CharmHubEntityInfoResult {
errors: ErrorResponse;
result: InfoResponse;
}
export interface CharmHubError {
code: string;
message: string;
}
export interface CharmOption {
default?: AdditionalProperties;
description?: string;
type: string;
}
export interface ErrorResponse {
"error-list": CharmHubError;
}
export interface FindResponse {
architectures?: string[];
id: string;
name: string;
os?: string[];
publisher: string;
series?: string[];
"store-url": string;
summary: string;
type: string;
version: string;
}
export interface Info {
channel?: string;
tag: string;
}
export interface InfoResponse {
bundle?: CharmHubBundle;
"channel-map": Record<string, Channel>;
charm?: CharmHubCharm;
description: string;
id: string;
name: string;
publisher: string;
series: string[];
"store-url": string;
summary: string;
tags: string[];
tracks: string[];
type: string;
}
export interface Platform {
architecture: string;
os: string;
series: string;
}
export interface Query {
category?: string;
channel?: string;
platforms?: string;
publisher?: string;
query: string;
"relation-provides"?: string;
"relation-requires"?: string;
type?: string;
}
export interface AdditionalProperties {
[key: string]: any;
}
/**
CharmHubAPI API provides the CharmHub API facade for version 1.
*/
declare class CharmHubV1 implements Facade {
static NAME: string;
static VERSION: number;
NAME: string;
VERSION: number;
_transport: Transport;
_info: ConnectionInfo;
constructor(transport: Transport, info: ConnectionInfo);
/**
Find queries the CharmHub API with a given entity ID.
*/
find(params: Query): Promise<CharmHubEntityFindResult>;
/**
Info queries the CharmHub API with a given entity ID.
*/
info(params: Info): Promise<CharmHubEntityInfoResult>;
}
export default CharmHubV1;