@bussolabs/closeyourit-cli 0.0.16 → 0.0.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +73 -2
- package/dist/commands/alerts/notifications/delete.d.ts +12 -0
- package/dist/commands/alerts/notifications/delete.js +25 -0
- package/dist/commands/alerts/notifications/list.d.ts +9 -0
- package/dist/commands/alerts/notifications/list.js +29 -0
- package/dist/commands/alerts/notifications/read-all.d.ts +6 -0
- package/dist/commands/alerts/notifications/read-all.js +15 -0
- package/dist/commands/alerts/notifications/read.d.ts +9 -0
- package/dist/commands/alerts/notifications/read.js +22 -0
- package/dist/commands/alerts/preferences/show.d.ts +6 -0
- package/dist/commands/alerts/preferences/show.js +16 -0
- package/dist/commands/alerts/preferences/update.d.ts +20 -0
- package/dist/commands/alerts/preferences/update.js +63 -0
- package/dist/commands/analytics/goals/create.d.ts +13 -0
- package/dist/commands/analytics/goals/create.js +35 -0
- package/dist/commands/analytics/goals/delete.d.ts +13 -0
- package/dist/commands/analytics/goals/delete.js +27 -0
- package/dist/commands/analytics/goals/list.d.ts +9 -0
- package/dist/commands/analytics/goals/list.js +25 -0
- package/dist/commands/analytics/share.d.ts +10 -0
- package/dist/commands/analytics/share.js +30 -0
- package/dist/commands/analytics/show.d.ts +11 -0
- package/dist/commands/analytics/show.js +32 -0
- package/dist/commands/analytics/unshare.d.ts +10 -0
- package/dist/commands/analytics/unshare.js +24 -0
- package/dist/commands/cron-monitors/list.d.ts +11 -0
- package/dist/commands/cron-monitors/list.js +38 -0
- package/dist/commands/cron-monitors/show.d.ts +9 -0
- package/dist/commands/cron-monitors/show.js +20 -0
- package/dist/commands/groups/create.d.ts +1 -0
- package/dist/commands/groups/create.js +7 -0
- package/dist/commands/groups/update.d.ts +1 -0
- package/dist/commands/groups/update.js +8 -1
- package/dist/commands/ideas/archive.d.ts +12 -0
- package/dist/commands/ideas/archive.js +24 -0
- package/dist/commands/ideas/case-delete.d.ts +14 -0
- package/dist/commands/ideas/case-delete.js +30 -0
- package/dist/commands/ideas/case-update.d.ts +15 -0
- package/dist/commands/ideas/case-update.js +41 -0
- package/dist/commands/ideas/delete.d.ts +13 -0
- package/dist/commands/ideas/delete.js +27 -0
- package/dist/commands/ideas/unarchive.d.ts +12 -0
- package/dist/commands/ideas/unarchive.js +24 -0
- package/dist/commands/logs/link.d.ts +12 -0
- package/dist/commands/logs/link.js +33 -0
- package/dist/commands/logs/show.d.ts +9 -0
- package/dist/commands/logs/show.js +21 -0
- package/dist/commands/logs/unlink.d.ts +13 -0
- package/dist/commands/logs/unlink.js +26 -0
- package/dist/commands/members/remove.d.ts +12 -0
- package/dist/commands/members/remove.js +27 -0
- package/dist/commands/members/set-access.d.ts +4 -0
- package/dist/commands/members/set-access.js +38 -4
- package/dist/commands/members/update.d.ts +14 -0
- package/dist/commands/members/update.js +40 -0
- package/dist/commands/monitors/announcements/clear.d.ts +13 -0
- package/dist/commands/monitors/announcements/clear.js +27 -0
- package/dist/commands/monitors/announcements/set.d.ts +17 -0
- package/dist/commands/monitors/announcements/set.js +45 -0
- package/dist/commands/monitors/announcements/show.d.ts +12 -0
- package/dist/commands/monitors/announcements/show.js +24 -0
- package/dist/commands/monitors/create.d.ts +1 -0
- package/dist/commands/monitors/create.js +3 -0
- package/dist/commands/monitors/incidents/delete.d.ts +14 -0
- package/dist/commands/monitors/incidents/delete.js +28 -0
- package/dist/commands/monitors/incidents/group.d.ts +15 -0
- package/dist/commands/monitors/incidents/group.js +38 -0
- package/dist/commands/monitors/incidents/ungroup.d.ts +14 -0
- package/dist/commands/monitors/incidents/ungroup.js +31 -0
- package/dist/commands/monitors/incidents/update-add.d.ts +15 -0
- package/dist/commands/monitors/incidents/update-add.js +38 -0
- package/dist/commands/monitors/incidents/update-delete.d.ts +15 -0
- package/dist/commands/monitors/incidents/update-delete.js +31 -0
- package/dist/commands/monitors/publish.d.ts +12 -0
- package/dist/commands/monitors/publish.js +21 -0
- package/dist/commands/monitors/unpublish.d.ts +12 -0
- package/dist/commands/monitors/unpublish.js +21 -0
- package/dist/commands/monitors/update.d.ts +1 -0
- package/dist/commands/monitors/update.js +3 -0
- package/dist/commands/org/update.d.ts +2 -0
- package/dist/commands/org/update.js +10 -0
- package/dist/commands/platforms/create.d.ts +1 -0
- package/dist/commands/platforms/create.js +7 -0
- package/dist/commands/platforms/update.d.ts +1 -0
- package/dist/commands/platforms/update.js +8 -1
- package/dist/commands/projects/create.d.ts +2 -0
- package/dist/commands/projects/create.js +13 -0
- package/dist/commands/projects/link-server.d.ts +11 -0
- package/dist/commands/projects/link-server.js +33 -0
- package/dist/commands/projects/settings/show.d.ts +9 -0
- package/dist/commands/projects/settings/show.js +23 -0
- package/dist/commands/projects/settings/update.d.ts +14 -0
- package/dist/commands/projects/settings/update.js +50 -0
- package/dist/commands/projects/unlink-server.d.ts +13 -0
- package/dist/commands/projects/unlink-server.js +29 -0
- package/dist/commands/projects/update.d.ts +2 -0
- package/dist/commands/projects/update.js +14 -1
- package/dist/commands/releases/list.d.ts +10 -0
- package/dist/commands/releases/list.js +29 -0
- package/dist/commands/tickets/links.d.ts +12 -0
- package/dist/commands/tickets/links.js +33 -0
- package/dist/commands/tickets/reviewer.d.ts +13 -0
- package/dist/commands/tickets/reviewer.js +29 -0
- package/dist/commands/tickets/unlink.d.ts +14 -0
- package/dist/commands/tickets/unlink.js +29 -0
- package/dist/commands/tickets/unreviewer.d.ts +12 -0
- package/dist/commands/tickets/unreviewer.js +25 -0
- package/dist/commands/tickets/unwatch.d.ts +12 -0
- package/dist/commands/tickets/unwatch.js +25 -0
- package/dist/commands/tickets/watch.d.ts +12 -0
- package/dist/commands/tickets/watch.js +26 -0
- package/dist/commands/todos/complete.d.ts +10 -0
- package/dist/commands/todos/complete.js +23 -0
- package/dist/commands/todos/create.d.ts +10 -0
- package/dist/commands/todos/create.js +29 -0
- package/dist/commands/todos/delete.d.ts +12 -0
- package/dist/commands/todos/delete.js +25 -0
- package/dist/commands/todos/items/add.d.ts +14 -0
- package/dist/commands/todos/items/add.js +35 -0
- package/dist/commands/todos/items/delete.d.ts +13 -0
- package/dist/commands/todos/items/delete.js +26 -0
- package/dist/commands/todos/items/list.d.ts +12 -0
- package/dist/commands/todos/items/list.js +28 -0
- package/dist/commands/todos/items/update.d.ts +15 -0
- package/dist/commands/todos/items/update.js +38 -0
- package/dist/commands/todos/list.d.ts +9 -0
- package/dist/commands/todos/list.js +24 -0
- package/dist/commands/todos/reorder.d.ts +9 -0
- package/dist/commands/todos/reorder.js +19 -0
- package/dist/commands/todos/share.d.ts +12 -0
- package/dist/commands/todos/share.js +33 -0
- package/dist/commands/todos/shared-show.d.ts +9 -0
- package/dist/commands/todos/shared-show.js +20 -0
- package/dist/commands/todos/shared.d.ts +9 -0
- package/dist/commands/todos/shared.js +25 -0
- package/dist/commands/todos/shares.d.ts +9 -0
- package/dist/commands/todos/shares.js +26 -0
- package/dist/commands/todos/show.d.ts +9 -0
- package/dist/commands/todos/show.js +20 -0
- package/dist/commands/todos/uncomplete.d.ts +10 -0
- package/dist/commands/todos/uncomplete.js +23 -0
- package/dist/commands/todos/update.d.ts +13 -0
- package/dist/commands/todos/update.js +34 -0
- package/dist/commands/uptime-groups/create.d.ts +12 -0
- package/dist/commands/uptime-groups/create.js +35 -0
- package/dist/commands/uptime-groups/delete.d.ts +12 -0
- package/dist/commands/uptime-groups/delete.js +25 -0
- package/dist/commands/uptime-groups/list.d.ts +9 -0
- package/dist/commands/uptime-groups/list.js +24 -0
- package/dist/commands/uptime-groups/publish.d.ts +9 -0
- package/dist/commands/uptime-groups/publish.js +22 -0
- package/dist/commands/uptime-groups/show.d.ts +9 -0
- package/dist/commands/uptime-groups/show.js +20 -0
- package/dist/commands/uptime-groups/unpublish.d.ts +9 -0
- package/dist/commands/uptime-groups/unpublish.js +22 -0
- package/dist/commands/uptime-groups/update.d.ts +15 -0
- package/dist/commands/uptime-groups/update.js +37 -0
- package/oclif.manifest.json +5826 -2217
- package/opencli.json +3003 -83
- package/package.json +16 -1
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { BaseCommand } from '../../base';
|
|
2
|
+
export default class MembersUpdate extends BaseCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static args: {
|
|
6
|
+
id: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
7
|
+
};
|
|
8
|
+
static flags: {
|
|
9
|
+
name: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
10
|
+
email: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
11
|
+
handle: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
12
|
+
};
|
|
13
|
+
run(): Promise<unknown>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@oclif/core");
|
|
4
|
+
const base_1 = require("../../base");
|
|
5
|
+
const output_1 = require("../../lib/output");
|
|
6
|
+
class MembersUpdate extends base_1.BaseCommand {
|
|
7
|
+
// Update the member's account profile (name/email/handle). email/handle are GLOBAL credentials.
|
|
8
|
+
// Only the flags you pass are sent. The backend gates `members.edit` and protects privileged targets
|
|
9
|
+
// (owner/god) from non-privileged actors. The arg is the MEMBERSHIP id (like set-role/set-access).
|
|
10
|
+
static description = "Update a member's profile: name, email, handle (requires members.edit)";
|
|
11
|
+
static examples = [
|
|
12
|
+
'<%= config.bin %> members update <membership-id> --name "Ada Lovelace"',
|
|
13
|
+
'<%= config.bin %> members update <membership-id> --email ada@acme.test --handle ada',
|
|
14
|
+
];
|
|
15
|
+
static args = {
|
|
16
|
+
id: core_1.Args.string({ description: 'Membership id', required: true }),
|
|
17
|
+
};
|
|
18
|
+
static flags = {
|
|
19
|
+
name: core_1.Flags.string({ description: 'New display name' }),
|
|
20
|
+
email: core_1.Flags.string({ description: 'New email (global credential)' }),
|
|
21
|
+
handle: core_1.Flags.string({ description: 'New handle (global; a-z, 0-9, underscore)' }),
|
|
22
|
+
};
|
|
23
|
+
async run() {
|
|
24
|
+
const { args, flags } = await this.parse(MembersUpdate);
|
|
25
|
+
const body = {};
|
|
26
|
+
if (flags.name !== undefined)
|
|
27
|
+
body.name = flags.name;
|
|
28
|
+
if (flags.email !== undefined)
|
|
29
|
+
body.email = flags.email;
|
|
30
|
+
if (flags.handle !== undefined)
|
|
31
|
+
body.handle = flags.handle;
|
|
32
|
+
const res = await this.api.put(`/cli/v1/members/${encodeURIComponent(args.id)}`, body);
|
|
33
|
+
if (!this.jsonEnabled()) {
|
|
34
|
+
this.log('Member updated:');
|
|
35
|
+
this.log((0, output_1.renderRecord)(res.data ?? {}));
|
|
36
|
+
}
|
|
37
|
+
return res;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.default = MembersUpdate;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { BaseCommand } from '../../../base';
|
|
2
|
+
export default class MonitorsAnnouncementsClear extends BaseCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static args: {
|
|
6
|
+
monitor: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
7
|
+
};
|
|
8
|
+
static flags: {
|
|
9
|
+
confirm: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
10
|
+
project: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
11
|
+
};
|
|
12
|
+
run(): Promise<unknown>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@oclif/core");
|
|
4
|
+
const base_1 = require("../../../base");
|
|
5
|
+
class MonitorsAnnouncementsClear extends base_1.BaseCommand {
|
|
6
|
+
static description = 'Remove the status page announcement banner for a monitor';
|
|
7
|
+
static examples = ['<%= config.bin %> monitors announcements clear <monitor-id> --project acme-api --confirm'];
|
|
8
|
+
static args = {
|
|
9
|
+
monitor: core_1.Args.string({ description: 'Monitor id', required: true }),
|
|
10
|
+
};
|
|
11
|
+
static flags = {
|
|
12
|
+
...base_1.projectFlag,
|
|
13
|
+
confirm: core_1.Flags.boolean({ description: 'Required: confirm the removal' }),
|
|
14
|
+
};
|
|
15
|
+
async run() {
|
|
16
|
+
const { args, flags } = await this.parse(MonitorsAnnouncementsClear);
|
|
17
|
+
if (!flags.confirm) {
|
|
18
|
+
this.error('Refusing to clear the announcement without --confirm.', { exit: 2 });
|
|
19
|
+
}
|
|
20
|
+
const projectId = await this.resolveProjectId(flags.project);
|
|
21
|
+
await this.api.delete(`/cli/v1/projects/${encodeURIComponent(projectId)}/monitors/${encodeURIComponent(args.monitor)}/announcement`);
|
|
22
|
+
if (!this.jsonEnabled())
|
|
23
|
+
this.log(`Cleared announcement for monitor ${args.monitor}`);
|
|
24
|
+
return { cleared: args.monitor };
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.default = MonitorsAnnouncementsClear;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { BaseCommand } from '../../../base';
|
|
2
|
+
export default class MonitorsAnnouncementsSet extends BaseCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static args: {
|
|
6
|
+
monitor: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
7
|
+
};
|
|
8
|
+
static flags: {
|
|
9
|
+
level: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
10
|
+
message: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
11
|
+
'starts-at': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
12
|
+
'ends-at': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
13
|
+
active: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
14
|
+
project: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
15
|
+
};
|
|
16
|
+
run(): Promise<unknown>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@oclif/core");
|
|
4
|
+
const base_1 = require("../../../base");
|
|
5
|
+
const output_1 = require("../../../lib/output");
|
|
6
|
+
class MonitorsAnnouncementsSet extends base_1.BaseCommand {
|
|
7
|
+
static description = 'Upsert the status page announcement banner for a monitor';
|
|
8
|
+
static examples = [
|
|
9
|
+
'<%= config.bin %> monitors announcements set <monitor-id> --project acme-api --level maintenance --message "Scheduled DB upgrade"',
|
|
10
|
+
'<%= config.bin %> monitors announcements set <monitor-id> -p acme-api --level warning --message "Degraded" --starts-at 2026-07-10T09:00:00Z --ends-at 2026-07-10T11:00:00Z --active',
|
|
11
|
+
];
|
|
12
|
+
static args = {
|
|
13
|
+
monitor: core_1.Args.string({ description: 'Monitor id', required: true }),
|
|
14
|
+
};
|
|
15
|
+
static flags = {
|
|
16
|
+
...base_1.projectFlag,
|
|
17
|
+
level: core_1.Flags.string({ description: 'Banner level', options: ['info', 'maintenance', 'warning'] }),
|
|
18
|
+
message: core_1.Flags.string({ description: 'Banner message' }),
|
|
19
|
+
'starts-at': core_1.Flags.string({ description: 'Start time (ISO 8601)' }),
|
|
20
|
+
'ends-at': core_1.Flags.string({ description: 'End time (ISO 8601)' }),
|
|
21
|
+
active: core_1.Flags.boolean({ allowNo: true, description: 'Whether the banner is active' }),
|
|
22
|
+
};
|
|
23
|
+
async run() {
|
|
24
|
+
const { args, flags } = await this.parse(MonitorsAnnouncementsSet);
|
|
25
|
+
const projectId = await this.resolveProjectId(flags.project);
|
|
26
|
+
const body = {};
|
|
27
|
+
if (flags.level !== undefined)
|
|
28
|
+
body.level = flags.level;
|
|
29
|
+
if (flags.message !== undefined)
|
|
30
|
+
body.message = flags.message;
|
|
31
|
+
if (flags['starts-at'] !== undefined)
|
|
32
|
+
body.starts_at = flags['starts-at'];
|
|
33
|
+
if (flags['ends-at'] !== undefined)
|
|
34
|
+
body.ends_at = flags['ends-at'];
|
|
35
|
+
if (flags.active !== undefined)
|
|
36
|
+
body.active = flags.active;
|
|
37
|
+
const res = await this.api.put(`/cli/v1/projects/${encodeURIComponent(projectId)}/monitors/${encodeURIComponent(args.monitor)}/announcement`, body);
|
|
38
|
+
if (!this.jsonEnabled()) {
|
|
39
|
+
this.log('Announcement saved:');
|
|
40
|
+
this.log((0, output_1.renderRecord)(res.data ?? {}));
|
|
41
|
+
}
|
|
42
|
+
return res;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.default = MonitorsAnnouncementsSet;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BaseCommand } from '../../../base';
|
|
2
|
+
export default class MonitorsAnnouncementsShow extends BaseCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static args: {
|
|
6
|
+
monitor: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
7
|
+
};
|
|
8
|
+
static flags: {
|
|
9
|
+
project: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
10
|
+
};
|
|
11
|
+
run(): Promise<unknown>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@oclif/core");
|
|
4
|
+
const base_1 = require("../../../base");
|
|
5
|
+
const output_1 = require("../../../lib/output");
|
|
6
|
+
class MonitorsAnnouncementsShow extends base_1.BaseCommand {
|
|
7
|
+
static description = 'Show the status page announcement banner for a monitor (null if none)';
|
|
8
|
+
static examples = ['<%= config.bin %> monitors announcements show <monitor-id> --project acme-api'];
|
|
9
|
+
static args = {
|
|
10
|
+
monitor: core_1.Args.string({ description: 'Monitor id', required: true }),
|
|
11
|
+
};
|
|
12
|
+
static flags = { ...base_1.projectFlag };
|
|
13
|
+
async run() {
|
|
14
|
+
const { args, flags } = await this.parse(MonitorsAnnouncementsShow);
|
|
15
|
+
const projectId = await this.resolveProjectId(flags.project);
|
|
16
|
+
const res = await this.api.get(`/cli/v1/projects/${encodeURIComponent(projectId)}/monitors/${encodeURIComponent(args.monitor)}/announcement`);
|
|
17
|
+
if (!this.jsonEnabled()) {
|
|
18
|
+
const announcement = res.data;
|
|
19
|
+
this.log(announcement ? (0, output_1.renderRecord)(announcement) : 'No announcement set.');
|
|
20
|
+
}
|
|
21
|
+
return res;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.default = MonitorsAnnouncementsShow;
|
|
@@ -11,6 +11,7 @@ export default class MonitorsCreate extends BaseCommand {
|
|
|
11
11
|
'timeout-seconds': import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
12
12
|
'expected-body-keyword': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
13
13
|
'ssl-expiry-warn-days': import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
14
|
+
'group-id': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
14
15
|
project: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
15
16
|
};
|
|
16
17
|
run(): Promise<unknown>;
|
|
@@ -19,6 +19,7 @@ class MonitorsCreate extends base_1.BaseCommand {
|
|
|
19
19
|
'timeout-seconds': core_1.Flags.integer({ description: 'Request timeout in seconds' }),
|
|
20
20
|
'expected-body-keyword': core_1.Flags.string({ description: 'Keyword expected in the response body (check fails without it; not with HEAD)' }),
|
|
21
21
|
'ssl-expiry-warn-days': core_1.Flags.integer({ description: 'Alert when the TLS certificate has at most N days left (empty = off)' }),
|
|
22
|
+
'group-id': core_1.Flags.string({ description: 'Uptime group id to attach the monitor to (org-level)' }),
|
|
22
23
|
};
|
|
23
24
|
async run() {
|
|
24
25
|
const { flags } = await this.parse(MonitorsCreate);
|
|
@@ -38,6 +39,8 @@ class MonitorsCreate extends base_1.BaseCommand {
|
|
|
38
39
|
body.expected_body_keyword = flags['expected-body-keyword'];
|
|
39
40
|
if (flags['ssl-expiry-warn-days'] !== undefined)
|
|
40
41
|
body.ssl_expiry_warn_days = flags['ssl-expiry-warn-days'];
|
|
42
|
+
if (flags['group-id'] !== undefined)
|
|
43
|
+
body.group_id = flags['group-id'];
|
|
41
44
|
const res = await this.api.post(`/cli/v1/projects/${encodeURIComponent(projectId)}/monitors`, body);
|
|
42
45
|
if (!this.jsonEnabled()) {
|
|
43
46
|
this.log('Monitor created:');
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { BaseCommand } from '../../../base';
|
|
2
|
+
export default class MonitorsIncidentsDelete extends BaseCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static args: {
|
|
6
|
+
monitor: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
7
|
+
incident: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
8
|
+
};
|
|
9
|
+
static flags: {
|
|
10
|
+
confirm: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
11
|
+
project: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
12
|
+
};
|
|
13
|
+
run(): Promise<unknown>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@oclif/core");
|
|
4
|
+
const base_1 = require("../../../base");
|
|
5
|
+
class MonitorsIncidentsDelete extends base_1.BaseCommand {
|
|
6
|
+
static description = 'Delete an uptime incident (and its grouped windows; irreversible)';
|
|
7
|
+
static examples = ['<%= config.bin %> monitors incidents delete <monitor-id> <incident-id> --project acme-api --confirm'];
|
|
8
|
+
static args = {
|
|
9
|
+
monitor: core_1.Args.string({ description: 'Monitor id', required: true }),
|
|
10
|
+
incident: core_1.Args.string({ description: 'Incident id (primary)', required: true }),
|
|
11
|
+
};
|
|
12
|
+
static flags = {
|
|
13
|
+
...base_1.projectFlag,
|
|
14
|
+
confirm: core_1.Flags.boolean({ description: 'Required: confirm the deletion' }),
|
|
15
|
+
};
|
|
16
|
+
async run() {
|
|
17
|
+
const { args, flags } = await this.parse(MonitorsIncidentsDelete);
|
|
18
|
+
if (!flags.confirm) {
|
|
19
|
+
this.error('Refusing to delete without --confirm.', { exit: 2 });
|
|
20
|
+
}
|
|
21
|
+
const projectId = await this.resolveProjectId(flags.project);
|
|
22
|
+
await this.api.delete(`/cli/v1/projects/${encodeURIComponent(projectId)}/monitors/${encodeURIComponent(args.monitor)}/incidents/${encodeURIComponent(args.incident)}`);
|
|
23
|
+
if (!this.jsonEnabled())
|
|
24
|
+
this.log(`Deleted incident ${args.incident}`);
|
|
25
|
+
return { deleted: args.incident };
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.default = MonitorsIncidentsDelete;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BaseCommand } from '../../../base';
|
|
2
|
+
export default class MonitorsIncidentsGroup extends BaseCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static args: {
|
|
6
|
+
monitor: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
7
|
+
};
|
|
8
|
+
static flags: {
|
|
9
|
+
incident: import("@oclif/core/lib/interfaces").OptionFlag<string[], import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
10
|
+
phase: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
11
|
+
body: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
12
|
+
project: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
13
|
+
};
|
|
14
|
+
run(): Promise<unknown>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@oclif/core");
|
|
4
|
+
const base_1 = require("../../../base");
|
|
5
|
+
const output_1 = require("../../../lib/output");
|
|
6
|
+
class MonitorsIncidentsGroup extends base_1.BaseCommand {
|
|
7
|
+
static description = 'Unify incidents of a monitor and post the first narration step';
|
|
8
|
+
static examples = [
|
|
9
|
+
'<%= config.bin %> monitors incidents group <monitor-id> --project acme-api --incident <id-a> --incident <id-b> --phase investigating --body "Looking into it"',
|
|
10
|
+
];
|
|
11
|
+
static args = {
|
|
12
|
+
monitor: core_1.Args.string({ description: 'Monitor id', required: true }),
|
|
13
|
+
};
|
|
14
|
+
static flags = {
|
|
15
|
+
...base_1.projectFlag,
|
|
16
|
+
incident: core_1.Flags.string({ description: 'Incident id to unify (repeatable)', multiple: true, required: true }),
|
|
17
|
+
phase: core_1.Flags.string({
|
|
18
|
+
description: 'Timeline phase of the first step',
|
|
19
|
+
options: ['detected', 'investigating', 'fixing', 'monitoring', 'resolved'],
|
|
20
|
+
required: true,
|
|
21
|
+
}),
|
|
22
|
+
body: core_1.Flags.string({ description: 'Text of the first narration step' }),
|
|
23
|
+
};
|
|
24
|
+
async run() {
|
|
25
|
+
const { args, flags } = await this.parse(MonitorsIncidentsGroup);
|
|
26
|
+
const projectId = await this.resolveProjectId(flags.project);
|
|
27
|
+
const body = { incident_ids: flags.incident, phase: flags.phase };
|
|
28
|
+
if (flags.body !== undefined)
|
|
29
|
+
body.body = flags.body;
|
|
30
|
+
const res = await this.api.post(`/cli/v1/projects/${encodeURIComponent(projectId)}/monitors/${encodeURIComponent(args.monitor)}/incidents/group`, body);
|
|
31
|
+
if (!this.jsonEnabled()) {
|
|
32
|
+
this.log('Incidents grouped:');
|
|
33
|
+
this.log((0, output_1.renderRecord)(res.data ?? {}));
|
|
34
|
+
}
|
|
35
|
+
return res;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.default = MonitorsIncidentsGroup;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { BaseCommand } from '../../../base';
|
|
2
|
+
export default class MonitorsIncidentsUngroup extends BaseCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static args: {
|
|
6
|
+
monitor: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
7
|
+
incident: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
8
|
+
};
|
|
9
|
+
static flags: {
|
|
10
|
+
keep: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
11
|
+
project: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
12
|
+
};
|
|
13
|
+
run(): Promise<unknown>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@oclif/core");
|
|
4
|
+
const base_1 = require("../../../base");
|
|
5
|
+
class MonitorsIncidentsUngroup extends base_1.BaseCommand {
|
|
6
|
+
static description = 'Dissolve an incident grouping (grouped windows become separate again)';
|
|
7
|
+
static examples = [
|
|
8
|
+
'<%= config.bin %> monitors incidents ungroup <monitor-id> <incident-id> --project acme-api',
|
|
9
|
+
'<%= config.bin %> monitors incidents ungroup <monitor-id> <incident-id> -p acme-api --keep <window-id>',
|
|
10
|
+
];
|
|
11
|
+
static args = {
|
|
12
|
+
monitor: core_1.Args.string({ description: 'Monitor id', required: true }),
|
|
13
|
+
incident: core_1.Args.string({ description: 'Incident id (primary)', required: true }),
|
|
14
|
+
};
|
|
15
|
+
static flags = {
|
|
16
|
+
...base_1.projectFlag,
|
|
17
|
+
keep: core_1.Flags.string({ description: 'Id of the window that keeps the narration status' }),
|
|
18
|
+
};
|
|
19
|
+
async run() {
|
|
20
|
+
const { args, flags } = await this.parse(MonitorsIncidentsUngroup);
|
|
21
|
+
const projectId = await this.resolveProjectId(flags.project);
|
|
22
|
+
const body = {};
|
|
23
|
+
if (flags.keep !== undefined)
|
|
24
|
+
body.keep_incident_id = flags.keep;
|
|
25
|
+
await this.api.delete(`/cli/v1/projects/${encodeURIComponent(projectId)}/monitors/${encodeURIComponent(args.monitor)}/incidents/${encodeURIComponent(args.incident)}/group`, { body });
|
|
26
|
+
if (!this.jsonEnabled())
|
|
27
|
+
this.log(`Ungrouped incident ${args.incident}`);
|
|
28
|
+
return { ungrouped: args.incident };
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.default = MonitorsIncidentsUngroup;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BaseCommand } from '../../../base';
|
|
2
|
+
export default class MonitorsIncidentsUpdateAdd extends BaseCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static args: {
|
|
6
|
+
monitor: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
7
|
+
incident: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
8
|
+
};
|
|
9
|
+
static flags: {
|
|
10
|
+
phase: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
11
|
+
body: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
12
|
+
project: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
13
|
+
};
|
|
14
|
+
run(): Promise<unknown>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@oclif/core");
|
|
4
|
+
const base_1 = require("../../../base");
|
|
5
|
+
const output_1 = require("../../../lib/output");
|
|
6
|
+
class MonitorsIncidentsUpdateAdd extends base_1.BaseCommand {
|
|
7
|
+
static description = 'Add a timeline step to a narrated incident';
|
|
8
|
+
static examples = [
|
|
9
|
+
'<%= config.bin %> monitors incidents update-add <monitor-id> <incident-id> --project acme-api --phase monitoring --body "Recovering"',
|
|
10
|
+
];
|
|
11
|
+
static args = {
|
|
12
|
+
monitor: core_1.Args.string({ description: 'Monitor id', required: true }),
|
|
13
|
+
incident: core_1.Args.string({ description: 'Incident id (primary)', required: true }),
|
|
14
|
+
};
|
|
15
|
+
static flags = {
|
|
16
|
+
...base_1.projectFlag,
|
|
17
|
+
phase: core_1.Flags.string({
|
|
18
|
+
description: 'Timeline phase of the step',
|
|
19
|
+
options: ['detected', 'investigating', 'fixing', 'monitoring', 'resolved'],
|
|
20
|
+
required: true,
|
|
21
|
+
}),
|
|
22
|
+
body: core_1.Flags.string({ description: 'Text of the step' }),
|
|
23
|
+
};
|
|
24
|
+
async run() {
|
|
25
|
+
const { args, flags } = await this.parse(MonitorsIncidentsUpdateAdd);
|
|
26
|
+
const projectId = await this.resolveProjectId(flags.project);
|
|
27
|
+
const body = { phase: flags.phase };
|
|
28
|
+
if (flags.body !== undefined)
|
|
29
|
+
body.body = flags.body;
|
|
30
|
+
const res = await this.api.post(`/cli/v1/projects/${encodeURIComponent(projectId)}/monitors/${encodeURIComponent(args.monitor)}/incidents/${encodeURIComponent(args.incident)}/updates`, body);
|
|
31
|
+
if (!this.jsonEnabled()) {
|
|
32
|
+
this.log('Incident update added:');
|
|
33
|
+
this.log((0, output_1.renderRecord)(res.data ?? {}));
|
|
34
|
+
}
|
|
35
|
+
return res;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.default = MonitorsIncidentsUpdateAdd;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BaseCommand } from '../../../base';
|
|
2
|
+
export default class MonitorsIncidentsUpdateDelete extends BaseCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static args: {
|
|
6
|
+
monitor: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
7
|
+
incident: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
8
|
+
update: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
9
|
+
};
|
|
10
|
+
static flags: {
|
|
11
|
+
confirm: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
12
|
+
project: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
13
|
+
};
|
|
14
|
+
run(): Promise<unknown>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@oclif/core");
|
|
4
|
+
const base_1 = require("../../../base");
|
|
5
|
+
class MonitorsIncidentsUpdateDelete extends base_1.BaseCommand {
|
|
6
|
+
static description = 'Delete a timeline step from a narrated incident (irreversible)';
|
|
7
|
+
static examples = [
|
|
8
|
+
'<%= config.bin %> monitors incidents update-delete <monitor-id> <incident-id> <update-id> --project acme-api --confirm',
|
|
9
|
+
];
|
|
10
|
+
static args = {
|
|
11
|
+
monitor: core_1.Args.string({ description: 'Monitor id', required: true }),
|
|
12
|
+
incident: core_1.Args.string({ description: 'Incident id (primary)', required: true }),
|
|
13
|
+
update: core_1.Args.string({ description: 'Timeline step id', required: true }),
|
|
14
|
+
};
|
|
15
|
+
static flags = {
|
|
16
|
+
...base_1.projectFlag,
|
|
17
|
+
confirm: core_1.Flags.boolean({ description: 'Required: confirm the deletion' }),
|
|
18
|
+
};
|
|
19
|
+
async run() {
|
|
20
|
+
const { args, flags } = await this.parse(MonitorsIncidentsUpdateDelete);
|
|
21
|
+
if (!flags.confirm) {
|
|
22
|
+
this.error('Refusing to delete without --confirm.', { exit: 2 });
|
|
23
|
+
}
|
|
24
|
+
const projectId = await this.resolveProjectId(flags.project);
|
|
25
|
+
await this.api.delete(`/cli/v1/projects/${encodeURIComponent(projectId)}/monitors/${encodeURIComponent(args.monitor)}/incidents/${encodeURIComponent(args.incident)}/updates/${encodeURIComponent(args.update)}`);
|
|
26
|
+
if (!this.jsonEnabled())
|
|
27
|
+
this.log(`Deleted incident update ${args.update}`);
|
|
28
|
+
return { deleted: args.update };
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.default = MonitorsIncidentsUpdateDelete;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BaseCommand } from '../../base';
|
|
2
|
+
export default class MonitorsPublish extends BaseCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static args: {
|
|
6
|
+
id: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
7
|
+
};
|
|
8
|
+
static flags: {
|
|
9
|
+
project: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
10
|
+
};
|
|
11
|
+
run(): Promise<unknown>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@oclif/core");
|
|
4
|
+
const base_1 = require("../../base");
|
|
5
|
+
class MonitorsPublish extends base_1.BaseCommand {
|
|
6
|
+
static description = 'Publish the public status page for a monitor (opt-in)';
|
|
7
|
+
static examples = ['<%= config.bin %> monitors publish <monitor-id> --project acme-api'];
|
|
8
|
+
static args = {
|
|
9
|
+
id: core_1.Args.string({ description: 'Monitor id', required: true }),
|
|
10
|
+
};
|
|
11
|
+
static flags = { ...base_1.projectFlag };
|
|
12
|
+
async run() {
|
|
13
|
+
const { args, flags } = await this.parse(MonitorsPublish);
|
|
14
|
+
const projectId = await this.resolveProjectId(flags.project);
|
|
15
|
+
const res = await this.api.put(`/cli/v1/projects/${encodeURIComponent(projectId)}/monitors/${encodeURIComponent(args.id)}/publication`);
|
|
16
|
+
if (!this.jsonEnabled())
|
|
17
|
+
this.log(`Published status page for monitor ${args.id}`);
|
|
18
|
+
return res;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.default = MonitorsPublish;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BaseCommand } from '../../base';
|
|
2
|
+
export default class MonitorsUnpublish extends BaseCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static args: {
|
|
6
|
+
id: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
7
|
+
};
|
|
8
|
+
static flags: {
|
|
9
|
+
project: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
10
|
+
};
|
|
11
|
+
run(): Promise<unknown>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@oclif/core");
|
|
4
|
+
const base_1 = require("../../base");
|
|
5
|
+
class MonitorsUnpublish extends base_1.BaseCommand {
|
|
6
|
+
static description = 'Unpublish the public status page for a monitor';
|
|
7
|
+
static examples = ['<%= config.bin %> monitors unpublish <monitor-id> --project acme-api'];
|
|
8
|
+
static args = {
|
|
9
|
+
id: core_1.Args.string({ description: 'Monitor id', required: true }),
|
|
10
|
+
};
|
|
11
|
+
static flags = { ...base_1.projectFlag };
|
|
12
|
+
async run() {
|
|
13
|
+
const { args, flags } = await this.parse(MonitorsUnpublish);
|
|
14
|
+
const projectId = await this.resolveProjectId(flags.project);
|
|
15
|
+
const res = await this.api.delete(`/cli/v1/projects/${encodeURIComponent(projectId)}/monitors/${encodeURIComponent(args.id)}/publication`);
|
|
16
|
+
if (!this.jsonEnabled())
|
|
17
|
+
this.log(`Unpublished status page for monitor ${args.id}`);
|
|
18
|
+
return res;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.default = MonitorsUnpublish;
|
|
@@ -13,6 +13,7 @@ export default class MonitorsUpdate extends BaseCommand {
|
|
|
13
13
|
'timeout-seconds': import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
14
14
|
'expected-body-keyword': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
15
15
|
'ssl-expiry-warn-days': import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
16
|
+
'group-id': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
16
17
|
project: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
17
18
|
};
|
|
18
19
|
run(): Promise<unknown>;
|
|
@@ -21,6 +21,7 @@ class MonitorsUpdate extends base_1.BaseCommand {
|
|
|
21
21
|
'timeout-seconds': core_1.Flags.integer({ description: 'Request timeout in seconds' }),
|
|
22
22
|
'expected-body-keyword': core_1.Flags.string({ description: 'Keyword expected in the response body (check fails without it; not with HEAD)' }),
|
|
23
23
|
'ssl-expiry-warn-days': core_1.Flags.integer({ description: 'Alert when the TLS certificate has at most N days left (empty = off)' }),
|
|
24
|
+
'group-id': core_1.Flags.string({ description: 'Uptime group id to attach the monitor to (org-level)' }),
|
|
24
25
|
};
|
|
25
26
|
async run() {
|
|
26
27
|
const { args, flags } = await this.parse(MonitorsUpdate);
|
|
@@ -40,6 +41,8 @@ class MonitorsUpdate extends base_1.BaseCommand {
|
|
|
40
41
|
body.expected_body_keyword = flags['expected-body-keyword'];
|
|
41
42
|
if (flags['ssl-expiry-warn-days'] !== undefined)
|
|
42
43
|
body.ssl_expiry_warn_days = flags['ssl-expiry-warn-days'];
|
|
44
|
+
if (flags['group-id'] !== undefined)
|
|
45
|
+
body.group_id = flags['group-id'];
|
|
43
46
|
const res = await this.api.put(`/cli/v1/projects/${encodeURIComponent(projectId)}/monitors/${encodeURIComponent(args.id)}`, body);
|
|
44
47
|
if (!this.jsonEnabled()) {
|
|
45
48
|
this.log('Monitor updated:');
|
|
@@ -6,6 +6,8 @@ export default class OrgUpdate extends BaseCommand {
|
|
|
6
6
|
name: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
7
7
|
slug: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
8
8
|
'projects-view': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
9
|
+
'logs-retention-days': import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
10
|
+
'analytics-retention-days': import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
9
11
|
};
|
|
10
12
|
run(): Promise<unknown>;
|
|
11
13
|
}
|
|
@@ -9,11 +9,16 @@ class OrgUpdate extends base_1.BaseCommand {
|
|
|
9
9
|
'<%= config.bin %> org update --name "Acme Inc"',
|
|
10
10
|
'<%= config.bin %> org update --slug acme-inc',
|
|
11
11
|
'<%= config.bin %> org update --projects-view table',
|
|
12
|
+
'<%= config.bin %> org update --logs-retention-days 30 --analytics-retention-days 365',
|
|
12
13
|
];
|
|
13
14
|
static flags = {
|
|
14
15
|
name: core_1.Flags.string({ description: 'New organization name' }),
|
|
15
16
|
slug: core_1.Flags.string({ description: 'New organization slug (lowercase, a-z 0-9 and hyphens)' }),
|
|
16
17
|
'projects-view': core_1.Flags.string({ description: 'Default projects list view', options: ['cards', 'table'] }),
|
|
18
|
+
'logs-retention-days': core_1.Flags.integer({ description: 'Org-level log retention in days (blank inherits the god default)' }),
|
|
19
|
+
'analytics-retention-days': core_1.Flags.integer({
|
|
20
|
+
description: 'Org-level analytics retention in days (blank inherits the god default)',
|
|
21
|
+
}),
|
|
17
22
|
};
|
|
18
23
|
async run() {
|
|
19
24
|
const { flags } = await this.parse(OrgUpdate);
|
|
@@ -24,6 +29,11 @@ class OrgUpdate extends base_1.BaseCommand {
|
|
|
24
29
|
body.slug = flags.slug;
|
|
25
30
|
if (flags['projects-view'] !== undefined)
|
|
26
31
|
body.default_projects_view = flags['projects-view'];
|
|
32
|
+
if (flags['logs-retention-days'] !== undefined)
|
|
33
|
+
body.logs_retention_days = flags['logs-retention-days'];
|
|
34
|
+
if (flags['analytics-retention-days'] !== undefined) {
|
|
35
|
+
body.analytics_retention_days = flags['analytics-retention-days'];
|
|
36
|
+
}
|
|
27
37
|
const res = await this.api.put('/cli/v1/organization', body);
|
|
28
38
|
if (!this.jsonEnabled()) {
|
|
29
39
|
this.log('Organization updated:');
|