@leavepulse/control-sdk 0.3.31 → 0.3.32

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/client.ts CHANGED
@@ -13,9 +13,12 @@ import { ControlCfAccount } from "./resources/ControlCfAccount";
13
13
  import { ControlDcimAcceptance } from "./resources/ControlDcimAcceptance";
14
14
  import { ControlDcimCable } from "./resources/ControlDcimCable";
15
15
  import { ControlDcimComponent } from "./resources/ControlDcimComponent";
16
+ import { ControlDcimComponentType } from "./resources/ControlDcimComponentType";
16
17
  import { ControlDcimDevice } from "./resources/ControlDcimDevice";
18
+ import { ControlDcimDeviceType } from "./resources/ControlDcimDeviceType";
17
19
  import { ControlDcimFeed } from "./resources/ControlDcimFeed";
18
20
  import { ControlDcimLocation } from "./resources/ControlDcimLocation";
21
+ import { ControlDcimManufacturer } from "./resources/ControlDcimManufacturer";
19
22
  import { ControlDcimOutlet } from "./resources/ControlDcimOutlet";
20
23
  import { ControlDcimPdu } from "./resources/ControlDcimPdu";
21
24
  import { ControlDcimPort } from "./resources/ControlDcimPort";
@@ -45,6 +48,7 @@ export class LeavePulse {
45
48
  private readonly ctx: ClientContext;
46
49
  private _controlagentrelease?: ControlAgentRelease;
47
50
  private _controlalert?: ControlAlert;
51
+ private _controldcimmanufacturer?: ControlDcimManufacturer;
48
52
  private _controlproject?: ControlProject;
49
53
  readonly auth: AuthNs;
50
54
  readonly control: ControlNs;
@@ -127,6 +131,14 @@ export class LeavePulse {
127
131
  ) as ControlDcimComponent;
128
132
  }
129
133
 
134
+ controldcimcomponenttype(id: string): ControlDcimComponentType {
135
+ return this.ctx.cache.ensure(
136
+ "ControlDcimComponentType",
137
+ id,
138
+ () => new ControlDcimComponentType({ id } as never, this.ctx),
139
+ ) as ControlDcimComponentType;
140
+ }
141
+
130
142
  controldcimdevice(id: string): ControlDcimDevice {
131
143
  return this.ctx.cache.ensure(
132
144
  "ControlDcimDevice",
@@ -135,6 +147,14 @@ export class LeavePulse {
135
147
  ) as ControlDcimDevice;
136
148
  }
137
149
 
150
+ controldcimdevicetype(id: string): ControlDcimDeviceType {
151
+ return this.ctx.cache.ensure(
152
+ "ControlDcimDeviceType",
153
+ id,
154
+ () => new ControlDcimDeviceType({ id } as never, this.ctx),
155
+ ) as ControlDcimDeviceType;
156
+ }
157
+
138
158
  controldcimfeed(id: string): ControlDcimFeed {
139
159
  return this.ctx.cache.ensure(
140
160
  "ControlDcimFeed",
@@ -151,6 +171,14 @@ export class LeavePulse {
151
171
  ) as ControlDcimLocation;
152
172
  }
153
173
 
174
+ get controldcimmanufacturer(): ControlDcimManufacturer {
175
+ this._controldcimmanufacturer ??= new ControlDcimManufacturer(
176
+ {} as never,
177
+ this.ctx,
178
+ );
179
+ return this._controldcimmanufacturer;
180
+ }
181
+
154
182
  controldcimoutlet(id: string): ControlDcimOutlet {
155
183
  return this.ctx.cache.ensure(
156
184
  "ControlDcimOutlet",
@@ -277,9 +305,15 @@ export class LeavePulse {
277
305
  ControlDcimCable: (d) => new ControlDcimCable(d as never, this.ctx),
278
306
  ControlDcimComponent: (d) =>
279
307
  new ControlDcimComponent(d as never, this.ctx),
308
+ ControlDcimComponentType: (d) =>
309
+ new ControlDcimComponentType(d as never, this.ctx),
280
310
  ControlDcimDevice: (d) => new ControlDcimDevice(d as never, this.ctx),
311
+ ControlDcimDeviceType: (d) =>
312
+ new ControlDcimDeviceType(d as never, this.ctx),
281
313
  ControlDcimFeed: (d) => new ControlDcimFeed(d as never, this.ctx),
282
314
  ControlDcimLocation: (d) => new ControlDcimLocation(d as never, this.ctx),
315
+ ControlDcimManufacturer: (d) =>
316
+ new ControlDcimManufacturer(d as never, this.ctx),
283
317
  ControlDcimOutlet: (d) => new ControlDcimOutlet(d as never, this.ctx),
284
318
  ControlDcimPdu: (d) => new ControlDcimPdu(d as never, this.ctx),
285
319
  ControlDcimPort: (d) => new ControlDcimPort(d as never, this.ctx),
package/index.ts CHANGED
@@ -9,9 +9,12 @@ export { ControlCfAccount } from "./resources/ControlCfAccount";
9
9
  export { ControlDcimAcceptance } from "./resources/ControlDcimAcceptance";
10
10
  export { ControlDcimCable } from "./resources/ControlDcimCable";
11
11
  export { ControlDcimComponent } from "./resources/ControlDcimComponent";
12
+ export { ControlDcimComponentType } from "./resources/ControlDcimComponentType";
12
13
  export { ControlDcimDevice } from "./resources/ControlDcimDevice";
14
+ export { ControlDcimDeviceType } from "./resources/ControlDcimDeviceType";
13
15
  export { ControlDcimFeed } from "./resources/ControlDcimFeed";
14
16
  export { ControlDcimLocation } from "./resources/ControlDcimLocation";
17
+ export { ControlDcimManufacturer } from "./resources/ControlDcimManufacturer";
15
18
  export { ControlDcimOutlet } from "./resources/ControlDcimOutlet";
16
19
  export { ControlDcimPdu } from "./resources/ControlDcimPdu";
17
20
  export { ControlDcimPort } from "./resources/ControlDcimPort";
package/models.ts CHANGED
@@ -24,6 +24,9 @@ export type CfAccountListResponse =
24
24
  export type ComponentDTO = components["schemas"]["ComponentDTO"];
25
25
  export type ComponentListResponse =
26
26
  components["schemas"]["ComponentListResponse"];
27
+ export type ComponentTypeDTO = components["schemas"]["ComponentTypeDTO"];
28
+ export type ComponentTypeListResponse =
29
+ components["schemas"]["ComponentTypeListResponse"];
27
30
  export type ComposePreviewDTO = components["schemas"]["ComposePreviewDTO"];
28
31
  export type ConfigFileDTO = components["schemas"]["ConfigFileDTO"];
29
32
  export type ConnectPowerRequest = components["schemas"]["ConnectPowerRequest"];
@@ -65,6 +68,11 @@ export type DeploymentListResponse =
65
68
  export type DetectedExporterDTO = components["schemas"]["DetectedExporterDTO"];
66
69
  export type DeviceDTO = components["schemas"]["DeviceDTO"];
67
70
  export type DeviceListResponse = components["schemas"]["DeviceListResponse"];
71
+ export type DeviceTypeDTO = components["schemas"]["DeviceTypeDTO"];
72
+ export type DeviceTypeListResponse =
73
+ components["schemas"]["DeviceTypeListResponse"];
74
+ export type DeviceTypePortDTO = components["schemas"]["DeviceTypePortDTO"];
75
+ export type DeviceTypePortInput = components["schemas"]["DeviceTypePortInput"];
68
76
  export type DiskCategory = components["schemas"]["DiskCategory"];
69
77
  export type DiskUsageDTO = components["schemas"]["DiskUsageDTO"];
70
78
  export type DisputeAcceptanceRequest =
@@ -94,6 +102,11 @@ export type FirewallRulesResponse =
94
102
  export type HostCapabilitiesDTO = components["schemas"]["HostCapabilitiesDTO"];
95
103
  export type HostDTO = components["schemas"]["HostDTO"];
96
104
  export type HostListResponse = components["schemas"]["HostListResponse"];
105
+ export type ImportDeviceTypesRequest =
106
+ components["schemas"]["ImportDeviceTypesRequest"];
107
+ export type ImportDeviceTypesResponse =
108
+ components["schemas"]["ImportDeviceTypesResponse"];
109
+ export type ImportDocumentInput = components["schemas"]["ImportDocumentInput"];
97
110
  export type InspectResponse = components["schemas"]["InspectResponse"];
98
111
  export type InstallExporterRequest =
99
112
  components["schemas"]["InstallExporterRequest"];
@@ -102,6 +115,9 @@ export type InstallExporterResponse =
102
115
  export type LocationDTO = components["schemas"]["LocationDTO"];
103
116
  export type LocationListResponse =
104
117
  components["schemas"]["LocationListResponse"];
118
+ export type ManufacturerDTO = components["schemas"]["ManufacturerDTO"];
119
+ export type ManufacturerListResponse =
120
+ components["schemas"]["ManufacturerListResponse"];
105
121
  export type NodeDTO = components["schemas"]["NodeDTO"];
106
122
  export type OutletDTO = components["schemas"]["OutletDTO"];
107
123
  export type OutletListResponse = components["schemas"]["OutletListResponse"];
@@ -146,6 +162,8 @@ export type SetAcceptanceItemsRequest =
146
162
  components["schemas"]["SetAcceptanceItemsRequest"];
147
163
  export type SetCanvasViewRequest =
148
164
  components["schemas"]["SetCanvasViewRequest"];
165
+ export type SetDeviceTypePortsRequest =
166
+ components["schemas"]["SetDeviceTypePortsRequest"];
149
167
  export type SetPositionRequest = components["schemas"]["SetPositionRequest"];
150
168
  export type SetRoleRequest = components["schemas"]["SetRoleRequest"];
151
169
  export type SignAcceptanceRequest =
@@ -173,11 +191,17 @@ export type UpdateOutletRequest = components["schemas"]["UpdateOutletRequest"];
173
191
  export type UpdatePduRequest = components["schemas"]["UpdatePduRequest"];
174
192
  export type UpdatePortRequest = components["schemas"]["UpdatePortRequest"];
175
193
  export type UpdateRackRequest = components["schemas"]["UpdateRackRequest"];
194
+ export type UpsertComponentTypeRequest =
195
+ components["schemas"]["UpsertComponentTypeRequest"];
196
+ export type UpsertDeviceTypeRequest =
197
+ components["schemas"]["UpsertDeviceTypeRequest"];
176
198
  export type UpsertDnsRecordRequest =
177
199
  components["schemas"]["UpsertDnsRecordRequest"];
178
200
  export type UpsertEdgeRequest = components["schemas"]["UpsertEdgeRequest"];
179
201
  export type UpsertEnvGroupRequest =
180
202
  components["schemas"]["UpsertEnvGroupRequest"];
203
+ export type UpsertManufacturerRequest =
204
+ components["schemas"]["UpsertManufacturerRequest"];
181
205
  export type UpsertNodeRequest = components["schemas"]["UpsertNodeRequest"];
182
206
  export type UpsertProjectRequest =
183
207
  components["schemas"]["UpsertProjectRequest"];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leavepulse/control-sdk",
3
- "version": "0.3.31",
3
+ "version": "0.3.32",
4
4
  "description": "Generated resource SDK (@leavepulse/control-sdk).",
5
5
  "type": "module",
6
6
  "module": "index.ts",
@@ -10,8 +10,7 @@
10
10
  "url": "git+https://github.com/LeavePulse/leavepulse-sdk-control-ts.git"
11
11
  },
12
12
  "publishConfig": {
13
- "registry": "https://registry.npmjs.org",
14
- "access": "public"
13
+ "registry": "https://npm.pkg.github.com"
15
14
  },
16
15
  "exports": {
17
16
  ".": "./index.ts",
@@ -0,0 +1,56 @@
1
+ // Generated from the LeavePulse contract. Do not edit.
2
+ import { Resource } from "../runtime/resource";
3
+ import { fetchCachedOrThrow } from "../runtime/etag-store";
4
+ import type * as models from "../models";
5
+ import type { ClientContext } from "../client";
6
+
7
+ type Data = { id: string | number } & Record<string, unknown>;
8
+
9
+ export class ControlDcimComponentType extends Resource<Data> {
10
+ constructor(
11
+ data: Data,
12
+ private readonly ctx: ClientContext,
13
+ ) {
14
+ super(data);
15
+ }
16
+
17
+ /** control.dcim.catalog.component_types.list */
18
+ async controlDcimCatalogComponentTypesList(params?: {
19
+ manufacturer?: string;
20
+ kind?: string;
21
+ search?: string;
22
+ }): Promise<models.ComponentTypeListResponse> {
23
+ return fetchCachedOrThrow<models.ComponentTypeListResponse>(
24
+ this.ctx.transport,
25
+ this.ctx.etagStore,
26
+ {
27
+ method: "GET",
28
+ path: `/v1/control/dcim/catalog/component-types`,
29
+ query: {
30
+ manufacturer: params?.manufacturer,
31
+ kind: params?.kind,
32
+ search: params?.search,
33
+ },
34
+ },
35
+ );
36
+ }
37
+
38
+ /** control.dcim.catalog.component_types.upsert */
39
+ async dcimCatalogComponentTypesUpsert(
40
+ body: models.UpsertComponentTypeRequest,
41
+ ): Promise<models.ComponentTypeDTO> {
42
+ return this.ctx.transport.request<models.ComponentTypeDTO>({
43
+ method: "POST",
44
+ path: `/v1/control/dcim/catalog/component-types`,
45
+ body,
46
+ });
47
+ }
48
+
49
+ /** control.dcim.catalog.component_types.delete */
50
+ async dcimCatalogComponentTypesDelete(): Promise<models.DeleteResultDTO> {
51
+ return this.ctx.transport.request<models.DeleteResultDTO>({
52
+ method: "DELETE",
53
+ path: `/v1/control/dcim/catalog/component-types/${this.id}`,
54
+ });
55
+ }
56
+ }
@@ -0,0 +1,92 @@
1
+ // Generated from the LeavePulse contract. Do not edit.
2
+ import { Resource } from "../runtime/resource";
3
+ import { fetchCachedOrThrow } from "../runtime/etag-store";
4
+ import type * as models from "../models";
5
+ import type { ClientContext } from "../client";
6
+
7
+ type Data = { id: string | number } & Record<string, unknown>;
8
+
9
+ export class ControlDcimDeviceType extends Resource<Data> {
10
+ constructor(
11
+ data: Data,
12
+ private readonly ctx: ClientContext,
13
+ ) {
14
+ super(data);
15
+ }
16
+
17
+ /** control.dcim.catalog.device_types.list */
18
+ async controlDcimCatalogDeviceTypesList(params?: {
19
+ manufacturer?: string;
20
+ kind?: string;
21
+ search?: string;
22
+ completeOnly?: boolean;
23
+ }): Promise<models.DeviceTypeListResponse> {
24
+ return fetchCachedOrThrow<models.DeviceTypeListResponse>(
25
+ this.ctx.transport,
26
+ this.ctx.etagStore,
27
+ {
28
+ method: "GET",
29
+ path: `/v1/control/dcim/catalog/device-types`,
30
+ query: {
31
+ manufacturer: params?.manufacturer,
32
+ kind: params?.kind,
33
+ search: params?.search,
34
+ complete_only: params?.completeOnly,
35
+ },
36
+ },
37
+ );
38
+ }
39
+
40
+ /** control.dcim.catalog.device_types.get */
41
+ async controlDcimCatalogDeviceTypesGet(): Promise<models.DeviceTypeDTO> {
42
+ return fetchCachedOrThrow<models.DeviceTypeDTO>(
43
+ this.ctx.transport,
44
+ this.ctx.etagStore,
45
+ {
46
+ method: "GET",
47
+ path: `/v1/control/dcim/catalog/device-types/${this.id}`,
48
+ },
49
+ );
50
+ }
51
+
52
+ /** control.dcim.catalog.device_types.upsert */
53
+ async dcimCatalogDeviceTypesUpsert(
54
+ body: models.UpsertDeviceTypeRequest,
55
+ ): Promise<models.DeviceTypeDTO> {
56
+ return this.ctx.transport.request<models.DeviceTypeDTO>({
57
+ method: "POST",
58
+ path: `/v1/control/dcim/catalog/device-types`,
59
+ body,
60
+ });
61
+ }
62
+
63
+ /** control.dcim.catalog.device_types.delete */
64
+ async dcimCatalogDeviceTypesDelete(): Promise<models.DeleteResultDTO> {
65
+ return this.ctx.transport.request<models.DeleteResultDTO>({
66
+ method: "DELETE",
67
+ path: `/v1/control/dcim/catalog/device-types/${this.id}`,
68
+ });
69
+ }
70
+
71
+ /** control.dcim.catalog.device_types.set_ports */
72
+ async dcimCatalogDeviceTypesSetPorts(
73
+ body: models.SetDeviceTypePortsRequest,
74
+ ): Promise<models.DeviceTypeDTO> {
75
+ return this.ctx.transport.request<models.DeviceTypeDTO>({
76
+ method: "POST",
77
+ path: `/v1/control/dcim/catalog/device-types/${this.id}/ports`,
78
+ body,
79
+ });
80
+ }
81
+
82
+ /** control.dcim.catalog.import */
83
+ async dcimCatalogImport(
84
+ body: models.ImportDeviceTypesRequest,
85
+ ): Promise<models.ImportDeviceTypesResponse> {
86
+ return this.ctx.transport.request<models.ImportDeviceTypesResponse>({
87
+ method: "POST",
88
+ path: `/v1/control/dcim/catalog/import`,
89
+ body,
90
+ });
91
+ }
92
+ }
@@ -0,0 +1,36 @@
1
+ // Generated from the LeavePulse contract. Do not edit.
2
+ import { Resource } from "../runtime/resource";
3
+ import { fetchCachedOrThrow } from "../runtime/etag-store";
4
+ import type * as models from "../models";
5
+ import type { ClientContext } from "../client";
6
+
7
+ type Data = { id: string | number } & Record<string, unknown>;
8
+
9
+ export class ControlDcimManufacturer extends Resource<Data> {
10
+ constructor(
11
+ data: Data,
12
+ private readonly ctx: ClientContext,
13
+ ) {
14
+ super(data);
15
+ }
16
+
17
+ /** control.dcim.catalog.manufacturers.list */
18
+ async controlDcimCatalogManufacturersList(): Promise<models.ManufacturerListResponse> {
19
+ return fetchCachedOrThrow<models.ManufacturerListResponse>(
20
+ this.ctx.transport,
21
+ this.ctx.etagStore,
22
+ { method: "GET", path: `/v1/control/dcim/catalog/manufacturers` },
23
+ );
24
+ }
25
+
26
+ /** control.dcim.catalog.manufacturers.upsert */
27
+ async dcimCatalogManufacturersUpsert(
28
+ body: models.UpsertManufacturerRequest,
29
+ ): Promise<models.ManufacturerDTO> {
30
+ return this.ctx.transport.request<models.ManufacturerDTO>({
31
+ method: "POST",
32
+ path: `/v1/control/dcim/catalog/manufacturers`,
33
+ body,
34
+ });
35
+ }
36
+ }
package/types.ts CHANGED
@@ -456,6 +456,129 @@ export interface paths {
456
456
  patch: operations["control.dcim.cables.update"];
457
457
  trace?: never;
458
458
  };
459
+ "/v1/control/dcim/catalog/component-types": {
460
+ parameters: {
461
+ query?: never;
462
+ header?: never;
463
+ path?: never;
464
+ cookie?: never;
465
+ };
466
+ /** ListComponentTypes */
467
+ get: operations["control.dcim.catalog.component_types.list"];
468
+ put?: never;
469
+ /** UpsertComponentType */
470
+ post: operations["control.dcim.catalog.component_types.upsert"];
471
+ delete?: never;
472
+ options?: never;
473
+ head?: never;
474
+ patch?: never;
475
+ trace?: never;
476
+ };
477
+ "/v1/control/dcim/catalog/component-types/{component_type_id}": {
478
+ parameters: {
479
+ query?: never;
480
+ header?: never;
481
+ path?: never;
482
+ cookie?: never;
483
+ };
484
+ get?: never;
485
+ put?: never;
486
+ post?: never;
487
+ /** DeleteComponentType */
488
+ delete: operations["control.dcim.catalog.component_types.delete"];
489
+ options?: never;
490
+ head?: never;
491
+ patch?: never;
492
+ trace?: never;
493
+ };
494
+ "/v1/control/dcim/catalog/device-types": {
495
+ parameters: {
496
+ query?: never;
497
+ header?: never;
498
+ path?: never;
499
+ cookie?: never;
500
+ };
501
+ /** ListDeviceTypes */
502
+ get: operations["control.dcim.catalog.device_types.list"];
503
+ put?: never;
504
+ /** UpsertDeviceType */
505
+ post: operations["control.dcim.catalog.device_types.upsert"];
506
+ delete?: never;
507
+ options?: never;
508
+ head?: never;
509
+ patch?: never;
510
+ trace?: never;
511
+ };
512
+ "/v1/control/dcim/catalog/device-types/{device_type_id}": {
513
+ parameters: {
514
+ query?: never;
515
+ header?: never;
516
+ path?: never;
517
+ cookie?: never;
518
+ };
519
+ /** GetDeviceType */
520
+ get: operations["control.dcim.catalog.device_types.get"];
521
+ put?: never;
522
+ post?: never;
523
+ /** DeleteDeviceType */
524
+ delete: operations["control.dcim.catalog.device_types.delete"];
525
+ options?: never;
526
+ head?: never;
527
+ patch?: never;
528
+ trace?: never;
529
+ };
530
+ "/v1/control/dcim/catalog/device-types/{device_type_id}/ports": {
531
+ parameters: {
532
+ query?: never;
533
+ header?: never;
534
+ path?: never;
535
+ cookie?: never;
536
+ };
537
+ get?: never;
538
+ put?: never;
539
+ /** SetDeviceTypePorts */
540
+ post: operations["control.dcim.catalog.device_types.set_ports"];
541
+ delete?: never;
542
+ options?: never;
543
+ head?: never;
544
+ patch?: never;
545
+ trace?: never;
546
+ };
547
+ "/v1/control/dcim/catalog/import": {
548
+ parameters: {
549
+ query?: never;
550
+ header?: never;
551
+ path?: never;
552
+ cookie?: never;
553
+ };
554
+ get?: never;
555
+ put?: never;
556
+ /** ImportDeviceTypes */
557
+ post: operations["control.dcim.catalog.import"];
558
+ delete?: never;
559
+ options?: never;
560
+ head?: never;
561
+ patch?: never;
562
+ trace?: never;
563
+ };
564
+ "/v1/control/dcim/catalog/manufacturers": {
565
+ parameters: {
566
+ query?: never;
567
+ header?: never;
568
+ path?: never;
569
+ cookie?: never;
570
+ };
571
+ /** ListManufacturers */
572
+ get: operations["control.dcim.catalog.manufacturers.list"];
573
+ put?: never;
574
+ /** UpsertManufacturer */
575
+ post: operations["control.dcim.catalog.manufacturers.upsert"];
576
+ delete?: never;
577
+ options?: never;
578
+ head?: never;
579
+ patch?: never;
580
+ trace?: never;
581
+ };
459
582
  "/v1/control/dcim/components": {
460
583
  parameters: {
461
584
  query?: never;
@@ -1521,6 +1644,26 @@ export interface components {
1521
1644
  ComponentListResponse: {
1522
1645
  items: components["schemas"]["ComponentDTO"][];
1523
1646
  };
1647
+ /** ComponentTypeDTO */
1648
+ ComponentTypeDTO: {
1649
+ capacity_bytes: string;
1650
+ id: string;
1651
+ is_complete: boolean;
1652
+ kind: string;
1653
+ manufacturer_id: string;
1654
+ manufacturer_name: string;
1655
+ model: string;
1656
+ notes: string;
1657
+ part_number: string;
1658
+ power_w: number;
1659
+ source: string;
1660
+ source_ref: string;
1661
+ spec: string;
1662
+ };
1663
+ /** ComponentTypeListResponse */
1664
+ ComponentTypeListResponse: {
1665
+ items: components["schemas"]["ComponentTypeDTO"][];
1666
+ };
1524
1667
  /** ComposePreviewDTO */
1525
1668
  ComposePreviewDTO: {
1526
1669
  compose_payload: string;
@@ -1611,6 +1754,8 @@ export interface components {
1611
1754
  /** @default */
1612
1755
  asset_tag?: string;
1613
1756
  /** @default */
1757
+ component_type_id?: string;
1758
+ /** @default */
1614
1759
  confidence?: string;
1615
1760
  /** @default */
1616
1761
  device_id?: string;
@@ -1631,6 +1776,8 @@ export interface components {
1631
1776
  /** @default */
1632
1777
  confidence?: string;
1633
1778
  /** @default */
1779
+ device_type_id?: string;
1780
+ /** @default */
1634
1781
  host_ref?: string;
1635
1782
  kind: string;
1636
1783
  /** @default */
@@ -1813,6 +1960,57 @@ export interface components {
1813
1960
  DeviceListResponse: {
1814
1961
  items: components["schemas"]["DeviceDTO"][];
1815
1962
  };
1963
+ /** DeviceTypeDTO */
1964
+ DeviceTypeDTO: {
1965
+ depth_mm: number;
1966
+ height_mm: number;
1967
+ id: string;
1968
+ is_complete: boolean;
1969
+ is_full_depth: boolean;
1970
+ kind: string;
1971
+ manufacturer_id: string;
1972
+ manufacturer_name: string;
1973
+ max_draw_w: number;
1974
+ model: string;
1975
+ notes: string;
1976
+ part_number: string;
1977
+ ports?: components["schemas"]["DeviceTypePortDTO"][];
1978
+ power_input: string;
1979
+ power_type: string;
1980
+ slug: string;
1981
+ source: string;
1982
+ source_ref: string;
1983
+ u_height: number;
1984
+ weight_g: number;
1985
+ width_mm: number;
1986
+ };
1987
+ /** DeviceTypeListResponse */
1988
+ DeviceTypeListResponse: {
1989
+ items: components["schemas"]["DeviceTypeDTO"][];
1990
+ };
1991
+ /** DeviceTypePortDTO */
1992
+ DeviceTypePortDTO: {
1993
+ id: string;
1994
+ kind: string;
1995
+ label: string;
1996
+ poe_mode: string;
1997
+ position: number;
1998
+ side: string;
1999
+ speed: string;
2000
+ };
2001
+ /** DeviceTypePortInput */
2002
+ DeviceTypePortInput: {
2003
+ kind: string;
2004
+ label: string;
2005
+ /** @default */
2006
+ poe_mode: string;
2007
+ /** @default 0 */
2008
+ position: number;
2009
+ /** @default back */
2010
+ side: string;
2011
+ /** @default */
2012
+ speed: string;
2013
+ };
1816
2014
  /** DiskCategory */
1817
2015
  DiskCategory: {
1818
2016
  /** @default 0 */
@@ -1982,6 +2180,22 @@ export interface components {
1982
2180
  HostListResponse: {
1983
2181
  items: components["schemas"]["HostDTO"][];
1984
2182
  };
2183
+ /** ImportDeviceTypesRequest */
2184
+ ImportDeviceTypesRequest: {
2185
+ documents: components["schemas"]["ImportDocumentInput"][];
2186
+ };
2187
+ /** ImportDeviceTypesResponse */
2188
+ ImportDeviceTypesResponse: {
2189
+ failed: string[];
2190
+ imported: components["schemas"]["DeviceTypeDTO"][];
2191
+ skipped_edited: string[];
2192
+ };
2193
+ /** ImportDocumentInput */
2194
+ ImportDocumentInput: {
2195
+ /** @default */
2196
+ source_ref: string;
2197
+ yaml: string;
2198
+ };
1985
2199
  /** InspectResponse */
1986
2200
  InspectResponse: {
1987
2201
  container: string;
@@ -2014,6 +2228,16 @@ export interface components {
2014
2228
  LocationListResponse: {
2015
2229
  items: components["schemas"]["LocationDTO"][];
2016
2230
  };
2231
+ /** ManufacturerDTO */
2232
+ ManufacturerDTO: {
2233
+ id: string;
2234
+ name: string;
2235
+ slug: string;
2236
+ };
2237
+ /** ManufacturerListResponse */
2238
+ ManufacturerListResponse: {
2239
+ items: components["schemas"]["ManufacturerDTO"][];
2240
+ };
2017
2241
  /** NodeDTO */
2018
2242
  NodeDTO: {
2019
2243
  /** @default 0 */
@@ -2363,6 +2587,10 @@ export interface components {
2363
2587
  pan_y: number;
2364
2588
  zoom: number;
2365
2589
  };
2590
+ /** SetDeviceTypePortsRequest */
2591
+ SetDeviceTypePortsRequest: {
2592
+ ports: components["schemas"]["DeviceTypePortInput"][];
2593
+ };
2366
2594
  /** SetPositionRequest */
2367
2595
  SetPositionRequest: {
2368
2596
  pos_x: number;
@@ -2512,6 +2740,60 @@ export interface components {
2512
2740
  pos_row?: string | null;
2513
2741
  u_height?: number | null;
2514
2742
  };
2743
+ /** UpsertComponentTypeRequest */
2744
+ UpsertComponentTypeRequest: {
2745
+ /** @default */
2746
+ capacity_bytes?: string;
2747
+ /** @default */
2748
+ id?: string;
2749
+ /** @default false */
2750
+ is_complete?: boolean;
2751
+ kind: string;
2752
+ /** @default */
2753
+ manufacturer_id?: string;
2754
+ model: string;
2755
+ /** @default */
2756
+ notes?: string;
2757
+ /** @default */
2758
+ part_number?: string;
2759
+ /** @default 0 */
2760
+ power_w?: number;
2761
+ /** @default */
2762
+ spec?: string;
2763
+ };
2764
+ /** UpsertDeviceTypeRequest */
2765
+ UpsertDeviceTypeRequest: {
2766
+ /** @default 0 */
2767
+ depth_mm?: number;
2768
+ /** @default 0 */
2769
+ height_mm?: number;
2770
+ /** @default */
2771
+ id?: string;
2772
+ /** @default false */
2773
+ is_complete?: boolean;
2774
+ /** @default false */
2775
+ is_full_depth?: boolean;
2776
+ kind: string;
2777
+ /** @default */
2778
+ manufacturer_id?: string;
2779
+ /** @default 0 */
2780
+ max_draw_w?: number;
2781
+ model: string;
2782
+ /** @default */
2783
+ notes?: string;
2784
+ /** @default */
2785
+ part_number?: string;
2786
+ /** @default */
2787
+ power_input?: string;
2788
+ /** @default */
2789
+ power_type?: string;
2790
+ /** @default 0 */
2791
+ u_height?: number;
2792
+ /** @default 0 */
2793
+ weight_g?: number;
2794
+ /** @default 0 */
2795
+ width_mm?: number;
2796
+ };
2515
2797
  /** UpsertDnsRecordRequest */
2516
2798
  UpsertDnsRecordRequest: {
2517
2799
  content: string;
@@ -2546,6 +2828,12 @@ export interface components {
2546
2828
  /** @default */
2547
2829
  name?: string;
2548
2830
  };
2831
+ /** UpsertManufacturerRequest */
2832
+ UpsertManufacturerRequest: {
2833
+ /** @default */
2834
+ id?: string;
2835
+ name: string;
2836
+ };
2549
2837
  /** UpsertNodeRequest */
2550
2838
  UpsertNodeRequest: {
2551
2839
  /** @default */
@@ -4193,6 +4481,443 @@ export interface operations {
4193
4481
  };
4194
4482
  };
4195
4483
  };
4484
+ "control.dcim.catalog.component_types.list": {
4485
+ parameters: {
4486
+ query?: {
4487
+ manufacturer?: string | null;
4488
+ kind?: string | null;
4489
+ search?: string | null;
4490
+ };
4491
+ header?: never;
4492
+ path?: never;
4493
+ cookie?: never;
4494
+ };
4495
+ requestBody?: never;
4496
+ responses: {
4497
+ /** @description Request fulfilled, document follows */
4498
+ 200: {
4499
+ headers: {
4500
+ [name: string]: unknown;
4501
+ };
4502
+ content: {
4503
+ "application/json": components["schemas"]["ComponentTypeListResponse"];
4504
+ };
4505
+ };
4506
+ /** @description Bad request syntax or unsupported method */
4507
+ 400: {
4508
+ headers: {
4509
+ [name: string]: unknown;
4510
+ };
4511
+ content: {
4512
+ "application/json": {
4513
+ detail: string;
4514
+ extra?:
4515
+ | null
4516
+ | {
4517
+ [key: string]: unknown;
4518
+ }
4519
+ | unknown[];
4520
+ status_code: number;
4521
+ };
4522
+ };
4523
+ };
4524
+ };
4525
+ };
4526
+ "control.dcim.catalog.component_types.upsert": {
4527
+ parameters: {
4528
+ query?: never;
4529
+ header?: never;
4530
+ path?: never;
4531
+ cookie?: never;
4532
+ };
4533
+ requestBody: {
4534
+ content: {
4535
+ "application/json": components["schemas"]["UpsertComponentTypeRequest"];
4536
+ };
4537
+ };
4538
+ responses: {
4539
+ /** @description Document created, URL follows */
4540
+ 201: {
4541
+ headers: {
4542
+ [name: string]: unknown;
4543
+ };
4544
+ content: {
4545
+ "application/json": components["schemas"]["ComponentTypeDTO"];
4546
+ };
4547
+ };
4548
+ /** @description Bad request syntax or unsupported method */
4549
+ 400: {
4550
+ headers: {
4551
+ [name: string]: unknown;
4552
+ };
4553
+ content: {
4554
+ "application/json": {
4555
+ detail: string;
4556
+ extra?:
4557
+ | null
4558
+ | {
4559
+ [key: string]: unknown;
4560
+ }
4561
+ | unknown[];
4562
+ status_code: number;
4563
+ };
4564
+ };
4565
+ };
4566
+ };
4567
+ };
4568
+ "control.dcim.catalog.component_types.delete": {
4569
+ parameters: {
4570
+ query?: never;
4571
+ header?: never;
4572
+ path: {
4573
+ component_type_id: string;
4574
+ };
4575
+ cookie?: never;
4576
+ };
4577
+ requestBody?: never;
4578
+ responses: {
4579
+ /** @description Request fulfilled, document follows */
4580
+ 200: {
4581
+ headers: {
4582
+ [name: string]: unknown;
4583
+ };
4584
+ content: {
4585
+ "application/json": components["schemas"]["DeleteResultDTO"];
4586
+ };
4587
+ };
4588
+ /** @description Bad request syntax or unsupported method */
4589
+ 400: {
4590
+ headers: {
4591
+ [name: string]: unknown;
4592
+ };
4593
+ content: {
4594
+ "application/json": {
4595
+ detail: string;
4596
+ extra?:
4597
+ | null
4598
+ | {
4599
+ [key: string]: unknown;
4600
+ }
4601
+ | unknown[];
4602
+ status_code: number;
4603
+ };
4604
+ };
4605
+ };
4606
+ };
4607
+ };
4608
+ "control.dcim.catalog.device_types.list": {
4609
+ parameters: {
4610
+ query?: {
4611
+ manufacturer?: string | null;
4612
+ kind?: string | null;
4613
+ search?: string | null;
4614
+ complete_only?: boolean;
4615
+ };
4616
+ header?: never;
4617
+ path?: never;
4618
+ cookie?: never;
4619
+ };
4620
+ requestBody?: never;
4621
+ responses: {
4622
+ /** @description Request fulfilled, document follows */
4623
+ 200: {
4624
+ headers: {
4625
+ [name: string]: unknown;
4626
+ };
4627
+ content: {
4628
+ "application/json": components["schemas"]["DeviceTypeListResponse"];
4629
+ };
4630
+ };
4631
+ /** @description Bad request syntax or unsupported method */
4632
+ 400: {
4633
+ headers: {
4634
+ [name: string]: unknown;
4635
+ };
4636
+ content: {
4637
+ "application/json": {
4638
+ detail: string;
4639
+ extra?:
4640
+ | null
4641
+ | {
4642
+ [key: string]: unknown;
4643
+ }
4644
+ | unknown[];
4645
+ status_code: number;
4646
+ };
4647
+ };
4648
+ };
4649
+ };
4650
+ };
4651
+ "control.dcim.catalog.device_types.upsert": {
4652
+ parameters: {
4653
+ query?: never;
4654
+ header?: never;
4655
+ path?: never;
4656
+ cookie?: never;
4657
+ };
4658
+ requestBody: {
4659
+ content: {
4660
+ "application/json": components["schemas"]["UpsertDeviceTypeRequest"];
4661
+ };
4662
+ };
4663
+ responses: {
4664
+ /** @description Document created, URL follows */
4665
+ 201: {
4666
+ headers: {
4667
+ [name: string]: unknown;
4668
+ };
4669
+ content: {
4670
+ "application/json": components["schemas"]["DeviceTypeDTO"];
4671
+ };
4672
+ };
4673
+ /** @description Bad request syntax or unsupported method */
4674
+ 400: {
4675
+ headers: {
4676
+ [name: string]: unknown;
4677
+ };
4678
+ content: {
4679
+ "application/json": {
4680
+ detail: string;
4681
+ extra?:
4682
+ | null
4683
+ | {
4684
+ [key: string]: unknown;
4685
+ }
4686
+ | unknown[];
4687
+ status_code: number;
4688
+ };
4689
+ };
4690
+ };
4691
+ };
4692
+ };
4693
+ "control.dcim.catalog.device_types.get": {
4694
+ parameters: {
4695
+ query?: never;
4696
+ header?: never;
4697
+ path: {
4698
+ device_type_id: string;
4699
+ };
4700
+ cookie?: never;
4701
+ };
4702
+ requestBody?: never;
4703
+ responses: {
4704
+ /** @description Request fulfilled, document follows */
4705
+ 200: {
4706
+ headers: {
4707
+ [name: string]: unknown;
4708
+ };
4709
+ content: {
4710
+ "application/json": components["schemas"]["DeviceTypeDTO"];
4711
+ };
4712
+ };
4713
+ /** @description Bad request syntax or unsupported method */
4714
+ 400: {
4715
+ headers: {
4716
+ [name: string]: unknown;
4717
+ };
4718
+ content: {
4719
+ "application/json": {
4720
+ detail: string;
4721
+ extra?:
4722
+ | null
4723
+ | {
4724
+ [key: string]: unknown;
4725
+ }
4726
+ | unknown[];
4727
+ status_code: number;
4728
+ };
4729
+ };
4730
+ };
4731
+ };
4732
+ };
4733
+ "control.dcim.catalog.device_types.delete": {
4734
+ parameters: {
4735
+ query?: never;
4736
+ header?: never;
4737
+ path: {
4738
+ device_type_id: string;
4739
+ };
4740
+ cookie?: never;
4741
+ };
4742
+ requestBody?: never;
4743
+ responses: {
4744
+ /** @description Request fulfilled, document follows */
4745
+ 200: {
4746
+ headers: {
4747
+ [name: string]: unknown;
4748
+ };
4749
+ content: {
4750
+ "application/json": components["schemas"]["DeleteResultDTO"];
4751
+ };
4752
+ };
4753
+ /** @description Bad request syntax or unsupported method */
4754
+ 400: {
4755
+ headers: {
4756
+ [name: string]: unknown;
4757
+ };
4758
+ content: {
4759
+ "application/json": {
4760
+ detail: string;
4761
+ extra?:
4762
+ | null
4763
+ | {
4764
+ [key: string]: unknown;
4765
+ }
4766
+ | unknown[];
4767
+ status_code: number;
4768
+ };
4769
+ };
4770
+ };
4771
+ };
4772
+ };
4773
+ "control.dcim.catalog.device_types.set_ports": {
4774
+ parameters: {
4775
+ query?: never;
4776
+ header?: never;
4777
+ path: {
4778
+ device_type_id: string;
4779
+ };
4780
+ cookie?: never;
4781
+ };
4782
+ requestBody: {
4783
+ content: {
4784
+ "application/json": components["schemas"]["SetDeviceTypePortsRequest"];
4785
+ };
4786
+ };
4787
+ responses: {
4788
+ /** @description Document created, URL follows */
4789
+ 201: {
4790
+ headers: {
4791
+ [name: string]: unknown;
4792
+ };
4793
+ content: {
4794
+ "application/json": components["schemas"]["DeviceTypeDTO"];
4795
+ };
4796
+ };
4797
+ /** @description Bad request syntax or unsupported method */
4798
+ 400: {
4799
+ headers: {
4800
+ [name: string]: unknown;
4801
+ };
4802
+ content: {
4803
+ "application/json": {
4804
+ detail: string;
4805
+ extra?:
4806
+ | null
4807
+ | {
4808
+ [key: string]: unknown;
4809
+ }
4810
+ | unknown[];
4811
+ status_code: number;
4812
+ };
4813
+ };
4814
+ };
4815
+ };
4816
+ };
4817
+ "control.dcim.catalog.import": {
4818
+ parameters: {
4819
+ query?: never;
4820
+ header?: never;
4821
+ path?: never;
4822
+ cookie?: never;
4823
+ };
4824
+ requestBody: {
4825
+ content: {
4826
+ "application/json": components["schemas"]["ImportDeviceTypesRequest"];
4827
+ };
4828
+ };
4829
+ responses: {
4830
+ /** @description Document created, URL follows */
4831
+ 201: {
4832
+ headers: {
4833
+ [name: string]: unknown;
4834
+ };
4835
+ content: {
4836
+ "application/json": components["schemas"]["ImportDeviceTypesResponse"];
4837
+ };
4838
+ };
4839
+ /** @description Bad request syntax or unsupported method */
4840
+ 400: {
4841
+ headers: {
4842
+ [name: string]: unknown;
4843
+ };
4844
+ content: {
4845
+ "application/json": {
4846
+ detail: string;
4847
+ extra?:
4848
+ | null
4849
+ | {
4850
+ [key: string]: unknown;
4851
+ }
4852
+ | unknown[];
4853
+ status_code: number;
4854
+ };
4855
+ };
4856
+ };
4857
+ };
4858
+ };
4859
+ "control.dcim.catalog.manufacturers.list": {
4860
+ parameters: {
4861
+ query?: never;
4862
+ header?: never;
4863
+ path?: never;
4864
+ cookie?: never;
4865
+ };
4866
+ requestBody?: never;
4867
+ responses: {
4868
+ /** @description Request fulfilled, document follows */
4869
+ 200: {
4870
+ headers: {
4871
+ [name: string]: unknown;
4872
+ };
4873
+ content: {
4874
+ "application/json": components["schemas"]["ManufacturerListResponse"];
4875
+ };
4876
+ };
4877
+ };
4878
+ };
4879
+ "control.dcim.catalog.manufacturers.upsert": {
4880
+ parameters: {
4881
+ query?: never;
4882
+ header?: never;
4883
+ path?: never;
4884
+ cookie?: never;
4885
+ };
4886
+ requestBody: {
4887
+ content: {
4888
+ "application/json": components["schemas"]["UpsertManufacturerRequest"];
4889
+ };
4890
+ };
4891
+ responses: {
4892
+ /** @description Document created, URL follows */
4893
+ 201: {
4894
+ headers: {
4895
+ [name: string]: unknown;
4896
+ };
4897
+ content: {
4898
+ "application/json": components["schemas"]["ManufacturerDTO"];
4899
+ };
4900
+ };
4901
+ /** @description Bad request syntax or unsupported method */
4902
+ 400: {
4903
+ headers: {
4904
+ [name: string]: unknown;
4905
+ };
4906
+ content: {
4907
+ "application/json": {
4908
+ detail: string;
4909
+ extra?:
4910
+ | null
4911
+ | {
4912
+ [key: string]: unknown;
4913
+ }
4914
+ | unknown[];
4915
+ status_code: number;
4916
+ };
4917
+ };
4918
+ };
4919
+ };
4920
+ };
4196
4921
  "control.dcim.components.list": {
4197
4922
  parameters: {
4198
4923
  query?: {