-
Notifications
You must be signed in to change notification settings - Fork 7
/
CredentialValidatorV2.ts
141 lines (118 loc) · 3.17 KB
/
CredentialValidatorV2.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
/**
Juju CredentialValidator version 2.
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.3 at the git SHA 65fa4c1ee5.
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 Entity {
tag: string;
}
export interface Error {
code: string;
info?: AdditionalProperties;
message: string;
}
export interface ErrorResult {
error?: Error;
}
export interface InvalidateCredentialArg {
reason?: string;
}
export interface ModelCredential {
"credential-tag": string;
exists?: boolean;
"model-tag": string;
valid?: boolean;
}
export interface NotifyWatchResult {
NotifyWatcherId: string;
error?: Error;
}
export interface AdditionalProperties {
[key: string]: any;
}
/**
*/
class CredentialValidatorV2 implements Facade {
static NAME = "CredentialValidator";
static VERSION = 2;
NAME = "CredentialValidator";
VERSION = 2;
_transport: Transport;
_info: ConnectionInfo;
constructor(transport: Transport, info: ConnectionInfo) {
this._transport = transport;
this._info = info;
// Automatically bind all methods to instances.
autoBind(this);
}
/**
InvalidateModelCredential marks the cloud credential for this model as invalid.
*/
invalidateModelCredential(
params: InvalidateCredentialArg
): Promise<ErrorResult> {
return new Promise((resolve, reject) => {
const req: JujuRequest = {
type: "CredentialValidator",
request: "InvalidateModelCredential",
version: 2,
params: params,
};
this._transport.write(req, resolve, reject);
});
}
/**
ModelCredential returns cloud credential information for a model.
*/
modelCredential(params: any): Promise<ModelCredential> {
return new Promise((resolve, reject) => {
const req: JujuRequest = {
type: "CredentialValidator",
request: "ModelCredential",
version: 2,
params: params,
};
this._transport.write(req, resolve, reject);
});
}
/**
WatchCredential returns a NotifyWatcher that observes
changes to a given cloud credential.
*/
watchCredential(params: Entity): Promise<NotifyWatchResult> {
return new Promise((resolve, reject) => {
const req: JujuRequest = {
type: "CredentialValidator",
request: "WatchCredential",
version: 2,
params: params,
};
this._transport.write(req, resolve, reject);
});
}
/**
WatchModelCredential returns a NotifyWatcher that watches what cloud credential a model uses.
*/
watchModelCredential(params: any): Promise<NotifyWatchResult> {
return new Promise((resolve, reject) => {
const req: JujuRequest = {
type: "CredentialValidator",
request: "WatchModelCredential",
version: 2,
params: params,
};
this._transport.write(req, resolve, reject);
});
}
}
export default CredentialValidatorV2;