decthings

Model / uploadState


Create a new model state by uploading data.

Request parameters

{
    /** The model's id. */
    modelId: string,
    /** Name of the new state. */
    name: string,
    /** Data to upload. */
    data: {
        key: string,
        data: Buffer
    }[],
    /**
     * If provided, these states will be deleted when the new state has been uploaded, in a single atomic operation.
     * If either the upload or the delete fails, both the upload and the delete operations are aborted and an error is
     * returned.
     */
    deleteStates?: string[],
    /** Allows your model to access to files of these additional models. Can be useful for merging models together. */
    mountModels?: {
        /** Id of the other model to mount. */
        modelId: string,
        /** If specified, this snapshot on the other model will be used. */
        snapshotId?: string
    }[]
}

Response

{
    /** If successful. One of "result" and "error" will be present. */
    result?: {
        stateId: string
    },

    /** If failed */
    error?: {
        code: 'model_not_found' | 'model_to_mount_not_found' | 'snapshot_for_model_to_mount_not_found' | 'access_denied' | 'quota_exceeded' | 'state_not_found' | 'state_is_active' | 'bad_credentials' | 'too_many_requests' | 'payment_required' | 'unknown'
    } | {
        code: 'invalid_parameter',
        parameterName: string,
        reason: string
    }
}

Example

Following the installation guide to setup the Decthings API for TypeScript. Add your parameters to the following code and run it in Node.js, or in a browser by using a bundler.

The code reads your API key from file. Create an API key and save it to the file "auth.txt". Keep your key safe!

import * as fs from 'fs'
import { DecthingsClient } from '@decthings/api-client'

let apiKey = fs.readFileSync('./auth.txt').toString().trim()
let client = new DecthingsClient({ apiKey })

async function main() {
    try {
        let response = await client.model.uploadState({
            modelId: /* Add modelId here */,
            name: /* Add name here */,
            stateKeyNames: /* Add stateKeyNames here */,
            data: /* Add data here */
        })
        if (result.error) {
            // Decthings sent us an error
            console.log(response.error)
        } else {
            // Success!
            console.log(response.result)
        }
    }
    catch (e) {
        // Client throws an error on connection issues. The function may or may not have succeded
        console.log(e)
    }
}
main()

Product

  • Documentation
  • Pricing
  • API reference
  • Guides

Company

  • Support

Get going!

Sign up
  • Terms and conditions
  • Privacy policy
  • Cookie policy
  • GitHub
  • LinkedIn

This website uses cookies to enhance the experience.

Learn more