ArtifactService_v2 Resource

Handle Node namespace

POST /v2/exists

Determine if nodes exists

Request Body
media type data type description
application/familysearch+xml existsListQuery (XML) ExistsListQuery - List of Node Locators
application/json ExistsListQuery (JSON)
application/xml existsListQuery (XML)
Response Body
media type data type description
application/familysearch+xml existsList (XML) ExistsList List of nodes that exists, name and date
application/json ExistsList (JSON)
application/xml existsList (XML)
text/xml existsList (XML)

Example

Request
POST /v2/exists
Content-Type: application/familysearch+xml
Accept: application/familysearch+xml

                
<existsListQuery xmlns="http://digitalarchive.familysearch.org/v1">
  <nodeLocatorList>...</nodeLocatorList>
</existsListQuery>

                
              
Response
HTTP/1.1 201 Created
Content-Type: application/familysearch+xml

                
<existsList xmlns="http://digitalarchive.familysearch.org/v1">
  <exists date="..." exists="..." nodeLocator="..."/>
</existsList>

                
              

GET /v2/live

Response Body
media type data type
application/json string (JSON)
application/xml string (XML)

Example

Request
GET /v2/live
Accept: application/json

              
Response
HTTP/1.1 200 OK
Content-Type: application/json

                
...
                
              

GET /v2/readonly

Get the current ReadOnly state for the Finder

Response Body
media type data type
text/plain (custom)

Example

Request
GET /v2/readonly
Accept: text/plain

              
Response
HTTP/1.1 200 OK
Content-Type: text/plain

                
...
                
              

POST /v2/readonly

Update the ReadOnly state on the Finder

Request Parameters
name type description
state query Contains the new readOnly state.
time query The number of seconds to tell the clients to delay

Example

Request
POST /v2/readonly

              
Response
HTTP/1.1 201 Created

              

DELETE /v2/{nodeLocator}

Delete Node.

Request Parameters
name type description
nodeLocator path String used to identify the node, e.g. apid:{apid}, dgs:{9}.{9-5}
children query true - delete node's children; false - delete node only if it has no children (optional, default=false)
lock query - true if the node should be locked

Example

Request
DELETE /v2/{nodeLocator}

              
Response
HTTP/1.1 204 No Content

              

GET /v2/{nodeLocator}

Does node exists?

Request Parameters
name type description constraints
nodeLocator path String used to identify the node, e.g. apid:{apid}, dgs:{9}.{9-5} regex: 31([a-zA-Z0-9]{1,4})-([a-zA-Z0-9]{1,4})(-[a-zA-Z0-9]{1,4}){1,2}
Response Body
media type data type
application/json object (JSON)
application/xml anyType (XML)
text/plain (custom)

Example

Request
GET /v2/{nodeLocator}
Accept: application/json

              
Response
HTTP/1.1 200 OK
Content-Type: application/json

                
...
                
              

GET /v2/{nodeLocator}

Get node data for a Node

Request Parameters
name type description
nodeLocator path String used to identify the node, e.g. apid:{apid}, dgs:{9}.{9-5}
Response Body
media type data type description
application/familysearch+xml anyType (XML) NodeData (name, apid, child count, stream count)
application/json object (JSON)
application/xml anyType (XML)
text/xml anyType (XML)

Example

Request
GET /v2/{nodeLocator}
Accept: application/familysearch+xml

              
Response
HTTP/1.1 200 OK
Content-Type: application/familysearch+xml

                
...
                
              

HEAD /v2/{nodeLocator}

Does node exists?

Request Parameters
name type description
nodeLocator path String used to identify the node, e.g. apid:{apid}, dgs:{9}.{9-5}

Example

Request
HEAD /v2/{nodeLocator}

              
Response
HTTP/1.1 200 OK

              

POST /v2/{nodeLocator}

Rename node - Not Implemented

Request Parameters
name type description
nodeLocator path String used to identify the node, e.g. apid:{apid}, dgs:{9}.{9-5}
lock query
name query Contains the new name.

Example

Request
POST /v2/{nodeLocator}

              
Response
HTTP/1.1 201 Created

              

PUT /v2/{nodeLocator}

Create a node

Request Parameters
name type description default constraints
Content-type header Mime Type of input stream - image/jpeg or application/files+zip (optional depending on hasStream)    
nodeLocator path String used to identify the node, e.g. apid:{apid}, dgs:{9}.{9-5}    
apid query Apid for new node (required)    
clear query false boolean
hasStream query True if stream is to be created (optional, default=false)    
lock query    
md5 query    
order query    
Request Body
media type data type description
application/json object (JSON) InputStream of zip file with all streams for this node, (optional depending on hasStream)
application/xml anyType (XML)
Response Body
media type data type description
application/familysearch+xml nodeData (XML) NodeData (name, apid, child count, stream count)
application/json NodeData (JSON)
application/xml nodeData (XML)
text/xml nodeData (XML)

Example

Request
PUT /v2/{nodeLocator}
Content-Type: application/json
Accept: application/familysearch+xml
Content-type: ...

                
...
                
              
Response
HTTP/1.1 204 No Content
Content-Type: application/familysearch+xml

                
<nodeData apid="..." childCount="..." dasTemplate="..." dzTemplate="..." lastMod="..." name="..." streamCount="..." xmlns="http://digitalarchive.familysearch.org/v1">
  <link href="..."/>
</nodeData>

                
              

DELETE /v2/forward/{nodeLocator}

Request Parameters
name type description
nodeLocator path - artifact to unforward

Example

Request
DELETE /v2/forward/{nodeLocator}

              
Response
HTTP/1.1 204 No Content

              

GET /v2/{nodeLocator}/children

Get root node's children with admin security

Request Parameters
name type description constraints
nodeLocator path String used to identify the node, e.g. apid:{apid}, dgs:{9}.{9-5} regex: (WK-((user)|(dgs)|(security))rootapid)|(((dgs)|(user)|(security))root)
count query Max number of children NodeData to return (optional) param noApids true - do not return children's apids (fast), false = return apids (optional, default=false) param unverified - ???? int
pos query Opaque string used to keep position (optional) int
Response Body
media type data type description
application/familysearch+xml childrenData (XML) ChildrenData - all of the information about the children for the artifact
application/json ChildrenData (JSON)
application/xml childrenData (XML)
text/xml childrenData (XML)

Example

Request
GET /v2/{nodeLocator}/children
Accept: application/familysearch+xml

              
Response
HTTP/1.1 200 OK
Content-Type: application/familysearch+xml

                
<childrenData baseUrl="..." position="..." xmlns="http://digitalarchive.familysearch.org/v1">
  <children apid="..." locator="..." name="..." order="..."/>
</childrenData>

                
              

GET /v2/{nodeLocator}/children

Get node's children

Request Parameters
name type description default constraints
nodeLocator path String used to identify the node, e.g. apid:{apid}, dgs:{9}.{9-5}    
count query Max number of children NodeData to return (optional)   int
noapids query true - do not return children's apids (fast), false = return apids (optional, default=false) false  
pos query Opaque string used to keep position (optional)   int
unverified query - ???? false  
Response Body
media type data type description
application/familysearch+xml childrenData (XML) ChildrenData - all of the information about the children for the artifact
application/json ChildrenData (JSON)
application/xml childrenData (XML)
text/xml childrenData (XML)

Example

Request
GET /v2/{nodeLocator}/children
Accept: application/familysearch+xml

              
Response
HTTP/1.1 200 OK
Content-Type: application/familysearch+xml

                
<childrenData baseUrl="..." position="..." xmlns="http://digitalarchive.familysearch.org/v1">
  <children apid="..." locator="..." name="..." order="..."/>
</childrenData>

                
              

POST /v2/{nodeLocator}/copy

Copies a node from one side to the other.

Request Parameters
name type description
nodeLocator path String used to identify the node, e.g. apid:{apid}, dgs:{9}.{9-5}
lock query
replica query The target replica.
source query The source storage cell.

Example

Request
POST /v2/{nodeLocator}/copy

              
Response
HTTP/1.1 201 Created

              

POST /v2/{nodeLocator}/exists

Determine if children nodes exists for a given node

Request Parameters
name type description
nodeLocator path String used to identify the node, e.g. apid:{apid}, dgs:{9}.{9-5}
Request Body
media type data type description
application/familysearch+xml childrenExist (XML) ChildrenExist - Names of the children in the same namespace as the nodeLocator
application/json ChildrenExist (JSON)
application/xml childrenExist (XML)
Response Body
media type data type description
application/familysearch+xml childrenExist (XML) ChildrenExist Names of the children of whether they exists or not.
application/json ChildrenExist (JSON)
application/xml childrenExist (XML)
text/xml childrenExist (XML)

Example

Request
POST /v2/{nodeLocator}/exists
Content-Type: application/familysearch+xml
Accept: application/familysearch+xml

                
<childrenExist xmlns="http://digitalarchive.familysearch.org/v1">
  <childNameList childName="..." exists="..."/>
</childrenExist>

                
              
Response
HTTP/1.1 201 Created
Content-Type: application/familysearch+xml

                
<childrenExist xmlns="http://digitalarchive.familysearch.org/v1">
  <childNameList childName="..." exists="..."/>
</childrenExist>

                
              

GET /v2/{nodeLocator}/location

Get the IP address of the box and file path for this node

Request Parameters
name type description
nodeLocator path String used to identify the node, e.g. apid:{apid}, dgs:{9}.{9-5}
Response Body
media type data type description
application/familysearch+xml location (XML) Location
application/json Location (JSON)
application/xml location (XML)
text/xml location (XML)

Example

Request
GET /v2/{nodeLocator}/location
Accept: application/familysearch+xml

              
Response
HTTP/1.1 200 OK
Content-Type: application/familysearch+xml

                
<location found="..." timedOut="..." xmlns="http://digitalarchive.familysearch.org/v1">
  <pathList>...</pathList>
</location>

                
              

GET /v2/{nodeLocator}/locations

Get the IP address of the box and file path for this node

Request Parameters
name type description
nodeLocator path String used to identify the node, e.g. apid:{apid}, dgs:{9}.{9-5}
Response Body
media type data type description
application/familysearch+xml locations (XML) Location
application/json Locations (JSON)
application/xml locations (XML)
text/xml locations (XML)

Example

Request
GET /v2/{nodeLocator}/locations
Accept: application/familysearch+xml

              
Response
HTTP/1.1 200 OK
Content-Type: application/familysearch+xml

                
<locations found="..." timedOut="..." xmlns="http://digitalarchive.familysearch.org/v1">
  <list apid="..." diskLocation="..." ipAddress="..." replica="..." url="..."/>
</locations>

                
              

POST /v2/{nodeLocator}/move

move node

Request Parameters
name type description constraints
nodeLocator path String used to identify the node, e.g. apid:{apid}, dgs:{9}.{9-5}  
delta query long
lock query  
replica query The target replica.  

Example

Request
POST /v2/{nodeLocator}/move

              
Response
HTTP/1.1 201 Created

              

GET /v2/{nodeLocator}/name

Get name of node for a given namespace, ie dgs, security

Request Parameters
name type description
nodeLocator path String used to identify the node, e.g. apid:{apid}, dgs:{9}.{9-5}
namespace query Namespace of the name (required)
Response Body
media type data type description
application/json string (JSON) String. If no name in given namespace then return "null"
application/xml string (XML)

Example

Request
GET /v2/{nodeLocator}/name
Accept: application/json

              
Response
HTTP/1.1 200 OK
Content-Type: application/json

                
...
                
              

GET /v2/{nodeLocator}/parents

Gets the parents for a node.

Request Parameters
name type description
nodeLocator path - artifact to get parents of
Response Body
media type data type description
application/familysearch+xml parentsData (XML) ParentsData - information about the parent nodes
application/json ParentsData (JSON)
application/xml parentsData (XML)
text/xml parentsData (XML)

Example

Request
GET /v2/{nodeLocator}/parents
Accept: application/familysearch+xml

              
Response
HTTP/1.1 200 OK
Content-Type: application/familysearch+xml

                
<parentsData xmlns="http://digitalarchive.familysearch.org/v1">
  <parents childName="..." nameSpace="..." parentApid="..."/>
</parentsData>

                
              

GET /v2/{nodeLocator}/permission

Get a node's permission, ie DasPrmView@apid.

Request Parameters
name type description
nodeLocator path String used to identify the node, e.g. apid:{apid}, dgs:{9}.{9-5}
action query view, print ... (optional, default=view)
Response Body
media type data type description
application/json string (JSON) String. If no permission then return "null"
application/xml string (XML)

Example

Request
GET /v2/{nodeLocator}/permission
Accept: application/json

              
Response
HTTP/1.1 200 OK
Content-Type: application/json

                
...
                
              

DELETE /v2/{nodeLocator}/purge

Purge Node.

Request Parameters
name type description
nodeLocator path String used to identify the node, e.g. apid:{apid}, dgs:{9}.{9-5}
lock query this node regardless of its state. Not be used with children param
orphan query true - delete node's children; false - delete node only if it has no children (optional, default=false)
Response Body
media type data type
application/json PurgeResult (JSON)
application/xml purgeResult (XML)

Example

Request
DELETE /v2/{nodeLocator}/purge
Accept: application/json

              
Response
HTTP/1.1 204 No Content
Content-Type: application/json

                
{
  "overAllStatus" : 12345,
  "databaseStatus" : [ {
    "apid" : "...",
    "result" : 12345,
    "cellAddress" : "..."
  }, {
    "apid" : "...",
    "result" : 12345,
    "cellAddress" : "..."
  } ],
  "securityStatus" : [ {
    "apid" : "...",
    "result" : 12345,
    "cellAddress" : "..."
  }, {
    "apid" : "...",
    "result" : 12345,
    "cellAddress" : "..."
  } ],
  "parentStatus" : [ {
    "apid" : "...",
    "result" : 12345,
    "cellAddress" : "..."
  }, {
    "apid" : "...",
    "result" : 12345,
    "cellAddress" : "..."
  } ],
  "nodeStatus" : [ {
    "apid" : "...",
    "result" : 12345,
    "cellAddress" : "..."
  }, {
    "apid" : "...",
    "result" : 12345,
    "cellAddress" : "..."
  } ]
}
                
              

POST /v2/{nodeLocator}/redact

This end point will redact the images for the node by replacing them with an image that indicates the original image was removed.

Request Parameters
name type description
nodeLocator path String used to identify the node, e.g. apid:{apid}, dgs:{9}.{9-5}
note query - note to add to the artifact when redaction is done

Example

Request
POST /v2/{nodeLocator}/redact

              
Response
HTTP/1.1 201 Created

              

GET /v2/{nodeLocator}/security

Request Parameters
name type description
nodeLocator path - artifact to get security for.
Response Body
media type data type description
application/familysearch+xml artifactSecurity (XML) ArtifactSecurity - all of the security information for an artifact
application/json ArtifactSecurity (JSON)
application/xml artifactSecurity (XML)
text/xml artifactSecurity (XML)

Example

Request
GET /v2/{nodeLocator}/security
Accept: application/familysearch+xml

              
Response
HTTP/1.1 200 OK
Content-Type: application/familysearch+xml

                
<artifactSecurity childCount="..." linkApid="..." xmlns="http://digitalarchive.familysearch.org/v1">
  <content>...</content>
</artifactSecurity>

                
              

GET /v2/{nodeLocator}/size

Get node data for a Node

Request Parameters
name type description
nodeLocator path String used to identify the node, e.g. apid:{apid}, dgs:{9}.{9-5}
namespace query Context of the user, ie DasCtx, IndexingCtx ... (required if session is used) param querySession User session identifier obtained from CIS (optional)
refresh query
Response Body
media type data type description
application/familysearch+xml nodeSize (XML) NodeData (name, apid, child count, stream count)
application/json NodeSize (JSON)
application/xml nodeSize (XML)
text/xml nodeSize (XML)

Example

Request
GET /v2/{nodeLocator}/size
Accept: application/familysearch+xml

              
Response
HTTP/1.1 200 OK
Content-Type: application/familysearch+xml

                
<nodeSize descendantCount="..." descendantSize="..." size="..." upToDate="..." xmlns="http://digitalarchive.familysearch.org/v1"/>

                
              

DELETE /v2/{nodeLocator}/streams

Delete an node stream

Request Parameters
name type description
nodeLocator path String used to identify the node, e.g. apid:{apid}, dgs:{9}.{9-5}
lock query identifier to indicate who locked this artifact.

Example

Request
DELETE /v2/{nodeLocator}/streams

              
Response
HTTP/1.1 204 No Content

              

GET /v2/{nodeLocator}/streams

List streams belonging to the node

Request Parameters
name type description
nodeLocator path String used to identify the node, e.g. apid:{apid}, dgs:{9}.{9-5}
Response Body
media type data type description
application/familysearch+xml anyType (XML) List of streams for this artifact
application/json object (JSON)
application/xml anyType (XML)
text/xml anyType (XML)

Example

Request
GET /v2/{nodeLocator}/streams
Accept: application/familysearch+xml

              
Response
HTTP/1.1 200 OK
Content-Type: application/familysearch+xml

                
...
                
              

PUT /v2/{nodeLocator}/streams

Create node streams from zip file

Request Parameters
name type description default
nodeLocator path String used to identify the node, e.g. apid:{apid}, dgs:{9}.{9-5}  
deleteFirst query True - delete existing streams before writing streams from zip file false
lock query  
md5 query  
Request Body
media type data type description
application/json object (JSON) InputStream of a zip file containing streams for this node
application/xml anyType (XML)

Example

Request
PUT /v2/{nodeLocator}/streams
Content-Type: application/json

                
...
                
              
Response
HTTP/1.1 204 No Content

              

GET /v2/{nodeLocator}/streamsdata

Get information about the node stream

Request Parameters
name type description default constraints
nodeLocator path String used to identify the node, e.g. apid:{apid}, dgs:{9}.{9-5}    
all query false boolean
Response Body
media type data type description
application/familysearch+xml streamDataList (XML) StreamData - contains information about the stream along with the stream.
application/json StreamDataList (JSON)
application/xml streamDataList (XML)
text/xml streamDataList (XML)

Example

Request
GET /v2/{nodeLocator}/streamsdata
Accept: application/familysearch+xml

              
Response
HTTP/1.1 200 OK
Content-Type: application/familysearch+xml

                
<streamDataList xmlns="http://digitalarchive.familysearch.org/v1">
  <dataList apid="..." checksum="..." length="..." modifiedTime="..." name="..." nodeLocator="..." type="...">
    <versions>...</versions>
  </dataList>
</streamDataList>

                
              

GET /v2/{nodeLocator}/{children}

Request Parameters
name type description constraints
children path regex: \$children((all)|(apid)|())
nodeLocator path regex: (WK-((user)|(dgs)|(security))rootapid)|(((dgs)|(user)|(security))root)
Response Body
media type data type
application/json object (JSON)
application/xml anyType (XML)

Example

Request
GET /v2/{nodeLocator}/{children}
Accept: application/json

              
Response
HTTP/1.1 200 OK
Content-Type: application/json

                
...
                
              

DELETE /v2/{nodeLocator}/{streamName}

Delete an node stream

Request Parameters
name type description
nodeLocator path String used to identify the node, e.g. apid:{apid}, dgs:{9}.{9-5}
streamName path - Name of the stream
lock query
version query Version of the stream

Example

Request
DELETE /v2/{nodeLocator}/{streamName}

              
Response
HTTP/1.1 204 No Content

              

GET /v2/{nodeLocator}/{streamName}

Get an node stream by name

Request Parameters
name type description default constraints
Accept header    
If-Modified-Since header    
If-None-Match header    
Range header    
X-FS-Client header    
nodeLocator path String used to identify the node, e.g. apid:{apid}, dgs:{9}.{9-5}    
streamName path Name of the stream    
client query    
header query    
headerValue query    
useDB query - true if the database should be used in finding the stream false boolean
version query Version of the stream    
Response Body
media type data type description
application/json object (JSON) InputStream
application/xml anyType (XML)

Example

Request
GET /v2/{nodeLocator}/{streamName}
Accept: application/json
Accept: ...
If-Modified-Since: ...
If-None-Match: ...
Range: ...
X-FS-Client: ...

              
Response
HTTP/1.1 200 OK
Content-Type: application/json

                
...
                
              

HEAD /v2/{nodeLocator}/{streamName}

Verify if a given stream exists for this node

Request Parameters
name type description
nodeLocator path String used to identify the node, e.g. apid:{apid}, dgs:{9}.{9-5}
streamName path Name of the stream
version query Version of the stream

Example

Request
HEAD /v2/{nodeLocator}/{streamName}

              
Response
HTTP/1.1 200 OK

              

POST /v2/{nodeLocator}/{streamName}

Overwrite an node stream - Not Implemented

Request Parameters
name type description
nodeLocator path String used to identify the node, e.g. apid:{apid}, dgs:{9}.{9-5}
streamName path - Name of the stream
lock query
version query Version of the stream
Request Body
media type data type
application/json object (JSON)
application/xml anyType (XML)

Example

Request
POST /v2/{nodeLocator}/{streamName}
Content-Type: application/json

                
...
                
              
Response
HTTP/1.1 201 Created

              

PUT /v2/{nodeLocator}/{streamName}

Create an node stream

Request Parameters
name type description
Content-Type header Mime type of stream
nodeLocator path String used to identify the node, e.g. apid:{apid}, dgs:{9}.{9-5}
streamName path Name of the stream
lock query
version query Version of the stream
Request Body
media type data type
application/json object (JSON)
application/xml anyType (XML)

Example

Request
PUT /v2/{nodeLocator}/{streamName}
Content-Type: application/json
Content-Type: ...

                
...
                
              
Response
HTTP/1.1 204 No Content

              

GET /v2/{replica}/cell

Request Parameters
name type description
replica path
options query
Response Body
media type data type
application/familysearch+xml cellData (XML)
application/json CellData (JSON)
application/xml cellData (XML)

Example

Request
GET /v2/{replica}/cell
Accept: application/familysearch+xml

              
Response
HTTP/1.1 200 OK
Content-Type: application/familysearch+xml

                
<cellData address="..." cpuUtilization="..." diskUtilization="..." freeDiskSpace="..." lastContactMs="..." name="..." readsLastMinute="..." replica="..." swapUsed="..." totalDiskSpace="..." writesLastMinute="..." xmlns="http://digitalarchive.familysearch.org/v1"/>

                
              

PUT /v2/forward/{nodeLocator}/{targetApid}

Request Parameters
name type description
nodeLocator path - artifact to forward
targetApid path - artifact id that it is being forwarded to

Example

Request
PUT /v2/forward/{nodeLocator}/{targetApid}

              
Response
HTTP/1.1 204 No Content

              

DELETE /v2/{nodeLocator}/db/{cell}

Delete a node instance from the central database

Request Parameters
name type description
cell path - Name of the cell matching the node instance
nodeLocator path String used to identify the node, e.g. apid:{apid}, dgs:{9}.{9-5}

Example

Request
DELETE /v2/{nodeLocator}/db/{cell}

              
Response
HTTP/1.1 204 No Content

              

GET /v2/{nodeLocator}/location/db

Get the IP address of the box for this node

Request Parameters
name type description
nodeLocator path String used to identify the node, e.g. apid:{apid}, dgs:{9}.{9-5}
Response Body
media type data type description
application/familysearch+xml location (XML) Location
application/json Location (JSON)
application/xml location (XML)
text/xml location (XML)

Example

Request
GET /v2/{nodeLocator}/location/db
Accept: application/familysearch+xml

              
Response
HTTP/1.1 200 OK
Content-Type: application/familysearch+xml

                
<location found="..." timedOut="..." xmlns="http://digitalarchive.familysearch.org/v1">
  <pathList>...</pathList>
</location>

                
              

GET /v2/{nodeLocator}/{streamName}/data

Get information about the node stream

Request Parameters
name type description
nodeLocator path String used to identify the node, e.g. apid:{apid}, dgs:{9}.{9-5}
streamName path Name of the stream
Response Body
media type data type description
application/familysearch+xml streamData (XML) StreamData - contains information about the stream along with the stream.
application/json StreamData (JSON)
application/xml streamData (XML)
text/xml streamData (XML)

Example

Request
GET /v2/{nodeLocator}/{streamName}/data
Accept: application/familysearch+xml

              
Response
HTTP/1.1 200 OK
Content-Type: application/familysearch+xml

                
<streamData apid="..." checksum="..." length="..." modifiedTime="..." name="..." nodeLocator="..." type="..." xmlns="http://digitalarchive.familysearch.org/v1">
  <versions>...</versions>
</streamData>