@canonical/jujulib
Version:
Juju API client
325 lines (307 loc) • 7.8 kB
TypeScript
/**
Juju Storage version 7.
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.6.14 at the git SHA b08ad63.
Do not manually edit this file.
*/
import { ConnectionInfo, Transport } from "../../client.js";
import { Facade } from "../../types.js";
export interface AddStorageDetails {
"storage-tags": string[];
}
export interface AddStorageResult {
error?: Error;
result?: AddStorageDetails;
}
export interface AddStorageResults {
results: AddStorageResult[];
}
export interface BulkImportStorageParamsV2 {
storage: ImportStorageParamsV2[];
}
export interface Entities {
entities: Entity[];
}
export interface Entity {
tag: 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 FilesystemAttachmentDetails {
FilesystemAttachmentInfo: FilesystemAttachmentInfo;
life?: string;
"mount-point"?: string;
"read-only"?: boolean;
}
export interface FilesystemAttachmentInfo {
"mount-point"?: string;
"read-only"?: boolean;
}
export interface FilesystemDetails {
"filesystem-tag": string;
info: FilesystemInfo;
life?: string;
"machine-attachments"?: Record<string, FilesystemAttachmentDetails>;
status: EntityStatus;
storage?: StorageDetails;
"unit-attachments"?: Record<string, FilesystemAttachmentDetails>;
"volume-tag"?: string;
}
export interface FilesystemDetailsListResult {
error?: Error;
result?: FilesystemDetails[];
}
export interface FilesystemDetailsListResults {
results?: FilesystemDetailsListResult[];
}
export interface FilesystemFilter {
machines?: string[];
}
export interface FilesystemFilters {
filters?: FilesystemFilter[];
}
export interface FilesystemInfo {
"filesystem-id": string;
pool: string;
size: number;
}
export interface ImportStorageDetails {
"storage-tag": string;
}
export interface ImportStorageParamsV2 {
force?: boolean;
kind: number;
pool: string;
"provider-id": string;
"storage-name": string;
}
export interface ImportStorageResult {
error?: Error;
result?: ImportStorageDetails;
}
export interface ImportStorageResults {
results: ImportStorageResult[];
}
export interface RemoveStorage {
storage: RemoveStorageInstance[];
}
export interface RemoveStorageInstance {
"destroy-attachments"?: boolean;
"destroy-storage"?: boolean;
force?: boolean;
"max-wait"?: number;
tag: string;
}
export interface StorageAddParams {
name: string;
storage: StorageConstraints;
unit: string;
}
export interface StorageAttachmentDetails {
life?: string;
location?: string;
"machine-tag": string;
"storage-tag": string;
"unit-tag": string;
}
export interface StorageAttachmentId {
"storage-tag": string;
"unit-tag": string;
}
export interface StorageAttachmentIds {
ids: StorageAttachmentId[];
}
export interface StorageConstraints {
count?: number;
pool?: string;
size?: number;
}
export interface StorageDetachmentParams {
force?: boolean;
ids: StorageAttachmentIds;
"max-wait"?: number;
}
export interface StorageDetails {
attachments?: Record<string, StorageAttachmentDetails>;
kind: number;
life?: string;
"owner-tag": string;
persistent: boolean;
status: EntityStatus;
"storage-tag": string;
}
export interface StorageDetailsListResult {
error?: Error;
result?: StorageDetails[];
}
export interface StorageDetailsListResults {
results?: StorageDetailsListResult[];
}
export interface StorageDetailsResult {
error?: Error;
result?: StorageDetails;
}
export interface StorageDetailsResults {
results?: StorageDetailsResult[];
}
export interface StorageFilter {
[key: string]: AdditionalProperties;
}
export interface StorageFilters {
filters?: StorageFilter[];
}
export interface StoragePool {
attrs: AdditionalProperties;
name: string;
provider: string;
}
export interface StoragePoolArgs {
pools: StoragePool[];
}
export interface StoragePoolDeleteArg {
name: string;
}
export interface StoragePoolDeleteArgs {
pools: StoragePoolDeleteArg[];
}
export interface StoragePoolFilter {
names?: string[];
providers?: string[];
}
export interface StoragePoolFilters {
filters?: StoragePoolFilter[];
}
export interface StoragePoolsResult {
error?: Error;
"storage-pools"?: StoragePool[];
}
export interface StoragePoolsResults {
results?: StoragePoolsResult[];
}
export interface StoragesAddParams {
storages: StorageAddParams[];
}
export interface VolumeAttachmentDetails {
VolumeAttachmentInfo: VolumeAttachmentInfo;
"bus-address"?: string;
"device-link"?: string;
"device-name"?: string;
life?: string;
"plan-info"?: VolumeAttachmentPlanInfo;
"read-only"?: boolean;
}
export interface VolumeAttachmentInfo {
"bus-address"?: string;
"device-link"?: string;
"device-name"?: string;
"plan-info"?: VolumeAttachmentPlanInfo;
"read-only"?: boolean;
}
export interface VolumeAttachmentPlanInfo {
"device-attributes"?: Record<string, string>;
"device-type"?: string;
}
export interface VolumeDetails {
info: VolumeInfo;
life?: string;
"machine-attachments"?: Record<string, VolumeAttachmentDetails>;
status: EntityStatus;
storage?: StorageDetails;
"unit-attachments"?: Record<string, VolumeAttachmentDetails>;
"volume-tag": string;
}
export interface VolumeDetailsListResult {
error?: Error;
result?: VolumeDetails[];
}
export interface VolumeDetailsListResults {
results?: VolumeDetailsListResult[];
}
export interface VolumeFilter {
machines?: string[];
}
export interface VolumeFilters {
filters?: VolumeFilter[];
}
export interface VolumeInfo {
"hardware-id"?: string;
persistent: boolean;
pool?: string;
size: number;
"volume-id": string;
wwn?: string;
}
export interface AdditionalProperties {
[key: string]: any;
}
/**
*/
declare class StorageV7 implements Facade {
static NAME: string;
static VERSION: number;
NAME: string;
VERSION: number;
_transport: Transport;
_info: ConnectionInfo;
constructor(transport: Transport, info: ConnectionInfo);
/**
*/
addToUnit(params: StoragesAddParams): Promise<AddStorageResults>;
/**
*/
attach(params: StorageAttachmentIds): Promise<ErrorResults>;
/**
*/
createPool(params: StoragePoolArgs): Promise<ErrorResults>;
/**
*/
detachStorage(params: StorageDetachmentParams): Promise<ErrorResults>;
/**
*/
import(params: BulkImportStorageParamsV2): Promise<ImportStorageResults>;
/**
*/
listFilesystems(params: FilesystemFilters): Promise<FilesystemDetailsListResults>;
/**
*/
listPools(params: StoragePoolFilters): Promise<StoragePoolsResults>;
/**
*/
listStorageDetails(params: StorageFilters): Promise<StorageDetailsListResults>;
/**
*/
listVolumes(params: VolumeFilters): Promise<VolumeDetailsListResults>;
/**
*/
remove(params: RemoveStorage): Promise<ErrorResults>;
/**
*/
removePool(params: StoragePoolDeleteArgs): Promise<ErrorResults>;
/**
*/
storageDetails(params: Entities): Promise<StorageDetailsResults>;
/**
*/
updatePool(params: StoragePoolArgs): Promise<ErrorResults>;
}
export default StorageV7;