content: {
    "$schema": "https://json-schema.org/draft/2019-09/schema#",
    "additionalProperties": false,
    "definitions": {
      "blkio_limit": {
        "additionalProperties": false,
        "properties": {
          "path": {
            "type": "string"
          },
          "rate": {
            "type": [
              "integer",
              "string"
            ]
          }
        },
        "type": "object"
      },
      "blkio_weight": {
        "additionalProperties": false,
        "properties": {
          "path": {
            "type": "string"
          },
          "weight": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "command": {
        "oneOf": [
          {
            "type": "null"
          },
          {
            "type": "string"
          },
          {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        ]
      },
      "config": {
        "additionalProperties": false,
        "id": "#/definitions/config",
        "patternProperties": {
          "^x-": {}
        },
        "properties": {
          "external": {
            "properties": {
              "name": {
                "deprecated": true,
                "type": "string"
              }
            },
            "type": [
              "boolean",
              "object"
            ]
          },
          "file": {
            "type": "string"
          },
          "labels": {
            "$ref": "#/definitions/list_or_dict"
          },
          "name": {
            "type": "string"
          },
          "template_driver": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "constraints": {
        "service": {
          "anyOf": [
            {
              "required": [
                "build"
              ]
            },
            {
              "required": [
                "image"
              ]
            }
          ],
          "id": "#/definitions/constraints/service",
          "properties": {
            "build": {
              "required": [
                "context"
              ]
            }
          }
        }
      },
      "deployment": {
        "additionalProperties": false,
        "id": "#/definitions/deployment",
        "patternProperties": {
          "^x-": {}
        },
        "properties": {
          "endpoint_mode": {
            "type": "string"
          },
          "labels": {
            "$ref": "#/definitions/list_or_dict"
          },
          "mode": {
            "type": "string"
          },
          "placement": {
            "additionalProperties": false,
            "patternProperties": {
              "^x-": {}
            },
            "properties": {
              "constraints": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "max_replicas_per_node": {
                "type": "integer"
              },
              "preferences": {
                "items": {
                  "additionalProperties": false,
                  "patternProperties": {
                    "^x-": {}
                  },
                  "properties": {
                    "spread": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              }
            },
            "type": "object"
          },
          "replicas": {
            "type": "integer"
          },
          "resources": {
            "additionalProperties": false,
            "patternProperties": {
              "^x-": {}
            },
            "properties": {
              "limits": {
                "additionalProperties": false,
                "patternProperties": {
                  "^x-": {}
                },
                "properties": {
                  "cpus": {
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "memory": {
                    "type": "string"
                  },
                  "pids": {
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "reservations": {
                "additionalProperties": false,
                "patternProperties": {
                  "^x-": {}
                },
                "properties": {
                  "cpus": {
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "devices": {
                    "$ref": "#/definitions/devices"
                  },
                  "generic_resources": {
                    "$ref": "#/definitions/generic_resources"
                  },
                  "memory": {
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "restart_policy": {
            "additionalProperties": false,
            "patternProperties": {
              "^x-": {}
            },
            "properties": {
              "condition": {
                "type": "string"
              },
              "delay": {
                "format": "duration",
                "type": "string"
              },
              "max_attempts": {
                "type": "integer"
              },
              "window": {
                "format": "duration",
                "type": "string"
              }
            },
            "type": "object"
          },
          "rollback_config": {
            "additionalProperties": false,
            "patternProperties": {
              "^x-": {}
            },
            "properties": {
              "delay": {
                "format": "duration",
                "type": "string"
              },
              "failure_action": {
                "type": "string"
              },
              "max_failure_ratio": {
                "type": "number"
              },
              "monitor": {
                "format": "duration",
                "type": "string"
              },
              "order": {
                "enum": [
                  "start-first",
                  "stop-first"
                ],
                "type": "string"
              },
              "parallelism": {
                "type": "integer"
              }
            },
            "type": "object"
          },
          "update_config": {
            "additionalProperties": false,
            "patternProperties": {
              "^x-": {}
            },
            "properties": {
              "delay": {
                "format": "duration",
                "type": "string"
              },
              "failure_action": {
                "type": "string"
              },
              "max_failure_ratio": {
                "type": "number"
              },
              "monitor": {
                "format": "duration",
                "type": "string"
              },
              "order": {
                "enum": [
                  "start-first",
                  "stop-first"
                ],
                "type": "string"
              },
              "parallelism": {
                "type": "integer"
              }
            },
            "type": "object"
          }
        },
        "type": [
          "object",
          "null"
        ]
      },
      "devices": {
        "id": "#/definitions/devices",
        "items": {
          "additionalProperties": false,
          "patternProperties": {
            "^x-": {}
          },
          "properties": {
            "capabilities": {
              "$ref": "#/definitions/list_of_strings"
            },
            "count": {
              "type": [
                "string",
                "integer"
              ]
            },
            "device_ids": {
              "$ref": "#/definitions/list_of_strings"
            },
            "driver": {
              "type": "string"
            },
            "options": {
              "$ref": "#/definitions/list_or_dict"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "generic_resources": {
        "id": "#/definitions/generic_resources",
        "items": {
          "additionalProperties": false,
          "patternProperties": {
            "^x-": {}
          },
          "properties": {
            "discrete_resource_spec": {
              "additionalProperties": false,
              "patternProperties": {
                "^x-": {}
              },
              "properties": {
                "kind": {
                  "type": "string"
                },
                "value": {
                  "type": "number"
                }
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "healthcheck": {
        "additionalProperties": false,
        "id": "#/definitions/healthcheck",
        "patternProperties": {
          "^x-": {}
        },
        "properties": {
          "disable": {
            "type": "boolean"
          },
          "interval": {
            "format": "duration",
            "type": "string"
          },
          "retries": {
            "type": "number"
          },
          "start_interval": {
            "format": "duration",
            "type": "string"
          },
          "start_period": {
            "format": "duration",
            "type": "string"
          },
          "test": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              }
            ]
          },
          "timeout": {
            "format": "duration",
            "type": "string"
          }
        },
        "type": "object"
      },
      "include": {
        "id": "#/definitions/include",
        "oneOf": [
          {
            "type": "string"
          },
          {
            "additionalProperties": false,
            "properties": {
              "env_file": {
                "$ref": "#/definitions/string_or_list"
              },
              "path": {
                "$ref": "#/definitions/string_or_list"
              },
              "project_directory": {
                "type": "string"
              }
            },
            "type": "object"
          }
        ]
      },
      "list_of_strings": {
        "items": {
          "type": "string"
        },
        "type": "array",
        "uniqueItems": true
      },
      "list_or_dict": {
        "oneOf": [
          {
            "additionalProperties": false,
            "patternProperties": {
              ".+": {
                "type": [
                  "string",
                  "number",
                  "boolean",
                  "null"
                ]
              }
            },
            "type": "object"
          },
          {
            "items": {
              "type": "string"
            },
            "type": "array",
            "uniqueItems": true
          }
        ]
      },
      "network": {
        "additionalProperties": false,
        "id": "#/definitions/network",
        "patternProperties": {
          "^x-": {}
        },
        "properties": {
          "attachable": {
            "type": "boolean"
          },
          "driver": {
            "type": "string"
          },
          "driver_opts": {
            "patternProperties": {
              "^.+$": {
                "type": [
                  "string",
                  "number"
                ]
              }
            },
            "type": "object"
          },
          "enable_ipv6": {
            "type": "boolean"
          },
          "external": {
            "additionalProperties": false,
            "patternProperties": {
              "^x-": {}
            },
            "properties": {
              "name": {
                "deprecated": true,
                "type": "string"
              }
            },
            "type": [
              "boolean",
              "object"
            ]
          },
          "internal": {
            "type": "boolean"
          },
          "ipam": {
            "additionalProperties": false,
            "patternProperties": {
              "^x-": {}
            },
            "properties": {
              "config": {
                "items": {
                  "additionalProperties": false,
                  "patternProperties": {
                    "^x-": {}
                  },
                  "properties": {
                    "aux_addresses": {
                      "additionalProperties": false,
                      "patternProperties": {
                        "^.+$": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "gateway": {
                      "type": "string"
                    },
                    "ip_range": {
                      "type": "string"
                    },
                    "subnet": {
                      "format": "subnet_ip_address",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "driver": {
                "type": "string"
              },
              "options": {
                "additionalProperties": false,
                "patternProperties": {
                  "^.+$": {
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "labels": {
            "$ref": "#/definitions/list_or_dict"
          },
          "name": {
            "type": "string"
          }
        },
        "type": [
          "object",
          "null"
        ]
      },
      "secret": {
        "additionalProperties": false,
        "id": "#/definitions/secret",
        "patternProperties": {
          "^x-": {}
        },
        "properties": {
          "driver": {
            "type": "string"
          },
          "driver_opts": {
            "patternProperties": {
              "^.+$": {
                "type": [
                  "string",
                  "number"
                ]
              }
            },
            "type": "object"
          },
          "environment": {
            "type": "string"
          },
          "external": {
            "properties": {
              "name": {
                "type": "string"
              }
            },
            "type": [
              "boolean",
              "object"
            ]
          },
          "file": {
            "type": "string"
          },
          "labels": {
            "$ref": "#/definitions/list_or_dict"
          },
          "name": {
            "type": "string"
          },
          "template_driver": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "service": {
        "additionalProperties": false,
        "id": "#/definitions/service",
        "patternProperties": {
          "^x-": {}
        },
        "properties": {
          "annotations": {
            "$ref": "#/definitions/list_or_dict"
          },
          "attach": {
            "type": "boolean"
          },
          "blkio_config": {
            "additionalProperties": false,
            "properties": {
              "device_read_bps": {
                "items": {
                  "$ref": "#/definitions/blkio_limit"
                },
                "type": "array"
              },
              "device_read_iops": {
                "items": {
                  "$ref": "#/definitions/blkio_limit"
                },
                "type": "array"
              },
              "device_write_bps": {
                "items": {
                  "$ref": "#/definitions/blkio_limit"
                },
                "type": "array"
              },
              "device_write_iops": {
                "items": {
                  "$ref": "#/definitions/blkio_limit"
                },
                "type": "array"
              },
              "weight": {
                "type": "integer"
              },
              "weight_device": {
                "items": {
                  "$ref": "#/definitions/blkio_weight"
                },
                "type": "array"
              }
            },
            "type": "object"
          },
          "build": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "additionalProperties": false,
                "patternProperties": {
                  "^x-": {}
                },
                "properties": {
                  "additional_contexts": {
                    "$ref": "#/definitions/list_or_dict"
                  },
                  "args": {
                    "$ref": "#/definitions/list_or_dict"
                  },
                  "cache_from": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "cache_to": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "context": {
                    "type": "string"
                  },
                  "dockerfile": {
                    "type": "string"
                  },
                  "dockerfile_inline": {
                    "type": "string"
                  },
                  "extra_hosts": {
                    "$ref": "#/definitions/list_or_dict"
                  },
                  "isolation": {
                    "type": "string"
                  },
                  "labels": {
                    "$ref": "#/definitions/list_or_dict"
                  },
                  "network": {
                    "type": "string"
                  },
                  "no_cache": {
                    "type": "boolean"
                  },
                  "platforms": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "privileged": {
                    "type": "boolean"
                  },
                  "pull": {
                    "type": "boolean"
                  },
                  "secrets": {
                    "$ref": "#/definitions/service_config_or_secret"
                  },
                  "shm_size": {
                    "type": [
                      "integer",
                      "string"
                    ]
                  },
                  "ssh": {
                    "$ref": "#/definitions/list_or_dict"
                  },
                  "tags": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "target": {
                    "type": "string"
                  }
                },
                "type": "object"
              }
            ]
          },
          "cap_add": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "uniqueItems": true
          },
          "cap_drop": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "uniqueItems": true
          },
          "cgroup": {
            "enum": [
              "host",
              "private"
            ],
            "type": "string"
          },
          "cgroup_parent": {
            "type": "string"
          },
          "command": {
            "$ref": "#/definitions/command"
          },
          "configs": {
            "$ref": "#/definitions/service_config_or_secret"
          },
          "container_name": {
            "type": "string"
          },
          "cpu_count": {
            "minimum": 0,
            "type": "integer"
          },
          "cpu_percent": {
            "maximum": 100,
            "minimum": 0,
            "type": "integer"
          },
          "cpu_period": {
            "type": [
              "number",
              "string"
            ]
          },
          "cpu_quota": {
            "type": [
              "number",
              "string"
            ]
          },
          "cpu_rt_period": {
            "type": [
              "number",
              "string"
            ]
          },
          "cpu_rt_runtime": {
            "type": [
              "number",
              "string"
            ]
          },
          "cpu_shares": {
            "type": [
              "number",
              "string"
            ]
          },
          "cpus": {
            "type": [
              "number",
              "string"
            ]
          },
          "cpuset": {
            "type": "string"
          },
          "credential_spec": {
            "additionalProperties": false,
            "patternProperties": {
              "^x-": {}
            },
            "properties": {
              "config": {
                "type": "string"
              },
              "file": {
                "type": "string"
              },
              "registry": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "depends_on": {
            "oneOf": [
              {
                "$ref": "#/definitions/list_of_strings"
              },
              {
                "additionalProperties": false,
                "patternProperties": {
                  "^[a-zA-Z0-9._-]+$": {
                    "additionalProperties": false,
                    "properties": {
                      "condition": {
                        "enum": [
                          "service_started",
                          "service_healthy",
                          "service_completed_successfully"
                        ],
                        "type": "string"
                      },
                      "required": {
                        "default": true,
                        "type": "boolean"
                      },
                      "restart": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "condition"
                    ],
                    "type": "object"
                  }
                },
                "type": "object"
              }
            ]
          },
          "deploy": {
            "$ref": "#/definitions/deployment"
          },
          "device_cgroup_rules": {
            "$ref": "#/definitions/list_of_strings"
          },
          "devices": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "uniqueItems": true
          },
          "dns": {
            "$ref": "#/definitions/string_or_list"
          },
          "dns_opt": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "uniqueItems": true
          },
          "dns_search": {
            "$ref": "#/definitions/string_or_list"
          },
          "domainname": {
            "type": "string"
          },
          "entrypoint": {
            "$ref": "#/definitions/command"
          },
          "env_file": {
            "$ref": "#/definitions/string_or_list"
          },
          "environment": {
            "$ref": "#/definitions/list_or_dict"
          },
          "expose": {
            "items": {
              "format": "expose",
              "type": [
                "string",
                "number"
              ]
            },
            "type": "array",
            "uniqueItems": true
          },
          "extends": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "additionalProperties": false,
                "properties": {
                  "file": {
                    "type": "string"
                  },
                  "service": {
                    "type": "string"
                  }
                },
                "required": [
                  "service"
                ],
                "type": "object"
              }
            ]
          },
          "external_links": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "uniqueItems": true
          },
          "extra_hosts": {
            "$ref": "#/definitions/list_or_dict"
          },
          "group_add": {
            "items": {
              "type": [
                "string",
                "number"
              ]
            },
            "type": "array",
            "uniqueItems": true
          },
          "healthcheck": {
            "$ref": "#/definitions/healthcheck"
          },
          "hostname": {
            "type": "string"
          },
          "image": {
            "type": "string"
          },
          "init": {
            "type": "boolean"
          },
          "ipc": {
            "type": "string"
          },
          "isolation": {
            "type": "string"
          },
          "labels": {
            "$ref": "#/definitions/list_or_dict"
          },
          "links": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "uniqueItems": true
          },
          "logging": {
            "additionalProperties": false,
            "patternProperties": {
              "^x-": {}
            },
            "properties": {
              "driver": {
                "type": "string"
              },
              "options": {
                "patternProperties": {
                  "^.+$": {
                    "type": [
                      "string",
                      "number",
                      "null"
                    ]
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "mac_address": {
            "type": "string"
          },
          "mem_limit": {
            "type": [
              "number",
              "string"
            ]
          },
          "mem_reservation": {
            "type": [
              "string",
              "integer"
            ]
          },
          "mem_swappiness": {
            "type": "integer"
          },
          "memswap_limit": {
            "type": [
              "number",
              "string"
            ]
          },
          "network_mode": {
            "type": "string"
          },
          "networks": {
            "oneOf": [
              {
                "$ref": "#/definitions/list_of_strings"
              },
              {
                "additionalProperties": false,
                "patternProperties": {
                  "^[a-zA-Z0-9._-]+$": {
                    "oneOf": [
                      {
                        "additionalProperties": false,
                        "patternProperties": {
                          "^x-": {}
                        },
                        "properties": {
                          "aliases": {
                            "$ref": "#/definitions/list_of_strings"
                          },
                          "ipv4_address": {
                            "type": "string"
                          },
                          "ipv6_address": {
                            "type": "string"
                          },
                          "link_local_ips": {
                            "$ref": "#/definitions/list_of_strings"
                          },
                          "priority": {
                            "type": "number"
                          }
                        },
                        "type": "object"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "type": "object"
              }
            ]
          },
          "oom_kill_disable": {
            "type": "boolean"
          },
          "oom_score_adj": {
            "maximum": 1000,
            "minimum": -1000,
            "type": "integer"
          },
          "pid": {
            "type": [
              "string",
              "null"
            ]
          },
          "pids_limit": {
            "type": [
              "number",
              "string"
            ]
          },
          "platform": {
            "type": "string"
          },
          "ports": {
            "items": {
              "oneOf": [
                {
                  "format": "ports",
                  "type": "number"
                },
                {
                  "format": "ports",
                  "type": "string"
                },
                {
                  "additionalProperties": false,
                  "patternProperties": {
                    "^x-": {}
                  },
                  "properties": {
                    "host_ip": {
                      "type": "string"
                    },
                    "mode": {
                      "type": "string"
                    },
                    "protocol": {
                      "type": "string"
                    },
                    "published": {
                      "type": [
                        "string",
                        "integer"
                      ]
                    },
                    "target": {
                      "type": "integer"
                    }
                  },
                  "type": "object"
                }
              ]
            },
            "type": "array",
            "uniqueItems": true
          },
          "privileged": {
            "type": "boolean"
          },
          "profiles": {
            "$ref": "#/definitions/list_of_strings"
          },
          "pull_policy": {
            "enum": [
              "always",
              "never",
              "if_not_present",
              "build",
              "missing"
            ],
            "type": "string"
          },
          "read_only": {
            "type": "boolean"
          },
          "restart": {
            "type": "string"
          },
          "runtime": {
            "type": "string"
          },
          "scale": {
            "type": "integer"
          },
          "secrets": {
            "$ref": "#/definitions/service_config_or_secret"
          },
          "security_opt": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "uniqueItems": true
          },
          "shm_size": {
            "type": [
              "number",
              "string"
            ]
          },
          "stdin_open": {
            "type": "boolean"
          },
          "stop_grace_period": {
            "format": "duration",
            "type": "string"
          },
          "stop_signal": {
            "type": "string"
          },
          "storage_opt": {
            "type": "object"
          },
          "sysctls": {
            "$ref": "#/definitions/list_or_dict"
          },
          "tmpfs": {
            "$ref": "#/definitions/string_or_list"
          },
          "tty": {
            "type": "boolean"
          },
          "ulimits": {
            "patternProperties": {
              "^[a-z]+$": {
                "oneOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "additionalProperties": false,
                    "patternProperties": {
                      "^x-": {}
                    },
                    "properties": {
                      "hard": {
                        "type": "integer"
                      },
                      "soft": {
                        "type": "integer"
                      }
                    },
                    "required": [
                      "soft",
                      "hard"
                    ],
                    "type": "object"
                  }
                ]
              }
            },
            "type": "object"
          },
          "user": {
            "type": "string"
          },
          "userns_mode": {
            "type": "string"
          },
          "uts": {
            "type": "string"
          },
          "volumes": {
            "items": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "additionalProperties": false,
                  "patternProperties": {
                    "^x-": {}
                  },
                  "properties": {
                    "bind": {
                      "additionalProperties": false,
                      "patternProperties": {
                        "^x-": {}
                      },
                      "properties": {
                        "create_host_path": {
                          "type": "boolean"
                        },
                        "propagation": {
                          "type": "string"
                        },
                        "selinux": {
                          "enum": [
                            "z",
                            "Z"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "consistency": {
                      "type": "string"
                    },
                    "read_only": {
                      "type": "boolean"
                    },
                    "source": {
                      "type": "string"
                    },
                    "target": {
                      "type": "string"
                    },
                    "tmpfs": {
                      "additionalProperties": false,
                      "patternProperties": {
                        "^x-": {}
                      },
                      "properties": {
                        "mode": {
                          "type": "number"
                        },
                        "size": {
                          "oneOf": [
                            {
                              "minimum": 0,
                              "type": "integer"
                            },
                            {
                              "type": "string"
                            }
                          ]
                        }
                      },
                      "type": "object"
                    },
                    "type": {
                      "type": "string"
                    },
                    "volume": {
                      "additionalProperties": false,
                      "patternProperties": {
                        "^x-": {}
                      },
                      "properties": {
                        "nocopy": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "type": "object"
                }
              ]
            },
            "type": "array",
            "uniqueItems": true
          },
          "volumes_from": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "uniqueItems": true
          },
          "working_dir": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "service_config_or_secret": {
        "items": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "additionalProperties": false,
              "patternProperties": {
                "^x-": {}
              },
              "properties": {
                "gid": {
                  "type": "string"
                },
                "mode": {
                  "type": "number"
                },
                "source": {
                  "type": "string"
                },
                "target": {
                  "type": "string"
                },
                "uid": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          ]
        },
        "type": "array"
      },
      "string_or_list": {
        "oneOf": [
          {
            "type": "string"
          },
          {
            "$ref": "#/definitions/list_of_strings"
          }
        ]
      },
      "volume": {
        "additionalProperties": false,
        "id": "#/definitions/volume",
        "patternProperties": {
          "^x-": {}
        },
        "properties": {
          "driver": {
            "type": "string"
          },
          "driver_opts": {
            "patternProperties": {
              "^.+$": {
                "type": [
                  "string",
                  "number"
                ]
              }
            },
            "type": "object"
          },
          "external": {
            "additionalProperties": false,
            "patternProperties": {
              "^x-": {}
            },
            "properties": {
              "name": {
                "deprecated": true,
                "type": "string"
              }
            },
            "type": [
              "boolean",
              "object"
            ]
          },
          "labels": {
            "$ref": "#/definitions/list_or_dict"
          },
          "name": {
            "type": "string"
          }
        },
        "type": [
          "object",
          "null"
        ]
      }
    },
    "description": "The Compose file is a YAML file defining a multi-containers based application.",
    "id": "compose_spec.json",
    "patternProperties": {
      "^x-": {}
    },
    "properties": {
      "configs": {
        "additionalProperties": false,
        "id": "#/properties/configs",
        "patternProperties": {
          "^[a-zA-Z0-9._-]+$": {
            "$ref": "#/definitions/config"
          }
        },
        "type": "object"
      },
      "include": {
        "description": "compose sub-projects to be included.",
        "items": {
          "$ref": "#/definitions/include",
          "type": "object"
        },
        "type": "array"
      },
      "name": {
        "description": "define the Compose project name, until user defines one explicitly.",
        "pattern": "^[a-z0-9][a-z0-9_-]*$",
        "type": "string"
      },
      "networks": {
        "id": "#/properties/networks",
        "patternProperties": {
          "^[a-zA-Z0-9._-]+$": {
            "$ref": "#/definitions/network"
          }
        },
        "type": "object"
      },
      "secrets": {
        "additionalProperties": false,
        "id": "#/properties/secrets",
        "patternProperties": {
          "^[a-zA-Z0-9._-]+$": {
            "$ref": "#/definitions/secret"
          }
        },
        "type": "object"
      },
      "services": {
        "additionalProperties": false,
        "id": "#/properties/services",
        "patternProperties": {
          "^[a-zA-Z0-9._-]+$": {
            "$ref": "#/definitions/service"
          }
        },
        "type": "object"
      },
      "version": {
        "description": "declared for backward compatibility, ignored.",
        "type": "string"
      },
      "volumes": {
        "additionalProperties": false,
        "id": "#/properties/volumes",
        "patternProperties": {
          "^[a-zA-Z0-9._-]+$": {
            "$ref": "#/definitions/volume"
          }
        },
        "type": "object"
      }
    },
    "title": "Compose Specification",
    "type": "object"
  }