UNPKG

@canonical/jujulib

Version:

Juju API client

616 lines (610 loc) 17.8 kB
/** Juju Application version 12. This facade is available on: Controller-machine-agent Machine-agent Unit-agent Models NOTE: This file was generated using the Juju schema from Juju 2.8.2 at the git SHA 516c1904ce. Do not manually edit this file. */ import { ConnectionInfo, Transport } from "../../client.js"; import { Facade } from "../../types.js"; export interface AddApplicationUnits { application: string; "attach-storage"?: string[]; "num-units": number; placement: Placement[]; policy?: string; } export interface AddApplicationUnitsResults { units: string[]; } export interface AddRelation { endpoints: string[]; "via-cidrs"?: string[]; } export interface AddRelationResults { endpoints: Record<string, CharmRelation>; } export interface ApplicationCharmRelations { application: string; } export interface ApplicationCharmRelationsResults { "charm-relations": string[]; } export interface ApplicationConfigSet { application: string; config: Record<string, string>; generation: string; } export interface ApplicationConfigSetArgs { Args: ApplicationConfigSet[]; } export interface ApplicationConfigUnsetArgs { Args: ApplicationUnset[]; } export interface ApplicationConstraint { constraints: Value; error?: Error; } export interface ApplicationDeploy { application: string; "attach-storage"?: string[]; channel: string; "charm-url": string; config?: Record<string, string>; "config-yaml": string; constraints: Value; devices?: Record<string, Constraints>; "endpoint-bindings"?: Record<string, string>; "num-units": number; placement?: Placement[]; policy?: string; resources?: Record<string, string>; series: string; storage?: Record<string, Constraints>; } export interface ApplicationDestroy { application: string; } export interface ApplicationExpose { application: string; } export interface ApplicationGet { application: string; branch: string; } export interface ApplicationGetArgs { args: ApplicationGet[]; } export interface ApplicationGetConfigResults { Results: ConfigResult[]; } export interface ApplicationGetConstraintsResults { results: ApplicationConstraint[]; } export interface ApplicationGetResults { application: string; "application-config"?: AdditionalProperties; channel: string; charm: string; config: AdditionalProperties; constraints: Value; "endpoint-bindings"?: Record<string, string>; series: string; } export interface ApplicationInfoResult { error?: Error; result?: ApplicationResult; } export interface ApplicationInfoResults { results: ApplicationInfoResult[]; } export interface ApplicationMergeBindings { "application-tag": string; bindings: Record<string, string>; force: boolean; } export interface ApplicationMergeBindingsArgs { args: ApplicationMergeBindings[]; } export interface ApplicationMetricCredential { application: string; "metrics-credentials": number[]; } export interface ApplicationMetricCredentials { creds: ApplicationMetricCredential[]; } export interface ApplicationOfferDetails { "application-description": string; bindings?: Record<string, string>; endpoints?: RemoteEndpoint[]; "offer-name": string; "offer-url": string; "offer-uuid": string; "source-model-tag": string; spaces?: RemoteSpace[]; users?: OfferUserDetails[]; } export interface ApplicationResult { channel?: string; charm?: string; constraints?: Value; "endpoint-bindings"?: Record<string, string>; exposed: boolean; principal: boolean; remote: boolean; series?: string; tag: string; } export interface ApplicationSet { application: string; branch: string; options: Record<string, string>; } export interface ApplicationSetCharm { application: string; channel: string; "charm-url": string; "config-settings"?: Record<string, string>; "config-settings-yaml"?: string; "endpoint-bindings"?: Record<string, string>; force: boolean; "force-series": boolean; "force-units": boolean; generation: string; "resource-ids"?: Record<string, string>; "storage-constraints"?: Record<string, StorageConstraints>; } export interface ApplicationUnexpose { application: string; } export interface ApplicationUnset { application: string; branch: string; options: string[]; } export interface ApplicationUpdate { application: string; "charm-url": string; constraints?: Value; force: boolean; "force-charm-url": boolean; "force-series": boolean; generation: string; "min-units"?: number; settings?: Record<string, string>; "settings-yaml": string; } export interface ApplicationsDeploy { applications: ApplicationDeploy[]; } export interface CharmRelation { interface: string; limit: number; name: string; optional: boolean; role: string; scope: string; } export interface ConfigResult { config: AdditionalProperties; error?: Error; } export interface Constraints { Count: number; Pool: string; Size: number; } export interface ConsumeApplicationArg { ApplicationOfferDetails: ApplicationOfferDetails; "application-alias"?: string; "application-description": string; bindings?: Record<string, string>; endpoints?: RemoteEndpoint[]; "external-controller"?: ExternalControllerInfo; macaroon?: Macaroon; "offer-name": string; "offer-url": string; "offer-uuid": string; "source-model-tag": string; spaces?: RemoteSpace[]; users?: OfferUserDetails[]; } export interface ConsumeApplicationArgs { args?: ConsumeApplicationArg[]; } export interface DestroyApplicationInfo { "destroyed-storage"?: Entity[]; "destroyed-units"?: Entity[]; "detached-storage"?: Entity[]; } export interface DestroyApplicationParams { "application-tag": string; "destroy-storage"?: boolean; force: boolean; "max-wait"?: number; } export interface DestroyApplicationResult { error?: Error; info?: DestroyApplicationInfo; } export interface DestroyApplicationResults { results?: DestroyApplicationResult[]; } export interface DestroyApplicationUnits { "unit-names": string[]; } export interface DestroyApplicationsParams { applications: DestroyApplicationParams[]; } export interface DestroyConsumedApplicationParams { "application-tag": string; force?: boolean; "max-wait"?: number; } export interface DestroyConsumedApplicationsParams { applications: DestroyConsumedApplicationParams[]; } export interface DestroyRelation { endpoints?: string[]; force?: boolean; "max-wait"?: number; "relation-id": number; } export interface DestroyUnitInfo { "destroyed-storage"?: Entity[]; "detached-storage"?: Entity[]; } export interface DestroyUnitParams { "destroy-storage"?: boolean; force: boolean; "max-wait"?: number; "unit-tag": string; } export interface DestroyUnitResult { error?: Error; info?: DestroyUnitInfo; } export interface DestroyUnitResults { results?: DestroyUnitResult[]; } export interface DestroyUnitsParams { units: DestroyUnitParams[]; } export interface EndpointRelationData { ApplicationData: AdditionalProperties; "cross-model": boolean; endpoint: string; "related-endpoint": string; "unit-relation-data": Record<string, RelationData>; } export interface Entities { entities: Entity[]; } export interface Entity { tag: 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 OfferUserDetails { access: string; "display-name": string; user: string; } export interface Placement { directive: string; scope: string; } export interface RelationData { InScope: boolean; UnitData: AdditionalProperties; } export interface RelationSuspendedArg { message: string; "relation-id": number; suspended: boolean; } export interface RelationSuspendedArgs { args: RelationSuspendedArg[]; } export interface RemoteEndpoint { interface: string; limit: number; name: string; role: string; } export interface RemoteSpace { "cloud-type": string; name: string; "provider-attributes": AdditionalProperties; "provider-id": string; subnets: Subnet[]; } export interface ScaleApplicationInfo { "num-units": number; } export interface ScaleApplicationParams { "application-tag": string; force: boolean; scale: number; "scale-change"?: number; } export interface ScaleApplicationResult { error?: Error; info?: ScaleApplicationInfo; } export interface ScaleApplicationResults { results?: ScaleApplicationResult[]; } export interface ScaleApplicationsParams { applications: ScaleApplicationParams[]; } export interface SetConstraints { application: string; constraints: Value; } export interface StorageConstraints { count?: number; pool?: string; size?: number; } export interface StringResult { error?: Error; result: string; } export interface Subnet { cidr: string; life: string; "provider-id"?: string; "provider-network-id"?: string; "provider-space-id"?: string; "space-tag": string; status?: string; "vlan-tag": number; zones: string[]; } export interface UnitInfoResult { error?: Error; result?: UnitResult; } export interface UnitInfoResults { results: UnitInfoResult[]; } export interface UnitResult { address?: string; charm: string; leader?: boolean; machine?: string; "opened-ports": string[]; "provider-id"?: string; "public-address"?: string; "relation-data"?: EndpointRelationData[]; tag: string; "workload-version": string; } export interface UnitsResolved { all?: boolean; retry?: boolean; tags?: Entities; } export interface UpdateSeriesArg { force: boolean; series: string; tag: Entity; } export interface UpdateSeriesArgs { args: UpdateSeriesArg[]; } export interface Value { arch?: string; container?: string; cores?: number; "cpu-power"?: number; "instance-type"?: string; mem?: number; "root-disk"?: number; "root-disk-source"?: string; spaces?: string[]; tags?: string[]; "virt-type"?: string; zones?: string[]; } export interface AdditionalProperties { [key: string]: any; } /** APIv12 provides the Application API facade for version 12. It adds the UnitsInfo method. */ declare class ApplicationV12 implements Facade { static NAME: string; static VERSION: number; NAME: string; VERSION: number; _transport: Transport; _info: ConnectionInfo; constructor(transport: Transport, info: ConnectionInfo); /** AddRelation adds a relation between the specified endpoints and returns the relation info. */ addRelation(params: AddRelation): Promise<AddRelationResults>; /** AddUnits adds a given number of units to an application. */ addUnits(params: AddApplicationUnits): Promise<AddApplicationUnitsResults>; /** ApplicationsInfo returns applications information. */ applicationsInfo(params: Entities): Promise<ApplicationInfoResults>; /** CharmConfig returns charm config for the input list of applications and model generations. */ charmConfig(params: ApplicationGetArgs): Promise<ApplicationGetConfigResults>; /** CharmRelations implements the server side of Application.CharmRelations. */ charmRelations(params: ApplicationCharmRelations): Promise<ApplicationCharmRelationsResults>; /** Consume adds remote applications to the model without creating any relations. */ consume(params: ConsumeApplicationArgs): Promise<ErrorResults>; /** Deploy fetches the charms from the charm store and deploys them using the specified placement directives. */ deploy(params: ApplicationsDeploy): Promise<ErrorResults>; /** Destroy destroys a given application, local or remote. NOTE(axw) this exists only for backwards compatibility, for API facade versions 1-3; clients should prefer its successor, DestroyApplication, below. Until all consumers have been updated, or we bump a major version, we can't drop this. TODO(axw) 2017-03-16 #1673323 Drop this in Juju 3.0. */ destroy(params: ApplicationDestroy): Promise<any>; /** DestroyApplication removes a given set of applications. */ destroyApplication(params: DestroyApplicationsParams): Promise<DestroyApplicationResults>; /** DestroyConsumedApplications removes a given set of consumed (remote) applications. */ destroyConsumedApplications(params: DestroyConsumedApplicationsParams): Promise<ErrorResults>; /** DestroyRelation removes the relation between the specified endpoints or an id. */ destroyRelation(params: DestroyRelation): Promise<any>; /** DestroyUnit removes a given set of application units. */ destroyUnit(params: DestroyUnitsParams): Promise<DestroyUnitResults>; /** DestroyUnits removes a given set of application units. NOTE(axw) this exists only for backwards compatibility, for API facade versions 1-3; clients should prefer its successor, DestroyUnit, below. Until all consumers have been updated, or we bump a major version, we can't drop this. TODO(axw) 2017-03-16 #1673323 Drop this in Juju 3.0. */ destroyUnits(params: DestroyApplicationUnits): Promise<any>; /** Expose changes the juju-managed firewall to expose any ports that were also explicitly marked by units as open. */ expose(params: ApplicationExpose): Promise<any>; /** Get returns the charm configuration for an application. */ get(params: ApplicationGet): Promise<ApplicationGetResults>; /** GetCharmURL returns the charm URL the given application is running at present. */ getCharmURL(params: ApplicationGet): Promise<StringResult>; /** GetConfig returns the charm config for each of the input applications. */ getConfig(params: Entities): Promise<ApplicationGetConfigResults>; /** GetConstraints returns the constraints for a given application. */ getConstraints(params: Entities): Promise<ApplicationGetConstraintsResults>; /** MergeBindings merges operator-defined bindings with the current bindings for one or more applications. */ mergeBindings(params: ApplicationMergeBindingsArgs): Promise<ErrorResults>; /** ResolveUnitErrors marks errors on the specified units as resolved. */ resolveUnitErrors(params: UnitsResolved): Promise<ErrorResults>; /** ScaleApplications scales the specified application to the requested number of units. */ scaleApplications(params: ScaleApplicationsParams): Promise<ScaleApplicationResults>; /** Set implements the server side of Application.Set. It does not unset values that are set to an empty string. Unset should be used for that. */ set(params: ApplicationSet): Promise<any>; /** SetApplicationsConfig implements the server side of Application.SetApplicationsConfig. It does not unset values that are set to an empty string. Unset should be used for that. */ setApplicationsConfig(params: ApplicationConfigSetArgs): Promise<ErrorResults>; /** SetCharm sets the charm for a given for the application. */ setCharm(params: ApplicationSetCharm): Promise<any>; /** SetConstraints sets the constraints for a given application. */ setConstraints(params: SetConstraints): Promise<any>; /** SetMetricCredentials sets credentials on the application. */ setMetricCredentials(params: ApplicationMetricCredentials): Promise<ErrorResults>; /** SetRelationsSuspended sets the suspended status of the specified relations. */ setRelationsSuspended(params: RelationSuspendedArgs): Promise<ErrorResults>; /** Unexpose changes the juju-managed firewall to unexpose any ports that were also explicitly marked by units as open. */ unexpose(params: ApplicationUnexpose): Promise<any>; /** UnitsInfo returns unit information. */ unitsInfo(params: Entities): Promise<UnitInfoResults>; /** Unset implements the server side of Client.Unset. */ unset(params: ApplicationUnset): Promise<any>; /** UnsetApplicationsConfig implements the server side of Application.UnsetApplicationsConfig. */ unsetApplicationsConfig(params: ApplicationConfigUnsetArgs): Promise<ErrorResults>; /** Update updates the application attributes, including charm URL, minimum number of units, charm config and constraints. All parameters in params.ApplicationUpdate except the application name are optional. */ update(params: ApplicationUpdate): Promise<any>; /** UpdateApplicationSeries updates the application series. Series for subordinates updated too. */ updateApplicationSeries(params: UpdateSeriesArgs): Promise<ErrorResults>; } export default ApplicationV12;