Difference between revisions of "YAML"

From Teknologisk videncenter
Jump to: navigation, search
m (Scalars)
m (Strings)
Line 51: Line 51:
 
**  Name:
 
**  Name:
  
==Strings==
+
==examples==
 +
<source lang=yaml>
 +
db_connect:
 +
  host: "127.0.0.1"
 +
  user: "USERNAME"
 +
  password: "PASSWORD"
 +
  port: "3306"
 +
  database: "nmsdb"
 +
 
 +
db_create:
 +
# Equipment - devices under network management
 +
  equipment: >
 +
    CREATE TABLE `equipment` (
 +
        `hostname_id`  INT NOT NULL AUTO_INCREMENT,
 +
        `hostname`              VARCHAR(128) DEFAULT NULL,
 +
        `name`                  VARCHAR(128) DEFAULT NULL,
 +
        `date_created`  date DEFAULT NULL,
 +
        `community`            VARCHAR(128) DEFAULT NULL,
 +
        `snmp_ver`              TINYINT DEFAULT NULL,
 +
        `interval`              INT UNSIGNED DEFAULT NULL,
 +
        PRIMARY KEY (`hostname_id`),
 +
        UNIQUE(`hostname`)
 +
    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
 +
  oids: >
 +
    CREATE TABLE `oids` (
 +
        `oid_id`                INT NOT NULL AUTO_INCREMENT,
 +
        `oid`                  VARCHAR(256),
 +
        `easyname`              VARCHAR(64),
 +
        `description`  VARCHAR(512),
 +
        PRIMARY KEY (`oid_id`)
 +
    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
 +
 
 +
 
 +
# Only numeric data allowed in this version
 +
  probes: >
 +
    CREATE TABLE `probes` (
 +
        `probe_id`              INT NOT NULL AUTO_INCREMENT,
 +
        `oid`                  INT NOT NULL,
 +
        `hostname`              INT NOT NULL,
 +
        PRIMARY KEY (`probe_id`),
 +
        CONSTRAINT `fk_oid_id` FOREIGN KEY (`oid`) REFERENCES `oids` (`oid_id`),
 +
        CONSTRAINT `fk_hostname` FOREIGN KEY (`hostname`) REFERENCES `equipment` (`hostname_id`)
 +
    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
 +
 
 +
  probe_data: >
 +
    CREATE TABLE `probe_data` (
 +
        `probe_data_id` INT NOT NULL AUTO_INCREMENT,
 +
        `probe`        INT NOT NULL,
 +
        `timestamp`    BIGINT NOT NULL,
 +
        `value`        BIGINT NOT NULL,
 +
        PRIMARY KEY (`probe_data_id`),
 +
        CONSTRAINT `fk_probe` FOREIGN KEY (`probe`) REFERENCES `probes` (`probe_id`)
 +
    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
 +
</source>

Revision as of 08:16, 20 March 2025

Structure

Block and flow style

Block style

Lists:

fruits:
  - apple
  - banana
  - orange

Maps/dictionary:

address:
  street: "H.C. Andersens vej 9"
  city: Viborg
  zip: 8800

Flow style

Lists:

fruits: [apple, banana, orange]

Maps:/dictionary:

address: {street: "H.C. Andersens vej 9",  city: Viborg,  zip: 8800 }

Data types

Scalars

  • Strings
    • text1: "This is a string"
    • text2: 'This is also a string'
    • text3: This is a string too
    • text4: "2999"
    • text5: | #Multiline string - Preserve new line chars
 Line1
 Line2
    • text6: > #Multiline string - Convert new line to space
 Line1
 Line2
  • Numbers
    • 2999
    • 2e+10
  • Booleans
    • true
    • false
  • Dates
    • "2025-01-01" # ISO-8601 standard
  • Null
    • Name: null
    • Name: ~
    • Name:

examples

db_connect:
  host: "127.0.0.1"
  user: "USERNAME"
  password: "PASSWORD"
  port: "3306"
  database: "nmsdb"

db_create:
# Equipment - devices under network management
  equipment: >
    CREATE TABLE `equipment` (
        `hostname_id`   INT NOT NULL AUTO_INCREMENT,
        `hostname`              VARCHAR(128) DEFAULT NULL,
        `name`                  VARCHAR(128) DEFAULT NULL,
        `date_created`  date DEFAULT NULL,
        `community`             VARCHAR(128) DEFAULT NULL,
        `snmp_ver`              TINYINT DEFAULT NULL,
        `interval`              INT UNSIGNED DEFAULT NULL,
        PRIMARY KEY (`hostname_id`),
        UNIQUE(`hostname`)
    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
  oids: >
    CREATE TABLE `oids` (
        `oid_id`                INT NOT NULL AUTO_INCREMENT,
        `oid`                   VARCHAR(256),
        `easyname`              VARCHAR(64),
        `description`   VARCHAR(512),
         PRIMARY KEY (`oid_id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;


# Only numeric data allowed in this version
  probes: >
    CREATE TABLE `probes` (
        `probe_id`              INT NOT NULL AUTO_INCREMENT,
        `oid`                   INT NOT NULL,
        `hostname`              INT NOT NULL,
        PRIMARY KEY (`probe_id`),
        CONSTRAINT `fk_oid_id` FOREIGN KEY (`oid`) REFERENCES `oids` (`oid_id`),
        CONSTRAINT `fk_hostname` FOREIGN KEY (`hostname`) REFERENCES `equipment` (`hostname_id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

  probe_data: >
    CREATE TABLE `probe_data` (
        `probe_data_id` INT NOT NULL AUTO_INCREMENT,
        `probe`         INT NOT NULL,
        `timestamp`     BIGINT NOT NULL,
        `value`         BIGINT NOT NULL,
        PRIMARY KEY (`probe_data_id`),
        CONSTRAINT `fk_probe` FOREIGN KEY (`probe`) REFERENCES `probes` (`probe_id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;