@canonical/jujulib
Version:
Juju API client
372 lines (306 loc) • 7.91 kB
text/typescript
/**
Juju ApplicationOffers version 5.
This facade is available on:
Controller-machine-agent
Machine-agent
Unit-agent
Controllers
NOTE: This file was generated using the Juju schema
from Juju 3.6.14 at the git SHA b08ad63.
Do not manually edit this file.
*/
import type { JujuRequest } from "../../../generator/interfaces.js";
import { ConnectionInfo, Transport } from "../../client.js";
import { Facade } from "../../types.js";
import { autoBind } from "../../utils.js";
export interface AddApplicationOffer {
"application-description": string;
"application-name": string;
endpoints: Record<string, string>;
"model-tag": string;
"offer-name": string;
"owner-tag"?: string;
}
export interface AddApplicationOffers {
Offers: AddApplicationOffer[];
}
export interface ApplicationOfferAdminDetailsV5 {
ApplicationOfferDetailsV5: ApplicationOfferDetailsV5;
"application-description": string;
"application-name": string;
"charm-url": string;
connections?: OfferConnection[];
endpoints?: RemoteEndpoint[];
"offer-name": string;
"offer-url": string;
"offer-uuid": string;
"source-model-tag": string;
users?: OfferUserDetails[];
}
export interface ApplicationOfferDetailsV5 {
"application-description": string;
endpoints?: RemoteEndpoint[];
"offer-name": string;
"offer-url": string;
"offer-uuid": string;
"source-model-tag": string;
users?: OfferUserDetails[];
}
export interface ApplicationOfferResult {
error?: Error;
result?: ApplicationOfferAdminDetailsV5;
}
export interface ApplicationOffersResults {
results?: ApplicationOfferResult[];
}
export interface ConsumeOfferDetails {
"external-controller"?: ExternalControllerInfo;
macaroon?: Macaroon;
offer?: ApplicationOfferDetailsV5;
}
export interface ConsumeOfferDetailsArg {
"offer-urls": OfferURLs;
"user-tag"?: string;
}
export interface ConsumeOfferDetailsResult {
ConsumeOfferDetails: ConsumeOfferDetails;
error?: Error;
"external-controller"?: ExternalControllerInfo;
macaroon?: Macaroon;
offer?: ApplicationOfferDetailsV5;
}
export interface ConsumeOfferDetailsResults {
results?: ConsumeOfferDetailsResult[];
}
export interface DestroyApplicationOffers {
force?: boolean;
"offer-urls": string[];
}
export interface EndpointFilterAttributes {
interface: string;
name: string;
role: string;
}
export interface EntityStatus {
data?: AdditionalProperties;
info: string;
since: string;
status: string;
}
export interface Error {
code: string;
info?: AdditionalProperties;
message: string;
}
export interface ErrorResult {
error?: Error;
}
export interface ErrorResults {
results: ErrorResult[];
}
export interface ExternalControllerInfo {
addrs: string[];
"ca-cert": string;
"controller-alias": string;
"controller-tag": string;
}
export interface Macaroon {
[key: string]: AdditionalProperties;
}
export interface ModifyOfferAccess {
access: string;
action: string;
"offer-url": string;
"user-tag": string;
}
export interface ModifyOfferAccessRequest {
changes: ModifyOfferAccess[];
}
export interface OfferConnection {
endpoint: string;
"ingress-subnets": string[];
"relation-id": number;
"source-model-tag": string;
status: EntityStatus;
username: string;
}
export interface OfferFilter {
"allowed-users": string[];
"application-description": string;
"application-name": string;
"application-user": string;
"connected-users": string[];
endpoints: EndpointFilterAttributes[];
"model-name": string;
"offer-name": string;
"owner-name": string;
}
export interface OfferFilters {
Filters: OfferFilter[];
}
export interface OfferURLs {
"bakery-version"?: number;
"offer-urls"?: string[];
}
export interface OfferUserDetails {
access: string;
"display-name": string;
user: string;
}
export interface QueryApplicationOffersResultsV5 {
results: ApplicationOfferAdminDetailsV5[];
}
export interface RemoteApplicationInfo {
description: string;
endpoints: RemoteEndpoint[];
"icon-url-path": string;
"model-tag": string;
name: string;
"offer-url": string;
"source-model-label"?: string;
}
export interface RemoteApplicationInfoResult {
error?: Error;
result?: RemoteApplicationInfo;
}
export interface RemoteApplicationInfoResults {
results: RemoteApplicationInfoResult[];
}
export interface RemoteEndpoint {
interface: string;
limit: number;
name: string;
role: string;
}
export interface AdditionalProperties {
[key: string]: any;
}
/**
*/
class ApplicationOffersV5 implements Facade {
static NAME = "ApplicationOffers";
static VERSION = 5;
NAME = "ApplicationOffers";
VERSION = 5;
_transport: Transport;
_info: ConnectionInfo;
constructor(transport: Transport, info: ConnectionInfo) {
this._transport = transport;
this._info = info;
// Automatically bind all methods to instances.
autoBind(this);
}
/**
*/
applicationOffers(params: OfferURLs): Promise<ApplicationOffersResults> {
return new Promise((resolve, reject) => {
const req: JujuRequest = {
type: "ApplicationOffers",
request: "ApplicationOffers",
version: 5,
params: params,
};
this._transport.write(req, resolve, reject);
});
}
/**
*/
destroyOffers(params: DestroyApplicationOffers): Promise<ErrorResults> {
return new Promise((resolve, reject) => {
const req: JujuRequest = {
type: "ApplicationOffers",
request: "DestroyOffers",
version: 5,
params: params,
};
this._transport.write(req, resolve, reject);
});
}
/**
*/
findApplicationOffers(
params: OfferFilters
): Promise<QueryApplicationOffersResultsV5> {
return new Promise((resolve, reject) => {
const req: JujuRequest = {
type: "ApplicationOffers",
request: "FindApplicationOffers",
version: 5,
params: params,
};
this._transport.write(req, resolve, reject);
});
}
/**
*/
getConsumeDetails(
params: ConsumeOfferDetailsArg
): Promise<ConsumeOfferDetailsResults> {
return new Promise((resolve, reject) => {
const req: JujuRequest = {
type: "ApplicationOffers",
request: "GetConsumeDetails",
version: 5,
params: params,
};
this._transport.write(req, resolve, reject);
});
}
/**
*/
listApplicationOffers(
params: OfferFilters
): Promise<QueryApplicationOffersResultsV5> {
return new Promise((resolve, reject) => {
const req: JujuRequest = {
type: "ApplicationOffers",
request: "ListApplicationOffers",
version: 5,
params: params,
};
this._transport.write(req, resolve, reject);
});
}
/**
*/
modifyOfferAccess(params: ModifyOfferAccessRequest): Promise<ErrorResults> {
return new Promise((resolve, reject) => {
const req: JujuRequest = {
type: "ApplicationOffers",
request: "ModifyOfferAccess",
version: 5,
params: params,
};
this._transport.write(req, resolve, reject);
});
}
/**
*/
offer(params: AddApplicationOffers): Promise<ErrorResults> {
return new Promise((resolve, reject) => {
const req: JujuRequest = {
type: "ApplicationOffers",
request: "Offer",
version: 5,
params: params,
};
this._transport.write(req, resolve, reject);
});
}
/**
*/
remoteApplicationInfo(
params: OfferURLs
): Promise<RemoteApplicationInfoResults> {
return new Promise((resolve, reject) => {
const req: JujuRequest = {
type: "ApplicationOffers",
request: "RemoteApplicationInfo",
version: 5,
params: params,
};
this._transport.write(req, resolve, reject);
});
}
}
export default ApplicationOffersV5;