Tivoli Directory Integrator, Version 7.1.1

Architecture of REST Server API

The REST Server API is based on the Atom Syndication protocol because it uses the Service, Feed, and Entry objects to structure a hierarchy of resources.

Note:
The Atom Syndication specification requires Entry to contain an Author element, a Summary element, and a Title element. The application uses the Entries that do not contain these elements whenever they are not appropriate for the resource the Entry represents, and also applicable for the Atom Feeds, which are required to contain both Author and Title elements.

The REST Server API also defines other objects to represent all the resources IBM® Tivoli® Directory Integrator Server supports. The default representation of the resources is JSON, but each client application can use the REST Server to work with XML. This API is configurable on a per-request level, using the appropriate HTTP headers.

Navigation of resource hierarchy

The REST Server API has a single point of Entry, which is represented by the http://{host}:{port}/rest URL, where:

The rest of the resources within the API are opaque. The client applications use the provided URLs as Atom links within the Atom Entries to traverse the resources hierarchy and operate on them.

The following diagram depicts the available resources and the links that the client applications need to follow to navigate the hierarchy.

Atom resources
Note:
Only the important Atom resources are shown in the diagram.

The URL.method()[qs1, qs2] notation is used to represent an invocation of the HTTP method on the specified URL with query parameters. The URL is represented as a set of names separated by a dot. Each name in that path uses one of the following options to refer to a resource available, after resolution of all the names preceding it.

The {server}.{info}.component.{connector}.get() statement indicates that an HTTP GET request is sent to the URL of the Atom Entry that represents a Connector Entry resource. See the Example algorithm section for more details.

Example algorithm

This section describes an example algorithm that a typical browser application uses to get information about a particular connector from the server.

  1. Obtains the Server Feed URL.
    1. Sends an HTTP GET request to the Entry Point URL.
    2. Analyzes the Atom Service Document and finds the collection element, which has:
      • "category " element
      • "term" attribute with value "server"
      • "scheme" attribute with value "http://www.ibm.com/xmlns/prod/tdi/rest#resource"
    3. Gets the value of the "href" attribute of the "collection" element.
  2. Obtains the Server Info Entry URL.
    1. Sends an HTTP GET request to the Server Feed URL.
    2. Analyzes the Atom Feed and finds the Atom Entry with category element, which has:
      • "term" attribute with value "info"
      • "scheme" attribute with value "http://www.ibm.com/xmlns/prod/tdi/rest#server"
    3. Analyzes the Atom Entry and finds a "link" element that has a "rel" attribute with value "self".
    4. Gets the value of the "href" attribute of the "link" element.
  3. Obtains the Component Feed URL
    1. Sends an HTTP GET request to the Server Info Entry URL.
    2. Analyzes the Atom Entry and finds the "link" element that has the "rel" attribute with value "component".
    3. Gets the value of the "href" attribute of the "link" element.
  4. Finds the required Connector Entry.
    1. Obtains the content of the Component Feed by sending an HTTP GET request to its URL.
    2. Finds all the Atom Entries with "category" element, which has:
      • "term" attribute with value "connector"
      • "scheme" attribute with value "http://www.ibm.com/xmlns/prod/tdi/rest#component"
    3. Selects an Atom Entry from the set of Atom Entries using any of the possible means, for example, by filtering on the "title" element.
  5. Gets the Connector Descriptor document.
    1. Analyzes the selected Atom Entry to find the "content" element.
    2. If the "content" element has a "src" attribute, sends an HTTP GET request to the URL specified by the value of that attribute.
    3. Else, the required document is embedded in the "content" element.

Server Feed

The Server Feed provides information and control over the IBM Tivoli Directory Integrator Server. Valid operations are described in this section.

Operation {server}.get()
Response Content-Type application/json;type=feed, application/atom+xml
Atom Category term="server", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#resource"

Server Info Entry

The Server Info Entry provides details for the IBM Tivoli Directory Integrator Server.

Operation {server}.{info}.get()
Response Content-Type application/json;type=entry, application/atom+xml
Atom Category term="info", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#server"
Atom Content application/com.ibm.di.api.server.info+json;type=serverInfo, application/com.ibm.di.api.server.info+xml
Component Feed

The Component Feed provides a list of all the IBM Tivoli Directory Integrator components such as Connectors, Function Components, and Parsers that are installed on the server.

Operation {server}.{info}.component.get()
Response Content-Type application/json;type=feed, application/atom+xml
Atom Category term="component", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#server"
Connector Entry

Operation {server}.{info}.component.{connector}.get()
Response Content-Type application/json;type=entry, application/atom+xml
Atom Category term="connector", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#component"
Atom Content application/com.ibm.di.api.component+json;type=connectorDescriptor, application/com.ibm.di.api.component+xml
Function Entry

Operation {server}.{info}.component.{function}.get()
Response Content-Type application/json;type=entry, application/atom+xml
Atom Category term="function", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#component"
Atom Content application/com.ibm.di.api.component+json;type=functionDescriptor, application/com.ibm.di.api.component+xml
Parser Entry

Operation {server}.{info}.component.{parser}.get()
Response Content-Type application/json;type=entry, application/atom+xml
Atom Category term="parser", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#component"
Atom Content application/com.ibm.di.api.component+json;type=parserDescriptor, application/com.ibm.di.api.component+xml

Server Control Entry

Operation {server}.{control}.get()
Response Content-Type application/json;type=entry, application/atom+xml
Atom Category term="control", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#server"
Shutdown Server

Operation {server}.{control}.shutdown.post()
Response Content-Type application/com.ibm.di.api.server.control+json;type=shutdown, application/com.ibm.di.api.server.control+xml

Custom Notification Entry

Operation {server}.{custom-notification}.get()
Response Content-Type application/json;type=entry, application/atom+xml
Atom Category term="custom-notification", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#server"
Send Notification

Operation server}.{custom-notification}.notify.post()
Request Content-Type application/com.ibm.di.api.server.notification+json;type=customNotification, application/com.ibm.di.api.server.notification+xml
Details The CustomNotification type allows specification (using the "type" attribute) of the payload within the "data" element. The following values are recognized:
  • text/* - the payload is parsed as a String object. This value is the default value if the "type" attribute is missing.
  • application/octet-stream - a Base64 encoded byte array, which is decoded and sent as is.
  • application/octet-stream+object - a Base64 encoded byte array, which is decoded, de-serialized, and sent as an object.
The successful response contains no body and no location header. The HTTP code is 204 (No Content).

Configuration Feed

The Configuration Feed provides access to the Server API Config directory containing the deployed IBM Tivoli Directory Integrator configurations. The Rest Server API represents a configuration file using an Atom Entry, but represents a subdirectory as both Atom Entry (in the context of an Atom Feed) and as Atom Feed (when listing the directory content).

To represent a multi-leveled hierarchy in the defined URL syntax, the following single level notation is used:

Operation {configuration}.get() / {configuration}.{directory}.content.get()
Response Content-Type application/json;type=feed, application/atom+xml
Atom Category term="configuration", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#resource"
Details Obtains a list of child Entries within the Server API configuration directory or in any child configuration directory
Operation {configuration}.post() / {configuration}.{directory}.content.post()
Request Content-Type application/com.ibm.di.api.configuration+json;type=createConfig, application/com.ibm.di.api.configuration+xml
Response Content-Type application/json;type=entry, application/atom+xml
Atom Category term="file", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#configuration"
Details Creates a configuration file with the provided configuration data

The path of the configuration file is relative to the base directory represented by the Atom Feed to which an HTTP POST request is sent. The path is taken from the name specified in the CreateConfig object.

On success, the HTTP code 201 is returned along with a location header pointing to the newly created configuration file Atom Entry. The response body contains a copy of that Atom Entry.

Configuration Directory Entry

Operation {configuration}.{directory}.get()
Response Content-Type application/json;type=entry, application/atom+xml
Atom Category term="directory", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#configuration"
Details Obtains an Atom Entry representing a particular configuration directory. This entry does not show the content of the directory. To access the content, use the "content" link to retrieve the Atom Feed representation.

Configuration File Entry

Operation {configuration}.{file}.get()
Response Content-Type application/json;type=entry, application/atom+xml
Atom Category term="file", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#configuration"
Details Obtains an Atom Entry representing a particular configuration file
Operation {configuration}.{file}.delete()
Details Deletes the deployed configuration file on the IBM Tivoli Directory Integrator Server
Configuration File Editing

Client applications can edit a deployed configuration file. To co-ordinate the multi-client access to the single configuration file, you need to lock the configuration file. The REST Server API allows you to obtain a lock of a configuration file (assuming that file is not already locked), submit multiple changes while holding the lock of the file, and unlock it for others to use.

Operation {configuration}.{file}.lock.post()
Request Content-Type application/com.ibm.di.api.configuration+json;type=configLock, application/com.ibm.di.api.configuration+xml
Response Content-Type application/com.ibm.di.api.configuration+json;type=configLock, application/com.ibm.di.api.configuration+xml
Details Requests a lock on the deployed configuration file. The configPassword is used only when creating the lock, and ignored while updating the already locked configuration file.

On success, the configuration file is locked and an HTTP code of 201 (Created) is returned. The location header contains a link to the configuration lock resource and the body contains a representation of the lock.

If the configuration is already locked, the request fails with HTTP code 409 (Conflict). The configuration file stays locked until:

  • Explicit unlocking is performed using DELETE HTTP operation.
  • A Server API lock timeout is configured on the IBM Tivoli Directory Integrator Server and has expired.
Operation {configuration}.{file}.lock.get()
Response Content-Type application/com.ibm.di.api.configuration+json;type=configLock, application/com.ibm.di.api.configuration+xml
Details On success, the response body contains the lock object representation. An error with the following HTTP codes is returned:
  • 404 (Not found) - the lock was released either explicitly by another administrator user or by the Server API automatic unlocking function and is not acquired since.
  • 403 (Forbidden) - the lock was previously acquired by another user.
Operation {configuration}.{file}.lock.put()
Request Content-Type application/com.ibm.di.api.configuration+json;type=configLock, application/com.ibm.di.api.configuration+xml
Response Content-Type application/com.ibm.di.api.configuration+json;type=configLock, application/com.ibm.di.api.configuration+xml
Details

Updates the lock protecting the configuration. This request does not release the lock. On success, the response body contains the updated lock object representation. An error with the following HTTP codes is returned:

  • 404 (Not found) - the lock was released either explicitly by another administrator user or by the Server API automatic unlocking function and is not acquired since.
  • 403 (Forbidden) - the lock was previously acquired by another user.
Operation {configuration}.{file}.lock.delete()
Details Releases the lock

An error with HTTP code 404 (Not found) is returned if the lock was released either explicitly by another administrator user or by the Server API automatic unlocking functionality and is not acquired since.

ConfigInstance Feed

The Configuration Feed provides access to the Server API ConfigInstance objects started on the IBM Tivoli Directory Integrator Server.

Operation {config-instance}.get()
Response Content-Type application/json;type=feed, application/atom+xml
Atom Category term="config-instance", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#resource"
Details Obtains the ConfigInstance objects as Atom Entries
Operation {config-instance}.post()
Request Content-Type application/com.ibm.di.api.configuration+json;type=startCI, application/com.ibm.di.api.configuration+xml
Response Content-Type application/json;type=entry, application/atom+xml
Atom Category term="config-instance", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#resource"
Details Starts a ConfigInstance on the Server. The StartCI item allows the configuration to be specified in two ways:
  • configRef - specifies the Atom Entry ID of the configuration file.
  • solution - specifies the configuration data without using a configuration file.
On success, the HTTP code 201 (Created) is returned along with a location header pointing to the newly created ConfigInstance Atom Entry. The response body contains a copy of that Atom Entry.

ConfigInstance Entry

Operation {config-instance}.{config-instance}.get()
Response Content-Type application/json;type=entry, application/atom+xml
Atom Category term="config-instance", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#resource"
Details Obtains an Atom Entry representing a particular ConfigInstance.

A link is provided to point to the actual configuration file this ConfigInstance is loaded from. If this ConfigInstance is temporary, the link is not provided.

Operation {config-instance}.{config-instance}.delete()
Details Stops the ConfigInstance synchronously
ConfigInstance Configuration

Operation {config-instance}.{config-instance}.config.get()
Response Content-Type application/com.ibm.di.configuration+json;type=solution, application/com.ibm.di.configuration+xml
Details Obtains the configuration data the ConfigInstance was started with
AssemblyLine Feed

Operation {config-instance}.{config-instance}.assembly-line.get()
Response Content-Type application/json;type=feed, application/atom+xml
Atom Category term="assembly-line", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#resource"
Details Obtains the AssemblyLine Feed for a particular ConfigInstance object
Operation {config-instance}.{config-instance}.assembly-line.post()
Request Content-Type application/com.ibm.di.api.assembly-line+json;type=startAL, application/com.ibm.di.api.assembly-line+xml
Response Content-Type application/json;type=entry, application/atom+xml
Atom Category term="assembly-line", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#resource"
Details Starts an AssemblyLine on the Server. The startAL object contains the name of the AssemblyLine from the ConfigInstance configuration

On success, the HTTP code 201 (Created) is returned along with a location header pointing to the newly created AssemblyLine Atom Entry. The response body contains a copy of that Atom Entry.

AssemblyLine Entry

Operation config-instance}.{config-instance}.assembly-line.{assembly-line}.get()
Response Content-Type application/json;type=entry, application/atom+xml
Atom Category term="assembly-line", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#resource"
Details Obtains an Atom Entry representing a particular AssemblyLine.

A Category with term "active" of scheme "http://www.ibm.com/xmlns/prod/tdi/rest#assembly-line" specifies that the AssemblyLine is still active.

A Category with term "manual" of scheme "http://www.ibm.com/xmlns/prod/tdi/rest#assembly-line" specifies that the AssemblyLine is started in manual mode. A link with relation handle is also available.

Operation {config-instance}.{config-instance}.assembly-line.{assembly-line}.delete()
Details Stops the AssemblyLine synchronously
AssemblyLine Configuration

Operation {config-instance}.{config-instance}.assembly-line.{assembly-line}.config.get()
Response Content-Type application/com.ibm.di.configuration+json;type=assemblyLine, application/com.ibm.di.configuration+xml
Atom Content Obtains the configuration data the AssemblyLine was started with
AssemblyLine Log

Operation {config-instance}.{config-instance}.assembly-line.{assembly-line}.log.get()
Response Content-Type text/plain
Details Obtains the log of the AssemblyLine
AssemblyLine Status

Operation {config-instance}.{config-instance}.assembly-line.{assembly-line}.status.get()
Response Content-Type application/com.ibm.di.api.assembly-line+json;type=taskStatistics, application/com.ibm.di.api.assembly-line+xml
Atom Category Obtains the AssemblyLine status
AssemblyLine Result Entry

Operation {config-instance}.{config-instance}.assembly-line.{assembly-line}.result.get()
Response Content-Type application/com.ibm.di.api.entry+json;type=entry, application/com.ibm.di.api.entry+xml
Details Obtains the AssemblyLine Result Entry
Manual AssemblyLine Handling

Operation {config-instance}.{config-instance}.assembly-line.{assembly-line}.handle.get()
Response Content-Type application/com.ibm.di.api.assembly-line+json;type=alHandle, application/com.ibm.di.api.assembly-line+xml
Details Obtains the "ALHandle" object with only thestate attribute and "resultEntry" element (if available). This object is used to control AssemblyLines in manual mode.

The "state" attribute has the following possible values:

  • init - the AssemblyLine is created and cycles are yet to be processed.
  • processing - the AssemblyLine was requested to make a cycle (using a PUT) and was not completed.
  • done - the AssemblyLine was requested to make a cycle which is completed.
  • closed - the AssemblyLine handle is already closed.
Operation {config-instance}.{config-instance}.assembly-line.{assembly-line}.handle.put()
Request Content-Type application/com.ibm.di.api.assembly-line+json;type=alHandle, application/com.ibm.di.api.assembly-line+xml
Response Content-Type application/com.ibm.di.api.assembly-line+json;type=alHandle, application/com.ibm.di.api.assembly-line+xml
Details Requests a new cycle to be executed.

Manual AssemblyLines takes a long time to execute a cycle. The API creates a thread for the client call to return.

Note:
This particular operation is not idempotent as defined by the HTTP specification. The result of this method is not always the same.

Successful response will have HTTP code 200 and contains a snapshot of the ALHandle object. The ALHanlde object contains the result of AssemblyLine cycle execution, if it is completed before the call returns. If not, the ALHandling state is set to processing.

If you execute this operation while another cycle is still being executed, an HTTP code 409 (Conflict) is returned and your request is ignored.

Operation {config-instance}.{config-instance}.assembly-line.{assembly-line}.handle.delete()
Details Closes the ALHandle object
Note:
It is mandatory to close the handle. Also, the handle is closed during explicit Assembly Line Atom Entry deletion.
Operation {config-instance}.{config-instance}.assembly-line.{assembly-line}.listener.post()
Request Content-Type application/com.ibm.di.api.listener+json;type=assemblyLineListener, application/com.ibm.di.api.listener+xml
Response Content-Type application/json;type=entry, application/atom+xml
Atom Category term="al", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#listener"
Details Registers an AssemblyLine Listener to receive notifications
Script evaluation in AssemblyLine context

Operation {config-instance}.{config-instance}.assembly-line.{assembly-line}.script.post()
Request Content-Type text/plain
Response Content-Type application/com.ibm.di.api.entry+json;type=entry, application/com.ibm.di.api.entry+xml
Details Runs a JavaScript in the context of the AssemblyLine. If the executed script returns a value, the response code is 200 (OK). Else, the 204 (No Content) code is returned

If the retuned script value is IBM Tivoli Directory Integrator Entry, it is retuned as is. Else, a new IBM Tivoli Directory Integrator Entry is created and the value is placed in the "value" attribute.

AssemblyLine Listener Feed

Operation {config-instance}.{config-instance}.assembly-line.{assembly-line}.listener.get()
Response Content-Type application/json;type=feed, application/atom+xml
Atom Category term="listener", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#resource"
Details Obtains the Listener Feed for a particular AssemblyLine object
Operation {config-instance}.{config-instance}.assembly-line.{assembly-line}.listener.post()
Request Content-Type application/com.ibm.di.api.listener+json;type=assemblyLineListener, application/com.ibm.di.api.listener+xml
Response Content-Type application/json;type=entry, application/atom+xml
Atom Category term="al", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#listener"
Details Registers an AssemblyLine listener to receive notifications
AssemblyLine Listener Entry

Operation {config-instance}.{config-instance}.assembly-line.{assembly-line}.listener.{al}.get()
Response Content-Type application/json;type=entry, application/atom+xml
Atom Category term="al", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#listener"
Atom Content application/com.ibm.di.api.listener+json;type=assemblyLineListener, application/com.ibm.di.api.listener+xml
Details Obtains an Atom Entry representing a particular AssemblyLine Listener
Operation {config-instance}.{config-instance}.assembly-line.{assembly-line}.listener.{al}.delete()
Details Unregisters the AssemblyLine Listener object
PropertyStore Feed

Operation {config-instance}.{config-instance}.property-store.get()
Response Content-Type application/json;type=feed, application/atom+xml
Atom Category term="property-store", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#resource"
Details Obtains the PropertyStore Feed for a particular ConfigInstance object
Operation {config-instance}.{config-instance}.property-store.post()
Request Content-Type application/com.ibm.di.configuration+json;type=propertyStore, application/com.ibm.di.configuration+xml
Response Content-Type application/json;type=entry, application/atom+xml
Atom Category term="property-store", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#resource"
Details Creates a PropertyStore for a particular ConfigInstance

On success, the HTTP code 201 (Created) is returned along with a location header pointing to the newly created PropertyStore Atom Entry. The response body contains a copy of that Atom Entry

PropertyStore Entry

Operation {config-instance}.{config-instance}.property-store.{property-store}.get()
Response Content-Type application/json;type=entry, application/atom+xml
Atom Category term="property-store", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#resource"
Details
  • Obtains an Atom Entry representing a particular PropertyStore
  • A category with term "default" of scheme "http://www.ibm.com/xmlns/prod/tdi/rest#property-store" specifies that the PropertyStore is the default entry
  • A category with term "password" of scheme "http://www.ibm.com/xmlns/prod/tdi/rest#property-store" specifies that the PropertyStore is the password
  • A category with term "modified" of scheme "http://www.ibm.com/xmlns/prod/tdi/rest#property-store" specifies that the PropertyStore is updated but not committed
Operation {config-instance}.{config-instance}.property-store.{property-store}.put()
Request Content-Type application/json;type=entry, application/atom+xml
Response Content-Type application/json;type=entry, application/atom+xml
Atom Category term="property-store", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#resource"
Details
  • Updates the type of PropertyStore.
  • If a category with term "default" of scheme "http://www.ibm.com/xmlns/prod/tdi/rest#property-store" is present in the request Atom Entry, the PropertyStore is marked as default Entry.
  • If a category with term "password" of scheme "http://www.ibm.com/xmlns/prod/tdi/rest#property-store" is present in the request Atom Entry, the PropertyStore is marked as the password.
Note:
If the options are not set, the PropertyStore flags will not be unset. To unset the default flag to PropertyStore, set it to another PropertyStore.
Operation {config-instance}.{config-instance}.property-store.{property-store}.delete()
Details Removes the PropertyStore
PropertyStore properties

Operation {config-instance}.{config-instance}.property-store.{property-store}.properties.get()
Response Content-Type application/com.ibm.di.api.property-store+json;type=properties, application/com.ibm.di.api.property-store+xml
Details Obtains all the properties in the PropertyStore
Operation {config-instance}.{config-instance}.property-store.{property-store}.properties.put()
Request Content-Type application/com.ibm.di.api.property-store+json;type=properties, application/com.ibm.di.api.property-store+xml
Details Requests an incremental update of the PropertyStore, by setting the value of one or multiple properties
Note:
Removal of properties is explicit. The request must specify the property and its name, with no value to remove it. The API does not remove a property, which is not present in the request list.
On success, HTTP code 204 (No Content) is returned with an empty response body.
Single property

Operation {config-instance}.{config-instance}.property-store.{property-store}.properties.get()[name]
Response Content-Type application/com.ibm.di.api.property-store+json;type=property, application/com.ibm.di.api.property-store+xml
Details Obtains the property specified by the "name" query parameter. HTTP code 404 is returned if a name is specified and the property is not found
Operation {config-instance}.{config-instance}.property-store.{property-store}.properties.put()[name, encrypt, commit]
Request Content-Type text/plain
Details
  • Sets the value of the property specified by the "name" query parameter. If not found, a new property is created.
  • Specifying a Boolean value for the "encrypt" parameter, switches the property value encryption. Default value is "false".
  • commit - specifies whether all pending changes must be committed with this request. The default value is "false". HTTP code 404 is returned if no name is specified
  • On success, HTTP code 204 (No Content) is returned with an empty response body
Operation {config-instance}.{config-instance}.property-store.{property-store}.properties.delete()[name, commit]
Details
  • Deletes the property specified by the name query parameter
  • "commit" - specifies whether all pending changes must be committed with this request. Default value is false
  • HTTP code 404 is returned if no name is specified
  • On success, HTTP code 204 (No Content) is returned with an empty response body
ConfigInstance Listener Feed

Operation {config-instance}.{config-instance}.listener.get()
Response Content-Type application/json;type=feed, application/atom+xml
Atom Category term="listener", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#resource"
Details Obtains the Listener Feed for a particular ConfigInstance object
Operation {config-instance}.{config-instance}.listener.post()
Request Content-Type application/com.ibm.di.api.listener+json;type=assemblyLineListener, application/com.ibm.di.api.listener+xml
Response Content-Type application/json;type=entry, application/atom+xml
Atom Category term="log", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#listener"
Details Registers a ConfigInstance Listener to receive notifications
ConfigInstance Listener Entry

Operation {config-instance}.{config-instance}.listener.{log}.get()
Response Content-Type application/json;type=entry, application/atom+xml
Atom Category term="log", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#listener"
Atom Content application/com.ibm.di.api.listener+json;type=logListener, application/com.ibm.di.api.listener+xml
Details Obtains an Atom Entry representing a particular ConfigInstance Listener
Operation {config-instance}.{config-instance}.listener.{log}.delete()
Details Unregisters the ConfigInstance Listener object

Server Listener Feed

Operation {listener}.get()
Response Content-Type application/json;type=feed, application/atom+xml
Atom Category term="listener", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#resource"
Details Obtains the Listener Feed for server notifications
Operation {listener}.post()
Request Content-Type application/com.ibm.di.api.listener+json;type=diEventListener, application/com.ibm.di.api.listener+xml
Response Content-Type application/json;type=entry, application/atom+xml
Atom Category term="event", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#listener"
Details Registers a Listener to receive server notifications
Operation {listener}.post()
Request Content-Type application/com.ibm.di.api.listener+json;type=configFileListener, application/com.ibm.di.api.listener+xml
Response Content-Type application/json;type=entry, application/atom+xml
Atom Category term="config-file", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#listener"
Details Registers a Listener to receive configuration file change notifications

Server Listener Entry

Operation {listener}.{event}.get()
Response Content-Type application/json;type=entry, application/atom+xml
Atom Category term="event", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#listener"
Atom Content application/com.ibm.di.api.listener+json;type=diEventListener, application/com.ibm.di.api.listener+xml
Details Obtains an Atom Entry representing a particular Server Listener
Operation {listener}.{config-file}.get()
Response Content-Type application/json;type=entry, application/atom+xml
Atom Category term="event", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#listener"
Atom Content application/com.ibm.di.api.listener+json;type=configFileListener, application/com.ibm.di.api.listener+xml
Details Obtains an Atom Entry representing a particular configuration file Listener
Operation {listener}.{event}.delete() or {listener}.{config-file}.delete()
Details Unregisters the Server/Config File Listener object

Tombstone Feed

Operation {tombstone}.get()
Response Content-Type application/json;type=feed, application/atom+xml
Atom Category term="tombstone", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#resource"
Atom Content Obtains the Tombstone Feed listing of all the ConfigInstance Atom Entries for which either a Tombstone is recorded or there is a child AssemblyLine with Tombstones recorded

ConnfigInstance Entry

Operation {tombstone}.{config-instance}.get()
Response Content-Type application/json;type=entry, application/atom+xml
Atom Category term="config-instance", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#resource"
Details Obtains the ConfigInstance Atom Entry providing access to both the Tombstones recorded for it and to the child AssemblyLine Tombstones
Operation {tombstone}.{config-instance}.delete()
Details Deletes all Tombstones for the selected ConfigInstance and all the Tombstones for the children AssemblyLines
ConfigInstance Tombstone Feed

Operation {tombstone}.{config-instance}.tombstone.get()
Response Content-Type application/json;type=feed, application/atom+xml
Atom Category term="tombstone", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#resource"
Details Obtains the Tombstone Atom Feed for the corresponding ConfigInstance. The detail contains a list of the Tombstones for the particular ConfigInstance
ConnfigInstance Tombstone Entry

Operation {tombstone}.{config-instance}.tombstone.{tombstone}.get()
Response Content-Type application/json;type=entry, application/atom+xml
Atom Category term="tombstone", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#resource"
Atom Content application/com.ibm.di.api.tombstone+json;type=tombstone, application/com.ibm.di.api.tombstone+xml
Details Obtains the Tombstone Atom Entry for the particular ConfigInstance
Operation {tombstone}.{config-instance}.tombstone.{tombstone}.delete()
Details Deletes the selected Tombstone for the particular ConfigInstance
AssemblyLine Feed

Operation {tombstone}.{config-instance}.assembly-line.get()
Response Content-Type application/json;type=feed, application/atom+xml
Atom Category term="assembly-line", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#resource"
Details Obtains the Tombstone Feed listing for all the AssemblyLine Atom Entries for which a Tombstone is recorded
AssemblyLine Entry

Operation {tombstone}.{config-instance}.assembly-line.{assembly-line}.get()
Response Content-Type application/json;type=entry, application/atom+xml
Atom Category term="assembly-line", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#resource"
Details Obtains the AssemblyLine Atom Entry providing access to the recorded Tombstones
Operation {tombstone}.{config-instance}.assembly-line.{assembly-line}.delete()
Details Deletes all Tombstones for the selected AssemblyLine
AssemblyLine Tombstone Feed

Operation {tombstone}.{config-instance}.assembly-line.{assembly-line}.tombstone.get()
Response Content-Type application/json;type=feed, application/atom+xml
Atom Category term="tombstone", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#resource"
Details Obtains the Tombstone Atom Feed for the corresponding AssemblyLine. This detail contains a list of the Tombstones for the particular AssemblyLine
AssemblyLine Tombstone Entry

Operation {tombstone}.{config-instance}.assembly-line.{assembly-line}.tombstone.{tombstone}.get()
Response Content-Type application/json;type=entry, application/atom+xml
Atom Category term="tombstone", scheme="http://www.ibm.com/xmlns/prod/tdi/rest#resource"
Atom Content application/com.ibm.di.api.tombstone+json;type=tombstone, application/com.ibm.di.api.tombstone+xml
Details Obtains the Tombstone Atom Entry for the particular AssemblyLine
Operation {tombstone}.{config-instance}.assembly-line.{assembly-line}.tombstone.{tombstone}.delete()
Details Deletes the selected Tombstone for the particular AssemblyLine

Listener Transport Channels

Each Listener contains an object that represents the way the messages are transported. The types of transportation mechanisms are:

Push channel

The Push Channel uses the HTTP protocol to deliver messages. To deliver messages, the Push Channel object, inside the registered Listener, contains the fields that specify the destination URLs, where messages are sent. A client starts an HTTP server and registers a Listener, which has a Push Channel that is configured with the URL pointing to a place on that HTTP server. On each message, the configured listener sends an HTTP POST request to the specified location.

If the communication with the main server breaks down due to some error, the Listener tries to post to the fallback server, if provided. Push Channel makes it easy to deliver real-time notifications as they occur.

Listeners having Push Channel will also have an Atom Category with term "push" and scheme "http://www.ibm.com/xmlns/prod/tdi/rest#listener".

Poll Channel

The Poll Channel mechanism is used to achieve near real-time delivery of notifications.

The mechanism relies on using JMS server that buffers messages until the client side requests them. The client registers a new Listener, which has a Poll Configuration. When the Listener is successfully registered, the client receives an Atom Link with the relation "poll". Sending HTTP GET requests on that URL obtains each message.

Clients can use the JMS Server to buffer messages to configure Push Channel to deliver the messages in bunches. This mechanism reduces the network traffic and also eases the client/server procession when the source of events produces lot of events in a short time. For other event sources that produce fewer events, configure them to return a single event or a smaller bunch of events with a larger timeout value. Listeners having Push Channel will also have an Atom Category with term "poll" and scheme "http://www.ibm.com/xmlns/prod/tdi/rest#listener".

[ Top of Page | Previous Page | Next Page | Contents | Terms of use | Feedback ]
(C) Copyright IBM Corporation, 2003, 2012. All Rights Reserved.
IBM Tivoli Directory Integrator 7.1.1