Home
/
API
/
Schemas

Schemas

agentsdk.AWSInstanceIdentityToken

{
  "document": "string",
  "signature": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
documentstringtrue
signaturestringtrue

agentsdk.AgentMetric

{
  "labels": [
    {
      "name": "string",
      "value": "string"
    }
  ],
  "name": "string",
  "type": "counter",
  "value": 0
}

Properties

NameTypeRequiredRestrictionsDescription
labelsarray of agentsdk.AgentMetricLabelfalse
namestringtrue
typeagentsdk.AgentMetricTypetrue
valuenumbertrue

Enumerated Values

PropertyValue
typecounter
typegauge

agentsdk.AgentMetricLabel

{
  "name": "string",
  "value": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
namestringtrue
valuestringtrue

agentsdk.AgentMetricType

"counter"

Properties

Enumerated Values

Value
counter
gauge

agentsdk.AuthenticateResponse

{
  "session_token": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
session_tokenstringfalse

agentsdk.AzureInstanceIdentityToken

{
  "encoding": "string",
  "signature": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
encodingstringtrue
signaturestringtrue

agentsdk.ExternalAuthResponse

{
  "access_token": "string",
  "password": "string",
  "token_extra": {},
  "type": "string",
  "url": "string",
  "username": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
access_tokenstringfalse
passwordstringfalse
token_extraobjectfalse
typestringfalse
urlstringfalse
usernamestringfalseDeprecated: Only supported on /workspaceagents/me/gitauth for backwards compatibility.

agentsdk.GitSSHKey

{
  "private_key": "string",
  "public_key": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
private_keystringfalse
public_keystringfalse

agentsdk.GoogleInstanceIdentityToken

{
  "json_web_token": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
json_web_tokenstringtrue

agentsdk.Log

{
  "created_at": "string",
  "level": "trace",
  "output": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
created_atstringfalse
levelcodersdk.LogLevelfalse
outputstringfalse

agentsdk.Manifest

{
  "agent_id": "string",
  "agent_name": "string",
  "apps": [
    {
      "command": "string",
      "display_name": "string",
      "external": true,
      "health": "disabled",
      "healthcheck": {
        "interval": 0,
        "threshold": 0,
        "url": "string"
      },
      "icon": "string",
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "sharing_level": "owner",
      "slug": "string",
      "subdomain": true,
      "subdomain_name": "string",
      "url": "string"
    }
  ],
  "derp_force_websockets": true,
  "derpmap": {
    "homeParams": {
      "regionScore": {
        "property1": 0,
        "property2": 0
      }
    },
    "omitDefaultRegions": true,
    "regions": {
      "property1": {
        "avoid": true,
        "embeddedRelay": true,
        "nodes": [
          {
            "canPort80": true,
            "certName": "string",
            "derpport": 0,
            "forceHTTP": true,
            "hostName": "string",
            "insecureForTests": true,
            "ipv4": "string",
            "ipv6": "string",
            "name": "string",
            "regionID": 0,
            "stunonly": true,
            "stunport": 0,
            "stuntestIP": "string"
          }
        ],
        "regionCode": "string",
        "regionID": 0,
        "regionName": "string"
      },
      "property2": {
        "avoid": true,
        "embeddedRelay": true,
        "nodes": [
          {
            "canPort80": true,
            "certName": "string",
            "derpport": 0,
            "forceHTTP": true,
            "hostName": "string",
            "insecureForTests": true,
            "ipv4": "string",
            "ipv6": "string",
            "name": "string",
            "regionID": 0,
            "stunonly": true,
            "stunport": 0,
            "stuntestIP": "string"
          }
        ],
        "regionCode": "string",
        "regionID": 0,
        "regionName": "string"
      }
    }
  },
  "directory": "string",
  "disable_direct_connections": true,
  "environment_variables": {
    "property1": "string",
    "property2": "string"
  },
  "git_auth_configs": 0,
  "metadata": [
    {
      "display_name": "string",
      "interval": 0,
      "key": "string",
      "script": "string",
      "timeout": 0
    }
  ],
  "motd_file": "string",
  "owner_name": "string",
  "scripts": [
    {
      "cron": "string",
      "log_path": "string",
      "log_source_id": "4197ab25-95cf-4b91-9c78-f7f2af5d353a",
      "run_on_start": true,
      "run_on_stop": true,
      "script": "string",
      "start_blocks_login": true,
      "timeout": 0
    }
  ],
  "vscode_port_proxy_uri": "string",
  "workspace_id": "string",
  "workspace_name": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
agent_idstringfalse
agent_namestringfalse
appsarray of codersdk.WorkspaceAppfalse
derp_force_websocketsbooleanfalse
derpmaptailcfg.DERPMapfalse
directorystringfalse
disable_direct_connectionsbooleanfalse
environment_variablesobjectfalse
» [any property]stringfalse
git_auth_configsintegerfalseGit auth configs stores the number of Git configurations the Coder deployment has. If this number is >0, we set up special configuration in the workspace.
metadataarray of codersdk.WorkspaceAgentMetadataDescriptionfalse
motd_filestringfalse
owner_namestringfalseOwner name and WorkspaceID are used by an open-source user to identify the workspace. We do not provide insurance that this will not be removed in the future, but if it's easy to persist lets keep it around.
scriptsarray of codersdk.WorkspaceAgentScriptfalse
vscode_port_proxy_uristringfalse
workspace_idstringfalse
workspace_namestringfalse

agentsdk.Metadata

{
  "age": 0,
  "collected_at": "2019-08-24T14:15:22Z",
  "error": "string",
  "key": "string",
  "value": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
ageintegerfalseAge is the number of seconds since the metadata was collected. It is provided in addition to CollectedAt to protect against clock skew.
collected_atstringfalse
errorstringfalse
keystringfalse
valuestringfalse

agentsdk.PatchLogs

{
  "log_source_id": "string",
  "logs": [
    {
      "created_at": "string",
      "level": "trace",
      "output": "string"
    }
  ]
}

Properties

NameTypeRequiredRestrictionsDescription
log_source_idstringfalse
logsarray of agentsdk.Logfalse

agentsdk.PostAppHealthsRequest

{
  "healths": {
    "property1": "disabled",
    "property2": "disabled"
  }
}

Properties

NameTypeRequiredRestrictionsDescription
healthsobjectfalseHealths is a map of the workspace app name and the health of the app.
» [any property]codersdk.WorkspaceAppHealthfalse

agentsdk.PostLifecycleRequest

{
  "changed_at": "string",
  "state": "created"
}

Properties

NameTypeRequiredRestrictionsDescription
changed_atstringfalse
statecodersdk.WorkspaceAgentLifecyclefalse

agentsdk.PostMetadataRequest

{
  "metadata": [
    {
      "age": 0,
      "collected_at": "2019-08-24T14:15:22Z",
      "error": "string",
      "key": "string",
      "value": "string"
    }
  ]
}

Properties

NameTypeRequiredRestrictionsDescription
metadataarray of agentsdk.Metadatafalse

agentsdk.PostMetadataRequestDeprecated

{
  "age": 0,
  "collected_at": "2019-08-24T14:15:22Z",
  "error": "string",
  "value": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
ageintegerfalseAge is the number of seconds since the metadata was collected. It is provided in addition to CollectedAt to protect against clock skew.
collected_atstringfalse
errorstringfalse
valuestringfalse

agentsdk.PostStartupRequest

{
  "expanded_directory": "string",
  "subsystems": ["envbox"],
  "version": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
expanded_directorystringfalse
subsystemsarray of codersdk.AgentSubsystemfalse
versionstringfalse

agentsdk.Stats

{
  "connection_count": 0,
  "connection_median_latency_ms": 0,
  "connections_by_proto": {
    "property1": 0,
    "property2": 0
  },
  "metrics": [
    {
      "labels": [
        {
          "name": "string",
          "value": "string"
        }
      ],
      "name": "string",
      "type": "counter",
      "value": 0
    }
  ],
  "rx_bytes": 0,
  "rx_packets": 0,
  "session_count_jetbrains": 0,
  "session_count_reconnecting_pty": 0,
  "session_count_ssh": 0,
  "session_count_vscode": 0,
  "tx_bytes": 0,
  "tx_packets": 0
}

Properties

NameTypeRequiredRestrictionsDescription
connection_countintegerfalseConnection count is the number of connections received by an agent.
connection_median_latency_msnumberfalseConnection median latency ms is the median latency of all connections in milliseconds.
connections_by_protoobjectfalseConnections by proto is a count of connections by protocol.
» [any property]integerfalse
metricsarray of agentsdk.AgentMetricfalseMetrics collected by the agent
rx_bytesintegerfalseRx bytes is the number of received bytes.
rx_packetsintegerfalseRx packets is the number of received packets.
session_count_jetbrainsintegerfalseSession count jetbrains is the number of connections received by an agent that are from our JetBrains extension.
session_count_reconnecting_ptyintegerfalseSession count reconnecting pty is the number of connections received by an agent that are from the reconnecting web terminal.
session_count_sshintegerfalseSession count ssh is the number of connections received by an agent that are normal, non-tagged SSH sessions.
session_count_vscodeintegerfalseSession count vscode is the number of connections received by an agent that are from our VS Code extension.
tx_bytesintegerfalseTx bytes is the number of transmitted bytes.
tx_packetsintegerfalseTx packets is the number of transmitted bytes.

agentsdk.StatsResponse

{
  "report_interval": 0
}

Properties

NameTypeRequiredRestrictionsDescription
report_intervalintegerfalseReport interval is the duration after which the agent should send stats again.

coderd.SCIMUser

{
  "active": true,
  "emails": [
    {
      "display": "string",
      "primary": true,
      "type": "string",
      "value": "[email protected]"
    }
  ],
  "groups": [null],
  "id": "string",
  "meta": {
    "resourceType": "string"
  },
  "name": {
    "familyName": "string",
    "givenName": "string"
  },
  "schemas": ["string"],
  "userName": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
activebooleanfalse
emailsarray of objectfalse
» displaystringfalse
» primarybooleanfalse
» typestringfalse
» valuestringfalse
groupsarray of undefinedfalse
idstringfalse
metaobjectfalse
» resourceTypestringfalse
nameobjectfalse
» familyNamestringfalse
» givenNamestringfalse
schemasarray of stringfalse
userNamestringfalse

coderd.cspViolation

{
  "csp-report": {}
}

Properties

NameTypeRequiredRestrictionsDescription
csp-reportobjectfalse

codersdk.ACLAvailable

{
  "groups": [
    {
      "avatar_url": "string",
      "display_name": "string",
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "members": [
        {
          "avatar_url": "http://example.com",
          "created_at": "2019-08-24T14:15:22Z",
          "email": "[email protected]",
          "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          "last_seen_at": "2019-08-24T14:15:22Z",
          "login_type": "",
          "name": "string",
          "status": "active",
          "theme_preference": "string",
          "username": "string"
        }
      ],
      "name": "string",
      "organization_id": "7c60d51f-b44e-4682-87d6-449835ea4de6",
      "quota_allowance": 0,
      "source": "user"
    }
  ],
  "users": [
    {
      "avatar_url": "http://example.com",
      "created_at": "2019-08-24T14:15:22Z",
      "email": "[email protected]",
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "last_seen_at": "2019-08-24T14:15:22Z",
      "login_type": "",
      "name": "string",
      "status": "active",
      "theme_preference": "string",
      "username": "string"
    }
  ]
}

Properties

NameTypeRequiredRestrictionsDescription
groupsarray of codersdk.Groupfalse
usersarray of codersdk.ReducedUserfalse

codersdk.APIKey

{
  "created_at": "2019-08-24T14:15:22Z",
  "expires_at": "2019-08-24T14:15:22Z",
  "id": "string",
  "last_used": "2019-08-24T14:15:22Z",
  "lifetime_seconds": 0,
  "login_type": "password",
  "scope": "all",
  "token_name": "string",
  "updated_at": "2019-08-24T14:15:22Z",
  "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"
}

Properties

NameTypeRequiredRestrictionsDescription
created_atstringtrue
expires_atstringtrue
idstringtrue
last_usedstringtrue
lifetime_secondsintegertrue
login_typecodersdk.LoginTypetrue
scopecodersdk.APIKeyScopetrue
token_namestringtrue
updated_atstringtrue
user_idstringtrue

Enumerated Values

PropertyValue
login_typepassword
login_typegithub
login_typeoidc
login_typetoken
scopeall
scopeapplication_connect

codersdk.APIKeyScope

"all"

Properties

Enumerated Values

Value
all
application_connect

codersdk.AddLicenseRequest

{
  "license": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
licensestringtrue

codersdk.AgentSubsystem

"envbox"

Properties

Enumerated Values

Value
envbox
envbuilder
exectrace

codersdk.AppHostResponse

{
  "host": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
hoststringfalseHost is the externally accessible URL for the Coder instance.

codersdk.AppearanceConfig

{
  "application_name": "string",
  "logo_url": "string",
  "notification_banners": [
    {
      "background_color": "string",
      "enabled": true,
      "message": "string"
    }
  ],
  "service_banner": {
    "background_color": "string",
    "enabled": true,
    "message": "string"
  },
  "support_links": [
    {
      "icon": "bug",
      "name": "string",
      "target": "string"
    }
  ]
}

Properties

NameTypeRequiredRestrictionsDescription
application_namestringfalse
logo_urlstringfalse
notification_bannersarray of codersdk.BannerConfigfalse
service_bannercodersdk.BannerConfigfalseDeprecated: ServiceBanner has been replaced by NotificationBanners.
support_linksarray of codersdk.LinkConfigfalse

codersdk.ArchiveTemplateVersionsRequest

{
  "all": true
}

Properties

NameTypeRequiredRestrictionsDescription
allbooleanfalseBy default, only failed versions are archived. Set this to true to archive all unused versions regardless of job status.

codersdk.AssignableRoles

{
  "assignable": true,
  "built_in": true,
  "display_name": "string",
  "name": "string",
  "organization_id": "7c60d51f-b44e-4682-87d6-449835ea4de6",
  "organization_permissions": {
    "property1": [
      {
        "action": "application_connect",
        "negate": true,
        "resource_type": "*"
      }
    ],
    "property2": [
      {
        "action": "application_connect",
        "negate": true,
        "resource_type": "*"
      }
    ]
  },
  "site_permissions": [
    {
      "action": "application_connect",
      "negate": true,
      "resource_type": "*"
    }
  ],
  "user_permissions": [
    {
      "action": "application_connect",
      "negate": true,
      "resource_type": "*"
    }
  ]
}

Properties

NameTypeRequiredRestrictionsDescription
assignablebooleanfalse
built_inbooleanfalseBuilt in roles are immutable
display_namestringfalse
namestringfalse
organization_idstringfalse
organization_permissionsobjectfalsemap[<org_id>] -> Permissions
» [any property]array of codersdk.Permissionfalse
site_permissionsarray of codersdk.Permissionfalse
user_permissionsarray of codersdk.Permissionfalse

codersdk.AuditAction

"create"

Properties

Enumerated Values

Value
create
write
delete
start
stop
login
logout
register

codersdk.AuditDiff

{
  "property1": {
    "new": null,
    "old": null,
    "secret": true
  },
  "property2": {
    "new": null,
    "old": null,
    "secret": true
  }
}

Properties

NameTypeRequiredRestrictionsDescription
[any property]codersdk.AuditDiffFieldfalse

codersdk.AuditDiffField

{
  "new": null,
  "old": null,
  "secret": true
}

Properties

NameTypeRequiredRestrictionsDescription
newanyfalse
oldanyfalse
secretbooleanfalse

codersdk.AuditLog

{
  "action": "create",
  "additional_fields": [0],
  "description": "string",
  "diff": {
    "property1": {
      "new": null,
      "old": null,
      "secret": true
    },
    "property2": {
      "new": null,
      "old": null,
      "secret": true
    }
  },
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "ip": "string",
  "is_deleted": true,
  "organization_id": "7c60d51f-b44e-4682-87d6-449835ea4de6",
  "request_id": "266ea41d-adf5-480b-af50-15b940c2b846",
  "resource_icon": "string",
  "resource_id": "4d5215ed-38bb-48ed-879a-fdb9ca58522f",
  "resource_link": "string",
  "resource_target": "string",
  "resource_type": "template",
  "status_code": 0,
  "time": "2019-08-24T14:15:22Z",
  "user": {
    "avatar_url": "http://example.com",
    "created_at": "2019-08-24T14:15:22Z",
    "email": "[email protected]",
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "last_seen_at": "2019-08-24T14:15:22Z",
    "login_type": "",
    "name": "string",
    "organization_ids": ["497f6eca-6276-4993-bfeb-53cbbbba6f08"],
    "roles": [
      {
        "display_name": "string",
        "name": "string"
      }
    ],
    "status": "active",
    "theme_preference": "string",
    "username": "string"
  },
  "user_agent": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
actioncodersdk.AuditActionfalse
additional_fieldsarray of integerfalse
descriptionstringfalse
diffcodersdk.AuditDifffalse
idstringfalse
ipstringfalse
is_deletedbooleanfalse
organization_idstringfalse
request_idstringfalse
resource_iconstringfalse
resource_idstringfalse
resource_linkstringfalse
resource_targetstringfalseResource target is the name of the resource.
resource_typecodersdk.ResourceTypefalse
status_codeintegerfalse
timestringfalse
usercodersdk.Userfalse
user_agentstringfalse

codersdk.AuditLogResponse

{
  "audit_logs": [
    {
      "action": "create",
      "additional_fields": [0],
      "description": "string",
      "diff": {
        "property1": {
          "new": null,
          "old": null,
          "secret": true
        },
        "property2": {
          "new": null,
          "old": null,
          "secret": true
        }
      },
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "ip": "string",
      "is_deleted": true,
      "organization_id": "7c60d51f-b44e-4682-87d6-449835ea4de6",
      "request_id": "266ea41d-adf5-480b-af50-15b940c2b846",
      "resource_icon": "string",
      "resource_id": "4d5215ed-38bb-48ed-879a-fdb9ca58522f",
      "resource_link": "string",
      "resource_target": "string",
      "resource_type": "template",
      "status_code": 0,
      "time": "2019-08-24T14:15:22Z",
      "user": {
        "avatar_url": "http://example.com",
        "created_at": "2019-08-24T14:15:22Z",
        "email": "[email protected]",
        "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        "last_seen_at": "2019-08-24T14:15:22Z",
        "login_type": "",
        "name": "string",
        "organization_ids": ["497f6eca-6276-4993-bfeb-53cbbbba6f08"],
        "roles": [
          {
            "display_name": "string",
            "name": "string"
          }
        ],
        "status": "active",
        "theme_preference": "string",
        "username": "string"
      },
      "user_agent": "string"
    }
  ],
  "count": 0
}

Properties

NameTypeRequiredRestrictionsDescription
audit_logsarray of codersdk.AuditLogfalse
countintegerfalse

codersdk.AuthMethod

{
  "enabled": true
}

Properties

NameTypeRequiredRestrictionsDescription
enabledbooleanfalse

codersdk.AuthMethods

{
  "github": {
    "enabled": true
  },
  "oidc": {
    "enabled": true,
    "iconUrl": "string",
    "signInText": "string"
  },
  "password": {
    "enabled": true
  },
  "terms_of_service_url": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
githubcodersdk.AuthMethodfalse
oidccodersdk.OIDCAuthMethodfalse
passwordcodersdk.AuthMethodfalse
terms_of_service_urlstringfalse

codersdk.AuthorizationCheck

{
  "action": "create",
  "object": {
    "organization_id": "string",
    "owner_id": "string",
    "resource_id": "string",
    "resource_type": "*"
  }
}

AuthorizationCheck is used to check if the currently authenticated user (or the specified user) can do a given action to a given set of objects.

Properties

NameTypeRequiredRestrictionsDescription
actioncodersdk.RBACActionfalse
objectcodersdk.AuthorizationObjectfalseObject can represent a "set" of objects, such as: all workspaces in an organization, all workspaces owned by me, and all workspaces across the entire product. When defining an object, use the most specific language when possible to produce the smallest set. Meaning to set as many fields on 'Object' as you can. Example, if you want to check if you can update all workspaces owned by 'me', try to also add an 'OrganizationID' to the settings. Omitting the 'OrganizationID' could produce the incorrect value, as workspaces have both user and organization owners.

Enumerated Values

PropertyValue
actioncreate
actionread
actionupdate
actiondelete

codersdk.AuthorizationObject

{
  "organization_id": "string",
  "owner_id": "string",
  "resource_id": "string",
  "resource_type": "*"
}

AuthorizationObject can represent a "set" of objects, such as: all workspaces in an organization, all workspaces owned by me, all workspaces across the entire product.

Properties

NameTypeRequiredRestrictionsDescription
organization_idstringfalseOrganization ID (optional) adds the set constraint to all resources owned by a given organization.
owner_idstringfalseOwner ID (optional) adds the set constraint to all resources owned by a given user.
resource_idstringfalseResource ID (optional) reduces the set to a singular resource. This assigns a resource ID to the resource type, eg: a single workspace. The rbac library will not fetch the resource from the database, so if you are using this option, you should also set the owner ID and organization ID if possible. Be as specific as possible using all the fields relevant.
resource_typecodersdk.RBACResourcefalseResource type is the name of the resource. ./coderd/rbac/object.go has the list of valid resource types.

codersdk.AuthorizationRequest

{
  "checks": {
    "property1": {
      "action": "create",
      "object": {
        "organization_id": "string",
        "owner_id": "string",
        "resource_id": "string",
        "resource_type": "*"
      }
    },
    "property2": {
      "action": "create",
      "object": {
        "organization_id": "string",
        "owner_id": "string",
        "resource_id": "string",
        "resource_type": "*"
      }
    }
  }
}

Properties

NameTypeRequiredRestrictionsDescription
checksobjectfalseChecks is a map keyed with an arbitrary string to a permission check. The key can be any string that is helpful to the caller, and allows multiple permission checks to be run in a single request. The key ensures that each permission check has the same key in the response.
» [any property]codersdk.AuthorizationCheckfalseIt is used to check if the currently authenticated user (or the specified user) can do a given action to a given set of objects.

codersdk.AuthorizationResponse

{
  "property1": true,
  "property2": true
}

Properties

NameTypeRequiredRestrictionsDescription
[any property]booleanfalse

codersdk.AutomaticUpdates

"always"

Properties

Enumerated Values

Value
always
never

codersdk.BannerConfig

{
  "background_color": "string",
  "enabled": true,
  "message": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
background_colorstringfalse
enabledbooleanfalse
messagestringfalse

codersdk.BuildInfoResponse

{
  "agent_api_version": "string",
  "dashboard_url": "string",
  "deployment_id": "string",
  "external_url": "string",
  "upgrade_message": "string",
  "version": "string",
  "workspace_proxy": true
}

Properties

NameTypeRequiredRestrictionsDescription
agent_api_versionstringfalseAgent api version is the current version of the Agent API (back versions MAY still be supported).
dashboard_urlstringfalseDashboard URL is the URL to hit the deployment's dashboard. For external workspace proxies, this is the coderd they are connected to.
deployment_idstringfalseDeployment ID is the unique identifier for this deployment.
external_urlstringfalseExternal URL references the current Coder version. For production builds, this will link directly to a release. For development builds, this will link to a commit.
upgrade_messagestringfalseUpgrade message is the message displayed to users when an outdated client is detected.
versionstringfalseVersion returns the semantic version of the build.
workspace_proxybooleanfalse

codersdk.BuildReason

"initiator"

Properties

Enumerated Values

Value
initiator
autostart
autostop

codersdk.ConnectionLatency

{
  "p50": 31.312,
  "p95": 119.832
}

Properties

NameTypeRequiredRestrictionsDescription
p50numberfalse
p95numberfalse

codersdk.ConvertLoginRequest

{
  "password": "string",
  "to_type": ""
}

Properties

NameTypeRequiredRestrictionsDescription
passwordstringtrue
to_typecodersdk.LoginTypetrueTo type is the login type to convert to.

codersdk.CreateFirstUserRequest

{
  "email": "string",
  "password": "string",
  "trial": true,
  "trial_info": {
    "company_name": "string",
    "country": "string",
    "developers": "string",
    "first_name": "string",
    "job_title": "string",
    "last_name": "string",
    "phone_number": "string"
  },
  "username": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
emailstringtrue
passwordstringtrue
trialbooleanfalse
trial_infocodersdk.CreateFirstUserTrialInfofalse
usernamestringtrue

codersdk.CreateFirstUserResponse

{
  "organization_id": "7c60d51f-b44e-4682-87d6-449835ea4de6",
  "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"
}

Properties

NameTypeRequiredRestrictionsDescription
organization_idstringfalse
user_idstringfalse

codersdk.CreateFirstUserTrialInfo

{
  "company_name": "string",
  "country": "string",
  "developers": "string",
  "first_name": "string",
  "job_title": "string",
  "last_name": "string",
  "phone_number": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
company_namestringfalse
countrystringfalse
developersstringfalse
first_namestringfalse
job_titlestringfalse
last_namestringfalse
phone_numberstringfalse

codersdk.CreateGroupRequest

{
  "avatar_url": "string",
  "display_name": "string",
  "name": "string",
  "quota_allowance": 0
}

Properties

NameTypeRequiredRestrictionsDescription
avatar_urlstringfalse
display_namestringfalse
namestringfalse
quota_allowanceintegerfalse

codersdk.CreateOrganizationRequest

{
  "name": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
namestringtrue

codersdk.CreateTemplateRequest

{
  "activity_bump_ms": 0,
  "allow_user_autostart": true,
  "allow_user_autostop": true,
  "allow_user_cancel_workspace_jobs": true,
  "autostart_requirement": {
    "days_of_week": ["monday"]
  },
  "autostop_requirement": {
    "days_of_week": ["monday"],
    "weeks": 0
  },
  "default_ttl_ms": 0,
  "delete_ttl_ms": 0,
  "description": "string",
  "disable_everyone_group_access": true,
  "display_name": "string",
  "dormant_ttl_ms": 0,
  "failure_ttl_ms": 0,
  "icon": "string",
  "name": "string",
  "require_active_version": true,
  "template_version_id": "0ba39c92-1f1b-4c32-aa3e-9925d7713eb1"
}

Properties

NameTypeRequiredRestrictionsDescription
activity_bump_msintegerfalseActivity bump ms allows optionally specifying the activity bump duration for all workspaces created from this template. Defaults to 1h but can be set to 0 to disable activity bumping.
allow_user_autostartbooleanfalseAllow user autostart allows users to set a schedule for autostarting their workspace. By default this is true. This can only be disabled when using an enterprise license.
allow_user_autostopbooleanfalseAllow user autostop allows users to set a custom workspace TTL to use in place of the template's DefaultTTL field. By default this is true. If false, the DefaultTTL will always be used. This can only be disabled when using an enterprise license.
allow_user_cancel_workspace_jobsbooleanfalseAllow users to cancel in-progress workspace jobs. *bool as the default value is "true".
autostart_requirementcodersdk.TemplateAutostartRequirementfalseAutostart requirement allows optionally specifying the autostart allowed days for workspaces created from this template. This is an enterprise feature.
autostop_requirementcodersdk.TemplateAutostopRequirementfalseAutostop requirement allows optionally specifying the autostop requirement for workspaces created from this template. This is an enterprise feature.
default_ttl_msintegerfalseDefault ttl ms allows optionally specifying the default TTL for all workspaces created from this template.
delete_ttl_msintegerfalseDelete ttl ms allows optionally specifying the max lifetime before Coder permanently deletes dormant workspaces created from this template.
descriptionstringfalseDescription is a description of what the template contains. It must be less than 128 bytes.
disable_everyone_group_accessbooleanfalseDisable everyone group access allows optionally disabling the default behavior of granting the 'everyone' group access to use the template. If this is set to true, the template will not be available to all users, and must be explicitly granted to users or groups in the permissions settings of the template.
display_namestringfalseDisplay name is the displayed name of the template.
dormant_ttl_msintegerfalseDormant ttl ms allows optionally specifying the max lifetime before Coder locks inactive workspaces created from this template.
failure_ttl_msintegerfalseFailure ttl ms allows optionally specifying the max lifetime before Coder stops all resources for failed workspaces created from this template.
iconstringfalseIcon is a relative path or external URL that specifies an icon to be displayed in the dashboard.
namestringtrueName is the name of the template.
require_active_versionbooleanfalseRequire active version mandates that workspaces are built with the active template version.
template_version_idstringtrueTemplate version ID is an in-progress or completed job to use as an initial version of the template.
This is required on creation to enable a user-flow of validating a template works. There is no reason the data-model cannot support empty templates, but it doesn't make sense for users.

codersdk.CreateTemplateVersionDryRunRequest

{
  "rich_parameter_values": [
    {
      "name": "string",
      "value": "string"
    }
  ],
  "user_variable_values": [
    {
      "name": "string",
      "value": "string"
    }
  ],
  "workspace_name": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
rich_parameter_valuesarray of codersdk.WorkspaceBuildParameterfalse
user_variable_valuesarray of codersdk.VariableValuefalse
workspace_namestringfalse

codersdk.CreateTemplateVersionRequest

{
  "example_id": "string",
  "file_id": "8a0cfb4f-ddc9-436d-91bb-75133c583767",
  "message": "string",
  "name": "string",
  "provisioner": "terraform",
  "storage_method": "file",
  "tags": {
    "property1": "string",
    "property2": "string"
  },
  "template_id": "c6d67e98-83ea-49f0-8812-e4abae2b68bc",
  "user_variable_values": [
    {
      "name": "string",
      "value": "string"
    }
  ]
}

Properties

NameTypeRequiredRestrictionsDescription
example_idstringfalse
file_idstringfalse
messagestringfalse
namestringfalse
provisionerstringtrue
storage_methodcodersdk.ProvisionerStorageMethodtrue
tagsobjectfalse
» [any property]stringfalse
template_idstringfalseTemplate ID optionally associates a version with a template.
user_variable_valuesarray of codersdk.VariableValuefalse

Enumerated Values

PropertyValue
provisionerterraform
provisionerecho
storage_methodfile

codersdk.CreateTestAuditLogRequest

{
  "action": "create",
  "additional_fields": [0],
  "build_reason": "autostart",
  "resource_id": "4d5215ed-38bb-48ed-879a-fdb9ca58522f",
  "resource_type": "template",
  "time": "2019-08-24T14:15:22Z"
}

Properties

NameTypeRequiredRestrictionsDescription
actioncodersdk.AuditActionfalse
additional_fieldsarray of integerfalse
build_reasoncodersdk.BuildReasonfalse
resource_idstringfalse
resource_typecodersdk.ResourceTypefalse
timestringfalse

Enumerated Values

PropertyValue
actioncreate
actionwrite
actiondelete
actionstart
actionstop
build_reasonautostart
build_reasonautostop
build_reasoninitiator
resource_typetemplate
resource_typetemplate_version
resource_typeuser
resource_typeworkspace
resource_typeworkspace_build
resource_typegit_ssh_key
resource_typeauditable_group

codersdk.CreateTokenRequest

{
  "lifetime": 0,
  "scope": "all",
  "token_name": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
lifetimeintegerfalse
scopecodersdk.APIKeyScopefalse
token_namestringfalse

Enumerated Values

PropertyValue
scopeall
scopeapplication_connect

codersdk.CreateUserRequest

{
  "disable_login": true,
  "email": "[email protected]",
  "login_type": "",
  "organization_id": "7c60d51f-b44e-4682-87d6-449835ea4de6",
  "password": "string",
  "username": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
disable_loginbooleanfalseDisable login sets the user's login type to 'none'. This prevents the user from being able to use a password or any other authentication method to login. Deprecated: Set UserLoginType=LoginTypeDisabled instead.
emailstringtrue
login_typecodersdk.LoginTypefalseLogin type defaults to LoginTypePassword.
organization_idstringfalse
passwordstringfalse
usernamestringtrue

codersdk.CreateWorkspaceBuildRequest

{
  "dry_run": true,
  "log_level": "debug",
  "orphan": true,
  "rich_parameter_values": [
    {
      "name": "string",
      "value": "string"
    }
  ],
  "state": [0],
  "template_version_id": "0ba39c92-1f1b-4c32-aa3e-9925d7713eb1",
  "transition": "create"
}

Properties

NameTypeRequiredRestrictionsDescription
dry_runbooleanfalse
log_levelcodersdk.ProvisionerLogLevelfalseLog level changes the default logging verbosity of a provider ("info" if empty).
orphanbooleanfalseOrphan may be set for the Destroy transition.
rich_parameter_valuesarray of codersdk.WorkspaceBuildParameterfalseRich parameter values are optional. It will write params to the 'workspace' scope. This will overwrite any existing parameters with the same name. This will not delete old params not included in this list.
statearray of integerfalse
template_version_idstringfalse
transitioncodersdk.WorkspaceTransitiontrue

Enumerated Values

PropertyValue
log_leveldebug
transitioncreate
transitionstart
transitionstop
transitiondelete

codersdk.CreateWorkspaceProxyRequest

{
  "display_name": "string",
  "icon": "string",
  "name": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
display_namestringfalse
iconstringfalse
namestringtrue

codersdk.CreateWorkspaceRequest

{
  "automatic_updates": "always",
  "autostart_schedule": "string",
  "name": "string",
  "rich_parameter_values": [
    {
      "name": "string",
      "value": "string"
    }
  ],
  "template_id": "c6d67e98-83ea-49f0-8812-e4abae2b68bc",
  "template_version_id": "0ba39c92-1f1b-4c32-aa3e-9925d7713eb1",
  "ttl_ms": 0
}

CreateWorkspaceRequest provides options for creating a new workspace. Only one of TemplateID or TemplateVersionID can be specified, not both. If TemplateID is specified, the active version of the template will be used.

Properties

NameTypeRequiredRestrictionsDescription
automatic_updatescodersdk.AutomaticUpdatesfalse
autostart_schedulestringfalse
namestringtrue
rich_parameter_valuesarray of codersdk.WorkspaceBuildParameterfalseRich parameter values allows for additional parameters to be provided during the initial provision.
template_idstringfalseTemplate ID specifies which template should be used for creating the workspace.
template_version_idstringfalseTemplate version ID can be used to specify a specific version of a template for creating the workspace.
ttl_msintegerfalse

codersdk.DAUEntry

{
  "amount": 0,
  "date": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
amountintegerfalse
datestringfalseDate is a string formatted as 2024-01-31. Timezone and time information is not included.

codersdk.DAUsResponse

{
  "entries": [
    {
      "amount": 0,
      "date": "string"
    }
  ],
  "tz_hour_offset": 0
}

Properties

NameTypeRequiredRestrictionsDescription
entriesarray of codersdk.DAUEntryfalse
tz_hour_offsetintegerfalse

codersdk.DERP

{
  "config": {
    "block_direct": true,
    "force_websockets": true,
    "path": "string",
    "url": "string"
  },
  "server": {
    "enable": true,
    "region_code": "string",
    "region_id": 0,
    "region_name": "string",
    "relay_url": {
      "forceQuery": true,
      "fragment": "string",
      "host": "string",
      "omitHost": true,
      "opaque": "string",
      "path": "string",
      "rawFragment": "string",
      "rawPath": "string",
      "rawQuery": "string",
      "scheme": "string",
      "user": {}
    },
    "stun_addresses": ["string"]
  }
}

Properties

NameTypeRequiredRestrictionsDescription
configcodersdk.DERPConfigfalse
servercodersdk.DERPServerConfigfalse

codersdk.DERPConfig

{
  "block_direct": true,
  "force_websockets": true,
  "path": "string",
  "url": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
block_directbooleanfalse
force_websocketsbooleanfalse
pathstringfalse
urlstringfalse

codersdk.DERPRegion

{
  "latency_ms": 0,
  "preferred": true
}

Properties

NameTypeRequiredRestrictionsDescription
latency_msnumberfalse
preferredbooleanfalse

codersdk.DERPServerConfig

{
  "enable": true,
  "region_code": "string",
  "region_id": 0,
  "region_name": "string",
  "relay_url": {
    "forceQuery": true,
    "fragment": "string",
    "host": "string",
    "omitHost": true,
    "opaque": "string",
    "path": "string",
    "rawFragment": "string",
    "rawPath": "string",
    "rawQuery": "string",
    "scheme": "string",
    "user": {}
  },
  "stun_addresses": ["string"]
}

Properties

NameTypeRequiredRestrictionsDescription
enablebooleanfalse
region_codestringfalse
region_idintegerfalse
region_namestringfalse
relay_urlserpent.URLfalse
stun_addressesarray of stringfalse

codersdk.DangerousConfig

{
  "allow_all_cors": true,
  "allow_path_app_sharing": true,
  "allow_path_app_site_owner_access": true
}

Properties

NameTypeRequiredRestrictionsDescription
allow_all_corsbooleanfalse
allow_path_app_sharingbooleanfalse
allow_path_app_site_owner_accessbooleanfalse

codersdk.DeleteWorkspaceAgentPortShareRequest

{
  "agent_name": "string",
  "port": 0
}

Properties

NameTypeRequiredRestrictionsDescription
agent_namestringfalse
portintegerfalse

codersdk.DeploymentConfig

{
  "config": {
    "access_url": {
      "forceQuery": true,
      "fragment": "string",
      "host": "string",
      "omitHost": true,
      "opaque": "string",
      "path": "string",
      "rawFragment": "string",
      "rawPath": "string",
      "rawQuery": "string",
      "scheme": "string",
      "user": {}
    },
    "address": {
      "host": "string",
      "port": "string"
    },
    "agent_fallback_troubleshooting_url": {
      "forceQuery": true,
      "fragment": "string",
      "host": "string",
      "omitHost": true,
      "opaque": "string",
      "path": "string",
      "rawFragment": "string",
      "rawPath": "string",
      "rawQuery": "string",
      "scheme": "string",
      "user": {}
    },
    "agent_stat_refresh_interval": 0,
    "allow_workspace_renames": true,
    "autobuild_poll_interval": 0,
    "browser_only": true,
    "cache_directory": "string",
    "cli_upgrade_message": "string",
    "config": "string",
    "config_ssh": {
      "deploymentName": "string",
      "sshconfigOptions": ["string"]
    },
    "dangerous": {
      "allow_all_cors": true,
      "allow_path_app_sharing": true,
      "allow_path_app_site_owner_access": true
    },
    "derp": {
      "config": {
        "block_direct": true,
        "force_websockets": true,
        "path": "string",
        "url": "string"
      },
      "server": {
        "enable": true,
        "region_code": "string",
        "region_id": 0,
        "region_name": "string",
        "relay_url": {
          "forceQuery": true,
          "fragment": "string",
          "host": "string",
          "omitHost": true,
          "opaque": "string",
          "path": "string",
          "rawFragment": "string",
          "rawPath": "string",
          "rawQuery": "string",
          "scheme": "string",
          "user": {}
        },
        "stun_addresses": ["string"]
      }
    },
    "disable_owner_workspace_exec": true,
    "disable_password_auth": true,
    "disable_path_apps": true,
    "docs_url": {
      "forceQuery": true,
      "fragment": "string",
      "host": "string",
      "omitHost": true,
      "opaque": "string",
      "path": "string",
      "rawFragment": "string",
      "rawPath": "string",
      "rawQuery": "string",
      "scheme": "string",
      "user": {}
    },
    "enable_terraform_debug_mode": true,
    "experiments": ["string"],
    "external_auth": {
      "value": [
        {
          "app_install_url": "string",
          "app_installations_url": "string",
          "auth_url": "string",
          "client_id": "string",
          "device_code_url": "string",
          "device_flow": true,
          "display_icon": "string",
          "display_name": "string",
          "extra_token_keys": ["string"],
          "id": "string",
          "no_refresh": true,
          "regex": "string",
          "scopes": ["string"],
          "token_url": "string",
          "type": "string",
          "validate_url": "string"
        }
      ]
    },
    "external_token_encryption_keys": ["string"],
    "healthcheck": {
      "refresh": 0,
      "threshold_database": 0
    },
    "http_address": "string",
    "in_memory_database": true,
    "job_hang_detector_interval": 0,
    "logging": {
      "human": "string",
      "json": "string",
      "log_filter": ["string"],
      "stackdriver": "string"
    },
    "metrics_cache_refresh_interval": 0,
    "oauth2": {
      "github": {
        "allow_everyone": true,
        "allow_signups": true,
        "allowed_orgs": ["string"],
        "allowed_teams": ["string"],
        "client_id": "string",
        "client_secret": "string",
        "enterprise_base_url": "string"
      }
    },
    "oidc": {
      "allow_signups": true,
      "auth_url_params": {},
      "client_cert_file": "string",
      "client_id": "string",
      "client_key_file": "string",
      "client_secret": "string",
      "email_domain": ["string"],
      "email_field": "string",
      "group_allow_list": ["string"],
      "group_auto_create": true,
      "group_mapping": {},
      "group_regex_filter": {},
      "groups_field": "string",
      "icon_url": {
        "forceQuery": true,
        "fragment": "string",
        "host": "string",
        "omitHost": true,
        "opaque": "string",
        "path": "string",
        "rawFragment": "string",
        "rawPath": "string",
        "rawQuery": "string",
        "scheme": "string",
        "user": {}
      },
      "ignore_email_verified": true,
      "ignore_user_info": true,
      "issuer_url": "string",
      "scopes": ["string"],
      "sign_in_text": "string",
      "signups_disabled_text": "string",
      "user_role_field": "string",
      "user_role_mapping": {},
      "user_roles_default": ["string"],
      "username_field": "string"
    },
    "pg_auth": "string",
    "pg_connection_url": "string",
    "pprof": {
      "address": {
        "host": "string",
        "port": "string"
      },
      "enable": true
    },
    "prometheus": {
      "address": {
        "host": "string",
        "port": "string"
      },
      "aggregate_agent_stats_by": ["string"],
      "collect_agent_stats": true,
      "collect_db_metrics": true,
      "enable": true
    },
    "provisioner": {
      "daemon_poll_interval": 0,
      "daemon_poll_jitter": 0,
      "daemon_psk": "string",
      "daemon_types": ["string"],
      "daemons": 0,
      "force_cancel_interval": 0
    },
    "proxy_health_status_interval": 0,
    "proxy_trusted_headers": ["string"],
    "proxy_trusted_origins": ["string"],
    "rate_limit": {
      "api": 0,
      "disable_all": true
    },
    "redirect_to_access_url": true,
    "scim_api_key": "string",
    "secure_auth_cookie": true,
    "session_lifetime": {
      "default_duration": 0,
      "disable_expiry_refresh": true,
      "max_token_lifetime": 0
    },
    "ssh_keygen_algorithm": "string",
    "strict_transport_security": 0,
    "strict_transport_security_options": ["string"],
    "support": {
      "links": {
        "value": [
          {
            "icon": "bug",
            "name": "string",
            "target": "string"
          }
        ]
      }
    },
    "swagger": {
      "enable": true
    },
    "telemetry": {
      "enable": true,
      "trace": true,
      "url": {
        "forceQuery": true,
        "fragment": "string",
        "host": "string",
        "omitHost": true,
        "opaque": "string",
        "path": "string",
        "rawFragment": "string",
        "rawPath": "string",
        "rawQuery": "string",
        "scheme": "string",
        "user": {}
      }
    },
    "terms_of_service_url": "string",
    "tls": {
      "address": {
        "host": "string",
        "port": "string"
      },
      "allow_insecure_ciphers": true,
      "cert_file": ["string"],
      "client_auth": "string",
      "client_ca_file": "string",
      "client_cert_file": "string",
      "client_key_file": "string",
      "enable": true,
      "key_file": ["string"],
      "min_version": "string",
      "redirect_http": true,
      "supported_ciphers": ["string"]
    },
    "trace": {
      "capture_logs": true,
      "data_dog": true,
      "enable": true,
      "honeycomb_api_key": "string"
    },
    "update_check": true,
    "user_quiet_hours_schedule": {
      "allow_user_custom": true,
      "default_schedule": "string"
    },
    "verbose": true,
    "web_terminal_renderer": "string",
    "wgtunnel_host": "string",
    "wildcard_access_url": "string",
    "write_config": true
  },
  "options": [
    {
      "annotations": {
        "property1": "string",
        "property2": "string"
      },
      "default": "string",
      "description": "string",
      "env": "string",
      "flag": "string",
      "flag_shorthand": "string",
      "group": {
        "description": "string",
        "name": "string",
        "parent": {
          "description": "string",
          "name": "string",
          "parent": {},
          "yaml": "string"
        },
        "yaml": "string"
      },
      "hidden": true,
      "name": "string",
      "required": true,
      "use_instead": [{}],
      "value": null,
      "value_source": "",
      "yaml": "string"
    }
  ]
}

Properties

NameTypeRequiredRestrictionsDescription
configcodersdk.DeploymentValuesfalse
optionsarray of serpent.Optionfalse

codersdk.DeploymentStats

{
  "aggregated_from": "2019-08-24T14:15:22Z",
  "collected_at": "2019-08-24T14:15:22Z",
  "next_update_at": "2019-08-24T14:15:22Z",
  "session_count": {
    "jetbrains": 0,
    "reconnecting_pty": 0,
    "ssh": 0,
    "vscode": 0
  },
  "workspaces": {
    "building": 0,
    "connection_latency_ms": {
      "p50": 0,
      "p95": 0
    },
    "failed": 0,
    "pending": 0,
    "running": 0,
    "rx_bytes": 0,
    "stopped": 0,
    "tx_bytes": 0
  }
}

Properties

NameTypeRequiredRestrictionsDescription
aggregated_fromstringfalseAggregated from is the time in which stats are aggregated from. This might be back in time a specific duration or interval.
collected_atstringfalseCollected at is the time in which stats are collected at.
next_update_atstringfalseNext update at is the time when the next batch of stats will be updated.
session_countcodersdk.SessionCountDeploymentStatsfalse
workspacescodersdk.WorkspaceDeploymentStatsfalse

codersdk.DeploymentValues

{
  "access_url": {
    "forceQuery": true,
    "fragment": "string",
    "host": "string",
    "omitHost": true,
    "opaque": "string",
    "path": "string",
    "rawFragment": "string",
    "rawPath": "string",
    "rawQuery": "string",
    "scheme": "string",
    "user": {}
  },
  "address": {
    "host": "string",
    "port": "string"
  },
  "agent_fallback_troubleshooting_url": {
    "forceQuery": true,
    "fragment": "string",
    "host": "string",
    "omitHost": true,
    "opaque": "string",
    "path": "string",
    "rawFragment": "string",
    "rawPath": "string",
    "rawQuery": "string",
    "scheme": "string",
    "user": {}
  },
  "agent_stat_refresh_interval": 0,
  "allow_workspace_renames": true,
  "autobuild_poll_interval": 0,
  "browser_only": true,
  "cache_directory": "string",
  "cli_upgrade_message": "string",
  "config": "string",
  "config_ssh": {
    "deploymentName": "string",
    "sshconfigOptions": ["string"]
  },
  "dangerous": {
    "allow_all_cors": true,
    "allow_path_app_sharing": true,
    "allow_path_app_site_owner_access": true
  },
  "derp": {
    "config": {
      "block_direct": true,
      "force_websockets": true,
      "path": "string",
      "url": "string"
    },
    "server": {
      "enable": true,
      "region_code": "string",
      "region_id": 0,
      "region_name": "string",
      "relay_url": {
        "forceQuery": true,
        "fragment": "string",
        "host": "string",
        "omitHost": true,
        "opaque": "string",
        "path": "string",
        "rawFragment": "string",
        "rawPath": "string",
        "rawQuery": "string",
        "scheme": "string",
        "user": {}
      },
      "stun_addresses": ["string"]
    }
  },
  "disable_owner_workspace_exec": true,
  "disable_password_auth": true,
  "disable_path_apps": true,
  "docs_url": {
    "forceQuery": true,
    "fragment": "string",
    "host": "string",
    "omitHost": true,
    "opaque": "string",
    "path": "string",
    "rawFragment": "string",
    "rawPath": "string",
    "rawQuery": "string",
    "scheme": "string",
    "user": {}
  },
  "enable_terraform_debug_mode": true,
  "experiments": ["string"],
  "external_auth": {
    "value": [
      {
        "app_install_url": "string",
        "app_installations_url": "string",
        "auth_url": "string",
        "client_id": "string",
        "device_code_url": "string",
        "device_flow": true,
        "display_icon": "string",
        "display_name": "string",
        "extra_token_keys": ["string"],
        "id": "string",
        "no_refresh": true,
        "regex": "string",
        "scopes": ["string"],
        "token_url": "string",
        "type": "string",
        "validate_url": "string"
      }
    ]
  },
  "external_token_encryption_keys": ["string"],
  "healthcheck": {
    "refresh": 0,
    "threshold_database": 0
  },
  "http_address": "string",
  "in_memory_database": true,
  "job_hang_detector_interval": 0,
  "logging": {
    "human": "string",
    "json": "string",
    "log_filter": ["string"],
    "stackdriver": "string"
  },
  "metrics_cache_refresh_interval": 0,
  "oauth2": {
    "github": {
      "allow_everyone": true,
      "allow_signups": true,
      "allowed_orgs": ["string"],
      "allowed_teams": ["string"],
      "client_id": "string",
      "client_secret": "string",
      "enterprise_base_url": "string"
    }
  },
  "oidc": {
    "allow_signups": true,
    "auth_url_params": {},
    "client_cert_file": "string",
    "client_id": "string",
    "client_key_file": "string",
    "client_secret": "string",
    "email_domain": ["string"],
    "email_field": "string",
    "group_allow_list": ["string"],
    "group_auto_create": true,
    "group_mapping": {},
    "group_regex_filter": {},
    "groups_field": "string",
    "icon_url": {
      "forceQuery": true,
      "fragment": "string",
      "host": "string",
      "omitHost": true,
      "opaque": "string",
      "path": "string",
      "rawFragment": "string",
      "rawPath": "string",
      "rawQuery": "string",
      "scheme": "string",
      "user": {}
    },
    "ignore_email_verified": true,
    "ignore_user_info": true,
    "issuer_url": "string",
    "scopes": ["string"],
    "sign_in_text": "string",
    "signups_disabled_text": "string",
    "user_role_field": "string",
    "user_role_mapping": {},
    "user_roles_default": ["string"],
    "username_field": "string"
  },
  "pg_auth": "string",
  "pg_connection_url": "string",
  "pprof": {
    "address": {
      "host": "string",
      "port": "string"
    },
    "enable": true
  },
  "prometheus": {
    "address": {
      "host": "string",
      "port": "string"
    },
    "aggregate_agent_stats_by": ["string"],
    "collect_agent_stats": true,
    "collect_db_metrics": true,
    "enable": true
  },
  "provisioner": {
    "daemon_poll_interval": 0,
    "daemon_poll_jitter": 0,
    "daemon_psk": "string",
    "daemon_types": ["string"],
    "daemons": 0,
    "force_cancel_interval": 0
  },
  "proxy_health_status_interval": 0,
  "proxy_trusted_headers": ["string"],
  "proxy_trusted_origins": ["string"],
  "rate_limit": {
    "api": 0,
    "disable_all": true
  },
  "redirect_to_access_url": true,
  "scim_api_key": "string",
  "secure_auth_cookie": true,
  "session_lifetime": {
    "default_duration": 0,
    "disable_expiry_refresh": true,
    "max_token_lifetime": 0
  },
  "ssh_keygen_algorithm": "string",
  "strict_transport_security": 0,
  "strict_transport_security_options": ["string"],
  "support": {
    "links": {
      "value": [
        {
          "icon": "bug",
          "name": "string",
          "target": "string"
        }
      ]
    }
  },
  "swagger": {
    "enable": true
  },
  "telemetry": {
    "enable": true,
    "trace": true,
    "url": {
      "forceQuery": true,
      "fragment": "string",
      "host": "string",
      "omitHost": true,
      "opaque": "string",
      "path": "string",
      "rawFragment": "string",
      "rawPath": "string",
      "rawQuery": "string",
      "scheme": "string",
      "user": {}
    }
  },
  "terms_of_service_url": "string",
  "tls": {
    "address": {
      "host": "string",
      "port": "string"
    },
    "allow_insecure_ciphers": true,
    "cert_file": ["string"],
    "client_auth": "string",
    "client_ca_file": "string",
    "client_cert_file": "string",
    "client_key_file": "string",
    "enable": true,
    "key_file": ["string"],
    "min_version": "string",
    "redirect_http": true,
    "supported_ciphers": ["string"]
  },
  "trace": {
    "capture_logs": true,
    "data_dog": true,
    "enable": true,
    "honeycomb_api_key": "string"
  },
  "update_check": true,
  "user_quiet_hours_schedule": {
    "allow_user_custom": true,
    "default_schedule": "string"
  },
  "verbose": true,
  "web_terminal_renderer": "string",
  "wgtunnel_host": "string",
  "wildcard_access_url": "string",
  "write_config": true
}

Properties

NameTypeRequiredRestrictionsDescription
access_urlserpent.URLfalse
addressserpent.HostPortfalseAddress Use HTTPAddress or TLS.Address instead.
agent_fallback_troubleshooting_urlserpent.URLfalse
agent_stat_refresh_intervalintegerfalse
allow_workspace_renamesbooleanfalse
autobuild_poll_intervalintegerfalse
browser_onlybooleanfalse
cache_directorystringfalse
cli_upgrade_messagestringfalse
configstringfalse
config_sshcodersdk.SSHConfigfalse
dangerouscodersdk.DangerousConfigfalse
derpcodersdk.DERPfalse
disable_owner_workspace_execbooleanfalse
disable_password_authbooleanfalse
disable_path_appsbooleanfalse
docs_urlserpent.URLfalse
enable_terraform_debug_modebooleanfalse
experimentsarray of stringfalse
external_authserpent.Struct-array_codersdk_ExternalAuthConfigfalse
external_token_encryption_keysarray of stringfalse
healthcheckcodersdk.HealthcheckConfigfalse
http_addressstringfalseHttp address is a string because it may be set to zero to disable.
in_memory_databasebooleanfalse
job_hang_detector_intervalintegerfalse
loggingcodersdk.LoggingConfigfalse
metrics_cache_refresh_intervalintegerfalse
oauth2codersdk.OAuth2Configfalse
oidccodersdk.OIDCConfigfalse
pg_authstringfalse
pg_connection_urlstringfalse
pprofcodersdk.PprofConfigfalse
prometheuscodersdk.PrometheusConfigfalse
provisionercodersdk.ProvisionerConfigfalse
proxy_health_status_intervalintegerfalse
proxy_trusted_headersarray of stringfalse
proxy_trusted_originsarray of stringfalse
rate_limitcodersdk.RateLimitConfigfalse
redirect_to_access_urlbooleanfalse
scim_api_keystringfalse
secure_auth_cookiebooleanfalse
session_lifetimecodersdk.SessionLifetimefalse
ssh_keygen_algorithmstringfalse
strict_transport_securityintegerfalse
strict_transport_security_optionsarray of stringfalse
supportcodersdk.SupportConfigfalse
swaggercodersdk.SwaggerConfigfalse
telemetrycodersdk.TelemetryConfigfalse
terms_of_service_urlstringfalse
tlscodersdk.TLSConfigfalse
tracecodersdk.TraceConfigfalse
update_checkbooleanfalse
user_quiet_hours_schedulecodersdk.UserQuietHoursScheduleConfigfalse
verbosebooleanfalse
web_terminal_rendererstringfalse
wgtunnel_hoststringfalse
wildcard_access_urlstringfalse
write_configbooleanfalse

codersdk.DisplayApp

"vscode"

Properties

Enumerated Values

Value
vscode
vscode_insiders
web_terminal
port_forwarding_helper
ssh_helper

codersdk.Entitlement

"entitled"

Properties

Enumerated Values

Value
entitled
grace_period
not_entitled

codersdk.Entitlements

{
  "errors": ["string"],
  "features": {
    "property1": {
      "actual": 0,
      "enabled": true,
      "entitlement": "entitled",
      "limit": 0
    },
    "property2": {
      "actual": 0,
      "enabled": true,
      "entitlement": "entitled",
      "limit": 0
    }
  },
  "has_license": true,
  "refreshed_at": "2019-08-24T14:15:22Z",
  "require_telemetry": true,
  "trial": true,
  "warnings": ["string"]
}

Properties

NameTypeRequiredRestrictionsDescription
errorsarray of stringfalse
featuresobjectfalse
» [any property]codersdk.Featurefalse
has_licensebooleanfalse
refreshed_atstringfalse
require_telemetrybooleanfalse
trialbooleanfalse
warningsarray of stringfalse

codersdk.Experiment

"example"

Properties

Enumerated Values

Value
example
auto-fill-parameters
multi-organization
custom-roles

codersdk.ExternalAuth

{
  "app_install_url": "string",
  "app_installable": true,
  "authenticated": true,
  "device": true,
  "display_name": "string",
  "installations": [
    {
      "account": {
        "avatar_url": "string",
        "login": "string",
        "name": "string",
        "profile_url": "string"
      },
      "configure_url": "string",
      "id": 0
    }
  ],
  "user": {
    "avatar_url": "string",
    "login": "string",
    "name": "string",
    "profile_url": "string"
  }
}

Properties

NameTypeRequiredRestrictionsDescription
app_install_urlstringfalseApp install URL is the URL to install the app.
app_installablebooleanfalseApp installable is true if the request for app installs was successful.
authenticatedbooleanfalse
devicebooleanfalse
display_namestringfalse
installationsarray of codersdk.ExternalAuthAppInstallationfalseInstallations are the installations that the user has access to.
usercodersdk.ExternalAuthUserfalseUser is the user that authenticated with the provider.

codersdk.ExternalAuthAppInstallation

{
  "account": {
    "avatar_url": "string",
    "login": "string",
    "name": "string",
    "profile_url": "string"
  },
  "configure_url": "string",
  "id": 0
}

Properties

NameTypeRequiredRestrictionsDescription
accountcodersdk.ExternalAuthUserfalse
configure_urlstringfalse
idintegerfalse

codersdk.ExternalAuthConfig

{
  "app_install_url": "string",
  "app_installations_url": "string",
  "auth_url": "string",
  "client_id": "string",
  "device_code_url": "string",
  "device_flow": true,
  "display_icon": "string",
  "display_name": "string",
  "extra_token_keys": ["string"],
  "id": "string",
  "no_refresh": true,
  "regex": "string",
  "scopes": ["string"],
  "token_url": "string",
  "type": "string",
  "validate_url": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
app_install_urlstringfalse
app_installations_urlstringfalse
auth_urlstringfalse
client_idstringfalse
device_code_urlstringfalse
device_flowbooleanfalse
display_iconstringfalseDisplay icon is a URL to an icon to display in the UI.
display_namestringfalseDisplay name is shown in the UI to identify the auth config.
extra_token_keysarray of stringfalse
idstringfalseID is a unique identifier for the auth config. It defaults to type when not provided.
no_refreshbooleanfalse
regexstringfalseRegex allows API requesters to match an auth config by a string (e.g. coder.com) instead of by it's type.
Git clone makes use of this by parsing the URL from: 'Username for "https://github.com":' And sending it to the Coder server to match against the Regex.
scopesarray of stringfalse
token_urlstringfalse
typestringfalseType is the type of external auth config.
validate_urlstringfalse

codersdk.ExternalAuthDevice

{
  "device_code": "string",
  "expires_in": 0,
  "interval": 0,
  "user_code": "string",
  "verification_uri": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
device_codestringfalse
expires_inintegerfalse
intervalintegerfalse
user_codestringfalse
verification_uristringfalse
{
  "authenticated": true,
  "created_at": "2019-08-24T14:15:22Z",
  "expires": "2019-08-24T14:15:22Z",
  "has_refresh_token": true,
  "provider_id": "string",
  "updated_at": "2019-08-24T14:15:22Z",
  "validate_error": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
authenticatedbooleanfalse
created_atstringfalse
expiresstringfalse
has_refresh_tokenbooleanfalse
provider_idstringfalse
updated_atstringfalse
validate_errorstringfalse

codersdk.ExternalAuthUser

{
  "avatar_url": "string",
  "login": "string",
  "name": "string",
  "profile_url": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
avatar_urlstringfalse
loginstringfalse
namestringfalse
profile_urlstringfalse

codersdk.Feature

{
  "actual": 0,
  "enabled": true,
  "entitlement": "entitled",
  "limit": 0
}

Properties

NameTypeRequiredRestrictionsDescription
actualintegerfalse
enabledbooleanfalse
entitlementcodersdk.Entitlementfalse
limitintegerfalse

codersdk.GenerateAPIKeyResponse

{
  "key": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
keystringfalse

codersdk.GetUsersResponse

{
  "count": 0,
  "users": [
    {
      "avatar_url": "http://example.com",
      "created_at": "2019-08-24T14:15:22Z",
      "email": "[email protected]",
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "last_seen_at": "2019-08-24T14:15:22Z",
      "login_type": "",
      "name": "string",
      "organization_ids": ["497f6eca-6276-4993-bfeb-53cbbbba6f08"],
      "roles": [
        {
          "display_name": "string",
          "name": "string"
        }
      ],
      "status": "active",
      "theme_preference": "string",
      "username": "string"
    }
  ]
}

Properties

NameTypeRequiredRestrictionsDescription
countintegerfalse
usersarray of codersdk.Userfalse

codersdk.GitSSHKey

{
  "created_at": "2019-08-24T14:15:22Z",
  "public_key": "string",
  "updated_at": "2019-08-24T14:15:22Z",
  "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"
}

Properties

NameTypeRequiredRestrictionsDescription
created_atstringfalse
public_keystringfalse
updated_atstringfalse
user_idstringfalse

codersdk.Group

{
  "avatar_url": "string",
  "display_name": "string",
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "members": [
    {
      "avatar_url": "http://example.com",
      "created_at": "2019-08-24T14:15:22Z",
      "email": "[email protected]",
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "last_seen_at": "2019-08-24T14:15:22Z",
      "login_type": "",
      "name": "string",
      "status": "active",
      "theme_preference": "string",
      "username": "string"
    }
  ],
  "name": "string",
  "organization_id": "7c60d51f-b44e-4682-87d6-449835ea4de6",
  "quota_allowance": 0,
  "source": "user"
}

Properties

NameTypeRequiredRestrictionsDescription
avatar_urlstringfalse
display_namestringfalse
idstringfalse
membersarray of codersdk.ReducedUserfalse
namestringfalse
organization_idstringfalse
quota_allowanceintegerfalse
sourcecodersdk.GroupSourcefalse

codersdk.GroupSource

"user"

Properties

Enumerated Values

Value
user
oidc

codersdk.Healthcheck

{
  "interval": 0,
  "threshold": 0,
  "url": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
intervalintegerfalseInterval specifies the seconds between each health check.
thresholdintegerfalseThreshold specifies the number of consecutive failed health checks before returning "unhealthy".
urlstringfalseURL specifies the endpoint to check for the app health.

codersdk.HealthcheckConfig

{
  "refresh": 0,
  "threshold_database": 0
}

Properties

NameTypeRequiredRestrictionsDescription
refreshintegerfalse
threshold_databaseintegerfalse

codersdk.InsightsReportInterval

"day"

Properties

Enumerated Values

Value
day
week

codersdk.IssueReconnectingPTYSignedTokenRequest

{
  "agentID": "bc282582-04f9-45ce-b904-3e3bfab66958",
  "url": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
agentIDstringtrue
urlstringtrueURL is the URL of the reconnecting-pty endpoint you are connecting to.

codersdk.IssueReconnectingPTYSignedTokenResponse

{
  "signed_token": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
signed_tokenstringfalse

codersdk.JFrogXrayScan

{
  "agent_id": "2b1e3b65-2c04-4fa2-a2d7-467901e98978",
  "critical": 0,
  "high": 0,
  "medium": 0,
  "results_url": "string",
  "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}

Properties

NameTypeRequiredRestrictionsDescription
agent_idstringfalse
criticalintegerfalse
highintegerfalse
mediumintegerfalse
results_urlstringfalse
workspace_idstringfalse

codersdk.JobErrorCode

"REQUIRED_TEMPLATE_VARIABLES"

Properties

Enumerated Values

Value
REQUIRED_TEMPLATE_VARIABLES

codersdk.License

{
  "claims": {},
  "id": 0,
  "uploaded_at": "2019-08-24T14:15:22Z",
  "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f"
}

Properties

NameTypeRequiredRestrictionsDescription
claimsobjectfalseClaims are the JWT claims asserted by the license. Here we use a generic string map to ensure that all data from the server is parsed verbatim, not just the fields this version of Coder understands.
idintegerfalse
uploaded_atstringfalse
uuidstringfalse

codersdk.LinkConfig

{
  "icon": "bug",
  "name": "string",
  "target": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
iconstringfalse
namestringfalse
targetstringfalse

Enumerated Values

PropertyValue
iconbug
iconchat
icondocs

codersdk.LogLevel

"trace"

Properties

Enumerated Values

Value
trace
debug
info
warn
error

codersdk.LogSource

"provisioner_daemon"

Properties

Enumerated Values

Value
provisioner_daemon
provisioner

codersdk.LoggingConfig

{
  "human": "string",
  "json": "string",
  "log_filter": ["string"],
  "stackdriver": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
humanstringfalse
jsonstringfalse
log_filterarray of stringfalse
stackdriverstringfalse

codersdk.LoginType

""

Properties

Enumerated Values

Value
``
password
github
oidc
token
none

codersdk.LoginWithPasswordRequest

{
  "email": "[email protected]",
  "password": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
emailstringtrue
passwordstringtrue

codersdk.LoginWithPasswordResponse

{
  "session_token": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
session_tokenstringtrue

codersdk.MinimalUser

{
  "avatar_url": "http://example.com",
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "username": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
avatar_urlstringfalse
idstringtrue
usernamestringtrue

codersdk.OAuth2AppEndpoints

{
  "authorization": "string",
  "device_authorization": "string",
  "token": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
authorizationstringfalse
device_authorizationstringfalseDevice authorization is optional.
tokenstringfalse

codersdk.OAuth2Config

{
  "github": {
    "allow_everyone": true,
    "allow_signups": true,
    "allowed_orgs": ["string"],
    "allowed_teams": ["string"],
    "client_id": "string",
    "client_secret": "string",
    "enterprise_base_url": "string"
  }
}

Properties

NameTypeRequiredRestrictionsDescription
githubcodersdk.OAuth2GithubConfigfalse

codersdk.OAuth2GithubConfig

{
  "allow_everyone": true,
  "allow_signups": true,
  "allowed_orgs": ["string"],
  "allowed_teams": ["string"],
  "client_id": "string",
  "client_secret": "string",
  "enterprise_base_url": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
allow_everyonebooleanfalse
allow_signupsbooleanfalse
allowed_orgsarray of stringfalse
allowed_teamsarray of stringfalse
client_idstringfalse
client_secretstringfalse
enterprise_base_urlstringfalse

codersdk.OAuth2ProviderApp

{
  "callback_url": "string",
  "endpoints": {
    "authorization": "string",
    "device_authorization": "string",
    "token": "string"
  },
  "icon": "string",
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "name": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
callback_urlstringfalse
endpointscodersdk.OAuth2AppEndpointsfalseEndpoints are included in the app response for easier discovery. The OAuth2 spec does not have a defined place to find these (for comparison, OIDC has a '/.well-known/openid-configuration' endpoint).
iconstringfalse
idstringfalse
namestringfalse

codersdk.OAuth2ProviderAppSecret

{
  "client_secret_truncated": "string",
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "last_used_at": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
client_secret_truncatedstringfalse
idstringfalse
last_used_atstringfalse

codersdk.OAuth2ProviderAppSecretFull

{
  "client_secret_full": "string",
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

Properties

NameTypeRequiredRestrictionsDescription
client_secret_fullstringfalse
idstringfalse

codersdk.OAuthConversionResponse

{
  "expires_at": "2019-08-24T14:15:22Z",
  "state_string": "string",
  "to_type": "",
  "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"
}

Properties

NameTypeRequiredRestrictionsDescription
expires_atstringfalse
state_stringstringfalse
to_typecodersdk.LoginTypefalse
user_idstringfalse

codersdk.OIDCAuthMethod

{
  "enabled": true,
  "iconUrl": "string",
  "signInText": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
enabledbooleanfalse
iconUrlstringfalse
signInTextstringfalse

codersdk.OIDCConfig

{
  "allow_signups": true,
  "auth_url_params": {},
  "client_cert_file": "string",
  "client_id": "string",
  "client_key_file": "string",
  "client_secret": "string",
  "email_domain": ["string"],
  "email_field": "string",
  "group_allow_list": ["string"],
  "group_auto_create": true,
  "group_mapping": {},
  "group_regex_filter": {},
  "groups_field": "string",
  "icon_url": {
    "forceQuery": true,
    "fragment": "string",
    "host": "string",
    "omitHost": true,
    "opaque": "string",
    "path": "string",
    "rawFragment": "string",
    "rawPath": "string",
    "rawQuery": "string",
    "scheme": "string",
    "user": {}
  },
  "ignore_email_verified": true,
  "ignore_user_info": true,
  "issuer_url": "string",
  "scopes": ["string"],
  "sign_in_text": "string",
  "signups_disabled_text": "string",
  "user_role_field": "string",
  "user_role_mapping": {},
  "user_roles_default": ["string"],
  "username_field": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
allow_signupsbooleanfalse
auth_url_paramsobjectfalse
client_cert_filestringfalse
client_idstringfalse
client_key_filestringfalseClient key file & ClientCertFile are used in place of ClientSecret for PKI auth.
client_secretstringfalse
email_domainarray of stringfalse
email_fieldstringfalse
group_allow_listarray of stringfalse
group_auto_createbooleanfalse
group_mappingobjectfalse
group_regex_filterserpent.Regexpfalse
groups_fieldstringfalse
icon_urlserpent.URLfalse
ignore_email_verifiedbooleanfalse
ignore_user_infobooleanfalse
issuer_urlstringfalse
scopesarray of stringfalse
sign_in_textstringfalse
signups_disabled_textstringfalse
user_role_fieldstringfalse
user_role_mappingobjectfalse
user_roles_defaultarray of stringfalse
username_fieldstringfalse

codersdk.Organization

{
  "created_at": "2019-08-24T14:15:22Z",
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "is_default": true,
  "name": "string",
  "updated_at": "2019-08-24T14:15:22Z"
}

Properties

NameTypeRequiredRestrictionsDescription
created_atstringtrue
idstringtrue
is_defaultbooleantrue
namestringtrue
updated_atstringtrue

codersdk.OrganizationMember

{
  "created_at": "2019-08-24T14:15:22Z",
  "organization_id": "7c60d51f-b44e-4682-87d6-449835ea4de6",
  "roles": [
    {
      "display_name": "string",
      "name": "string"
    }
  ],
  "updated_at": "2019-08-24T14:15:22Z",
  "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"
}

Properties

NameTypeRequiredRestrictionsDescription
created_atstringfalse
organization_idstringfalse
rolesarray of codersdk.SlimRolefalse
updated_atstringfalse
user_idstringfalse

codersdk.PatchGroupRequest

{
  "add_users": ["string"],
  "avatar_url": "string",
  "display_name": "string",
  "name": "string",
  "quota_allowance": 0,
  "remove_users": ["string"]
}

Properties

NameTypeRequiredRestrictionsDescription
add_usersarray of stringfalse
avatar_urlstringfalse
display_namestringfalse
namestringfalse
quota_allowanceintegerfalse
remove_usersarray of stringfalse

codersdk.PatchTemplateVersionRequest

{
  "message": "string",
  "name": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
messagestringfalse
namestringfalse

codersdk.PatchWorkspaceProxy

{
  "display_name": "string",
  "icon": "string",
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "name": "string",
  "regenerate_token": true
}

Properties

NameTypeRequiredRestrictionsDescription
display_namestringtrue
iconstringtrue
idstringtrue
namestringtrue
regenerate_tokenbooleanfalse

codersdk.Permission

{
  "action": "application_connect",
  "negate": true,
  "resource_type": "*"
}

Properties

NameTypeRequiredRestrictionsDescription
actioncodersdk.RBACActionfalse
negatebooleanfalseNegate makes this a negative permission
resource_typecodersdk.RBACResourcefalse

codersdk.PostOAuth2ProviderAppRequest

{
  "callback_url": "string",
  "icon": "string",
  "name": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
callback_urlstringtrue
iconstringfalse
namestringtrue

codersdk.PprofConfig

{
  "address": {
    "host": "string",
    "port": "string"
  },
  "enable": true
}

Properties

NameTypeRequiredRestrictionsDescription
addressserpent.HostPortfalse
enablebooleanfalse

codersdk.PrometheusConfig

{
  "address": {
    "host": "string",
    "port": "string"
  },
  "aggregate_agent_stats_by": ["string"],
  "collect_agent_stats": true,
  "collect_db_metrics": true,
  "enable": true
}

Properties

NameTypeRequiredRestrictionsDescription
addressserpent.HostPortfalse
aggregate_agent_stats_byarray of stringfalse
collect_agent_statsbooleanfalse
collect_db_metricsbooleanfalse
enablebooleanfalse

codersdk.ProvisionerConfig

{
  "daemon_poll_interval": 0,
  "daemon_poll_jitter": 0,
  "daemon_psk": "string",
  "daemon_types": ["string"],
  "daemons": 0,
  "force_cancel_interval": 0
}

Properties

NameTypeRequiredRestrictionsDescription
daemon_poll_intervalintegerfalse
daemon_poll_jitterintegerfalse
daemon_pskstringfalse
daemon_typesarray of stringfalse
daemonsintegerfalseDaemons is the number of built-in terraform provisioners.
force_cancel_intervalintegerfalse

codersdk.ProvisionerDaemon

{
  "api_version": "string",
  "created_at": "2019-08-24T14:15:22Z",
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "last_seen_at": "2019-08-24T14:15:22Z",
  "name": "string",
  "provisioners": ["string"],
  "tags": {
    "property1": "string",
    "property2": "string"
  },
  "version": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
api_versionstringfalse
created_atstringfalse
idstringfalse
last_seen_atstringfalse
namestringfalse
provisionersarray of stringfalse
tagsobjectfalse
» [any property]stringfalse
versionstringfalse

codersdk.ProvisionerJob

{
  "canceled_at": "2019-08-24T14:15:22Z",
  "completed_at": "2019-08-24T14:15:22Z",
  "created_at": "2019-08-24T14:15:22Z",
  "error": "string",
  "error_code": "REQUIRED_TEMPLATE_VARIABLES",
  "file_id": "8a0cfb4f-ddc9-436d-91bb-75133c583767",
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "queue_position": 0,
  "queue_size": 0,
  "started_at": "2019-08-24T14:15:22Z",
  "status": "pending",
  "tags": {
    "property1": "string",
    "property2": "string"
  },
  "worker_id": "ae5fa6f7-c55b-40c1-b40a-b36ac467652b"
}

Properties

NameTypeRequiredRestrictionsDescription
canceled_atstringfalse
completed_atstringfalse
created_atstringfalse
errorstringfalse
error_codecodersdk.JobErrorCodefalse
file_idstringfalse
idstringfalse
queue_positionintegerfalse
queue_sizeintegerfalse
started_atstringfalse
statuscodersdk.ProvisionerJobStatusfalse
tagsobjectfalse
» [any property]stringfalse
worker_idstringfalse

Enumerated Values

PropertyValue
error_codeREQUIRED_TEMPLATE_VARIABLES
statuspending
statusrunning
statussucceeded
statuscanceling
statuscanceled
statusfailed

codersdk.ProvisionerJobLog

{
  "created_at": "2019-08-24T14:15:22Z",
  "id": 0,
  "log_level": "trace",
  "log_source": "provisioner_daemon",
  "output": "string",
  "stage": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
created_atstringfalse
idintegerfalse
log_levelcodersdk.LogLevelfalse
log_sourcecodersdk.LogSourcefalse
outputstringfalse
stagestringfalse

Enumerated Values

PropertyValue
log_leveltrace
log_leveldebug
log_levelinfo
log_levelwarn
log_levelerror

codersdk.ProvisionerJobStatus

"pending"

Properties

Enumerated Values

Value
pending
running
succeeded
canceling
canceled
failed
unknown

codersdk.ProvisionerLogLevel

"debug"

Properties

Enumerated Values

Value
debug

codersdk.ProvisionerStorageMethod

"file"

Properties

Enumerated Values

Value
file

codersdk.ProxyHealthReport

{
  "errors": ["string"],
  "warnings": ["string"]
}

Properties

NameTypeRequiredRestrictionsDescription
errorsarray of stringfalseErrors are problems that prevent the workspace proxy from being healthy
warningsarray of stringfalseWarnings do not prevent the workspace proxy from being healthy, but should be addressed.

codersdk.ProxyHealthStatus

"ok"

Properties

Enumerated Values

Value
ok
unreachable
unhealthy
unregistered

codersdk.PutExtendWorkspaceRequest

{
  "deadline": "2019-08-24T14:15:22Z"
}

Properties

NameTypeRequiredRestrictionsDescription
deadlinestringtrue

codersdk.PutOAuth2ProviderAppRequest

{
  "callback_url": "string",
  "icon": "string",
  "name": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
callback_urlstringtrue
iconstringfalse
namestringtrue

codersdk.RBACAction

"application_connect"

Properties

Enumerated Values

Value
application_connect
assign
create
delete
read
read_personal
ssh
update
update_personal
use
view_insights
start
stop

codersdk.RBACResource

"*"

Properties

Enumerated Values

Value
*
api_key
assign_org_role
assign_role
audit_log
debug_info
deployment_config
deployment_stats
file
group
license
oauth2_app
oauth2_app_code_token
oauth2_app_secret
organization
organization_member
provisioner_daemon
replicas
system
tailnet_coordinator
template
user
workspace
workspace_dormant
workspace_proxy

codersdk.RateLimitConfig

{
  "api": 0,
  "disable_all": true
}

Properties

NameTypeRequiredRestrictionsDescription
apiintegerfalse
disable_allbooleanfalse

codersdk.ReducedUser

{
  "avatar_url": "http://example.com",
  "created_at": "2019-08-24T14:15:22Z",
  "email": "[email protected]",
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "last_seen_at": "2019-08-24T14:15:22Z",
  "login_type": "",
  "name": "string",
  "status": "active",
  "theme_preference": "string",
  "username": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
avatar_urlstringfalse
created_atstringtrue
emailstringtrue
idstringtrue
last_seen_atstringfalse
login_typecodersdk.LoginTypefalse
namestringfalse
statuscodersdk.UserStatusfalse
theme_preferencestringfalse
usernamestringtrue

Enumerated Values

PropertyValue
statusactive
statussuspended

codersdk.Region

{
  "display_name": "string",
  "healthy": true,
  "icon_url": "string",
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "name": "string",
  "path_app_url": "string",
  "wildcard_hostname": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
display_namestringfalse
healthybooleanfalse
icon_urlstringfalse
idstringfalse
namestringfalse
path_app_urlstringfalsePath app URL is the URL to the base path for path apps. Optional unless wildcard_hostname is set. E.g. https://us.example.com
wildcard_hostnamestringfalseWildcard hostname is the wildcard hostname for subdomain apps. E.g. _.us.example.com E.g. _--suffix.au.example.com Optional. Does not need to be on the same domain as PathAppURL.

codersdk.RegionsResponse-codersdk_Region

{
  "regions": [
    {
      "display_name": "string",
      "healthy": true,
      "icon_url": "string",
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "name": "string",
      "path_app_url": "string",
      "wildcard_hostname": "string"
    }
  ]
}

Properties

NameTypeRequiredRestrictionsDescription
regionsarray of codersdk.Regionfalse

codersdk.RegionsResponse-codersdk_WorkspaceProxy

{
  "regions": [
    {
      "created_at": "2019-08-24T14:15:22Z",
      "deleted": true,
      "derp_enabled": true,
      "derp_only": true,
      "display_name": "string",
      "healthy": true,
      "icon_url": "string",
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "name": "string",
      "path_app_url": "string",
      "status": {
        "checked_at": "2019-08-24T14:15:22Z",
        "report": {
          "errors": ["string"],
          "warnings": ["string"]
        },
        "status": "ok"
      },
      "updated_at": "2019-08-24T14:15:22Z",
      "version": "string",
      "wildcard_hostname": "string"
    }
  ]
}

Properties

NameTypeRequiredRestrictionsDescription
regionsarray of codersdk.WorkspaceProxyfalse

codersdk.Replica

{
  "created_at": "2019-08-24T14:15:22Z",
  "database_latency": 0,
  "error": "string",
  "hostname": "string",
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "region_id": 0,
  "relay_address": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
created_atstringfalseCreated at is the timestamp when the replica was first seen.
database_latencyintegerfalseDatabase latency is the latency in microseconds to the database.
errorstringfalseError is the replica error.
hostnamestringfalseHostname is the hostname of the replica.
idstringfalseID is the unique identifier for the replica.
region_idintegerfalseRegion ID is the region of the replica.
relay_addressstringfalseRelay address is the accessible address to relay DERP connections.

codersdk.ResolveAutostartResponse

{
  "parameter_mismatch": true
}

Properties

NameTypeRequiredRestrictionsDescription
parameter_mismatchbooleanfalse

codersdk.ResourceType

"template"

Properties

Enumerated Values

Value
template
template_version
user
workspace
workspace_build
git_ssh_key
api_key
group
license
convert_login
health_settings
workspace_proxy
organization
oauth2_provider_app
oauth2_provider_app_secret

codersdk.Response

{
  "detail": "string",
  "message": "string",
  "validations": [
    {
      "detail": "string",
      "field": "string"
    }
  ]
}

Properties

NameTypeRequiredRestrictionsDescription
detailstringfalseDetail is a debug message that provides further insight into why the action failed. This information can be technical and a regular golang err.Error() text. - "database: too many open connections" - "stat: too many open files"
messagestringfalseMessage is an actionable message that depicts actions the request took. These messages should be fully formed sentences with proper punctuation. Examples: - "A user has been created." - "Failed to create a user."
validationsarray of codersdk.ValidationErrorfalseValidations are form field-specific friendly error messages. They will be shown on a form field in the UI. These can also be used to add additional context if there is a set of errors in the primary 'Message'.

codersdk.Role

{
  "display_name": "string",
  "name": "string",
  "organization_id": "7c60d51f-b44e-4682-87d6-449835ea4de6",
  "organization_permissions": {
    "property1": [
      {
        "action": "application_connect",
        "negate": true,
        "resource_type": "*"
      }
    ],
    "property2": [
      {
        "action": "application_connect",
        "negate": true,
        "resource_type": "*"
      }
    ]
  },
  "site_permissions": [
    {
      "action": "application_connect",
      "negate": true,
      "resource_type": "*"
    }
  ],
  "user_permissions": [
    {
      "action": "application_connect",
      "negate": true,
      "resource_type": "*"
    }
  ]
}

Properties

NameTypeRequiredRestrictionsDescription
display_namestringfalse
namestringfalse
organization_idstringfalse
organization_permissionsobjectfalsemap[<org_id>] -> Permissions
» [any property]array of codersdk.Permissionfalse
site_permissionsarray of codersdk.Permissionfalse
user_permissionsarray of codersdk.Permissionfalse

codersdk.SSHConfig

{
  "deploymentName": "string",
  "sshconfigOptions": ["string"]
}

Properties

NameTypeRequiredRestrictionsDescription
deploymentNamestringfalseDeploymentname is the config-ssh Hostname prefix
sshconfigOptionsarray of stringfalseSshconfigoptions are additional options to add to the ssh config file. This will override defaults.

codersdk.SSHConfigResponse

{
  "hostname_prefix": "string",
  "ssh_config_options": {
    "property1": "string",
    "property2": "string"
  }
}

Properties

NameTypeRequiredRestrictionsDescription
hostname_prefixstringfalse
ssh_config_optionsobjectfalse
» [any property]stringfalse

codersdk.SessionCountDeploymentStats

{
  "jetbrains": 0,
  "reconnecting_pty": 0,
  "ssh": 0,
  "vscode": 0
}

Properties

NameTypeRequiredRestrictionsDescription
jetbrainsintegerfalse
reconnecting_ptyintegerfalse
sshintegerfalse
vscodeintegerfalse

codersdk.SessionLifetime

{
  "default_duration": 0,
  "disable_expiry_refresh": true,
  "max_token_lifetime": 0
}

Properties

NameTypeRequiredRestrictionsDescription
default_durationintegerfalseDefault duration is for api keys, not tokens.
disable_expiry_refreshbooleanfalseDisable expiry refresh will disable automatically refreshing api keys when they are used from the api. This means the api key lifetime at creation is the lifetime of the api key.
max_token_lifetimeintegerfalse

codersdk.SlimRole

{
  "display_name": "string",
  "name": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
display_namestringfalse
namestringfalse

codersdk.SupportConfig

{
  "links": {
    "value": [
      {
        "icon": "bug",
        "name": "string",
        "target": "string"
      }
    ]
  }
}

Properties

NameTypeRequiredRestrictionsDescription
linksserpent.Struct-array_codersdk_LinkConfigfalse

codersdk.SwaggerConfig

{
  "enable": true
}

Properties

NameTypeRequiredRestrictionsDescription
enablebooleanfalse

codersdk.TLSConfig

{
  "address": {
    "host": "string",
    "port": "string"
  },
  "allow_insecure_ciphers": true,
  "cert_file": ["string"],
  "client_auth": "string",
  "client_ca_file": "string",
  "client_cert_file": "string",
  "client_key_file": "string",
  "enable": true,
  "key_file": ["string"],
  "min_version": "string",
  "redirect_http": true,
  "supported_ciphers": ["string"]
}

Properties

NameTypeRequiredRestrictionsDescription
addressserpent.HostPortfalse
allow_insecure_ciphersbooleanfalse
cert_filearray of stringfalse
client_authstringfalse
client_ca_filestringfalse
client_cert_filestringfalse
client_key_filestringfalse
enablebooleanfalse
key_filearray of stringfalse
min_versionstringfalse
redirect_httpbooleanfalse
supported_ciphersarray of stringfalse

codersdk.TelemetryConfig

{
  "enable": true,
  "trace": true,
  "url": {
    "forceQuery": true,
    "fragment": "string",
    "host": "string",
    "omitHost": true,
    "opaque": "string",
    "path": "string",
    "rawFragment": "string",
    "rawPath": "string",
    "rawQuery": "string",
    "scheme": "string",
    "user": {}
  }
}

Properties

NameTypeRequiredRestrictionsDescription
enablebooleanfalse
tracebooleanfalse
urlserpent.URLfalse

codersdk.Template

{
  "active_user_count": 0,
  "active_version_id": "eae64611-bd53-4a80-bb77-df1e432c0fbc",
  "activity_bump_ms": 0,
  "allow_user_autostart": true,
  "allow_user_autostop": true,
  "allow_user_cancel_workspace_jobs": true,
  "autostart_requirement": {
    "days_of_week": ["monday"]
  },
  "autostop_requirement": {
    "days_of_week": ["monday"],
    "weeks": 0
  },
  "build_time_stats": {
    "property1": {
      "p50": 123,
      "p95": 146
    },
    "property2": {
      "p50": 123,
      "p95": 146
    }
  },
  "created_at": "2019-08-24T14:15:22Z",
  "created_by_id": "9377d689-01fb-4abf-8450-3368d2c1924f",
  "created_by_name": "string",
  "default_ttl_ms": 0,
  "deprecated": true,
  "deprecation_message": "string",
  "description": "string",
  "display_name": "string",
  "failure_ttl_ms": 0,
  "icon": "string",
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "max_port_share_level": "owner",
  "name": "string",
  "organization_id": "7c60d51f-b44e-4682-87d6-449835ea4de6",
  "provisioner": "terraform",
  "require_active_version": true,
  "time_til_dormant_autodelete_ms": 0,
  "time_til_dormant_ms": 0,
  "updated_at": "2019-08-24T14:15:22Z"
}

Properties

NameTypeRequiredRestrictionsDescription
active_user_countintegerfalseActive user count is set to -1 when loading.
active_version_idstringfalse
activity_bump_msintegerfalse
allow_user_autostartbooleanfalseAllow user autostart and AllowUserAutostop are enterprise-only. Their values are only used if your license is entitled to use the advanced template scheduling feature.
allow_user_autostopbooleanfalse
allow_user_cancel_workspace_jobsbooleanfalse
autostart_requirementcodersdk.TemplateAutostartRequirementfalse
autostop_requirementcodersdk.TemplateAutostopRequirementfalseAutostop requirement and AutostartRequirement are enterprise features. Its value is only used if your license is entitled to use the advanced template scheduling feature.
build_time_statscodersdk.TemplateBuildTimeStatsfalse
created_atstringfalse
created_by_idstringfalse
created_by_namestringfalse
default_ttl_msintegerfalse
deprecatedbooleanfalse
deprecation_messagestringfalse
descriptionstringfalse
display_namestringfalse
failure_ttl_msintegerfalseFailure ttl ms TimeTilDormantMillis, and TimeTilDormantAutoDeleteMillis are enterprise-only. Their values are used if your license is entitled to use the advanced template scheduling feature.
iconstringfalse
idstringfalse
max_port_share_levelcodersdk.WorkspaceAgentPortShareLevelfalse
namestringfalse
organization_idstringfalse
provisionerstringfalse
require_active_versionbooleanfalseRequire active version mandates that workspaces are built with the active template version.
time_til_dormant_autodelete_msintegerfalse
time_til_dormant_msintegerfalse
updated_atstringfalse

Enumerated Values

PropertyValue
provisionerterraform

codersdk.TemplateAppUsage

{
  "display_name": "Visual Studio Code",
  "icon": "string",
  "seconds": 80500,
  "slug": "vscode",
  "template_ids": ["497f6eca-6276-4993-bfeb-53cbbbba6f08"],
  "times_used": 2,
  "type": "builtin"
}

Properties

NameTypeRequiredRestrictionsDescription
display_namestringfalse
iconstringfalse
secondsintegerfalse
slugstringfalse
template_idsarray of stringfalse
times_usedintegerfalse
typecodersdk.TemplateAppsTypefalse

codersdk.TemplateAppsType

"builtin"

Properties

Enumerated Values

Value
builtin
app

codersdk.TemplateAutostartRequirement

{
  "days_of_week": ["monday"]
}

Properties

NameTypeRequiredRestrictionsDescription
days_of_weekarray of stringfalseDays of week is a list of days of the week in which autostart is allowed to happen. If no days are specified, autostart is not allowed.

codersdk.TemplateAutostopRequirement

{
  "days_of_week": ["monday"],
  "weeks": 0
}

Properties

NameTypeRequiredRestrictionsDescription
days_of_weekarray of stringfalseDays of week is a list of days of the week on which restarts are required. Restarts happen within the user's quiet hours (in their configured timezone). If no days are specified, restarts are not required. Weekdays cannot be specified twice.
Restarts will only happen on weekdays in this list on weeks which line up with Weeks.
weeksintegerfalseWeeks is the number of weeks between required restarts. Weeks are synced across all workspaces (and Coder deployments) using modulo math on a hardcoded epoch week of January 2nd, 2023 (the first Monday of 2023). Values of 0 or 1 indicate weekly restarts. Values of 2 indicate fortnightly restarts, etc.

codersdk.TemplateBuildTimeStats

{
  "property1": {
    "p50": 123,
    "p95": 146
  },
  "property2": {
    "p50": 123,
    "p95": 146
  }
}

Properties

NameTypeRequiredRestrictionsDescription
[any property]codersdk.TransitionStatsfalse

codersdk.TemplateExample

{
  "description": "string",
  "icon": "string",
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "markdown": "string",
  "name": "string",
  "tags": ["string"],
  "url": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
descriptionstringfalse
iconstringfalse
idstringfalse
markdownstringfalse
namestringfalse
tagsarray of stringfalse
urlstringfalse

codersdk.TemplateInsightsIntervalReport

{
  "active_users": 14,
  "end_time": "2019-08-24T14:15:22Z",
  "interval": "week",
  "start_time": "2019-08-24T14:15:22Z",
  "template_ids": ["497f6eca-6276-4993-bfeb-53cbbbba6f08"]
}

Properties

NameTypeRequiredRestrictionsDescription
active_usersintegerfalse
end_timestringfalse
intervalcodersdk.InsightsReportIntervalfalse
start_timestringfalse
template_idsarray of stringfalse

codersdk.TemplateInsightsReport

{
  "active_users": 22,
  "apps_usage": [
    {
      "display_name": "Visual Studio Code",
      "icon": "string",
      "seconds": 80500,
      "slug": "vscode",
      "template_ids": ["497f6eca-6276-4993-bfeb-53cbbbba6f08"],
      "times_used": 2,
      "type": "builtin"
    }
  ],
  "end_time": "2019-08-24T14:15:22Z",
  "parameters_usage": [
    {
      "description": "string",
      "display_name": "string",
      "name": "string",
      "options": [
        {
          "description": "string",
          "icon": "string",
          "name": "string",
          "value": "string"
        }
      ],
      "template_ids": ["497f6eca-6276-4993-bfeb-53cbbbba6f08"],
      "type": "string",
      "values": [
        {
          "count": 0,
          "value": "string"
        }
      ]
    }
  ],
  "start_time": "2019-08-24T14:15:22Z",
  "template_ids": ["497f6eca-6276-4993-bfeb-53cbbbba6f08"]
}

Properties

NameTypeRequiredRestrictionsDescription
active_usersintegerfalse
apps_usagearray of codersdk.TemplateAppUsagefalse
end_timestringfalse
parameters_usagearray of codersdk.TemplateParameterUsagefalse
start_timestringfalse
template_idsarray of stringfalse

codersdk.TemplateInsightsResponse

{
  "interval_reports": [
    {
      "active_users": 14,
      "end_time": "2019-08-24T14:15:22Z",
      "interval": "week",
      "start_time": "2019-08-24T14:15:22Z",
      "template_ids": ["497f6eca-6276-4993-bfeb-53cbbbba6f08"]
    }
  ],
  "report": {
    "active_users": 22,
    "apps_usage": [
      {
        "display_name": "Visual Studio Code",
        "icon": "string",
        "seconds": 80500,
        "slug": "vscode",
        "template_ids": ["497f6eca-6276-4993-bfeb-53cbbbba6f08"],
        "times_used": 2,
        "type": "builtin"
      }
    ],
    "end_time": "2019-08-24T14:15:22Z",
    "parameters_usage": [
      {
        "description": "string",
        "display_name": "string",
        "name": "string",
        "options": [
          {
            "description": "string",
            "icon": "string",
            "name": "string",
            "value": "string"
          }
        ],
        "template_ids": ["497f6eca-6276-4993-bfeb-53cbbbba6f08"],
        "type": "string",
        "values": [
          {
            "count": 0,
            "value": "string"
          }
        ]
      }
    ],
    "start_time": "2019-08-24T14:15:22Z",
    "template_ids": ["497f6eca-6276-4993-bfeb-53cbbbba6f08"]
  }
}

Properties

NameTypeRequiredRestrictionsDescription
interval_reportsarray of codersdk.TemplateInsightsIntervalReportfalse
reportcodersdk.TemplateInsightsReportfalse

codersdk.TemplateParameterUsage

{
  "description": "string",
  "display_name": "string",
  "name": "string",
  "options": [
    {
      "description": "string",
      "icon": "string",
      "name": "string",
      "value": "string"
    }
  ],
  "template_ids": ["497f6eca-6276-4993-bfeb-53cbbbba6f08"],
  "type": "string",
  "values": [
    {
      "count": 0,
      "value": "string"
    }
  ]
}

Properties

NameTypeRequiredRestrictionsDescription
descriptionstringfalse
display_namestringfalse
namestringfalse
optionsarray of codersdk.TemplateVersionParameterOptionfalse
template_idsarray of stringfalse
typestringfalse
valuesarray of codersdk.TemplateParameterValuefalse

codersdk.TemplateParameterValue

{
  "count": 0,
  "value": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
countintegerfalse
valuestringfalse

codersdk.TemplateRole

"admin"

Properties

Enumerated Values

Value
admin
use
``

codersdk.TemplateUser

{
  "avatar_url": "http://example.com",
  "created_at": "2019-08-24T14:15:22Z",
  "email": "[email protected]",
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "last_seen_at": "2019-08-24T14:15:22Z",
  "login_type": "",
  "name": "string",
  "organization_ids": ["497f6eca-6276-4993-bfeb-53cbbbba6f08"],
  "role": "admin",
  "roles": [
    {
      "display_name": "string",
      "name": "string"
    }
  ],
  "status": "active",
  "theme_preference": "string",
  "username": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
avatar_urlstringfalse
created_atstringtrue
emailstringtrue
idstringtrue
last_seen_atstringfalse
login_typecodersdk.LoginTypefalse
namestringfalse
organization_idsarray of stringfalse
rolecodersdk.TemplateRolefalse
rolesarray of codersdk.SlimRolefalse
statuscodersdk.UserStatusfalse
theme_preferencestringfalse
usernamestringtrue

Enumerated Values

PropertyValue
roleadmin
roleuse
statusactive
statussuspended

codersdk.TemplateVersion

{
  "archived": true,
  "created_at": "2019-08-24T14:15:22Z",
  "created_by": {
    "avatar_url": "http://example.com",
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "username": "string"
  },
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "job": {
    "canceled_at": "2019-08-24T14:15:22Z",
    "completed_at": "2019-08-24T14:15:22Z",
    "created_at": "2019-08-24T14:15:22Z",
    "error": "string",
    "error_code": "REQUIRED_TEMPLATE_VARIABLES",
    "file_id": "8a0cfb4f-ddc9-436d-91bb-75133c583767",
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "queue_position": 0,
    "queue_size": 0,
    "started_at": "2019-08-24T14:15:22Z",
    "status": "pending",
    "tags": {
      "property1": "string",
      "property2": "string"
    },
    "worker_id": "ae5fa6f7-c55b-40c1-b40a-b36ac467652b"
  },
  "message": "string",
  "name": "string",
  "organization_id": "7c60d51f-b44e-4682-87d6-449835ea4de6",
  "readme": "string",
  "template_id": "c6d67e98-83ea-49f0-8812-e4abae2b68bc",
  "updated_at": "2019-08-24T14:15:22Z",
  "warnings": ["UNSUPPORTED_WORKSPACES"]
}

Properties

NameTypeRequiredRestrictionsDescription
archivedbooleanfalse
created_atstringfalse
created_bycodersdk.MinimalUserfalse
idstringfalse
jobcodersdk.ProvisionerJobfalse
messagestringfalse
namestringfalse
organization_idstringfalse
readmestringfalse
template_idstringfalse
updated_atstringfalse
warningsarray of codersdk.TemplateVersionWarningfalse

codersdk.TemplateVersionExternalAuth

{
  "authenticate_url": "string",
  "authenticated": true,
  "display_icon": "string",
  "display_name": "string",
  "id": "string",
  "optional": true,
  "type": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
authenticate_urlstringfalse
authenticatedbooleanfalse
display_iconstringfalse
display_namestringfalse
idstringfalse
optionalbooleanfalse
typestringfalse

codersdk.TemplateVersionParameter

{
  "default_value": "string",
  "description": "string",
  "description_plaintext": "string",
  "display_name": "string",
  "ephemeral": true,
  "icon": "string",
  "mutable": true,
  "name": "string",
  "options": [
    {
      "description": "string",
      "icon": "string",
      "name": "string",
      "value": "string"
    }
  ],
  "required": true,
  "type": "string",
  "validation_error": "string",
  "validation_max": 0,
  "validation_min": 0,
  "validation_monotonic": "increasing",
  "validation_regex": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
default_valuestringfalse
descriptionstringfalse
description_plaintextstringfalse
display_namestringfalse
ephemeralbooleanfalse
iconstringfalse
mutablebooleanfalse
namestringfalse
optionsarray of codersdk.TemplateVersionParameterOptionfalse
requiredbooleanfalse
typestringfalse
validation_errorstringfalse
validation_maxintegerfalse
validation_minintegerfalse
validation_monotoniccodersdk.ValidationMonotonicOrderfalse
validation_regexstringfalse

Enumerated Values

PropertyValue
typestring
typenumber
typebool
typelist(string)
validation_monotonicincreasing
validation_monotonicdecreasing

codersdk.TemplateVersionParameterOption

{
  "description": "string",
  "icon": "string",
  "name": "string",
  "value": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
descriptionstringfalse
iconstringfalse
namestringfalse
valuestringfalse

codersdk.TemplateVersionVariable

{
  "default_value": "string",
  "description": "string",
  "name": "string",
  "required": true,
  "sensitive": true,
  "type": "string",
  "value": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
default_valuestringfalse
descriptionstringfalse
namestringfalse
requiredbooleanfalse
sensitivebooleanfalse
typestringfalse
valuestringfalse

Enumerated Values

PropertyValue
typestring
typenumber
typebool

codersdk.TemplateVersionWarning

"UNSUPPORTED_WORKSPACES"

Properties

Enumerated Values

Value
UNSUPPORTED_WORKSPACES

codersdk.TokenConfig

{
  "max_token_lifetime": 0
}

Properties

NameTypeRequiredRestrictionsDescription
max_token_lifetimeintegerfalse

codersdk.TraceConfig

{
  "capture_logs": true,
  "data_dog": true,
  "enable": true,
  "honeycomb_api_key": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
capture_logsbooleanfalse
data_dogbooleanfalse
enablebooleanfalse
honeycomb_api_keystringfalse

codersdk.TransitionStats

{
  "p50": 123,
  "p95": 146
}

Properties

NameTypeRequiredRestrictionsDescription
p50integerfalse
p95integerfalse

codersdk.UpdateActiveTemplateVersion

{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

Properties

NameTypeRequiredRestrictionsDescription
idstringtrue

codersdk.UpdateAppearanceConfig

{
  "application_name": "string",
  "logo_url": "string",
  "notification_banners": [
    {
      "background_color": "string",
      "enabled": true,
      "message": "string"
    }
  ],
  "service_banner": {
    "background_color": "string",
    "enabled": true,
    "message": "string"
  }
}

Properties

NameTypeRequiredRestrictionsDescription
application_namestringfalse
logo_urlstringfalse
notification_bannersarray of codersdk.BannerConfigfalse
service_bannercodersdk.BannerConfigfalseDeprecated: ServiceBanner has been replaced by NotificationBanners.

codersdk.UpdateCheckResponse

{
  "current": true,
  "url": "string",
  "version": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
currentbooleanfalseCurrent indicates whether the server version is the same as the latest.
urlstringfalseURL to download the latest release of Coder.
versionstringfalseVersion is the semantic version for the latest release of Coder.

codersdk.UpdateOrganizationRequest

{
  "name": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
namestringtrue

codersdk.UpdateRoles

{
  "roles": ["string"]
}

Properties

NameTypeRequiredRestrictionsDescription
rolesarray of stringfalse

codersdk.UpdateTemplateACL

{
  "group_perms": {
    "8bd26b20-f3e8-48be-a903-46bb920cf671": "use",
    "<user_id>>": "admin"
  },
  "user_perms": {
    "4df59e74-c027-470b-ab4d-cbba8963a5e9": "use",
    "<group_id>": "admin"
  }
}

Properties

NameTypeRequiredRestrictionsDescription
group_permsobjectfalseGroup perms should be a mapping of group ID to role.
» [any property]codersdk.TemplateRolefalse
user_permsobjectfalseUser perms should be a mapping of user ID to role. The user ID must be the uuid of the user, not a username or email address.
» [any property]codersdk.TemplateRolefalse

codersdk.UpdateUserAppearanceSettingsRequest

{
  "theme_preference": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
theme_preferencestringtrue

codersdk.UpdateUserPasswordRequest

{
  "old_password": "string",
  "password": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
old_passwordstringfalse
passwordstringtrue

codersdk.UpdateUserProfileRequest

{
  "name": "string",
  "username": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
namestringfalse
usernamestringtrue

codersdk.UpdateUserQuietHoursScheduleRequest

{
  "schedule": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
schedulestringtrueSchedule is a cron expression that defines when the user's quiet hours window is. Schedule must not be empty. For new users, the schedule is set to 2am in their browser or computer's timezone. The schedule denotes the beginning of a 4 hour window where the workspace is allowed to automatically stop or restart due to maintenance or template schedule.

The schedule must be daily with a single time, and should have a timezone specified via a CRON_TZ prefix (otherwise UTC will be used). If the schedule is empty, the user will be updated to use the default schedule.|

codersdk.UpdateWorkspaceAutomaticUpdatesRequest

{
  "automatic_updates": "always"
}

Properties

NameTypeRequiredRestrictionsDescription
automatic_updatescodersdk.AutomaticUpdatesfalse

codersdk.UpdateWorkspaceAutostartRequest

{
  "schedule": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
schedulestringfalseSchedule is expected to be of the form CRON_TZ=<IANA Timezone> <min> <hour> * * <dow> Example: CRON_TZ=US/Central 30 9 * * 1-5 represents 0930 in the timezone US/Central on weekdays (Mon-Fri). CRON_TZ defaults to UTC if not present.

codersdk.UpdateWorkspaceDormancy

{
  "dormant": true
}

Properties

NameTypeRequiredRestrictionsDescription
dormantbooleanfalse

codersdk.UpdateWorkspaceRequest

{
  "name": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
namestringfalse

codersdk.UpdateWorkspaceTTLRequest

{
  "ttl_ms": 0
}

Properties

NameTypeRequiredRestrictionsDescription
ttl_msintegerfalse

codersdk.UploadResponse

{
  "hash": "19686d84-b10d-4f90-b18e-84fd3fa038fd"
}

Properties

NameTypeRequiredRestrictionsDescription
hashstringfalse

codersdk.UpsertWorkspaceAgentPortShareRequest

{
  "agent_name": "string",
  "port": 0,
  "protocol": "http",
  "share_level": "owner"
}

Properties

NameTypeRequiredRestrictionsDescription
agent_namestringfalse
portintegerfalse
protocolcodersdk.WorkspaceAgentPortShareProtocolfalse
share_levelcodersdk.WorkspaceAgentPortShareLevelfalse

Enumerated Values

PropertyValue
protocolhttp
protocolhttps
share_levelowner
share_levelauthenticated
share_levelpublic

codersdk.User

{
  "avatar_url": "http://example.com",
  "created_at": "2019-08-24T14:15:22Z",
  "email": "[email protected]",
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "last_seen_at": "2019-08-24T14:15:22Z",
  "login_type": "",
  "name": "string",
  "organization_ids": ["497f6eca-6276-4993-bfeb-53cbbbba6f08"],
  "roles": [
    {
      "display_name": "string",
      "name": "string"
    }
  ],
  "status": "active",
  "theme_preference": "string",
  "username": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
avatar_urlstringfalse
created_atstringtrue
emailstringtrue
idstringtrue
last_seen_atstringfalse
login_typecodersdk.LoginTypefalse
namestringfalse
organization_idsarray of stringfalse
rolesarray of codersdk.SlimRolefalse
statuscodersdk.UserStatusfalse
theme_preferencestringfalse
usernamestringtrue

Enumerated Values

PropertyValue
statusactive
statussuspended

codersdk.UserActivity

{
  "avatar_url": "http://example.com",
  "seconds": 80500,
  "template_ids": ["497f6eca-6276-4993-bfeb-53cbbbba6f08"],
  "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
  "username": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
avatar_urlstringfalse
secondsintegerfalse
template_idsarray of stringfalse
user_idstringfalse
usernamestringfalse

codersdk.UserActivityInsightsReport

{
  "end_time": "2019-08-24T14:15:22Z",
  "start_time": "2019-08-24T14:15:22Z",
  "template_ids": ["497f6eca-6276-4993-bfeb-53cbbbba6f08"],
  "users": [
    {
      "avatar_url": "http://example.com",
      "seconds": 80500,
      "template_ids": ["497f6eca-6276-4993-bfeb-53cbbbba6f08"],
      "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
      "username": "string"
    }
  ]
}

Properties

NameTypeRequiredRestrictionsDescription
end_timestringfalse
start_timestringfalse
template_idsarray of stringfalse
usersarray of codersdk.UserActivityfalse

codersdk.UserActivityInsightsResponse

{
  "report": {
    "end_time": "2019-08-24T14:15:22Z",
    "start_time": "2019-08-24T14:15:22Z",
    "template_ids": ["497f6eca-6276-4993-bfeb-53cbbbba6f08"],
    "users": [
      {
        "avatar_url": "http://example.com",
        "seconds": 80500,
        "template_ids": ["497f6eca-6276-4993-bfeb-53cbbbba6f08"],
        "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
        "username": "string"
      }
    ]
  }
}

Properties

NameTypeRequiredRestrictionsDescription
reportcodersdk.UserActivityInsightsReportfalse

codersdk.UserLatency

{
  "avatar_url": "http://example.com",
  "latency_ms": {
    "p50": 31.312,
    "p95": 119.832
  },
  "template_ids": ["497f6eca-6276-4993-bfeb-53cbbbba6f08"],
  "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
  "username": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
avatar_urlstringfalse
latency_mscodersdk.ConnectionLatencyfalse
template_idsarray of stringfalse
user_idstringfalse
usernamestringfalse

codersdk.UserLatencyInsightsReport

{
  "end_time": "2019-08-24T14:15:22Z",
  "start_time": "2019-08-24T14:15:22Z",
  "template_ids": ["497f6eca-6276-4993-bfeb-53cbbbba6f08"],
  "users": [
    {
      "avatar_url": "http://example.com",
      "latency_ms": {
        "p50": 31.312,
        "p95": 119.832
      },
      "template_ids": ["497f6eca-6276-4993-bfeb-53cbbbba6f08"],
      "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
      "username": "string"
    }
  ]
}

Properties

NameTypeRequiredRestrictionsDescription
end_timestringfalse
start_timestringfalse
template_idsarray of stringfalse
usersarray of codersdk.UserLatencyfalse

codersdk.UserLatencyInsightsResponse

{
  "report": {
    "end_time": "2019-08-24T14:15:22Z",
    "start_time": "2019-08-24T14:15:22Z",
    "template_ids": ["497f6eca-6276-4993-bfeb-53cbbbba6f08"],
    "users": [
      {
        "avatar_url": "http://example.com",
        "latency_ms": {
          "p50": 31.312,
          "p95": 119.832
        },
        "template_ids": ["497f6eca-6276-4993-bfeb-53cbbbba6f08"],
        "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
        "username": "string"
      }
    ]
  }
}

Properties

NameTypeRequiredRestrictionsDescription
reportcodersdk.UserLatencyInsightsReportfalse

codersdk.UserLoginType

{
  "login_type": ""
}

Properties

NameTypeRequiredRestrictionsDescription
login_typecodersdk.LoginTypefalse

codersdk.UserParameter

{
  "name": "string",
  "value": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
namestringfalse
valuestringfalse

codersdk.UserQuietHoursScheduleConfig

{
  "allow_user_custom": true,
  "default_schedule": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
allow_user_custombooleanfalse
default_schedulestringfalse

codersdk.UserQuietHoursScheduleResponse

{
  "next": "2019-08-24T14:15:22Z",
  "raw_schedule": "string",
  "time": "string",
  "timezone": "string",
  "user_can_set": true,
  "user_set": true
}

Properties

NameTypeRequiredRestrictionsDescription
nextstringfalseNext is the next time that the quiet hours window will start.
raw_schedulestringfalse
timestringfalseTime is the time of day that the quiet hours window starts in the given Timezone each day.
timezonestringfalseraw format from the cron expression, UTC if unspecified
user_can_setbooleanfalseUser can set is true if the user is allowed to set their own quiet hours schedule. If false, the user cannot set a custom schedule and the default schedule will always be used.
user_setbooleanfalseUser set is true if the user has set their own quiet hours schedule. If false, the user is using the default schedule.

codersdk.UserStatus

"active"

Properties

Enumerated Values

Value
active
dormant
suspended

codersdk.ValidationError

{
  "detail": "string",
  "field": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
detailstringtrue
fieldstringtrue

codersdk.ValidationMonotonicOrder

"increasing"

Properties

Enumerated Values

Value
increasing
decreasing

codersdk.VariableValue

{
  "name": "string",
  "value": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
namestringfalse
valuestringfalse

codersdk.Workspace

{
  "allow_renames": true,
  "automatic_updates": "always",
  "autostart_schedule": "string",
  "created_at": "2019-08-24T14:15:22Z",
  "deleting_at": "2019-08-24T14:15:22Z",
  "dormant_at": "2019-08-24T14:15:22Z",
  "favorite": true,
  "health": {
    "failing_agents": ["497f6eca-6276-4993-bfeb-53cbbbba6f08"],
    "healthy": false
  },
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "last_used_at": "2019-08-24T14:15:22Z",
  "latest_build": {
    "build_number": 0,
    "created_at": "2019-08-24T14:15:22Z",
    "daily_cost": 0,
    "deadline": "2019-08-24T14:15:22Z",
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "initiator_id": "06588898-9a84-4b35-ba8f-f9cbd64946f3",
    "initiator_name": "string",
    "job": {
      "canceled_at": "2019-08-24T14:15:22Z",
      "completed_at": "2019-08-24T14:15:22Z",
      "created_at": "2019-08-24T14:15:22Z",
      "error": "string",
      "error_code": "REQUIRED_TEMPLATE_VARIABLES",
      "file_id": "8a0cfb4f-ddc9-436d-91bb-75133c583767",
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "queue_position": 0,
      "queue_size": 0,
      "started_at": "2019-08-24T14:15:22Z",
      "status": "pending",
      "tags": {
        "property1": "string",
        "property2": "string"
      },
      "worker_id": "ae5fa6f7-c55b-40c1-b40a-b36ac467652b"
    },
    "max_deadline": "2019-08-24T14:15:22Z",
    "reason": "initiator",
    "resources": [
      {
        "agents": [
          {
            "api_version": "string",
            "apps": [
              {
                "command": "string",
                "display_name": "string",
                "external": true,
                "health": "disabled",
                "healthcheck": {
                  "interval": 0,
                  "threshold": 0,
                  "url": "string"
                },
                "icon": "string",
                "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
                "sharing_level": "owner",
                "slug": "string",
                "subdomain": true,
                "subdomain_name": "string",
                "url": "string"
              }
            ],
            "architecture": "string",
            "connection_timeout_seconds": 0,
            "created_at": "2019-08-24T14:15:22Z",
            "directory": "string",
            "disconnected_at": "2019-08-24T14:15:22Z",
            "display_apps": ["vscode"],
            "environment_variables": {
              "property1": "string",
              "property2": "string"
            },
            "expanded_directory": "string",
            "first_connected_at": "2019-08-24T14:15:22Z",
            "health": {
              "healthy": false,
              "reason": "agent has lost connection"
            },
            "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
            "instance_id": "string",
            "last_connected_at": "2019-08-24T14:15:22Z",
            "latency": {
              "property1": {
                "latency_ms": 0,
                "preferred": true
              },
              "property2": {
                "latency_ms": 0,
                "preferred": true
              }
            },
            "lifecycle_state": "created",
            "log_sources": [
              {
                "created_at": "2019-08-24T14:15:22Z",
                "display_name": "string",
                "icon": "string",
                "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
                "workspace_agent_id": "7ad2e618-fea7-4c1a-b70a-f501566a72f1"
              }
            ],
            "logs_length": 0,
            "logs_overflowed": true,
            "name": "string",
            "operating_system": "string",
            "ready_at": "2019-08-24T14:15:22Z",
            "resource_id": "4d5215ed-38bb-48ed-879a-fdb9ca58522f",
            "scripts": [
              {
                "cron": "string",
                "log_path": "string",
                "log_source_id": "4197ab25-95cf-4b91-9c78-f7f2af5d353a",
                "run_on_start": true,
                "run_on_stop": true,
                "script": "string",
                "start_blocks_login": true,
                "timeout": 0
              }
            ],
            "started_at": "2019-08-24T14:15:22Z",
            "startup_script_behavior": "blocking",
            "status": "connecting",
            "subsystems": ["envbox"],
            "troubleshooting_url": "string",
            "updated_at": "2019-08-24T14:15:22Z",
            "version": "string"
          }
        ],
        "created_at": "2019-08-24T14:15:22Z",
        "daily_cost": 0,
        "hide": true,
        "icon": "string",
        "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
        "metadata": [
          {
            "key": "string",
            "sensitive": true,
            "value": "string"
          }
        ],
        "name": "string",
        "type": "string",
        "workspace_transition": "start"
      }
    ],
    "status": "pending",
    "template_version_id": "0ba39c92-1f1b-4c32-aa3e-9925d7713eb1",
    "template_version_name": "string",
    "transition": "start",
    "updated_at": "2019-08-24T14:15:22Z",
    "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9",
    "workspace_name": "string",
    "workspace_owner_avatar_url": "string",
    "workspace_owner_id": "e7078695-5279-4c86-8774-3ac2367a2fc7",
    "workspace_owner_name": "string"
  },
  "name": "string",
  "organization_id": "7c60d51f-b44e-4682-87d6-449835ea4de6",
  "outdated": true,
  "owner_avatar_url": "string",
  "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
  "owner_name": "string",
  "template_active_version_id": "b0da9c29-67d8-4c87-888c-bafe356f7f3c",
  "template_allow_user_cancel_workspace_jobs": true,
  "template_display_name": "string",
  "template_icon": "string",
  "template_id": "c6d67e98-83ea-49f0-8812-e4abae2b68bc",
  "template_name": "string",
  "template_require_active_version": true,
  "ttl_ms": 0,
  "updated_at": "2019-08-24T14:15:22Z"
}

Properties

NameTypeRequiredRestrictionsDescription
allow_renamesbooleanfalse
automatic_updatescodersdk.AutomaticUpdatesfalse
autostart_schedulestringfalse
created_atstringfalse
deleting_atstringfalseDeleting at indicates the time at which the workspace will be permanently deleted. A workspace is eligible for deletion if it is dormant (a non-nil dormant_at value) and a value has been specified for time_til_dormant_autodelete on its template.
dormant_atstringfalseDormant at being non-nil indicates a workspace that is dormant. A dormant workspace is no longer accessible must be activated. It is subject to deletion if it breaches the duration of the timetil field on its template.
favoritebooleanfalse
healthcodersdk.WorkspaceHealthfalseHealth shows the health of the workspace and information about what is causing an unhealthy status.
idstringfalse
last_used_atstringfalse
latest_buildcodersdk.WorkspaceBuildfalse
namestringfalse
organization_idstringfalse
outdatedbooleanfalse
owner_avatar_urlstringfalse
owner_idstringfalse
owner_namestringfalse
template_active_version_idstringfalse
template_allow_user_cancel_workspace_jobsbooleanfalse
template_display_namestringfalse
template_iconstringfalse
template_idstringfalse
template_namestringfalse
template_require_active_versionbooleanfalse
ttl_msintegerfalse
updated_atstringfalse

Enumerated Values

PropertyValue
automatic_updatesalways
automatic_updatesnever

codersdk.WorkspaceAgent

{
  "api_version": "string",
  "apps": [
    {
      "command": "string",
      "display_name": "string",
      "external": true,
      "health": "disabled",
      "healthcheck": {
        "interval": 0,
        "threshold": 0,
        "url": "string"
      },
      "icon": "string",
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "sharing_level": "owner",
      "slug": "string",
      "subdomain": true,
      "subdomain_name": "string",
      "url": "string"
    }
  ],
  "architecture": "string",
  "connection_timeout_seconds": 0,
  "created_at": "2019-08-24T14:15:22Z",
  "directory": "string",
  "disconnected_at": "2019-08-24T14:15:22Z",
  "display_apps": ["vscode"],
  "environment_variables": {
    "property1": "string",
    "property2": "string"
  },
  "expanded_directory": "string",
  "first_connected_at": "2019-08-24T14:15:22Z",
  "health": {
    "healthy": false,
    "reason": "agent has lost connection"
  },
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "instance_id": "string",
  "last_connected_at": "2019-08-24T14:15:22Z",
  "latency": {
    "property1": {
      "latency_ms": 0,
      "preferred": true
    },
    "property2": {
      "latency_ms": 0,
      "preferred": true
    }
  },
  "lifecycle_state": "created",
  "log_sources": [
    {
      "created_at": "2019-08-24T14:15:22Z",
      "display_name": "string",
      "icon": "string",
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "workspace_agent_id": "7ad2e618-fea7-4c1a-b70a-f501566a72f1"
    }
  ],
  "logs_length": 0,
  "logs_overflowed": true,
  "name": "string",
  "operating_system": "string",
  "ready_at": "2019-08-24T14:15:22Z",
  "resource_id": "4d5215ed-38bb-48ed-879a-fdb9ca58522f",
  "scripts": [
    {
      "cron": "string",
      "log_path": "string",
      "log_source_id": "4197ab25-95cf-4b91-9c78-f7f2af5d353a",
      "run_on_start": true,
      "run_on_stop": true,
      "script": "string",
      "start_blocks_login": true,
      "timeout": 0
    }
  ],
  "started_at": "2019-08-24T14:15:22Z",
  "startup_script_behavior": "blocking",
  "status": "connecting",
  "subsystems": ["envbox"],
  "troubleshooting_url": "string",
  "updated_at": "2019-08-24T14:15:22Z",
  "version": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
api_versionstringfalse
appsarray of codersdk.WorkspaceAppfalse
architecturestringfalse
connection_timeout_secondsintegerfalse
created_atstringfalse
directorystringfalse
disconnected_atstringfalse
display_appsarray of codersdk.DisplayAppfalse
environment_variablesobjectfalse
» [any property]stringfalse
expanded_directorystringfalse
first_connected_atstringfalse
healthcodersdk.WorkspaceAgentHealthfalseHealth reports the health of the agent.
idstringfalse
instance_idstringfalse
last_connected_atstringfalse
latencyobjectfalseLatency is mapped by region name (e.g. "New York City", "Seattle").
» [any property]codersdk.DERPRegionfalse
lifecycle_statecodersdk.WorkspaceAgentLifecyclefalse
log_sourcesarray of codersdk.WorkspaceAgentLogSourcefalse
logs_lengthintegerfalse
logs_overflowedbooleanfalse
namestringfalse
operating_systemstringfalse
ready_atstringfalse
resource_idstringfalse
scriptsarray of codersdk.WorkspaceAgentScriptfalse
started_atstringfalse
startup_script_behaviorcodersdk.WorkspaceAgentStartupScriptBehaviorfalseStartup script behavior is a legacy field that is deprecated in favor of the coder_script resource. It's only referenced by old clients. Deprecated: Remove in the future!
statuscodersdk.WorkspaceAgentStatusfalse
subsystemsarray of codersdk.AgentSubsystemfalse
troubleshooting_urlstringfalse
updated_atstringfalse
versionstringfalse

codersdk.WorkspaceAgentHealth

{
  "healthy": false,
  "reason": "agent has lost connection"
}

Properties

NameTypeRequiredRestrictionsDescription
healthybooleanfalseHealthy is true if the agent is healthy.
reasonstringfalseReason is a human-readable explanation of the agent's health. It is empty if Healthy is true.

codersdk.WorkspaceAgentLifecycle

"created"

Properties

Enumerated Values

Value
created
starting
start_timeout
start_error
ready
shutting_down
shutdown_timeout
shutdown_error
off

codersdk.WorkspaceAgentListeningPort

{
  "network": "string",
  "port": 0,
  "process_name": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
networkstringfalseonly "tcp" at the moment
portintegerfalse
process_namestringfalsemay be empty

codersdk.WorkspaceAgentListeningPortsResponse

{
  "ports": [
    {
      "network": "string",
      "port": 0,
      "process_name": "string"
    }
  ]
}

Properties

NameTypeRequiredRestrictionsDescription
portsarray of codersdk.WorkspaceAgentListeningPortfalseIf there are no ports in the list, nothing should be displayed in the UI. There must not be a "no ports available" message or anything similar, as there will always be no ports displayed on platforms where our port detection logic is unsupported.

codersdk.WorkspaceAgentLog

{
  "created_at": "2019-08-24T14:15:22Z",
  "id": 0,
  "level": "trace",
  "output": "string",
  "source_id": "ae50a35c-df42-4eff-ba26-f8bc28d2af81"
}

Properties

NameTypeRequiredRestrictionsDescription
created_atstringfalse
idintegerfalse
levelcodersdk.LogLevelfalse
outputstringfalse
source_idstringfalse

codersdk.WorkspaceAgentLogSource

{
  "created_at": "2019-08-24T14:15:22Z",
  "display_name": "string",
  "icon": "string",
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "workspace_agent_id": "7ad2e618-fea7-4c1a-b70a-f501566a72f1"
}

Properties

NameTypeRequiredRestrictionsDescription
created_atstringfalse
display_namestringfalse
iconstringfalse
idstringfalse
workspace_agent_idstringfalse

codersdk.WorkspaceAgentMetadataDescription

{
  "display_name": "string",
  "interval": 0,
  "key": "string",
  "script": "string",
  "timeout": 0
}

Properties

NameTypeRequiredRestrictionsDescription
display_namestringfalse
intervalintegerfalse
keystringfalse
scriptstringfalse
timeoutintegerfalse

codersdk.WorkspaceAgentPortShare

{
  "agent_name": "string",
  "port": 0,
  "protocol": "http",
  "share_level": "owner",
  "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}

Properties

NameTypeRequiredRestrictionsDescription
agent_namestringfalse
portintegerfalse
protocolcodersdk.WorkspaceAgentPortShareProtocolfalse
share_levelcodersdk.WorkspaceAgentPortShareLevelfalse
workspace_idstringfalse

Enumerated Values

PropertyValue
protocolhttp
protocolhttps
share_levelowner
share_levelauthenticated
share_levelpublic

codersdk.WorkspaceAgentPortShareLevel

"owner"

Properties

Enumerated Values

Value
owner
authenticated
public

codersdk.WorkspaceAgentPortShareProtocol

"http"

Properties

Enumerated Values

Value
http
https

codersdk.WorkspaceAgentPortShares

{
  "shares": [
    {
      "agent_name": "string",
      "port": 0,
      "protocol": "http",
      "share_level": "owner",
      "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
    }
  ]
}

Properties

NameTypeRequiredRestrictionsDescription
sharesarray of codersdk.WorkspaceAgentPortSharefalse

codersdk.WorkspaceAgentScript

{
  "cron": "string",
  "log_path": "string",
  "log_source_id": "4197ab25-95cf-4b91-9c78-f7f2af5d353a",
  "run_on_start": true,
  "run_on_stop": true,
  "script": "string",
  "start_blocks_login": true,
  "timeout": 0
}

Properties

NameTypeRequiredRestrictionsDescription
cronstringfalse
log_pathstringfalse
log_source_idstringfalse
run_on_startbooleanfalse
run_on_stopbooleanfalse
scriptstringfalse
start_blocks_loginbooleanfalse
timeoutintegerfalse

codersdk.WorkspaceAgentStartupScriptBehavior

"blocking"

Properties

Enumerated Values

Value
blocking
non-blocking

codersdk.WorkspaceAgentStatus

"connecting"

Properties

Enumerated Values

Value
connecting
connected
disconnected
timeout

codersdk.WorkspaceApp

{
  "command": "string",
  "display_name": "string",
  "external": true,
  "health": "disabled",
  "healthcheck": {
    "interval": 0,
    "threshold": 0,
    "url": "string"
  },
  "icon": "string",
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "sharing_level": "owner",
  "slug": "string",
  "subdomain": true,
  "subdomain_name": "string",
  "url": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
commandstringfalse
display_namestringfalseDisplay name is a friendly name for the app.
externalbooleanfalseExternal specifies whether the URL should be opened externally on the client or not.
healthcodersdk.WorkspaceAppHealthfalse
healthcheckcodersdk.HealthcheckfalseHealthcheck specifies the configuration for checking app health.
iconstringfalseIcon is a relative path or external URL that specifies an icon to be displayed in the dashboard.
idstringfalse
sharing_levelcodersdk.WorkspaceAppSharingLevelfalse
slugstringfalseSlug is a unique identifier within the agent.
subdomainbooleanfalseSubdomain denotes whether the app should be accessed via a path on the coder server or via a hostname-based dev URL. If this is set to true and there is no app wildcard configured on the server, the app will not be accessible in the UI.
subdomain_namestringfalseSubdomain name is the application domain exposed on the coder server.
urlstringfalseURL is the address being proxied to inside the workspace. If external is specified, this will be opened on the client.

Enumerated Values

PropertyValue
sharing_levelowner
sharing_levelauthenticated
sharing_levelpublic

codersdk.WorkspaceAppHealth

"disabled"

Properties

Enumerated Values

Value
disabled
initializing
healthy
unhealthy

codersdk.WorkspaceAppSharingLevel

"owner"

Properties

Enumerated Values

Value
owner
authenticated
public

codersdk.WorkspaceBuild

{
  "build_number": 0,
  "created_at": "2019-08-24T14:15:22Z",
  "daily_cost": 0,
  "deadline": "2019-08-24T14:15:22Z",
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "initiator_id": "06588898-9a84-4b35-ba8f-f9cbd64946f3",
  "initiator_name": "string",
  "job": {
    "canceled_at": "2019-08-24T14:15:22Z",
    "completed_at": "2019-08-24T14:15:22Z",
    "created_at": "2019-08-24T14:15:22Z",
    "error": "string",
    "error_code": "REQUIRED_TEMPLATE_VARIABLES",
    "file_id": "8a0cfb4f-ddc9-436d-91bb-75133c583767",
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "queue_position": 0,
    "queue_size": 0,
    "started_at": "2019-08-24T14:15:22Z",
    "status": "pending",
    "tags": {
      "property1": "string",
      "property2": "string"
    },
    "worker_id": "ae5fa6f7-c55b-40c1-b40a-b36ac467652b"
  },
  "max_deadline": "2019-08-24T14:15:22Z",
  "reason": "initiator",
  "resources": [
    {
      "agents": [
        {
          "api_version": "string",
          "apps": [
            {
              "command": "string",
              "display_name": "string",
              "external": true,
              "health": "disabled",
              "healthcheck": {
                "interval": 0,
                "threshold": 0,
                "url": "string"
              },
              "icon": "string",
              "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
              "sharing_level": "owner",
              "slug": "string",
              "subdomain": true,
              "subdomain_name": "string",
              "url": "string"
            }
          ],
          "architecture": "string",
          "connection_timeout_seconds": 0,
          "created_at": "2019-08-24T14:15:22Z",
          "directory": "string",
          "disconnected_at": "2019-08-24T14:15:22Z",
          "display_apps": ["vscode"],
          "environment_variables": {
            "property1": "string",
            "property2": "string"
          },
          "expanded_directory": "string",
          "first_connected_at": "2019-08-24T14:15:22Z",
          "health": {
            "healthy": false,
            "reason": "agent has lost connection"
          },
          "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          "instance_id": "string",
          "last_connected_at": "2019-08-24T14:15:22Z",
          "latency": {
            "property1": {
              "latency_ms": 0,
              "preferred": true
            },
            "property2": {
              "latency_ms": 0,
              "preferred": true
            }
          },
          "lifecycle_state": "created",
          "log_sources": [
            {
              "created_at": "2019-08-24T14:15:22Z",
              "display_name": "string",
              "icon": "string",
              "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
              "workspace_agent_id": "7ad2e618-fea7-4c1a-b70a-f501566a72f1"
            }
          ],
          "logs_length": 0,
          "logs_overflowed": true,
          "name": "string",
          "operating_system": "string",
          "ready_at": "2019-08-24T14:15:22Z",
          "resource_id": "4d5215ed-38bb-48ed-879a-fdb9ca58522f",
          "scripts": [
            {
              "cron": "string",
              "log_path": "string",
              "log_source_id": "4197ab25-95cf-4b91-9c78-f7f2af5d353a",
              "run_on_start": true,
              "run_on_stop": true,
              "script": "string",
              "start_blocks_login": true,
              "timeout": 0
            }
          ],
          "started_at": "2019-08-24T14:15:22Z",
          "startup_script_behavior": "blocking",
          "status": "connecting",
          "subsystems": ["envbox"],
          "troubleshooting_url": "string",
          "updated_at": "2019-08-24T14:15:22Z",
          "version": "string"
        }
      ],
      "created_at": "2019-08-24T14:15:22Z",
      "daily_cost": 0,
      "hide": true,
      "icon": "string",
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
      "metadata": [
        {
          "key": "string",
          "sensitive": true,
          "value": "string"
        }
      ],
      "name": "string",
      "type": "string",
      "workspace_transition": "start"
    }
  ],
  "status": "pending",
  "template_version_id": "0ba39c92-1f1b-4c32-aa3e-9925d7713eb1",
  "template_version_name": "string",
  "transition": "start",
  "updated_at": "2019-08-24T14:15:22Z",
  "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9",
  "workspace_name": "string",
  "workspace_owner_avatar_url": "string",
  "workspace_owner_id": "e7078695-5279-4c86-8774-3ac2367a2fc7",
  "workspace_owner_name": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
build_numberintegerfalse
created_atstringfalse
daily_costintegerfalse
deadlinestringfalse
idstringfalse
initiator_idstringfalse
initiator_namestringfalse
jobcodersdk.ProvisionerJobfalse
max_deadlinestringfalse
reasoncodersdk.BuildReasonfalse
resourcesarray of codersdk.WorkspaceResourcefalse
statuscodersdk.WorkspaceStatusfalse
template_version_idstringfalse
template_version_namestringfalse
transitioncodersdk.WorkspaceTransitionfalse
updated_atstringfalse
workspace_idstringfalse
workspace_namestringfalse
workspace_owner_avatar_urlstringfalse
workspace_owner_idstringfalse
workspace_owner_namestringfalse

Enumerated Values

PropertyValue
reasoninitiator
reasonautostart
reasonautostop
statuspending
statusstarting
statusrunning
statusstopping
statusstopped
statusfailed
statuscanceling
statuscanceled
statusdeleting
statusdeleted
transitionstart
transitionstop
transitiondelete

codersdk.WorkspaceBuildParameter

{
  "name": "string",
  "value": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
namestringfalse
valuestringfalse

codersdk.WorkspaceConnectionLatencyMS

{
  "p50": 0,
  "p95": 0
}

Properties

NameTypeRequiredRestrictionsDescription
p50numberfalse
p95numberfalse

codersdk.WorkspaceDeploymentStats

{
  "building": 0,
  "connection_latency_ms": {
    "p50": 0,
    "p95": 0
  },
  "failed": 0,
  "pending": 0,
  "running": 0,
  "rx_bytes": 0,
  "stopped": 0,
  "tx_bytes": 0
}

Properties

NameTypeRequiredRestrictionsDescription
buildingintegerfalse
connection_latency_mscodersdk.WorkspaceConnectionLatencyMSfalse
failedintegerfalse
pendingintegerfalse
runningintegerfalse
rx_bytesintegerfalse
stoppedintegerfalse
tx_bytesintegerfalse

codersdk.WorkspaceHealth

{
  "failing_agents": ["497f6eca-6276-4993-bfeb-53cbbbba6f08"],
  "healthy": false
}

Properties

NameTypeRequiredRestrictionsDescription
failing_agentsarray of stringfalseFailing agents lists the IDs of the agents that are failing, if any.
healthybooleanfalseHealthy is true if the workspace is healthy.

codersdk.WorkspaceProxy

{
  "created_at": "2019-08-24T14:15:22Z",
  "deleted": true,
  "derp_enabled": true,
  "derp_only": true,
  "display_name": "string",
  "healthy": true,
  "icon_url": "string",
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "name": "string",
  "path_app_url": "string",
  "status": {
    "checked_at": "2019-08-24T14:15:22Z",
    "report": {
      "errors": ["string"],
      "warnings": ["string"]
    },
    "status": "ok"
  },
  "updated_at": "2019-08-24T14:15:22Z",
  "version": "string",
  "wildcard_hostname": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
created_atstringfalse
deletedbooleanfalse
derp_enabledbooleanfalse
derp_onlybooleanfalse
display_namestringfalse
healthybooleanfalse
icon_urlstringfalse
idstringfalse
namestringfalse
path_app_urlstringfalsePath app URL is the URL to the base path for path apps. Optional unless wildcard_hostname is set. E.g. https://us.example.com
statuscodersdk.WorkspaceProxyStatusfalseStatus is the latest status check of the proxy. This will be empty for deleted proxies. This value can be used to determine if a workspace proxy is healthy and ready to use.
updated_atstringfalse
versionstringfalse
wildcard_hostnamestringfalseWildcard hostname is the wildcard hostname for subdomain apps. E.g. _.us.example.com E.g. _--suffix.au.example.com Optional. Does not need to be on the same domain as PathAppURL.

codersdk.WorkspaceProxyStatus

{
  "checked_at": "2019-08-24T14:15:22Z",
  "report": {
    "errors": ["string"],
    "warnings": ["string"]
  },
  "status": "ok"
}

Properties

NameTypeRequiredRestrictionsDescription
checked_atstringfalse
reportcodersdk.ProxyHealthReportfalseReport provides more information about the health of the workspace proxy.
statuscodersdk.ProxyHealthStatusfalse

codersdk.WorkspaceQuota

{
  "budget": 0,
  "credits_consumed": 0
}

Properties

NameTypeRequiredRestrictionsDescription
budgetintegerfalse
credits_consumedintegerfalse

codersdk.WorkspaceResource

{
  "agents": [
    {
      "api_version": "string",
      "apps": [
        {
          "command": "string",
          "display_name": "string",
          "external": true,
          "health": "disabled",
          "healthcheck": {
            "interval": 0,
            "threshold": 0,
            "url": "string"
          },
          "icon": "string",
          "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          "sharing_level": "owner",
          "slug": "string",
          "subdomain": true,
          "subdomain_name": "string",
          "url": "string"
        }
      ],
      "architecture": "string",
      "connection_timeout_seconds": 0,
      "created_at": "2019-08-24T14:15:22Z",
      "directory": "string",
      "disconnected_at": "2019-08-24T14:15:22Z",
      "display_apps": ["vscode"],
      "environment_variables": {
        "property1": "string",
        "property2": "string"
      },
      "expanded_directory": "string",
      "first_connected_at": "2019-08-24T14:15:22Z",
      "health": {
        "healthy": false,
        "reason": "agent has lost connection"
      },
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "instance_id": "string",
      "last_connected_at": "2019-08-24T14:15:22Z",
      "latency": {
        "property1": {
          "latency_ms": 0,
          "preferred": true
        },
        "property2": {
          "latency_ms": 0,
          "preferred": true
        }
      },
      "lifecycle_state": "created",
      "log_sources": [
        {
          "created_at": "2019-08-24T14:15:22Z",
          "display_name": "string",
          "icon": "string",
          "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          "workspace_agent_id": "7ad2e618-fea7-4c1a-b70a-f501566a72f1"
        }
      ],
      "logs_length": 0,
      "logs_overflowed": true,
      "name": "string",
      "operating_system": "string",
      "ready_at": "2019-08-24T14:15:22Z",
      "resource_id": "4d5215ed-38bb-48ed-879a-fdb9ca58522f",
      "scripts": [
        {
          "cron": "string",
          "log_path": "string",
          "log_source_id": "4197ab25-95cf-4b91-9c78-f7f2af5d353a",
          "run_on_start": true,
          "run_on_stop": true,
          "script": "string",
          "start_blocks_login": true,
          "timeout": 0
        }
      ],
      "started_at": "2019-08-24T14:15:22Z",
      "startup_script_behavior": "blocking",
      "status": "connecting",
      "subsystems": ["envbox"],
      "troubleshooting_url": "string",
      "updated_at": "2019-08-24T14:15:22Z",
      "version": "string"
    }
  ],
  "created_at": "2019-08-24T14:15:22Z",
  "daily_cost": 0,
  "hide": true,
  "icon": "string",
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
  "metadata": [
    {
      "key": "string",
      "sensitive": true,
      "value": "string"
    }
  ],
  "name": "string",
  "type": "string",
  "workspace_transition": "start"
}

Properties

NameTypeRequiredRestrictionsDescription
agentsarray of codersdk.WorkspaceAgentfalse
created_atstringfalse
daily_costintegerfalse
hidebooleanfalse
iconstringfalse
idstringfalse
job_idstringfalse
metadataarray of codersdk.WorkspaceResourceMetadatafalse
namestringfalse
typestringfalse
workspace_transitioncodersdk.WorkspaceTransitionfalse

Enumerated Values

PropertyValue
workspace_transitionstart
workspace_transitionstop
workspace_transitiondelete

codersdk.WorkspaceResourceMetadata

{
  "key": "string",
  "sensitive": true,
  "value": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
keystringfalse
sensitivebooleanfalse
valuestringfalse

codersdk.WorkspaceStatus

"pending"

Properties

Enumerated Values

Value
pending
starting
running
stopping
stopped
failed
canceling
canceled
deleting
deleted

codersdk.WorkspaceTransition

"start"

Properties

Enumerated Values

Value
start
stop
delete

codersdk.WorkspacesResponse

{
  "count": 0,
  "workspaces": [
    {
      "allow_renames": true,
      "automatic_updates": "always",
      "autostart_schedule": "string",
      "created_at": "2019-08-24T14:15:22Z",
      "deleting_at": "2019-08-24T14:15:22Z",
      "dormant_at": "2019-08-24T14:15:22Z",
      "favorite": true,
      "health": {
        "failing_agents": ["497f6eca-6276-4993-bfeb-53cbbbba6f08"],
        "healthy": false
      },
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "last_used_at": "2019-08-24T14:15:22Z",
      "latest_build": {
        "build_number": 0,
        "created_at": "2019-08-24T14:15:22Z",
        "daily_cost": 0,
        "deadline": "2019-08-24T14:15:22Z",
        "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        "initiator_id": "06588898-9a84-4b35-ba8f-f9cbd64946f3",
        "initiator_name": "string",
        "job": {
          "canceled_at": "2019-08-24T14:15:22Z",
          "completed_at": "2019-08-24T14:15:22Z",
          "created_at": "2019-08-24T14:15:22Z",
          "error": "string",
          "error_code": "REQUIRED_TEMPLATE_VARIABLES",
          "file_id": "8a0cfb4f-ddc9-436d-91bb-75133c583767",
          "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          "queue_position": 0,
          "queue_size": 0,
          "started_at": "2019-08-24T14:15:22Z",
          "status": "pending",
          "tags": {
            "property1": "string",
            "property2": "string"
          },
          "worker_id": "ae5fa6f7-c55b-40c1-b40a-b36ac467652b"
        },
        "max_deadline": "2019-08-24T14:15:22Z",
        "reason": "initiator",
        "resources": [
          {
            "agents": [
              {
                "api_version": "string",
                "apps": [
                  {
                    "command": "string",
                    "display_name": "string",
                    "external": true,
                    "health": "disabled",
                    "healthcheck": {},
                    "icon": "string",
                    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
                    "sharing_level": "owner",
                    "slug": "string",
                    "subdomain": true,
                    "subdomain_name": "string",
                    "url": "string"
                  }
                ],
                "architecture": "string",
                "connection_timeout_seconds": 0,
                "created_at": "2019-08-24T14:15:22Z",
                "directory": "string",
                "disconnected_at": "2019-08-24T14:15:22Z",
                "display_apps": ["vscode"],
                "environment_variables": {
                  "property1": "string",
                  "property2": "string"
                },
                "expanded_directory": "string",
                "first_connected_at": "2019-08-24T14:15:22Z",
                "health": {
                  "healthy": false,
                  "reason": "agent has lost connection"
                },
                "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
                "instance_id": "string",
                "last_connected_at": "2019-08-24T14:15:22Z",
                "latency": {
                  "property1": {
                    "latency_ms": 0,
                    "preferred": true
                  },
                  "property2": {
                    "latency_ms": 0,
                    "preferred": true
                  }
                },
                "lifecycle_state": "created",
                "log_sources": [
                  {
                    "created_at": "2019-08-24T14:15:22Z",
                    "display_name": "string",
                    "icon": "string",
                    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
                    "workspace_agent_id": "7ad2e618-fea7-4c1a-b70a-f501566a72f1"
                  }
                ],
                "logs_length": 0,
                "logs_overflowed": true,
                "name": "string",
                "operating_system": "string",
                "ready_at": "2019-08-24T14:15:22Z",
                "resource_id": "4d5215ed-38bb-48ed-879a-fdb9ca58522f",
                "scripts": [
                  {
                    "cron": "string",
                    "log_path": "string",
                    "log_source_id": "4197ab25-95cf-4b91-9c78-f7f2af5d353a",
                    "run_on_start": true,
                    "run_on_stop": true,
                    "script": "string",
                    "start_blocks_login": true,
                    "timeout": 0
                  }
                ],
                "started_at": "2019-08-24T14:15:22Z",
                "startup_script_behavior": "blocking",
                "status": "connecting",
                "subsystems": ["envbox"],
                "troubleshooting_url": "string",
                "updated_at": "2019-08-24T14:15:22Z",
                "version": "string"
              }
            ],
            "created_at": "2019-08-24T14:15:22Z",
            "daily_cost": 0,
            "hide": true,
            "icon": "string",
            "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
            "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
            "metadata": [
              {
                "key": "string",
                "sensitive": true,
                "value": "string"
              }
            ],
            "name": "string",
            "type": "string",
            "workspace_transition": "start"
          }
        ],
        "status": "pending",
        "template_version_id": "0ba39c92-1f1b-4c32-aa3e-9925d7713eb1",
        "template_version_name": "string",
        "transition": "start",
        "updated_at": "2019-08-24T14:15:22Z",
        "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9",
        "workspace_name": "string",
        "workspace_owner_avatar_url": "string",
        "workspace_owner_id": "e7078695-5279-4c86-8774-3ac2367a2fc7",
        "workspace_owner_name": "string"
      },
      "name": "string",
      "organization_id": "7c60d51f-b44e-4682-87d6-449835ea4de6",
      "outdated": true,
      "owner_avatar_url": "string",
      "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
      "owner_name": "string",
      "template_active_version_id": "b0da9c29-67d8-4c87-888c-bafe356f7f3c",
      "template_allow_user_cancel_workspace_jobs": true,
      "template_display_name": "string",
      "template_icon": "string",
      "template_id": "c6d67e98-83ea-49f0-8812-e4abae2b68bc",
      "template_name": "string",
      "template_require_active_version": true,
      "ttl_ms": 0,
      "updated_at": "2019-08-24T14:15:22Z"
    }
  ]
}

Properties

NameTypeRequiredRestrictionsDescription
countintegerfalse
workspacesarray of codersdk.Workspacefalse

derp.BytesSentRecv

{
  "key": {},
  "recv": 0,
  "sent": 0
}

Properties

NameTypeRequiredRestrictionsDescription
keykey.NodePublicfalseKey is the public key of the client which sent/received these bytes.
recvintegerfalse
sentintegerfalse

derp.ServerInfoMessage

{
  "tokenBucketBytesBurst": 0,
  "tokenBucketBytesPerSecond": 0
}

Properties

NameTypeRequiredRestrictionsDescription
tokenBucketBytesBurstintegerfalseTokenbucketbytesburst is how many bytes the server will allow to burst, temporarily violating TokenBucketBytesPerSecond.
Zero means unspecified. There might be a limit, but the client need not try to respect it.
tokenBucketBytesPerSecondintegerfalseTokenbucketbytespersecond is how many bytes per second the server says it will accept, including all framing bytes.
Zero means unspecified. There might be a limit, but the client need not try to respect it.

health.Code

"EUNKNOWN"

Properties

Enumerated Values

Value
EUNKNOWN
EWP01
EWP02
EWP04
EDB01
EDB02
EWS01
EWS02
EWS03
EACS01
EACS02
EACS03
EACS04
EDERP01
EDERP02
EPD01
EPD02
EPD03

health.Message

{
  "code": "EUNKNOWN",
  "message": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
codehealth.Codefalse
messagestringfalse

health.Severity

"ok"

Properties

Enumerated Values

Value
ok
warning
error

healthsdk.AccessURLReport

{
  "access_url": "string",
  "dismissed": true,
  "error": "string",
  "healthy": true,
  "healthz_response": "string",
  "reachable": true,
  "severity": "ok",
  "status_code": 0,
  "warnings": [
    {
      "code": "EUNKNOWN",
      "message": "string"
    }
  ]
}

Properties

NameTypeRequiredRestrictionsDescription
access_urlstringfalse
dismissedbooleanfalse
errorstringfalse
healthybooleanfalseHealthy is deprecated and left for backward compatibility purposes, use Severity instead.
healthz_responsestringfalse
reachablebooleanfalse
severityhealth.Severityfalse
status_codeintegerfalse
warningsarray of health.Messagefalse

Enumerated Values

PropertyValue
severityok
severitywarning
severityerror

healthsdk.DERPHealthReport

{
  "dismissed": true,
  "error": "string",
  "healthy": true,
  "netcheck": {
    "captivePortal": "string",
    "globalV4": "string",
    "globalV6": "string",
    "hairPinning": "string",
    "icmpv4": true,
    "ipv4": true,
    "ipv4CanSend": true,
    "ipv6": true,
    "ipv6CanSend": true,
    "mappingVariesByDestIP": "string",
    "oshasIPv6": true,
    "pcp": "string",
    "pmp": "string",
    "preferredDERP": 0,
    "regionLatency": {
      "property1": 0,
      "property2": 0
    },
    "regionV4Latency": {
      "property1": 0,
      "property2": 0
    },
    "regionV6Latency": {
      "property1": 0,
      "property2": 0
    },
    "udp": true,
    "upnP": "string"
  },
  "netcheck_err": "string",
  "netcheck_logs": ["string"],
  "regions": {
    "property1": {
      "error": "string",
      "healthy": true,
      "node_reports": [
        {
          "can_exchange_messages": true,
          "client_errs": [["string"]],
          "client_logs": [["string"]],
          "error": "string",
          "healthy": true,
          "node": {
            "canPort80": true,
            "certName": "string",
            "derpport": 0,
            "forceHTTP": true,
            "hostName": "string",
            "insecureForTests": true,
            "ipv4": "string",
            "ipv6": "string",
            "name": "string",
            "regionID": 0,
            "stunonly": true,
            "stunport": 0,
            "stuntestIP": "string"
          },
          "node_info": {
            "tokenBucketBytesBurst": 0,
            "tokenBucketBytesPerSecond": 0
          },
          "round_trip_ping": "string",
          "round_trip_ping_ms": 0,
          "severity": "ok",
          "stun": {
            "canSTUN": true,
            "enabled": true,
            "error": "string"
          },
          "uses_websocket": true,
          "warnings": [
            {
              "code": "EUNKNOWN",
              "message": "string"
            }
          ]
        }
      ],
      "region": {
        "avoid": true,
        "embeddedRelay": true,
        "nodes": [
          {
            "canPort80": true,
            "certName": "string",
            "derpport": 0,
            "forceHTTP": true,
            "hostName": "string",
            "insecureForTests": true,
            "ipv4": "string",
            "ipv6": "string",
            "name": "string",
            "regionID": 0,
            "stunonly": true,
            "stunport": 0,
            "stuntestIP": "string"
          }
        ],
        "regionCode": "string",
        "regionID": 0,
        "regionName": "string"
      },
      "severity": "ok",
      "warnings": [
        {
          "code": "EUNKNOWN",
          "message": "string"
        }
      ]
    },
    "property2": {
      "error": "string",
      "healthy": true,
      "node_reports": [
        {
          "can_exchange_messages": true,
          "client_errs": [["string"]],
          "client_logs": [["string"]],
          "error": "string",
          "healthy": true,
          "node": {
            "canPort80": true,
            "certName": "string",
            "derpport": 0,
            "forceHTTP": true,
            "hostName": "string",
            "insecureForTests": true,
            "ipv4": "string",
            "ipv6": "string",
            "name": "string",
            "regionID": 0,
            "stunonly": true,
            "stunport": 0,
            "stuntestIP": "string"
          },
          "node_info": {
            "tokenBucketBytesBurst": 0,
            "tokenBucketBytesPerSecond": 0
          },
          "round_trip_ping": "string",
          "round_trip_ping_ms": 0,
          "severity": "ok",
          "stun": {
            "canSTUN": true,
            "enabled": true,
            "error": "string"
          },
          "uses_websocket": true,
          "warnings": [
            {
              "code": "EUNKNOWN",
              "message": "string"
            }
          ]
        }
      ],
      "region": {
        "avoid": true,
        "embeddedRelay": true,
        "nodes": [
          {
            "canPort80": true,
            "certName": "string",
            "derpport": 0,
            "forceHTTP": true,
            "hostName": "string",
            "insecureForTests": true,
            "ipv4": "string",
            "ipv6": "string",
            "name": "string",
            "regionID": 0,
            "stunonly": true,
            "stunport": 0,
            "stuntestIP": "string"
          }
        ],
        "regionCode": "string",
        "regionID": 0,
        "regionName": "string"
      },
      "severity": "ok",
      "warnings": [
        {
          "code": "EUNKNOWN",
          "message": "string"
        }
      ]
    }
  },
  "severity": "ok",
  "warnings": [
    {
      "code": "EUNKNOWN",
      "message": "string"
    }
  ]
}

Properties

NameTypeRequiredRestrictionsDescription
dismissedbooleanfalse
errorstringfalse
healthybooleanfalseHealthy is deprecated and left for backward compatibility purposes, use Severity instead.
netchecknetcheck.Reportfalse
netcheck_errstringfalse
netcheck_logsarray of stringfalse
regionsobjectfalse
» [any property]healthsdk.DERPRegionReportfalse
severityhealth.Severityfalse
warningsarray of health.Messagefalse

Enumerated Values

PropertyValue
severityok
severitywarning
severityerror

healthsdk.DERPNodeReport

{
  "can_exchange_messages": true,
  "client_errs": [["string"]],
  "client_logs": [["string"]],
  "error": "string",
  "healthy": true,
  "node": {
    "canPort80": true,
    "certName": "string",
    "derpport": 0,
    "forceHTTP": true,
    "hostName": "string",
    "insecureForTests": true,
    "ipv4": "string",
    "ipv6": "string",
    "name": "string",
    "regionID": 0,
    "stunonly": true,
    "stunport": 0,
    "stuntestIP": "string"
  },
  "node_info": {
    "tokenBucketBytesBurst": 0,
    "tokenBucketBytesPerSecond": 0
  },
  "round_trip_ping": "string",
  "round_trip_ping_ms": 0,
  "severity": "ok",
  "stun": {
    "canSTUN": true,
    "enabled": true,
    "error": "string"
  },
  "uses_websocket": true,
  "warnings": [
    {
      "code": "EUNKNOWN",
      "message": "string"
    }
  ]
}

Properties

NameTypeRequiredRestrictionsDescription
can_exchange_messagesbooleanfalse
client_errsarray of arrayfalse
client_logsarray of arrayfalse
errorstringfalse
healthybooleanfalseHealthy is deprecated and left for backward compatibility purposes, use Severity instead.
nodetailcfg.DERPNodefalse
node_infoderp.ServerInfoMessagefalse
round_trip_pingstringfalse
round_trip_ping_msintegerfalse
severityhealth.Severityfalse
stunhealthsdk.STUNReportfalse
uses_websocketbooleanfalse
warningsarray of health.Messagefalse

Enumerated Values

PropertyValue
severityok
severitywarning
severityerror

healthsdk.DERPRegionReport

{
  "error": "string",
  "healthy": true,
  "node_reports": [
    {
      "can_exchange_messages": true,
      "client_errs": [["string"]],
      "client_logs": [["string"]],
      "error": "string",
      "healthy": true,
      "node": {
        "canPort80": true,
        "certName": "string",
        "derpport": 0,
        "forceHTTP": true,
        "hostName": "string",
        "insecureForTests": true,
        "ipv4": "string",
        "ipv6": "string",
        "name": "string",
        "regionID": 0,
        "stunonly": true,
        "stunport": 0,
        "stuntestIP": "string"
      },
      "node_info": {
        "tokenBucketBytesBurst": 0,
        "tokenBucketBytesPerSecond": 0
      },
      "round_trip_ping": "string",
      "round_trip_ping_ms": 0,
      "severity": "ok",
      "stun": {
        "canSTUN": true,
        "enabled": true,
        "error": "string"
      },
      "uses_websocket": true,
      "warnings": [
        {
          "code": "EUNKNOWN",
          "message": "string"
        }
      ]
    }
  ],
  "region": {
    "avoid": true,
    "embeddedRelay": true,
    "nodes": [
      {
        "canPort80": true,
        "certName": "string",
        "derpport": 0,
        "forceHTTP": true,
        "hostName": "string",
        "insecureForTests": true,
        "ipv4": "string",
        "ipv6": "string",
        "name": "string",
        "regionID": 0,
        "stunonly": true,
        "stunport": 0,
        "stuntestIP": "string"
      }
    ],
    "regionCode": "string",
    "regionID": 0,
    "regionName": "string"
  },
  "severity": "ok",
  "warnings": [
    {
      "code": "EUNKNOWN",
      "message": "string"
    }
  ]
}

Properties

NameTypeRequiredRestrictionsDescription
errorstringfalse
healthybooleanfalseHealthy is deprecated and left for backward compatibility purposes, use Severity instead.
node_reportsarray of healthsdk.DERPNodeReportfalse
regiontailcfg.DERPRegionfalse
severityhealth.Severityfalse
warningsarray of health.Messagefalse

Enumerated Values

PropertyValue
severityok
severitywarning
severityerror

healthsdk.DatabaseReport

{
  "dismissed": true,
  "error": "string",
  "healthy": true,
  "latency": "string",
  "latency_ms": 0,
  "reachable": true,
  "severity": "ok",
  "threshold_ms": 0,
  "warnings": [
    {
      "code": "EUNKNOWN",
      "message": "string"
    }
  ]
}

Properties

NameTypeRequiredRestrictionsDescription
dismissedbooleanfalse
errorstringfalse
healthybooleanfalseHealthy is deprecated and left for backward compatibility purposes, use Severity instead.
latencystringfalse
latency_msintegerfalse
reachablebooleanfalse
severityhealth.Severityfalse
threshold_msintegerfalse
warningsarray of health.Messagefalse

Enumerated Values

PropertyValue
severityok
severitywarning
severityerror

healthsdk.HealthSection

"DERP"

Properties

Enumerated Values

Value
DERP
AccessURL
Websocket
Database
WorkspaceProxy
ProvisionerDaemons

healthsdk.HealthSettings

{
  "dismissed_healthchecks": ["DERP"]
}

Properties

NameTypeRequiredRestrictionsDescription
dismissed_healthchecksarray of healthsdk.HealthSectionfalse

healthsdk.HealthcheckReport

{
  "access_url": {
    "access_url": "string",
    "dismissed": true,
    "error": "string",
    "healthy": true,
    "healthz_response": "string",
    "reachable": true,
    "severity": "ok",
    "status_code": 0,
    "warnings": [
      {
        "code": "EUNKNOWN",
        "message": "string"
      }
    ]
  },
  "coder_version": "string",
  "database": {
    "dismissed": true,
    "error": "string",
    "healthy": true,
    "latency": "string",
    "latency_ms": 0,
    "reachable": true,
    "severity": "ok",
    "threshold_ms": 0,
    "warnings": [
      {
        "code": "EUNKNOWN",
        "message": "string"
      }
    ]
  },
  "derp": {
    "dismissed": true,
    "error": "string",
    "healthy": true,
    "netcheck": {
      "captivePortal": "string",
      "globalV4": "string",
      "globalV6": "string",
      "hairPinning": "string",
      "icmpv4": true,
      "ipv4": true,
      "ipv4CanSend": true,
      "ipv6": true,
      "ipv6CanSend": true,
      "mappingVariesByDestIP": "string",
      "oshasIPv6": true,
      "pcp": "string",
      "pmp": "string",
      "preferredDERP": 0,
      "regionLatency": {
        "property1": 0,
        "property2": 0
      },
      "regionV4Latency": {
        "property1": 0,
        "property2": 0
      },
      "regionV6Latency": {
        "property1": 0,
        "property2": 0
      },
      "udp": true,
      "upnP": "string"
    },
    "netcheck_err": "string",
    "netcheck_logs": ["string"],
    "regions": {
      "property1": {
        "error": "string",
        "healthy": true,
        "node_reports": [
          {
            "can_exchange_messages": true,
            "client_errs": [["string"]],
            "client_logs": [["string"]],
            "error": "string",
            "healthy": true,
            "node": {
              "canPort80": true,
              "certName": "string",
              "derpport": 0,
              "forceHTTP": true,
              "hostName": "string",
              "insecureForTests": true,
              "ipv4": "string",
              "ipv6": "string",
              "name": "string",
              "regionID": 0,
              "stunonly": true,
              "stunport": 0,
              "stuntestIP": "string"
            },
            "node_info": {
              "tokenBucketBytesBurst": 0,
              "tokenBucketBytesPerSecond": 0
            },
            "round_trip_ping": "string",
            "round_trip_ping_ms": 0,
            "severity": "ok",
            "stun": {
              "canSTUN": true,
              "enabled": true,
              "error": "string"
            },
            "uses_websocket": true,
            "warnings": [
              {
                "code": "EUNKNOWN",
                "message": "string"
              }
            ]
          }
        ],
        "region": {
          "avoid": true,
          "embeddedRelay": true,
          "nodes": [
            {
              "canPort80": true,
              "certName": "string",
              "derpport": 0,
              "forceHTTP": true,
              "hostName": "string",
              "insecureForTests": true,
              "ipv4": "string",
              "ipv6": "string",
              "name": "string",
              "regionID": 0,
              "stunonly": true,
              "stunport": 0,
              "stuntestIP": "string"
            }
          ],
          "regionCode": "string",
          "regionID": 0,
          "regionName": "string"
        },
        "severity": "ok",
        "warnings": [
          {
            "code": "EUNKNOWN",
            "message": "string"
          }
        ]
      },
      "property2": {
        "error": "string",
        "healthy": true,
        "node_reports": [
          {
            "can_exchange_messages": true,
            "client_errs": [["string"]],
            "client_logs": [["string"]],
            "error": "string",
            "healthy": true,
            "node": {
              "canPort80": true,
              "certName": "string",
              "derpport": 0,
              "forceHTTP": true,
              "hostName": "string",
              "insecureForTests": true,
              "ipv4": "string",
              "ipv6": "string",
              "name": "string",
              "regionID": 0,
              "stunonly": true,
              "stunport": 0,
              "stuntestIP": "string"
            },
            "node_info": {
              "tokenBucketBytesBurst": 0,
              "tokenBucketBytesPerSecond": 0
            },
            "round_trip_ping": "string",
            "round_trip_ping_ms": 0,
            "severity": "ok",
            "stun": {
              "canSTUN": true,
              "enabled": true,
              "error": "string"
            },
            "uses_websocket": true,
            "warnings": [
              {
                "code": "EUNKNOWN",
                "message": "string"
              }
            ]
          }
        ],
        "region": {
          "avoid": true,
          "embeddedRelay": true,
          "nodes": [
            {
              "canPort80": true,
              "certName": "string",
              "derpport": 0,
              "forceHTTP": true,
              "hostName": "string",
              "insecureForTests": true,
              "ipv4": "string",
              "ipv6": "string",
              "name": "string",
              "regionID": 0,
              "stunonly": true,
              "stunport": 0,
              "stuntestIP": "string"
            }
          ],
          "regionCode": "string",
          "regionID": 0,
          "regionName": "string"
        },
        "severity": "ok",
        "warnings": [
          {
            "code": "EUNKNOWN",
            "message": "string"
          }
        ]
      }
    },
    "severity": "ok",
    "warnings": [
      {
        "code": "EUNKNOWN",
        "message": "string"
      }
    ]
  },
  "failing_sections": ["DERP"],
  "healthy": true,
  "provisioner_daemons": {
    "dismissed": true,
    "error": "string",
    "items": [
      {
        "provisioner_daemon": {
          "api_version": "string",
          "created_at": "2019-08-24T14:15:22Z",
          "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          "last_seen_at": "2019-08-24T14:15:22Z",
          "name": "string",
          "provisioners": ["string"],
          "tags": {
            "property1": "string",
            "property2": "string"
          },
          "version": "string"
        },
        "warnings": [
          {
            "code": "EUNKNOWN",
            "message": "string"
          }
        ]
      }
    ],
    "severity": "ok",
    "warnings": [
      {
        "code": "EUNKNOWN",
        "message": "string"
      }
    ]
  },
  "severity": "ok",
  "time": "2019-08-24T14:15:22Z",
  "websocket": {
    "body": "string",
    "code": 0,
    "dismissed": true,
    "error": "string",
    "healthy": true,
    "severity": "ok",
    "warnings": [
      {
        "code": "EUNKNOWN",
        "message": "string"
      }
    ]
  },
  "workspace_proxy": {
    "dismissed": true,
    "error": "string",
    "healthy": true,
    "severity": "ok",
    "warnings": [
      {
        "code": "EUNKNOWN",
        "message": "string"
      }
    ],
    "workspace_proxies": {
      "regions": [
        {
          "created_at": "2019-08-24T14:15:22Z",
          "deleted": true,
          "derp_enabled": true,
          "derp_only": true,
          "display_name": "string",
          "healthy": true,
          "icon_url": "string",
          "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          "name": "string",
          "path_app_url": "string",
          "status": {
            "checked_at": "2019-08-24T14:15:22Z",
            "report": {
              "errors": ["string"],
              "warnings": ["string"]
            },
            "status": "ok"
          },
          "updated_at": "2019-08-24T14:15:22Z",
          "version": "string",
          "wildcard_hostname": "string"
        }
      ]
    }
  }
}

Properties

NameTypeRequiredRestrictionsDescription
access_urlhealthsdk.AccessURLReportfalse
coder_versionstringfalseThe Coder version of the server that the report was generated on.
databasehealthsdk.DatabaseReportfalse
derphealthsdk.DERPHealthReportfalse
failing_sectionsarray of healthsdk.HealthSectionfalseFailing sections is a list of sections that have failed their healthcheck.
healthybooleanfalseHealthy is true if the report returns no errors. Deprecated: use Severity instead
provisioner_daemonshealthsdk.ProvisionerDaemonsReportfalse
severityhealth.SeverityfalseSeverity indicates the status of Coder health.
timestringfalseTime is the time the report was generated at.
websockethealthsdk.WebsocketReportfalse
workspace_proxyhealthsdk.WorkspaceProxyReportfalse

Enumerated Values

PropertyValue
severityok
severitywarning
severityerror

healthsdk.ProvisionerDaemonsReport

{
  "dismissed": true,
  "error": "string",
  "items": [
    {
      "provisioner_daemon": {
        "api_version": "string",
        "created_at": "2019-08-24T14:15:22Z",
        "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        "last_seen_at": "2019-08-24T14:15:22Z",
        "name": "string",
        "provisioners": ["string"],
        "tags": {
          "property1": "string",
          "property2": "string"
        },
        "version": "string"
      },
      "warnings": [
        {
          "code": "EUNKNOWN",
          "message": "string"
        }
      ]
    }
  ],
  "severity": "ok",
  "warnings": [
    {
      "code": "EUNKNOWN",
      "message": "string"
    }
  ]
}

Properties

NameTypeRequiredRestrictionsDescription
dismissedbooleanfalse
errorstringfalse
itemsarray of healthsdk.ProvisionerDaemonsReportItemfalse
severityhealth.Severityfalse
warningsarray of health.Messagefalse

Enumerated Values

PropertyValue
severityok
severitywarning
severityerror

healthsdk.ProvisionerDaemonsReportItem

{
  "provisioner_daemon": {
    "api_version": "string",
    "created_at": "2019-08-24T14:15:22Z",
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "last_seen_at": "2019-08-24T14:15:22Z",
    "name": "string",
    "provisioners": ["string"],
    "tags": {
      "property1": "string",
      "property2": "string"
    },
    "version": "string"
  },
  "warnings": [
    {
      "code": "EUNKNOWN",
      "message": "string"
    }
  ]
}

Properties

NameTypeRequiredRestrictionsDescription
provisioner_daemoncodersdk.ProvisionerDaemonfalse
warningsarray of health.Messagefalse

healthsdk.STUNReport

{
  "canSTUN": true,
  "enabled": true,
  "error": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
canSTUNbooleanfalse
enabledbooleanfalse
errorstringfalse

healthsdk.UpdateHealthSettings

{
  "dismissed_healthchecks": ["DERP"]
}

Properties

NameTypeRequiredRestrictionsDescription
dismissed_healthchecksarray of healthsdk.HealthSectionfalse

healthsdk.WebsocketReport

{
  "body": "string",
  "code": 0,
  "dismissed": true,
  "error": "string",
  "healthy": true,
  "severity": "ok",
  "warnings": [
    {
      "code": "EUNKNOWN",
      "message": "string"
    }
  ]
}

Properties

NameTypeRequiredRestrictionsDescription
bodystringfalse
codeintegerfalse
dismissedbooleanfalse
errorstringfalse
healthybooleanfalseHealthy is deprecated and left for backward compatibility purposes, use Severity instead.
severityhealth.Severityfalse
warningsarray of health.Messagefalse

Enumerated Values

PropertyValue
severityok
severitywarning
severityerror

healthsdk.WorkspaceProxyReport

{
  "dismissed": true,
  "error": "string",
  "healthy": true,
  "severity": "ok",
  "warnings": [
    {
      "code": "EUNKNOWN",
      "message": "string"
    }
  ],
  "workspace_proxies": {
    "regions": [
      {
        "created_at": "2019-08-24T14:15:22Z",
        "deleted": true,
        "derp_enabled": true,
        "derp_only": true,
        "display_name": "string",
        "healthy": true,
        "icon_url": "string",
        "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        "name": "string",
        "path_app_url": "string",
        "status": {
          "checked_at": "2019-08-24T14:15:22Z",
          "report": {
            "errors": ["string"],
            "warnings": ["string"]
          },
          "status": "ok"
        },
        "updated_at": "2019-08-24T14:15:22Z",
        "version": "string",
        "wildcard_hostname": "string"
      }
    ]
  }
}

Properties

NameTypeRequiredRestrictionsDescription
dismissedbooleanfalse
errorstringfalse
healthybooleanfalseHealthy is deprecated and left for backward compatibility purposes, use Severity instead.
severityhealth.Severityfalse
warningsarray of health.Messagefalse
workspace_proxiescodersdk.RegionsResponse-codersdk_WorkspaceProxyfalse

Enumerated Values

PropertyValue
severityok
severitywarning
severityerror

key.NodePublic

{}

Properties

None

netcheck.Report

{
  "captivePortal": "string",
  "globalV4": "string",
  "globalV6": "string",
  "hairPinning": "string",
  "icmpv4": true,
  "ipv4": true,
  "ipv4CanSend": true,
  "ipv6": true,
  "ipv6CanSend": true,
  "mappingVariesByDestIP": "string",
  "oshasIPv6": true,
  "pcp": "string",
  "pmp": "string",
  "preferredDERP": 0,
  "regionLatency": {
    "property1": 0,
    "property2": 0
  },
  "regionV4Latency": {
    "property1": 0,
    "property2": 0
  },
  "regionV6Latency": {
    "property1": 0,
    "property2": 0
  },
  "udp": true,
  "upnP": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
captivePortalstringfalseCaptiveportal is set when we think there's a captive portal that is intercepting HTTP traffic.
globalV4stringfalseip:port of global IPv4
globalV6stringfalse[ip]:port of global IPv6
hairPinningstringfalseHairpinning is whether the router supports communicating between two local devices through the NATted public IP address (on IPv4).
icmpv4booleanfalsean ICMPv4 round trip completed
ipv4booleanfalsean IPv4 STUN round trip completed
ipv4CanSendbooleanfalsean IPv4 packet was able to be sent
ipv6booleanfalsean IPv6 STUN round trip completed
ipv6CanSendbooleanfalsean IPv6 packet was able to be sent
mappingVariesByDestIPstringfalseMappingvariesbydestip is whether STUN results depend which STUN server you're talking to (on IPv4).
oshasIPv6booleanfalsecould bind a socket to ::1
pcpstringfalsePcp is whether PCP appears present on the LAN. Empty means not checked.
pmpstringfalsePmp is whether NAT-PMP appears present on the LAN. Empty means not checked.
preferredDERPintegerfalseor 0 for unknown
regionLatencyobjectfalsekeyed by DERP Region ID
» [any property]integerfalse
regionV4Latencyobjectfalsekeyed by DERP Region ID
» [any property]integerfalse
regionV6Latencyobjectfalsekeyed by DERP Region ID
» [any property]integerfalse
udpbooleanfalsea UDP STUN round trip completed
upnPstringfalseUpnp is whether UPnP appears present on the LAN. Empty means not checked.

oauth2.Token

{
  "access_token": "string",
  "expiry": "string",
  "refresh_token": "string",
  "token_type": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
access_tokenstringfalseAccess token is the token that authorizes and authenticates the requests.
expirystringfalseExpiry is the optional expiration time of the access token.
If zero, TokenSource implementations will reuse the same token forever and RefreshToken or equivalent mechanisms for that TokenSource will not be used.
refresh_tokenstringfalseRefresh token is a token that's used by the application (as opposed to the user) to refresh the access token if it expires.
token_typestringfalseToken type is the type of token. The Type method returns either this or "Bearer", the default.

serpent.Annotations

{
  "property1": "string",
  "property2": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
[any property]stringfalse

serpent.Group

{
  "description": "string",
  "name": "string",
  "parent": {
    "description": "string",
    "name": "string",
    "parent": {},
    "yaml": "string"
  },
  "yaml": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
descriptionstringfalse
namestringfalse
parentserpent.Groupfalse
yamlstringfalse

serpent.HostPort

{
  "host": "string",
  "port": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
hoststringfalse
portstringfalse

serpent.Option

{
  "annotations": {
    "property1": "string",
    "property2": "string"
  },
  "default": "string",
  "description": "string",
  "env": "string",
  "flag": "string",
  "flag_shorthand": "string",
  "group": {
    "description": "string",
    "name": "string",
    "parent": {
      "description": "string",
      "name": "string",
      "parent": {},
      "yaml": "string"
    },
    "yaml": "string"
  },
  "hidden": true,
  "name": "string",
  "required": true,
  "use_instead": [
    {
      "annotations": {
        "property1": "string",
        "property2": "string"
      },
      "default": "string",
      "description": "string",
      "env": "string",
      "flag": "string",
      "flag_shorthand": "string",
      "group": {
        "description": "string",
        "name": "string",
        "parent": {
          "description": "string",
          "name": "string",
          "parent": {},
          "yaml": "string"
        },
        "yaml": "string"
      },
      "hidden": true,
      "name": "string",
      "required": true,
      "use_instead": [],
      "value": null,
      "value_source": "",
      "yaml": "string"
    }
  ],
  "value": null,
  "value_source": "",
  "yaml": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
annotationsserpent.AnnotationsfalseAnnotations enable extensions to serpent higher up in the stack. It's useful for help formatting and documentation generation.
defaultstringfalseDefault is parsed into Value if set.
descriptionstringfalse
envstringfalseEnv is the environment variable used to configure this option. If unset, environment configuring is disabled.
flagstringfalseFlag is the long name of the flag used to configure this option. If unset, flag configuring is disabled.
flag_shorthandstringfalseFlag shorthand is the one-character shorthand for the flag. If unset, no shorthand is used.
groupserpent.GroupfalseGroup is a group hierarchy that helps organize this option in help, configs and other documentation.
hiddenbooleanfalse
namestringfalse
requiredbooleanfalseRequired means this value must be set by some means. It requires ValueSource != ValueSourceNone If Default is set, then Required is ignored.
use_insteadarray of serpent.OptionfalseUse instead is a list of options that should be used instead of this one. The field is used to generate a deprecation warning.
valueanyfalseValue includes the types listed in values.go.
value_sourceserpent.ValueSourcefalse
yamlstringfalseYaml is the YAML key used to configure this option. If unset, YAML configuring is disabled.

serpent.Regexp

{}

Properties

None

serpent.Struct-array_codersdk_ExternalAuthConfig

{
  "value": [
    {
      "app_install_url": "string",
      "app_installations_url": "string",
      "auth_url": "string",
      "client_id": "string",
      "device_code_url": "string",
      "device_flow": true,
      "display_icon": "string",
      "display_name": "string",
      "extra_token_keys": ["string"],
      "id": "string",
      "no_refresh": true,
      "regex": "string",
      "scopes": ["string"],
      "token_url": "string",
      "type": "string",
      "validate_url": "string"
    }
  ]
}

Properties

NameTypeRequiredRestrictionsDescription
valuearray of codersdk.ExternalAuthConfigfalse

serpent.Struct-array_codersdk_LinkConfig

{
  "value": [
    {
      "icon": "bug",
      "name": "string",
      "target": "string"
    }
  ]
}

Properties

NameTypeRequiredRestrictionsDescription
valuearray of codersdk.LinkConfigfalse

serpent.URL

{
  "forceQuery": true,
  "fragment": "string",
  "host": "string",
  "omitHost": true,
  "opaque": "string",
  "path": "string",
  "rawFragment": "string",
  "rawPath": "string",
  "rawQuery": "string",
  "scheme": "string",
  "user": {}
}

Properties

NameTypeRequiredRestrictionsDescription
forceQuerybooleanfalseappend a query ('?') even if RawQuery is empty
fragmentstringfalsefragment for references, without '#'
hoststringfalsehost or host:port (see Hostname and Port methods)
omitHostbooleanfalsedo not emit empty host (authority)
opaquestringfalseencoded opaque data
pathstringfalsepath (relative paths may omit leading slash)
rawFragmentstringfalseencoded fragment hint (see EscapedFragment method)
rawPathstringfalseencoded path hint (see EscapedPath method)
rawQuerystringfalseencoded query values, without '?'
schemestringfalse
userurl.Userinfofalseusername and password information

serpent.ValueSource

""

Properties

Enumerated Values

Value
``
flag
env
yaml
default

tailcfg.DERPHomeParams

{
  "regionScore": {
    "property1": 0,
    "property2": 0
  }
}

Properties

NameTypeRequiredRestrictionsDescription
regionScoreobjectfalseRegionscore scales latencies of DERP regions by a given scaling factor when determining which region to use as the home ("preferred") DERP. Scores in the range (0, 1) will cause this region to be proportionally more preferred, and scores in the range (1, ∞) will penalize a region.

If a region is not present in this map, it is treated as having a score of 1.0. Scores should not be 0 or negative; such scores will be ignored. A nil map means no change from the previous value (if any); an empty non-nil map can be sent to reset all scores back to 1.0.| |» [any property]|number|false|||

tailcfg.DERPMap

{
  "homeParams": {
    "regionScore": {
      "property1": 0,
      "property2": 0
    }
  },
  "omitDefaultRegions": true,
  "regions": {
    "property1": {
      "avoid": true,
      "embeddedRelay": true,
      "nodes": [
        {
          "canPort80": true,
          "certName": "string",
          "derpport": 0,
          "forceHTTP": true,
          "hostName": "string",
          "insecureForTests": true,
          "ipv4": "string",
          "ipv6": "string",
          "name": "string",
          "regionID": 0,
          "stunonly": true,
          "stunport": 0,
          "stuntestIP": "string"
        }
      ],
      "regionCode": "string",
      "regionID": 0,
      "regionName": "string"
    },
    "property2": {
      "avoid": true,
      "embeddedRelay": true,
      "nodes": [
        {
          "canPort80": true,
          "certName": "string",
          "derpport": 0,
          "forceHTTP": true,
          "hostName": "string",
          "insecureForTests": true,
          "ipv4": "string",
          "ipv6": "string",
          "name": "string",
          "regionID": 0,
          "stunonly": true,
          "stunport": 0,
          "stuntestIP": "string"
        }
      ],
      "regionCode": "string",
      "regionID": 0,
      "regionName": "string"
    }
  }
}

Properties

NameTypeRequiredRestrictionsDescription
homeParamstailcfg.DERPHomeParamsfalseHomeparams if non-nil, is a change in home parameters.
The rest of the DEPRMap fields, if zero, means unchanged.
omitDefaultRegionsbooleanfalseOmitdefaultregions specifies to not use Tailscale's DERP servers, and only use those specified in this DERPMap. If there are none set outside of the defaults, this is a noop.
This field is only meaningful if the Regions map is non-nil (indicating a change).
regionsobjectfalseRegions is the set of geographic regions running DERP node(s).

It's keyed by the DERPRegion.RegionID. The numbers are not necessarily contiguous.| |» [any property]|tailcfg.DERPRegion|false|||

tailcfg.DERPNode

{
  "canPort80": true,
  "certName": "string",
  "derpport": 0,
  "forceHTTP": true,
  "hostName": "string",
  "insecureForTests": true,
  "ipv4": "string",
  "ipv6": "string",
  "name": "string",
  "regionID": 0,
  "stunonly": true,
  "stunport": 0,
  "stuntestIP": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
canPort80booleanfalseCanport80 specifies whether this DERP node is accessible over HTTP on port 80 specifically. This is used for captive portal checks.
certNamestringfalseCertname optionally specifies the expected TLS cert common name. If empty, HostName is used. If CertName is non-empty, HostName is only used for the TCP dial (if IPv4/IPv6 are not present) + TLS ClientHello.
derpportintegerfalseDerpport optionally provides an alternate TLS port number for the DERP HTTPS server.
If zero, 443 is used.
forceHTTPbooleanfalseForcehttp is used by unit tests to force HTTP. It should not be set by users.
hostNamestringfalseHostname is the DERP node's hostname.
It is required but need not be unique; multiple nodes may have the same HostName but vary in configuration otherwise.
insecureForTestsbooleanfalseInsecurefortests is used by unit tests to disable TLS verification. It should not be set by users.
ipv4stringfalseIpv4 optionally forces an IPv4 address to use, instead of using DNS. If empty, A record(s) from DNS lookups of HostName are used. If the string is not an IPv4 address, IPv4 is not used; the conventional string to disable IPv4 (and not use DNS) is "none".
ipv6stringfalseIpv6 optionally forces an IPv6 address to use, instead of using DNS. If empty, AAAA record(s) from DNS lookups of HostName are used. If the string is not an IPv6 address, IPv6 is not used; the conventional string to disable IPv6 (and not use DNS) is "none".
namestringfalseName is a unique node name (across all regions). It is not a host name. It's typically of the form "1b", "2a", "3b", etc. (region ID + suffix within that region)
regionIDintegerfalseRegionid is the RegionID of the DERPRegion that this node is running in.
stunonlybooleanfalseStunonly marks a node as only a STUN server and not a DERP server.
stunportintegerfalsePort optionally specifies a STUN port to use. Zero means 3478. To disable STUN on this node, use -1.
stuntestIPstringfalseStuntestip is used in tests to override the STUN server's IP. If empty, it's assumed to be the same as the DERP server.

tailcfg.DERPRegion

{
  "avoid": true,
  "embeddedRelay": true,
  "nodes": [
    {
      "canPort80": true,
      "certName": "string",
      "derpport": 0,
      "forceHTTP": true,
      "hostName": "string",
      "insecureForTests": true,
      "ipv4": "string",
      "ipv6": "string",
      "name": "string",
      "regionID": 0,
      "stunonly": true,
      "stunport": 0,
      "stuntestIP": "string"
    }
  ],
  "regionCode": "string",
  "regionID": 0,
  "regionName": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
avoidbooleanfalseAvoid is whether the client should avoid picking this as its home region. The region should only be used if a peer is there. Clients already using this region as their home should migrate away to a new region without Avoid set.
embeddedRelaybooleanfalseEmbeddedrelay is true when the region is bundled with the Coder control plane.
nodesarray of tailcfg.DERPNodefalseNodes are the DERP nodes running in this region, in priority order for the current client. Client TLS connections should ideally only go to the first entry (falling back to the second if necessary). STUN packets should go to the first 1 or 2.
If nodes within a region route packets amongst themselves, but not to other regions. That said, each user/domain should get a the same preferred node order, so if all nodes for a user/network pick the first one (as they should, when things are healthy), the inter-cluster routing is minimal to zero.
regionCodestringfalseRegioncode is a short name for the region. It's usually a popular city or airport code in the region: "nyc", "sf", "sin", "fra", etc.
regionIDintegerfalseRegionid is a unique integer for a geographic region.

It corresponds to the legacy derpN.tailscale.com hostnames used by older clients. (Older clients will continue to resolve derpN.tailscale.com when contacting peers, rather than use the server-provided DERPMap) RegionIDs must be non-zero, positive, and guaranteed to fit in a JavaScript number. RegionIDs in range 900-999 are reserved for end users to run their own DERP nodes.| |regionName|string|false||Regionname is a long English name for the region: "New York City", "San Francisco", "Singapore", "Frankfurt", etc.|

url.Userinfo

{}

Properties

None

workspaceapps.AccessMethod

"path"

Properties

Enumerated Values

Value
path
subdomain
terminal

workspaceapps.IssueTokenRequest

{
  "app_hostname": "string",
  "app_path": "string",
  "app_query": "string",
  "app_request": {
    "access_method": "path",
    "agent_name_or_id": "string",
    "app_prefix": "string",
    "app_slug_or_port": "string",
    "base_path": "string",
    "username_or_id": "string",
    "workspace_name_or_id": "string"
  },
  "path_app_base_url": "string",
  "session_token": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
app_hostnamestringfalseApp hostname is the optional hostname for subdomain apps on the external proxy. It must start with an asterisk.
app_pathstringfalseApp path is the path of the user underneath the app base path.
app_querystringfalseApp query is the query parameters the user provided in the app request.
app_requestworkspaceapps.Requestfalse
path_app_base_urlstringfalsePath app base URL is required.
session_tokenstringfalseSession token is the session token provided by the user.

workspaceapps.Request

{
  "access_method": "path",
  "agent_name_or_id": "string",
  "app_prefix": "string",
  "app_slug_or_port": "string",
  "base_path": "string",
  "username_or_id": "string",
  "workspace_name_or_id": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
access_methodworkspaceapps.AccessMethodfalse
agent_name_or_idstringfalseAgent name or ID is not required if the workspace has only one agent.
app_prefixstringfalsePrefix is the prefix of the subdomain app URL. Prefix should have a trailing "---" if set.
app_slug_or_portstringfalse
base_pathstringfalseBase path of the app. For path apps, this is the path prefix in the router for this particular app. For subdomain apps, this should be "/". This is used for setting the cookie path.
username_or_idstringfalseFor the following fields, if the AccessMethod is AccessMethodTerminal, then only AgentNameOrID may be set and it must be a UUID. The other fields must be left blank.
workspace_name_or_idstringfalse

workspaceapps.StatsReport

{
  "access_method": "path",
  "agent_id": "string",
  "requests": 0,
  "session_ended_at": "string",
  "session_id": "string",
  "session_started_at": "string",
  "slug_or_port": "string",
  "user_id": "string",
  "workspace_id": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
access_methodworkspaceapps.AccessMethodfalse
agent_idstringfalse
requestsintegerfalse
session_ended_atstringfalseUpdated periodically while app is in use active and when the last connection is closed.
session_idstringfalse
session_started_atstringfalse
slug_or_portstringfalse
user_idstringfalse
workspace_idstringfalse

workspacesdk.AgentConnectionInfo

{
  "derp_force_websockets": true,
  "derp_map": {
    "homeParams": {
      "regionScore": {
        "property1": 0,
        "property2": 0
      }
    },
    "omitDefaultRegions": true,
    "regions": {
      "property1": {
        "avoid": true,
        "embeddedRelay": true,
        "nodes": [
          {
            "canPort80": true,
            "certName": "string",
            "derpport": 0,
            "forceHTTP": true,
            "hostName": "string",
            "insecureForTests": true,
            "ipv4": "string",
            "ipv6": "string",
            "name": "string",
            "regionID": 0,
            "stunonly": true,
            "stunport": 0,
            "stuntestIP": "string"
          }
        ],
        "regionCode": "string",
        "regionID": 0,
        "regionName": "string"
      },
      "property2": {
        "avoid": true,
        "embeddedRelay": true,
        "nodes": [
          {
            "canPort80": true,
            "certName": "string",
            "derpport": 0,
            "forceHTTP": true,
            "hostName": "string",
            "insecureForTests": true,
            "ipv4": "string",
            "ipv6": "string",
            "name": "string",
            "regionID": 0,
            "stunonly": true,
            "stunport": 0,
            "stuntestIP": "string"
          }
        ],
        "regionCode": "string",
        "regionID": 0,
        "regionName": "string"
      }
    }
  },
  "disable_direct_connections": true
}

Properties

NameTypeRequiredRestrictionsDescription
derp_force_websocketsbooleanfalse
derp_maptailcfg.DERPMapfalse
disable_direct_connectionsbooleanfalse

wsproxysdk.DeregisterWorkspaceProxyRequest

{
  "replica_id": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
replica_idstringfalseReplica ID is a unique identifier for the replica of the proxy that is deregistering. It should be generated by the client on startup and should've already been passed to the register endpoint.

wsproxysdk.IssueSignedAppTokenResponse

{
  "signed_token_str": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
signed_token_strstringfalseSigned token str should be set as a cookie on the response.

wsproxysdk.RegisterWorkspaceProxyRequest

{
  "access_url": "string",
  "derp_enabled": true,
  "derp_only": true,
  "hostname": "string",
  "replica_error": "string",
  "replica_id": "string",
  "replica_relay_address": "string",
  "version": "string",
  "wildcard_hostname": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
access_urlstringfalseAccess URL that hits the workspace proxy api.
derp_enabledbooleanfalseDerp enabled indicates whether the proxy should be included in the DERP map or not.
derp_onlybooleanfalseDerp only indicates whether the proxy should only be included in the DERP map and should not be used for serving apps.
hostnamestringfalseHostname is the OS hostname of the machine that the proxy is running on. This is only used for tracking purposes in the replicas table.
replica_errorstringfalseReplica error is the error that the replica encountered when trying to dial it's peers. This is stored in the replicas table for debugging purposes but does not affect the proxy's ability to register.
This value is only stored on subsequent requests to the register endpoint, not the first request.
replica_idstringfalseReplica ID is a unique identifier for the replica of the proxy that is registering. It should be generated by the client on startup and persisted (in memory only) until the process is restarted.
replica_relay_addressstringfalseReplica relay address is the DERP address of the replica that other replicas may use to connect internally for DERP meshing.
versionstringfalseVersion is the Coder version of the proxy.
wildcard_hostnamestringfalseWildcard hostname that the workspace proxy api is serving for subdomain apps.

wsproxysdk.RegisterWorkspaceProxyResponse

{
  "app_security_key": "string",
  "derp_force_websockets": true,
  "derp_map": {
    "homeParams": {
      "regionScore": {
        "property1": 0,
        "property2": 0
      }
    },
    "omitDefaultRegions": true,
    "regions": {
      "property1": {
        "avoid": true,
        "embeddedRelay": true,
        "nodes": [
          {
            "canPort80": true,
            "certName": "string",
            "derpport": 0,
            "forceHTTP": true,
            "hostName": "string",
            "insecureForTests": true,
            "ipv4": "string",
            "ipv6": "string",
            "name": "string",
            "regionID": 0,
            "stunonly": true,
            "stunport": 0,
            "stuntestIP": "string"
          }
        ],
        "regionCode": "string",
        "regionID": 0,
        "regionName": "string"
      },
      "property2": {
        "avoid": true,
        "embeddedRelay": true,
        "nodes": [
          {
            "canPort80": true,
            "certName": "string",
            "derpport": 0,
            "forceHTTP": true,
            "hostName": "string",
            "insecureForTests": true,
            "ipv4": "string",
            "ipv6": "string",
            "name": "string",
            "regionID": 0,
            "stunonly": true,
            "stunport": 0,
            "stuntestIP": "string"
          }
        ],
        "regionCode": "string",
        "regionID": 0,
        "regionName": "string"
      }
    }
  },
  "derp_mesh_key": "string",
  "derp_region_id": 0,
  "sibling_replicas": [
    {
      "created_at": "2019-08-24T14:15:22Z",
      "database_latency": 0,
      "error": "string",
      "hostname": "string",
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "region_id": 0,
      "relay_address": "string"
    }
  ]
}

Properties

NameTypeRequiredRestrictionsDescription
app_security_keystringfalse
derp_force_websocketsbooleanfalse
derp_maptailcfg.DERPMapfalse
derp_mesh_keystringfalse
derp_region_idintegerfalse
sibling_replicasarray of codersdk.ReplicafalseSibling replicas is a list of all other replicas of the proxy that have not timed out.

wsproxysdk.ReportAppStatsRequest

{
  "stats": [
    {
      "access_method": "path",
      "agent_id": "string",
      "requests": 0,
      "session_ended_at": "string",
      "session_id": "string",
      "session_started_at": "string",
      "slug_or_port": "string",
      "user_id": "string",
      "workspace_id": "string"
    }
  ]
}

Properties

NameTypeRequiredRestrictionsDescription
statsarray of workspaceapps.StatsReportfalse
See an opportunity to improve our docs? Make an edit.
On this page