These are schemas for the Seiso data master files, not for the Seiso API. Though there are similarities, the master file schema is designed to be easier for human beings to work with directly. For the API please see the Seiso API v1 Reference.

This appendix illustrates the Seiso data master schemas by way of example. You use these schemas when you want to create Seiso data master files to manage in source control and import via seiso-import-master.

The examples use the JSON format, but the schema's structure is exactly the same for the YAML format.

In the examples below, highlighted fields are required.

Data centers

{
  "type" : "data-centers",
  "items" : [
    {
      "key" : "amazon-us-east-1a",
      "name" : "AWS US East 1a",
      "region" : "amazon-us-east-1"
    },

    ... other data centers ...
  ]
}

Environments

{
  "type" : "environments",
  "items" : [
    {
      "key" : "dev",
      "name" : "Development",
      "aka" : "CI",
      "description" : "Continuous integration environment for development"
    },

    ... other environments ...
  ]
}

Health statuses

{
  "type" : "health-statuses",
  "items" : [
    {
      "key" : "Dead",
      "name" : "Dead",
      "statusType" : "danger"
    },

    ... other health statuses ...
  ]
}

Infrastructure providers

{
  "type" : "infrastructure-providers",
  "items" : [
    {
      "key" : "amazon",
      "name" : "Amazon Web Services"
    },

    ... other infrastructure providers ...
  ]
}

Load balancers

{
  "type" : "load-balancers",
  "items" : [
    {
      "name": "LAB-1-2-3-4",
      "type": "netscaler",
      "ipAddress": "1.2.3.4",
      "dataCenter": "gis-us-west-1c",
      "apiUrl": "https://1.2.3.4/nitro/v1"
    },
    
    ... other load balancers ...
  ]
}

Machines

{
  "type": "machines",
  "items": [
    {
      "name": "myhost01.example.com",
      "os": "windows",
      "osVersion": "6.1.7601",
      "platform": "windows",
      "platformVersion": "6.1.7601",
      "hostname": "myhost01",
      "domain": "example.com",
      "fqdn": "myhost01.example.com",
      "ipAddress": "1.2.3.4",
      "ip6Address": null,
      "dataCenter": null
    },

    ... other machines ...
  ]
}

Nodes

{
  "type": "nodes",
  "items": [
    {
      "name": "bfs.dev.example.com",
      "serviceInstance": "bfs-dev",
      "machine": "bfs01.dev.example.com",
      "ipAddresses": [
        {
          "ipAddressRole": "default",
          "ipAddress": "1.2.3.4"
        },

        ... other IP addresses ...
      ]
    },

    ... other nodes ...
  ]
}

Regions

{
  "type" : "regions",
  "items" : [
    {
      "key" : "amazon-us-east-1",
      "name" : "US East (N. Virginia)",
      "regionKey" : "na",
      "infrastructureProvider" : "amazon"
    },

     ... other regions ...
  ]
}

Rotation statuses

{
  "type" : "rotation-statuses",
  "items" : [
    {
      "key" : "enabled",
      "name" : "Enabled",
      "statusType" : "success"
    },

    ... other rotation statuses ...
  ]
}

Services

{
  "type": "services",
  "items": [
    {
      "key": "ps",
      "name": "Partner Services",
      "description": "Routes inbound partner requests.",
      "group": "lodging-connectivity",
      "type": "web-service",
      "owner": "seymourb",
      "platform": "Java",
      "scmRepository": null
    },

    ... other services ...
  ]
}

Service instances

{
  "type": "service-instances",
  "items": [
    {
      "key": "eqc-ar-service-int",
      "service": "eqc-ar",
      "environment": "integration",
      "dataCenter": "gis-us-west-1c",
      "loadBalancer": "LAB-10-184-4-5",
      "ipAddressRoles": [
        {
          "name": "default",
          "description": "Default role"
        },

        ... other IP address roles ...
      ],
      "ports": [
        {
          "number": 80,
          "protocol": "http",
          "description": null
        },

        ... other ports ...
      ],
      "loadBalanced": true,
      "minCapacityDeploy": null,
      "minCapacityOps": 50
    },
    
    ... other service instances ...
  ]
}

Service groups

{
  "type" : "service-groups",
  "items" : [
    {
      "key" : "bfs",
      "name" : "Best Fare Search (BFS)"
    },

    ... other service groups ...
  ]
}

Service types

{
  "type" : "service-types",
  "items" : [
    {
      "key" : "application",
      "name" : "User Application"
    },

    ... other service types ...
  ]
}

Status types

{
  "type" : "status-types",
  "items" : [
    {
      "key": "danger",
      "name": "Danger"
    },

    ... other status types ...
  ]
}