Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion sdk/core/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ export namespace MetorialSDK {
export type ProviderVersion = MetorialGenerated.ProvidersVersionsGetOutput;
export type ProviderSpecification = MetorialGenerated.ProvidersSpecificationsGetOutput;
export type ProviderTrigger = MetorialGenerated.ProvidersTriggersGetOutput;
export type ProviderTool = MetorialGenerated.ProvidersToolsGetOutput;
export type ProviderTool = MetorialGenerated.ProviderToolsGetOutput;
export type ProviderAuthMethod = MetorialGenerated.ProvidersAuthMethodsGetOutput;

export type Integration = MetorialGenerated.IntegrationsGetOutput;
Expand Down
7 changes: 5 additions & 2 deletions sdk/core/src/sdk.ts
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ import {
MetorialProvidersAuthMethodsEndpoint,
MetorialProvidersEndpoint,
MetorialProvidersSpecificationsEndpoint,
MetorialProvidersToolsEndpoint,
MetorialProviderToolsEndpoint,
MetorialProvidersTriggersEndpoint,
MetorialProvidersVersionsEndpoint,
MetorialPublishersEndpoint,
Expand Down Expand Up @@ -101,11 +101,14 @@ export let createMetorialCoreSDK = coreSdkBuilder.build(

publishers: new MetorialPublishersEndpoint(manager),

provider: {
tools: new MetorialProviderToolsEndpoint(manager)
},

providers: Object.assign(new MetorialProvidersEndpoint(manager), {
versions: new MetorialProvidersVersionsEndpoint(manager),
specifications: new MetorialProvidersSpecificationsEndpoint(manager),
triggers: new MetorialProvidersTriggersEndpoint(manager),
tools: new MetorialProvidersToolsEndpoint(manager),
authMethods: new MetorialProvidersAuthMethodsEndpoint(manager)
}),

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
import {
BaseMetorialEndpoint,
MetorialEndpointManager
} from '@metorial/util-endpoint';

import {
mapDashboardInstanceEnclavesGetOutput,
mapDashboardInstanceEnclavesListOutput,
mapDashboardInstanceEnclavesListQuery,
type DashboardInstanceEnclavesGetOutput,
type DashboardInstanceEnclavesListOutput,
type DashboardInstanceEnclavesListQuery
} from '../resources';

/**
* @name Enclaves controller
* @description Read enclave records for provider deployments in an instance.
*
* @see https://metorial.com/api
* @see https://metorial.com/docs
*/
export class MetorialDashboardInstanceEnclavesEndpoint {
constructor(private readonly _manager: MetorialEndpointManager<any>) {}

// thin proxies so method bodies stay unchanged
private _get(request: any) {
return this._manager._get(request);
}
private _post(request: any) {
return this._manager._post(request);
}
private _put(request: any) {
return this._manager._put(request);
}
private _patch(request: any) {
return this._manager._patch(request);
}
private _delete(request: any) {
return this._manager._delete(request);
}

/**
* @name List enclaves
* @description Returns a paginated list of enclaves.
*
* @param `instanceId` - string
* @param `query` - DashboardInstanceEnclavesListQuery
* @param `opts` - { headers?: Record<string, string> }
* @returns DashboardInstanceEnclavesListOutput
* @see https://metorial.com/api
* @see https://metorial.com/docs
*/
list(
instanceId: string,
query?: DashboardInstanceEnclavesListQuery,
opts?: { headers?: Record<string, string> }
): Promise<DashboardInstanceEnclavesListOutput> {
let path = `dashboard/instances/${instanceId}/enclaves`;

let request = {
path,

query: query
? mapDashboardInstanceEnclavesListQuery.transformTo(query)
: undefined,
...(opts?.headers ? { headers: opts.headers } : {})
} as any;

return this._get(request).transform(mapDashboardInstanceEnclavesListOutput);
}

/**
* @name Get enclave
* @description Retrieves a specific enclave by ID.
*
* @param `instanceId` - string
* @param `enclaveId` - string
* @param `opts` - { headers?: Record<string, string> }
* @returns DashboardInstanceEnclavesGetOutput
* @see https://metorial.com/api
* @see https://metorial.com/docs
*/
get(
instanceId: string,
enclaveId: string,
opts?: { headers?: Record<string, string> }
): Promise<DashboardInstanceEnclavesGetOutput> {
let path = `dashboard/instances/${instanceId}/enclaves/${enclaveId}`;

let request = {
path,

...(opts?.headers ? { headers: opts.headers } : {})
} as any;

return this._get(request).transform(mapDashboardInstanceEnclavesGetOutput);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,167 @@
import {
BaseMetorialEndpoint,
MetorialEndpointManager
} from '@metorial/util-endpoint';

import {
mapDashboardInstanceFirewallBindingsCreateBody,
mapDashboardInstanceFirewallBindingsCreateOutput,
mapDashboardInstanceFirewallBindingsDeleteOutput,
mapDashboardInstanceFirewallBindingsGetOutput,
mapDashboardInstanceFirewallBindingsListOutput,
mapDashboardInstanceFirewallBindingsListQuery,
type DashboardInstanceFirewallBindingsCreateBody,
type DashboardInstanceFirewallBindingsCreateOutput,
type DashboardInstanceFirewallBindingsDeleteOutput,
type DashboardInstanceFirewallBindingsGetOutput,
type DashboardInstanceFirewallBindingsListOutput,
type DashboardInstanceFirewallBindingsListQuery
} from '../resources';

/**
* @name Firewall Bindings controller
* @description Manage bindings that apply firewalls to enclaves, providers, or networks.
*
* @see https://metorial.com/api
* @see https://metorial.com/docs
*/
export class MetorialDashboardInstanceFirewallBindingsEndpoint {
constructor(private readonly _manager: MetorialEndpointManager<any>) {}

// thin proxies so method bodies stay unchanged
private _get(request: any) {
return this._manager._get(request);
}
private _post(request: any) {
return this._manager._post(request);
}
private _put(request: any) {
return this._manager._put(request);
}
private _patch(request: any) {
return this._manager._patch(request);
}
private _delete(request: any) {
return this._manager._delete(request);
}

/**
* @name List firewall bindings
* @description Returns a paginated list of firewall bindings.
*
* @param `instanceId` - string
* @param `query` - DashboardInstanceFirewallBindingsListQuery
* @param `opts` - { headers?: Record<string, string> }
* @returns DashboardInstanceFirewallBindingsListOutput
* @see https://metorial.com/api
* @see https://metorial.com/docs
*/
list(
instanceId: string,
query?: DashboardInstanceFirewallBindingsListQuery,
opts?: { headers?: Record<string, string> }
): Promise<DashboardInstanceFirewallBindingsListOutput> {
let path = `dashboard/instances/${instanceId}/firewall-bindings`;

let request = {
path,

query: query
? mapDashboardInstanceFirewallBindingsListQuery.transformTo(query)
: undefined,
...(opts?.headers ? { headers: opts.headers } : {})
} as any;

return this._get(request).transform(
mapDashboardInstanceFirewallBindingsListOutput
);
}

/**
* @name Get firewall binding
* @description Retrieves a specific firewall binding by ID.
*
* @param `instanceId` - string
* @param `firewallBindingId` - string
* @param `opts` - { headers?: Record<string, string> }
* @returns DashboardInstanceFirewallBindingsGetOutput
* @see https://metorial.com/api
* @see https://metorial.com/docs
*/
get(
instanceId: string,
firewallBindingId: string,
opts?: { headers?: Record<string, string> }
): Promise<DashboardInstanceFirewallBindingsGetOutput> {
let path = `dashboard/instances/${instanceId}/firewall-bindings/${firewallBindingId}`;

let request = {
path,

...(opts?.headers ? { headers: opts.headers } : {})
} as any;

return this._get(request).transform(
mapDashboardInstanceFirewallBindingsGetOutput
);
}

/**
* @name Create firewall binding
* @description Creates a binding that applies a firewall to a target.
*
* @param `instanceId` - string
* @param `body` - DashboardInstanceFirewallBindingsCreateBody
* @param `opts` - { headers?: Record<string, string> }
* @returns DashboardInstanceFirewallBindingsCreateOutput
* @see https://metorial.com/api
* @see https://metorial.com/docs
*/
create(
instanceId: string,
body: DashboardInstanceFirewallBindingsCreateBody,
opts?: { headers?: Record<string, string> }
): Promise<DashboardInstanceFirewallBindingsCreateOutput> {
let path = `dashboard/instances/${instanceId}/firewall-bindings`;

let request = {
path,
body: mapDashboardInstanceFirewallBindingsCreateBody.transformTo(body),

...(opts?.headers ? { headers: opts.headers } : {})
} as any;

return this._post(request).transform(
mapDashboardInstanceFirewallBindingsCreateOutput
);
}

/**
* @name Delete firewall binding
* @description Deletes a firewall binding.
*
* @param `instanceId` - string
* @param `firewallBindingId` - string
* @param `opts` - { headers?: Record<string, string> }
* @returns DashboardInstanceFirewallBindingsDeleteOutput
* @see https://metorial.com/api
* @see https://metorial.com/docs
*/
delete(
instanceId: string,
firewallBindingId: string,
opts?: { headers?: Record<string, string> }
): Promise<DashboardInstanceFirewallBindingsDeleteOutput> {
let path = `dashboard/instances/${instanceId}/firewall-bindings/${firewallBindingId}`;

let request = {
path,

...(opts?.headers ? { headers: opts.headers } : {})
} as any;

return this._delete(request).transform(
mapDashboardInstanceFirewallBindingsDeleteOutput
);
}
}
Loading
Loading