Datto /v2/site API

Operations on sites

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/datto-v2-site-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

datto-v2-site-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Datto RMM /v2/account /v2/account /v2/site API
  description: Datto RMM (Remote Monitoring and Management) REST API
  license:
    name: '©Datto, Inc. - All rights reserved. '
    url: http://www.datto.com/
  version: 2.0.0 (Build 201_aadf6556fb176a75fbb9b2aad0f0d2301d64c88a)
servers:
- url: https://concord-api.centrastage.net/api
  description: Generated server url
tags:
- name: /v2/site
  description: Operations on sites
paths:
  /v2/site:
    put:
      tags:
      - /v2/site
      summary: Creates a new site in the authenticated user's account.
      operationId: create
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSiteRequest'
        required: true
      responses:
        '500':
          description: Internal Server Error
        '409':
          description: Conflict
        '400':
          description: Request is invalid.
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Site'
        '401':
          description: Request can not be authorized.
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Site'
  /v2/site/{siteUid}/variable:
    put:
      tags:
      - /v2/site
      summary: Creates a site variable in the site identified by the given site Uid.
      operationId: createSiteVariable
      parameters:
      - name: siteUid
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Variable Creation Request'
        required: true
      responses:
        '500':
          description: Internal Server Error
        '409':
          description: Request aborted due to concurrent write access to this record.
        '403':
          description: Authenticated user doesn't have access to this resource.
        '400':
          description: Request parameters are invalid.
        '404':
          description: Variable was not found.
        '401':
          description: Request can not be authorized.
  /v2/site/{siteUid}:
    get:
      tags:
      - /v2/site
      summary: Fetches data of the site (including total number of devices) identified by the given site Uid.
      operationId: getSite
      parameters:
      - name: siteUid
        in: path
        required: true
        schema:
          type: string
      responses:
        '500':
          description: Internal Server Error
        '409':
          description: Conflict
        '404':
          description: Site was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Site'
        '403':
          description: Authenticated user doesn't have access to this resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Site'
        '401':
          description: Request can not be authorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Site'
    post:
      tags:
      - /v2/site
      summary: Updates the site identified by the given site Uid.
      operationId: update
      parameters:
      - name: siteUid
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SiteRequest'
        required: true
      responses:
        '500':
          description: Internal Server Error
        '409':
          description: Request aborted due to concurrent write access to this record.
        '403':
          description: Authenticated user doesn't have access to this resource.
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Site'
        '400':
          description: Request is invalid.
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Site'
        '401':
          description: Request can not be authorized.
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Site'
        '404':
          description: Site was not found.
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Site'
  /v2/site/{siteUid}/variable/{variableId}:
    post:
      tags:
      - /v2/site
      summary: Updates the site variable identified by the given site Uid and variable Id.
      operationId: updateSiteVariable
      parameters:
      - name: siteUid
        in: path
        required: true
        schema:
          type: string
      - name: variableId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Variable Update Request'
        required: true
      responses:
        '500':
          description: Internal Server Error
        '409':
          description: Request aborted due to concurrent write access to this record.
        '403':
          description: Authenticated user doesn't have access to this resource.
        '400':
          description: Request parameters are invalid.
        '404':
          description: Variable was not found.
        '401':
          description: Request can not be authorized.
    delete:
      tags:
      - /v2/site
      summary: Deletes the site variable identified by the given site Uid and variable Id.
      operationId: deleteSiteVariable
      parameters:
      - name: siteUid
        in: path
        required: true
        schema:
          type: string
      - name: variableId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '500':
          description: Internal Server Error
        '409':
          description: Request aborted due to concurrent write access to this record.
        '403':
          description: Authenticated user doesn't have access to this resource.
        '400':
          description: Request parameters are invalid.
        '404':
          description: Variable was not found.
        '401':
          description: Request can not be authorized.
  /v2/site/{siteUid}/settings/proxy:
    post:
      tags:
      - /v2/site
      summary: Creates/updates the proxy settings for the site identified by the given site Uid.
      operationId: updateProxy
      parameters:
      - name: siteUid
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProxySettings'
        required: true
      responses:
        '500':
          description: Internal Server Error
        '409':
          description: Request aborted due to concurrent write access to this record.
        '403':
          description: Authenticated user doesn't have access to this resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SiteSettings'
        '400':
          description: Request parameters are invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SiteSettings'
        '404':
          description: Site was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SiteSettings'
        '401':
          description: Request can not be authorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SiteSettings'
    delete:
      tags:
      - /v2/site
      summary: Deletes site proxy settings for the site identified by the given site Uid.
      operationId: deleteProxy
      parameters:
      - name: siteUid
        in: path
        required: true
        schema:
          type: string
      responses:
        '500':
          description: Internal Server Error
        '409':
          description: Request aborted due to concurrent write access to this record.
        '404':
          description: Site was not found.
        '403':
          description: Authenticated user doesn't have access to this resource.
        '401':
          description: Request can not be authorized.
        '204':
          description: Nothing was done because the proxy data doesn't exist.
  /v2/site/{siteUid}/variables:
    get:
      tags:
      - /v2/site
      summary: Fetches the variables of the site identified by the given site Uid.
      operationId: getSiteVariables
      parameters:
      - name: siteUid
        in: path
        required: true
        schema:
          type: string
      - name: page
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: max
        in: query
        required: false
        schema:
          type: integer
          format: int32
      responses:
        '500':
          description: Internal Server Error
        '409':
          description: Conflict
        '404':
          description: Site was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VariablesPage'
        '403':
          description: Authenticated user doesn't have access to this resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VariablesPage'
        '401':
          description: Request can not be authorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VariablesPage'
  /v2/site/{siteUid}/settings:
    get:
      tags:
      - /v2/site
      summary: Fetches settings of the site identified by the given site Uid.
      operationId: getSiteSettings
      parameters:
      - name: siteUid
        in: path
        required: true
        schema:
          type: string
      responses:
        '500':
          description: Internal Server Error
        '409':
          description: Conflict
        '404':
          description: Site was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SiteSettings'
        '403':
          description: Authenticated user doesn't have access to this resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SiteSettings'
        '401':
          description: Request can not be authorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SiteSettings'
  /v2/site/{siteUid}/filters:
    get:
      tags:
      - /v2/site
      summary: Fetches the site device filters (that the user can see with administrator role) of the site identified by the given site Uid.
      operationId: getSiteDeviceFilters
      parameters:
      - name: siteUid
        in: path
        required: true
        schema:
          type: string
      - name: page
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: max
        in: query
        required: false
        schema:
          type: integer
          format: int32
      responses:
        '500':
          description: Internal Server Error
        '409':
          description: Conflict
        '404':
          description: Site was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FiltersPage'
        '403':
          description: Authenticated user doesn't have access to this resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FiltersPage'
        '401':
          description: Request can not be authorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FiltersPage'
  /v2/site/{siteUid}/devices:
    get:
      tags:
      - /v2/site
      summary: Fetches the devices records of the site identified by the given site Uid.
      operationId: getSiteDevices
      parameters:
      - name: siteUid
        in: path
        required: true
        schema:
          type: string
      - name: page
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: max
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: filterId
        in: query
        required: false
        schema:
          type: integer
          format: int64
      responses:
        '500':
          description: Internal Server Error
        '409':
          description: Conflict
        '404':
          description: Site or filter not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DevicesPage'
        '403':
          description: Authenticated user doesn't have access to this resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DevicesPage'
        '401':
          description: Request can not be authorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DevicesPage'
  /v2/site/{siteUid}/devices/network-interface:
    get:
      tags:
      - /v2/site
      summary: Fetches the shortened devices records with network interface information of the site identified by the given site Uid.
      operationId: getSiteDevicesWithNetworkInterface
      parameters:
      - name: siteUid
        in: path
        required: true
        schema:
          type: string
      - name: page
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: max
        in: query
        required: false
        schema:
          type: integer
          format: int32
      responses:
        '500':
          description: Internal Server Error
        '409':
          description: Conflict
        '404':
          description: Site or filter not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DevicesNetworkInterfacePage'
        '403':
          description: Authenticated user doesn't have access to this resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DevicesNetworkInterfacePage'
        '401':
          description: Request can not be authorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DevicesNetworkInterfacePage'
  /v2/site/{siteUid}/alerts/resolved:
    get:
      tags:
      - /v2/site
      summary: Fetches the resolved alerts of the site identified by the given site Uid.
      description: If the muted parameter is not provided, both muted and umuted alerts will be queried.
      operationId: getSiteResolvedAlerts
      parameters:
      - name: siteUid
        in: path
        required: true
        schema:
          type: string
      - name: page
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: max
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: muted
        in: query
        required: false
        schema:
          type: boolean
      responses:
        '500':
          description: Internal Server Error
        '409':
          description: Conflict
        '404':
          description: Site was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AlertsPage'
        '403':
          description: Authenticated user doesn't have access to this resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AlertsPage'
        '401':
          description: Request can not be authorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AlertsPage'
  /v2/site/{siteUid}/alerts/open:
    get:
      tags:
      - /v2/site
      summary: Fetches the open alerts of the site identified by the given site Uid.
      description: If the muted parameter is not provided, both muted and umuted alerts will be queried.
      operationId: getSiteOpenAlerts
      parameters:
      - name: siteUid
        in: path
        required: true
        schema:
          type: string
      - name: page
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: max
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: muted
        in: query
        required: false
        schema:
          type: boolean
      responses:
        '500':
          description: Internal Server Error
        '409':
          description: Conflict
        '404':
          description: Site was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AlertsPage'
        '403':
          description: Authenticated user doesn't have access to this resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AlertsPage'
        '401':
          description: Request can not be authorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AlertsPage'
components:
  schemas:
    AlertMonitorInfo:
      type: object
      description: Alert monitor information
      properties:
        sendsEmails:
          type: boolean
        createsTicket:
          type: boolean
    DevicesPage:
      type: object
      description: Devices page
      properties:
        pageDetails:
          $ref: '#/components/schemas/PaginationData'
        devices:
          type: array
          items:
            $ref: '#/components/schemas/Device'
    DevicesNetworkInterfacePage:
      type: object
      description: Devices Network Interface page
      properties:
        pageDetails:
          $ref: '#/components/schemas/PaginationData'
        devices:
          type: array
          items:
            $ref: '#/components/schemas/Device Network Interface'
    Filter:
      type: object
      description: Filter data
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
        description:
          type: string
        type:
          type: string
          enum:
          - rmm_default
          - custom
          - site
        dateCreate:
          type: string
          format: date-time
        lastUpdated:
          type: string
          format: date-time
    NetworkInterface:
      type: object
      description: Network interface audit data
      properties:
        instance:
          type: string
        ipv4:
          type: string
        ipv6:
          type: string
        macAddress:
          type: string
        type:
          type: string
    SiteSettings:
      type: object
      description: Site settings data
      properties:
        generalSettings:
          $ref: '#/components/schemas/GeneralSettings'
        proxySettings:
          $ref: '#/components/schemas/ProxySettings'
        mailRecipients:
          type: array
          items:
            $ref: '#/components/schemas/MailRecipient'
    EventLogContext:
      allOf:
      - $ref: '#/components/schemas/AlertContext'
      - type: object
        properties:
          logName:
            type: string
          code:
            type: string
          type:
            type: string
          source:
            type: string
          description:
            type: string
          triggerCount:
            type: integer
            format: int32
          lastTriggered:
            type: string
            format: date-time
          causedSuspension:
            type: boolean
    TemperatureContext:
      allOf:
      - $ref: '#/components/schemas/AlertContext'
      - type: object
        properties:
          degree:
            type: number
            format: float
          type:
            type: string
            enum:
            - CPU
            - MEMORY
            - TEMPERATURE
            - FAN
            - DISKHEALTH
            - PSU
            - SNMP_THROUGHPUT
    CustomSNMPContext:
      allOf:
      - $ref: '#/components/schemas/AlertContext'
      - type: object
        properties:
          displayName:
            type: string
          currentValue:
            type: string
          monitorInstance:
            type: string
    Udf:
      type: object
      description: User defined fields
      properties:
        udf1:
          type: string
        udf2:
          type: string
        udf3:
          type: string
        udf4:
          type: string
        udf5:
          type: string
        udf6:
          type: string
        udf7:
          type: string
        udf8:
          type: string
        udf9:
          type: string
        udf10:
          type: string
        udf11:
          type: string
        udf12:
          type: string
        udf13:
          type: string
        udf14:
          type: string
        udf15:
          type: string
        udf16:
          type: string
        udf17:
          type: string
        udf18:
          type: string
        udf19:
          type: string
        udf20:
          type: string
        udf21:
          type: string
        udf22:
          type: string
        udf23:
          type: string
        udf24:
          type: string
        udf25:
          type: string
        udf26:
          type: string
        udf27:
          type: string
        udf28:
          type: string
        udf29:
          type: string
        udf30:
          type: string
        udf31:
          type: string
        udf32:
          type: string
        udf33:
          type: string
        udf34:
          type: string
        udf35:
          type: string
        udf36:
          type: string
        udf37:
          type: string
        udf38:
          type: string
        udf39:
          type: string
        udf40:
          type: string
        udf41:
          type: string
        udf42:
          type: string
        udf43:
          type: string
        udf44:
          type: string
        udf45:
          type: string
        udf46:
          type: string
        udf47:
          type: string
        udf48:
          type: string
        udf49:
          type: string
        udf50:
          type: string
        udf51:
          type: string
        udf52:
          type: string
        udf53:
          type: string
        udf54:
          type: string
        udf55:
          type: string
        udf56:
          type: string
        udf57:
          type: string
        udf58:
          type: string
        udf59:
          type: string
        udf60:
          type: string
        udf61:
          type: string
        udf62:
          type: string
        udf63:
          type: string
        udf64:
          type: string
        udf65:
          type: string
        udf66:
          type: string
        udf67:
          type: string
        udf68:
          type: string
        udf69:
          type: string
        udf70:
          type: string
        udf71:
          type: string
        udf72:
          type: string
        udf73:
          type: string
        udf74:
          type: string
        udf75:
          type: string
        udf76:
          type: string
        udf77:
          type: string
        udf78:
          type: string
        udf79:
          type: string
        udf80:
          type: string
        udf81:
          type: string
        udf82:
          type: string
        udf83:
          type: string
        udf84:
          type: string
        udf85:
          type: string
        udf86:
          type: string
        udf87:
          type: string
        udf88:
          type: string
        udf89:
          type: string
        udf90:
          type: string
        udf91:
          type: string
        udf92:
          type: string
        udf93:
          type: string
        udf94:
          type: string
        udf95:
          type: string
        udf96:
          type: string
        udf97:
          type: string
        udf98:
          type: string
        udf99:
          type: string
        udf100:
          type: string
        udf101:
          type: string
        udf102:
          type: string
        udf103:
          type: string
        udf104:
          type: string
        udf105:
          type: string
        udf106:
          type: string
        udf107:
          type: string
        udf108:
          type: string
        udf109:
          type: string
        udf110:
          type: string
        udf111:
          type: string
        udf112:
          type: string
        udf113:
          type: string
        udf114:
          type: string
        udf115:
          type: string
        udf116:
          type: string
        udf117:
          type: string
        udf118:
          type: string
        udf119:
          type: string
        udf120:
          type: string
        udf121:
          type: string
        udf122:
          type: string
        udf123:
          type: string
        udf124:
          type: string
        udf125:
          type: string
        udf126:
          type: string
        udf127:
          type: string
        udf128:
          type: string
        udf129:
          type: string
        udf130:
          type: string
        udf131:
          type: string
        udf132:
          type: string
        udf133:
          type: string
        udf134:
          type: string
        udf135:
          type: string
        udf136:
          type: string
        udf137:
          type: string
        udf138:
          type: string
        udf139:
          type: string
        udf140:
          type: string
        udf141:
          type: string
        udf142:
          type: string
        udf143:
          type: string
        udf144:
          type: string
        udf145:
          type: string
        udf146:
          type: string
        udf147:
          type: string
        udf148:
          type: string
        udf149:
          type: string
        udf150:
          type: string
        udf151:
          type: string
        udf152:
          type: string
        udf153:
          type: string
        udf154:
          type: string
        udf155:
          type: string
        udf156:
          type: string
        udf157:
          type: string
        udf158:
          type: string
        udf159:
          type: string
        udf160:
          type: string
        udf161:
          type: string
        udf162:
          type: string
        udf163:
          type: string
        udf164:
          type: string
        udf165:
          type: string
        udf166:
          type: string
        udf167:
          type: string
        udf168:
          type: string
        udf169:
          type: string
        udf170:
          type: string
        udf171:
          type: string
        udf172:
          type: string
        udf173:
          type: string
        udf174:
          type: string
        udf175:
          type: string
        udf176:
          type: string
        udf177:
          type: string
        udf178:
          type: string
        udf179:
          type: string
        udf180:
          type: string
        udf181:
          type: string
        udf182:
          type: string
        udf183:
          type: string
        udf184:
          type: string
        udf185:
          type: string
        udf186:
          type: string
        udf187:
          type: string
        udf188:
          type: string
        udf189:
          type: string
        udf190:
          type: string
        udf191:
          type: string
        udf192:
          type: string
        udf193:
          type: string
        udf194:
          type: string
        udf195:
          type: string
        udf196:
          type: string
        udf197:
          type: string
        udf198:
          type: string
        udf199:
          type: string
        udf200:
          type: string
        udf201:
          type: string
        udf202:
          type: string
        udf203:
          type: string
        udf204:
          type: string
        udf205:
          type: string
        udf206:
          type: string
        udf207:
          type: string
        udf208:
          type: string
        udf209:
          type: string
        udf210:
          type: string
        udf211:
          type: string
        udf212:
          type: string
        udf213:
          type: string
        udf214:
          type: string
        udf215:
          type: string
        udf216:
          type: string
        udf217:
          type: string
        udf218:
          type: string
        udf219:
          type: string
        udf220:
          type: string
        udf221:
          type: string
        udf222:
          type: string
        udf223:
          type: string
        udf224:
          type: string
        udf225:
          type: string
        udf226:
          type: string
        udf227:
          type: string
        udf228:
          type: string
        udf229:
          type: string
        udf230:
          type: string
        udf231:
          type: string
        udf232:
          type: string
        udf233:
          type: string
        udf234:
          type: string
        udf235:
          type: string
        udf236:
          type: string
        udf237:
          type: string
        udf238:
          type: string
        udf239:
          type: string
        udf240:
          type: string
        udf241:
          type: string
        udf242:
          type: string
        udf243:
          type: string
        udf244:
          type: string
        udf245:
          type: string
        udf246:
          type: string
        udf247:
          type: string
        udf248:
          type: string
        udf249:
          type: string
        udf250:
          type: string
        udf251:
          type: string
        udf252:
          type: string
        udf253:
          type: string
        udf254:
          type: string
        udf255:
          type: string
        udf256:
          type: string
        udf257:
          type: string
        udf258:
          type: string
        udf259:
          type: string
        udf260:
          type: string
        udf261:
          type: string
        udf262:
          type: string
        udf263:
          type: string
        udf264:
          type: string
        udf265:
          type: string
        udf266:
          type: string
        udf267:
          type: string
        udf268:
          type: string
        udf269:
          type: string
        udf270:
          type: string
        udf271:
          type: string
        udf272:
          type: string
        udf273:
          type: string
        udf274:
          type: string
        udf275:
          type: string
        udf276:
          type: string
        udf277:
          type: string
        udf278:
          type: string
        udf279:
          type: string
        udf280:
          type: string
        udf281:
          type: string
        udf282:
          type: string
        udf283:
          type: string
        udf284:
          type: string
        udf285:
          type: string
        udf286:
          type: string
        udf287:
          type: string
        udf288:
          type: string
        udf289:
          type: string
        udf

# --- truncated at 32 KB (53 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/datto/refs/heads/main/openapi/datto-v2-site-api-openapi.yml