.. _node_insert: Insert Node ============ Creates a new :ref:`node(s) <node_schema>`. Request -------- HTTP Request:: POST http://examples.com/nodes Request Body ~~~~~~~~~~~~ :ref:`Node <node_schema>` representation or list of :ref:`nodes <node_schema>` representations. Response -------- Response Status Codes ~~~~~~~~~~~~~~~~~~~~~~ * **201 Created** The node(s) was inserted successfully. * **400 Bad Request** The data given in the request failed validation. * **401 Unauthorized** The supplied credentials are not enough to create new node(s). * **409 Conflict** The node(s) already inserted before. * **500 Internal Server Error** Node(s) couldn't be inserted, try again. Response Body ~~~~~~~~~~~~~~ If one node submitted: The new :ref:`node representation <node_schema>` and `Location` HTTP header of that node. If list of nodes submitted: List of :ref:`nodes <node_schema>` created Examples -------- The examples include only important HTTP header fields for clarity. Insert single Node ~~~~~~~~~~~~~~~~~~~ **Request**:: POST /nodes HTTP/1.1 Host: example.com Accept: application/perfsonar+json Content-Type: application/perfsonar+json ;profile=http://unis.crest.iu.edu/schema/20120709/node# Content-Length: 248 { "$schema": "http://unis.crest.iu.edu/schema/20120709/node#", "name": "node1", "urn": "urn:ogf:network:domain=example.com:node=node1", "description": "This is a sample node", "location": { "institution": "Indiana University" } } **Response** *Note* that the `id`, `ts` and `selfRef` were created by the server.:: HTTP/1.1 201 Created Content-Type: application/perfsonar+json ;profile=http://unis.crest.iu.edu/schema/20120709/node# Location: https://example.com/nodes/4faed227f473534b88000000 { "id": "4faeed0cf4735352b700000f", "ts": 1336864012847944, "selfRef": "https://example.com/nodes/4faeed0cf4735352b700000f", "$schema": "http://unis.crest.iu.edu/schema/20120709/node#", "name": "node1", "urn": "urn:ogf:network:domain=example.com:node=node1", "description": "This is a sample node", "location": { "institution": "Indiana University", } } Insert list of Nodes ~~~~~~~~~~~~~~~~~~~~~ **Request**:: POST /nodes HTTP/1.1 Host: example.com Accept: application/perfsonar+json Content-Type: application/perfsonar+json ;profile=http://unis.crest.iu.edu/schema/20120709/node# Content-Length: 248 [ { "$schema": "http://unis.crest.iu.edu/schema/20120709/node#", "name": "node1", "urn": "urn:ogf:network:domain=example.com:node=node1", "description": "This is a sample node", "location": { "institution": "Indiana University" } }, { "$schema": "http://unis.crest.iu.edu/schema/20120709/node#", "name": "node2", "urn": "urn:ogf:network:domain=example.com:node=node2", "description": "This is a sample node", "location": { "institution": "Indiana University" } }, { "$schema": "http://unis.crest.iu.edu/schema/20120709/node#", "name": "node3", "urn": "urn:ogf:network:domain=example.com:node=node3", "description": "This is a sample node", "location": { "institution": "Indiana University" } }, { "$schema": "http://unis.crest.iu.edu/schema/20120709/node#", "name": "node4", "urn": "urn:ogf:network:domain=example.com:node=node4", "description": "This is a sample node", "location": { "institution": "Indiana University" } } ] **Response** *Note* that the `id`, `ts` and `selfRef` were created by the server. `Location` HTTP header is not returned for the list of the nodes.:: HTTP/1.1 201 Created Content-Type: application/perfsonar+json ;profile=http://unis.crest.iu.edu/schema/20120709/node# [ { "id": "4faef1f9f4735353e3000000", "ts": 1336865273329438, "selfRef": "https://example.com/nodes/4faef1f9f4735353e3000000", "$schema": "http://unis.crest.iu.edu/schema/20120709/node#", "name": "node1", "urn": "urn:ogf:network:domain=example.com:node=node1", "description": "This is a sample node", "location": { "institution": "Indiana University" } }, { "id": "4faef1f9f4735353e3000001", "ts": 1336865273329438, "selfRef": "https://example.com/nodes/4faef1f9f4735353e3000001", "$schema": "http://unis.crest.iu.edu/schema/20120709/node#", "name": "node2", "urn": "urn:ogf:network:domain=example.com:node=node2", "description": "This is a sample node", "location": { "institution": "Indiana University" } }, { "id": "4faef1f9f4735353e3000002", "ts": 1336865273329438, "selfRef": "https://example.com/nodes/4faef1f9f4735353e3000002", "$schema": "http://unis.crest.iu.edu/schema/20120709/node#", "name": "node3", "urn": "urn:ogf:network:domain=example.com:node=node3", "description": "This is a sample node", "location": { "institution": "Indiana University" } }, { "id": "4faef1f9f4735353e3000003", "ts": 1336865273329438, "selfRef": "https://example.com/nodes/4faef1f9f4735353e3000003", "$schema": "http://unis.crest.iu.edu/schema/20120709/node#", "name": "node4", "urn": "urn:ogf:network:domain=example.com:node=node4", "description": "This is a sample node", "location": { "institution": "Indiana University" } } ]