import type { RailDeckDirectIntegrationClient } from '@raildeck/frontend-sdk/direct-integration'; // Fixture values illustrate the source contract. Use reviewed development records. // Importing this module performs no requests. Every mutation requires an explicit call. /** * Calls locomotives.previewDuplication with retained, non-production fixture values. * @param client - Configured source client; use an isolated development environment. * @returns The SDK result; failures propagate without automatic retry. */ export async function exampleLocomotivesPreviewDuplication(client: RailDeckDirectIntegrationClient) { return client.locomotives.previewDuplication( "23", "4", {} ); } /** * Calls locomotives.duplicate with retained, non-production fixture values. * @param client - Configured source client; use an isolated development environment. * @returns The SDK result; failures propagate without automatic retry. */ export async function exampleLocomotivesDuplicate(client: RailDeckDirectIntegrationClient) { return client.locomotives.duplicate( "23", "4", { "expectedSourceRevision": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "displayName": "{{fixtureDisplayName}}", "runningNumber": null, "dccAddress": null, "includeNotes": false, "includePhotographs": true } ); } /** * Calls locomotives.getRelated with retained, non-production fixture values. * @param client - Configured source client; use an isolated development environment. * @returns The SDK result; failures propagate without automatic retry. */ export async function exampleLocomotivesGetRelated(client: RailDeckDirectIntegrationClient) { return client.locomotives.getRelated( "23", "4", {} ); } /** * Calls locomotives.previewDrivingSettings with retained, non-production fixture values. * @param client - Configured source client; use an isolated development environment. * @returns The SDK result; failures propagate without automatic retry. */ export async function exampleLocomotivesPreviewDrivingSettings(client: RailDeckDirectIntegrationClient) { return client.locomotives.previewDrivingSettings( "account 1", "loco 1", { "style": { "mode": "direct" }, "requestedSpeedPercent": 50, "train": null }, {} ); } /** * Calls locomotives.getDrivingSettings with retained, non-production fixture values. * @param client - Configured source client; use an isolated development environment. * @returns The SDK result; failures propagate without automatic retry. */ export async function exampleLocomotivesGetDrivingSettings(client: RailDeckDirectIntegrationClient) { return client.locomotives.getDrivingSettings( "account 1", "loco 1", {} ); } /** * Calls locomotives.saveDrivingSettings with retained, non-production fixture values. * @param client - Configured source client; use an isolated development environment. * @returns The SDK result; failures propagate without automatic retry. */ export async function exampleLocomotivesSaveDrivingSettings(client: RailDeckDirectIntegrationClient) { return client.locomotives.saveDrivingSettings( "account 1", "loco 1", { "expectedRevision": 0, "style": { "mode": "direct" }, "brake": { "mode": "preset", "preset": "balanced", "version": 1 }, "running": { "reverseRunning": true, "expectedUpdatedAt": "2026-09-12T00:00:00.000Z" } } ); } /** * Calls locomotives.list with retained, non-production fixture values. * @param client - Configured source client; use an isolated development environment. * @returns The SDK result; failures propagate without automatic retry. */ export async function exampleLocomotivesList(client: RailDeckDirectIntegrationClient) { return client.locomotives.list( "account 1", {} ); } /** * Calls locomotives.create with retained, non-production fixture values. * @param client - Configured source client; use an isolated development environment. * @returns The SDK result; failures propagate without automatic retry. */ export async function exampleLocomotivesCreate(client: RailDeckDirectIntegrationClient) { return client.locomotives.create( "account 1", { "displayName": "{{fixtureDisplayName}}", "dccAddress": 4468, "reverseRunning": true, "softwareMaxSpeedPercent": 45, "softwareSpeedLimitReason": "{{reviewedReason}}" }, {} ); } /** * Calls locomotives.get with retained, non-production fixture values. * @param client - Configured source client; use an isolated development environment. * @returns The SDK result; failures propagate without automatic retry. */ export async function exampleLocomotivesGet(client: RailDeckDirectIntegrationClient) { return client.locomotives.get( "account 1", "loco 1", {} ); } /** * Calls locomotives.update with retained, non-production fixture values. * @param client - Configured source client; use an isolated development environment. * @returns The SDK result; failures propagate without automatic retry. */ export async function exampleLocomotivesUpdate(client: RailDeckDirectIntegrationClient) { return client.locomotives.update( "account 1", "loco 1", { "displayName": "{{fixtureDisplayName}}" }, {} ); } /** * Calls locomotives.delete with retained, non-production fixture values. * @param client - Configured source client; use an isolated development environment. * @returns The SDK result; failures propagate without automatic retry. */ export async function exampleLocomotivesDelete(client: RailDeckDirectIntegrationClient) { return client.locomotives.delete( "account 1", "loco 1" ); } /** * Calls locomotives.listLayoutRoster with retained, non-production fixture values. * @param client - Configured source client; use an isolated development environment. * @returns The SDK result; failures propagate without automatic retry. */ export async function exampleLocomotivesListLayoutRoster(client: RailDeckDirectIntegrationClient) { return client.locomotives.listLayoutRoster( "account 1", "layout 1", {} ); } /** * Calls locomotives.assignToLayout with retained, non-production fixture values. * @param client - Configured source client; use an isolated development environment. * @returns The SDK result; failures propagate without automatic retry. */ export async function exampleLocomotivesAssignToLayout(client: RailDeckDirectIntegrationClient) { return client.locomotives.assignToLayout( "account 1", "layout-1", { "locomotiveId": "loco-2", "displayOrder": 2 }, {} ); } /** * Calls locomotives.removeFromLayout with retained, non-production fixture values. * @param client - Configured source client; use an isolated development environment. * @returns The SDK result; failures propagate without automatic retry. */ export async function exampleLocomotivesRemoveFromLayout(client: RailDeckDirectIntegrationClient) { return client.locomotives.removeFromLayout( "account 1", "layout 1", "loco 1", {} ); } /** * Calls locomotives.listGroups with retained, non-production fixture values. * @param client - Configured source client; use an isolated development environment. * @returns The SDK result; failures propagate without automatic retry. */ export async function exampleLocomotivesListGroups(client: RailDeckDirectIntegrationClient) { return client.locomotives.listGroups( "account 1" ); } /** * Calls locomotives.createGroup with retained, non-production fixture values. * @param client - Configured source client; use an isolated development environment. * @returns The SDK result; failures propagate without automatic retry. */ export async function exampleLocomotivesCreateGroup(client: RailDeckDirectIntegrationClient) { return client.locomotives.createGroup( "account 1", { "displayName": "{{fixtureDisplayName}}", "colour": "#2f6f5e" } ); } /** * Calls locomotives.getGroup with retained, non-production fixture values. * @param client - Configured source client; use an isolated development environment. * @returns The SDK result; failures propagate without automatic retry. */ export async function exampleLocomotivesGetGroup(client: RailDeckDirectIntegrationClient) { return client.locomotives.getGroup( "account 1", "group 1" ); } /** * Calls locomotives.updateGroup with retained, non-production fixture values. * @param client - Configured source client; use an isolated development environment. * @returns The SDK result; failures propagate without automatic retry. */ export async function exampleLocomotivesUpdateGroup(client: RailDeckDirectIntegrationClient) { return client.locomotives.updateGroup( "account 1", "group 1", { "displayName": "{{fixtureDisplayName}}" } ); } /** * Calls locomotives.deleteGroup with retained, non-production fixture values. * @param client - Configured source client; use an isolated development environment. * @returns The SDK result; failures propagate without automatic retry. */ export async function exampleLocomotivesDeleteGroup(client: RailDeckDirectIntegrationClient) { return client.locomotives.deleteGroup( "account 1", "group 1" ); } /** * Calls locomotives.listGroupMembers with retained, non-production fixture values. * @param client - Configured source client; use an isolated development environment. * @returns The SDK result; failures propagate without automatic retry. */ export async function exampleLocomotivesListGroupMembers(client: RailDeckDirectIntegrationClient) { return client.locomotives.listGroupMembers( "account 1", "group 1" ); } /** * Calls locomotives.replaceGroupMembers with retained, non-production fixture values. * @param client - Configured source client; use an isolated development environment. * @returns The SDK result; failures propagate without automatic retry. */ export async function exampleLocomotivesReplaceGroupMembers(client: RailDeckDirectIntegrationClient) { return client.locomotives.replaceGroupMembers( "account 1", "group-1", { "members": [ { "locomotiveId": "loco-2", "displayOrder": 1 } ] } ); } /** * Calls locomotives.applyCatalogueProfile with retained, non-production fixture values. * @param client - Configured source client; use an isolated development environment. * @returns The SDK result; failures propagate without automatic retry. */ export async function exampleLocomotivesApplyCatalogueProfile(client: RailDeckDirectIntegrationClient) { return client.locomotives.applyCatalogueProfile( "account 1", "loco-2", { "mode": "dry_run", "productProfileId": "product-1", "decoderProfileId": "decoder-1", "options": { "functions": "replace", "cvDefaults": "merge" } } ); }