Skip to content
This repository has been archived by the owner on Dec 27, 2022. It is now read-only.

Link API

John E. Vincent edited this page Apr 27, 2011 · 6 revisions

Link API

This is the final 1.0 version of the Link REST API.

Linking is enabled across the following objects in the system:

  • Hosts
  • Services
  • Applications
  • Configurations
  • Ephemerals

Links may be applied to either a grouped object (such as a Service) or an individual object. Simply appending /link to the end of a url and sending the custom path you wish to group the object under will apply it to that object.

Links function similarly to the Tag-API.

/some_path/link

  • PUT: Links the given object to a custom hierarchy
    • required options: link_name

    • payload:

        {"link_name":"/github_organization"}
      
    • success: 200

        {
          "name": "redis",
          "created_at": "Tue Apr 12 06:54:24 UTC 2011",
          "format": "string",
          "body": "redis://127.0.0.1:6379/0",
          "updated_at": "Tue Apr 12 06:54:24 UTC 2011",
          "tags": [
      
          ],
          "id": "1",
          "links": [
            "/github_organization"
          ]
        }
      
    • failure: 404

    • error: 500

/custom_hierarchy_path/

  • GET: returns JSON representation of all objects under the link

    • payload: none

    • success: 200

        {
          "ephemerals": {
          },
          "name": "my_kickass_company",
          "created_at": "2011-04-27 02:56:26 UTC",
          "updated_at": "2011-04-27 02:56:26 UTC",
          "hosts": {
          },
          "applications": {
            "barapp": {
              "tags": [
      
              ],
              "id": "a57a66dd-1be4-cfdc-6087-fb891e11bc99",
              "configurations": {
        	"barconf": {
        	  "format": "string",
        	  "body": "barbody"
        	}
              }
            }
          },
          "id": "37849e47-c5cd-d3b2-8047-107ae3ae9c1a",
          "services": {
          },
          "configurations": {
            "barconf1": {
              "format": "string",
              "body": "barbody1",
              "tags": [
      
              ],
              "id": "aa183dce-30ec-2d7e-c6f9-f3385161a7e6"
            }
          }
        }
      
    • failure: 404

    • error: 500

  • PUT: not supported

  • POST: not supported

  • DELETE: not supported

/custom_hierarchy/object_class

  • GET: returns a JSON representation of all objects of the given type under the hierarchy

    • payload: none

    • success: 200

        {
          "barapp": {
            "tags": [
      
            ],
            "id": "a57a66dd-1be4-cfdc-6087-fb891e11bc99",
            "configurations": {
              "barconf": {
        	"format": "string",
        	"body": "barbody"
              }
            }
          }
        }
      
    • failure: 404

    • error: 500

  • PUT: not supported

  • POST: not supported

  • DELETE: not supported

/custom_hierarchy/object_class/object_name

  • GET: returns a JSON representation of the named object under the hierarchy

    • payload: none

    • success: 200

        {
          "name": "barapp",
          "tags": [
      
          ],
          "id": "a57a66dd-1be4-cfdc-6087-fb891e11bc99",
          "configurations": {
            "barconf": {
              "format": "string",
              "body": "barbody"
            }
          }
        }
      
    • failure: 404

    • error: 500

  • PUT: not supported

  • POST: not supported

  • DELETE: not supported

Future operations

Link support is in its infancy right now. Long term, the goal is to be able to operate on any object under a Link in the same way you would operate under its native path in Noah.