# IRI DTN Service Resource Definition Profile

**Profile URI:** `https://iri.science/profiles/resource-definition/service/dtn`  
**Base Profile:** `https://iri.science/profiles/status/resource`  
**Resource Type:** `urn:doe-iri:resource:service:dtn`  
**Status:** Draft  
**Version:** 1.0.0

## Profile Applicability

This profile applies when `resource_type` is `urn:doe-iri:resource:service:dtn`.
It specializes the [IRI Status Resource Profile](/profiles/status/resource/),
which a conforming representation MUST also satisfy. The authoritative URN
record is [Resource Type URNs](https://github.com/doe-iri/iri-facility-api-docs/blob/76a4a0c8992429d0358e8309211cb30a4af1c83c/registry/urns/resource-types.md).

This document defines attributes for the `urn:doe-iri:resource:service:dtn` resource type.

## 1. Profile Context

The following retained context identifies the profile's Resource Type; its
registration is authoritative in the URN registry.

| Field | Description |
|---|---|
| URN | `urn:doe-iri:resource:service:dtn` |
| Short name | DTN Service |
| Description | A consumable data-transfer service. It does not identify an individual host or compute node. |
| Parent URN | `urn:doe-iri:resource:service` |
| Status | `provisional` |
| Introduced | IRI v2.0 |
| Change controller | IRI technical subcommittee. |
| Reference | [Service Resource Types Design](https://github.com/doe-iri/iri-facility-api-docs/blob/76a4a0c8992429d0358e8309211cb30a4af1c83c/engineering/decisions/0001-service-resource-boundaries.md). |
| Legacy value | `service` enumeration. The broad legacy value does not distinguish this refinement. |
| Examples | `urn:doe-iri:resource:service:dtn` |
| Notes | This profile defines relatively stable characteristics of a consumable DTN service. |

## 2. Introduction

A DTN service is a consumable service through which a facility makes data-transfer operations available. It is distinct from the compute system or compute node that hosts it; hosting topology is represented separately using `iri:hosted-on`. A DTN service may also be configured to access filesystem mounts for transfer operations through `iri:accesses-mount`.

This profile records service configuration. Endpoint URLs are attributes of the DTN service rather than independent IRI resources because they normally do not require independent identity, lifecycle, or relationships. If a future use case requires those properties, an endpoint may be defined as a separate resource type in a future profile version.

The profile distinguishes a DTN technology or implementation from the transfer protocols it supports. A technology identifies the software or service implementation providing the DTN; a protocol identifies an interface through which transfers can be requested or performed. A DTN may advertise multiple transfer protocols regardless of its technology.

Except for `schema_version`, attributes in this profile are optional. Omit an optional attribute when it is unknown or not relevant instead of guessing a technology, version, protocol, or endpoint. The absence of an optional attribute means that the information has not been provided; it does not imply a particular value, capability, or lack of support.

## 3. Taxonomy

The taxonomy distinguishes the DTN service resource type from controlled values used to describe it. Only attributes represented by controlled DOE-IRI URNs appear in the controlled-vocabulary portion of the tree.

```text
urn:doe-iri
│
├── resource
│   └── service
│       └── dtn
│
└── service
    ├── dtn-technology
    │   ├── globus
    │   └── xrootd
    │
    └── transfer-protocol
        ├── https
        ├── gridftp
        ├── xrootd
        └── sftp
```

The complete controlled-vocabulary index is maintained in [Controlled Attribute
URNs](https://github.com/doe-iri/iri-facility-api-docs/blob/76a4a0c8992429d0358e8309211cb30a4af1c83c/registry/urns/attributes.md).

## 4. DTN Service Attributes

This Resource Definition Profile defines the attributes that MAY describe a resource of type `urn:doe-iri:resource:service:dtn`.

| Attribute | Version | Type | Description | Mandatory |
|---|---|---|---|---|
| `schema_version` | 1.0.0 | string | Version of the profile definition (e.g. `"1.0.0"`). | yes |
| `dtn_technology` | 1.0.0 | IRI URN string | Identifies the technology or implementation providing the DTN service. | no |
| `technology_version` | 1.0.0 | string | Identifies the deployed technology version when useful and known. | no |
| `transfer_protocols` | 1.0.0 | Array IRI URN string | Identifies transfer protocols supported by the DTN service. | no |
| `transfer_endpoints` | 1.0.0 | Array TransferEndpoint | Identifies configured endpoints through which transfers can be requested or performed. | no |

### 4.1. DTN Technology

The `dtn_technology` attribute identifies the technology or implementation providing the DTN service. Its value MUST be a registered DOE-IRI URN from the `urn:doe-iri:service:dtn-technology` namespace.

| URN | Short name | Description | Status |
|---|---|---|---|
| `urn:doe-iri:service:dtn-technology:globus` | Globus | A DTN service technology or implementation provided by Globus. | `provisional` |
| `urn:doe-iri:service:dtn-technology:xrootd` | XRootD | A DTN service technology or implementation provided by XRootD. | `provisional` |

Globus and XRootD in this vocabulary identify technologies, not resource subtypes. Clients MUST NOT infer supported transfer protocols, endpoint reachability, authorization, capacity, or operational state solely from `dtn_technology`.

### 4.2. Transfer Protocols

The `transfer_protocols` attribute identifies transfer protocols supported by the DTN service. It is an array because a DTN may support more than one protocol. Each value MUST be a registered DOE-IRI URN from the `urn:doe-iri:service:transfer-protocol` namespace.

| URN | Short name | Description | Status |
|---|---|---|---|
| `urn:doe-iri:service:transfer-protocol:https` | HTTPS | The Hypertext Transfer Protocol Secure protocol family for transfer endpoints. | `provisional` |
| `urn:doe-iri:service:transfer-protocol:gridftp` | GridFTP | The GridFTP protocol for high-performance, managed data transfer. | `provisional` |
| `urn:doe-iri:service:transfer-protocol:xrootd` | XRootD | The XRootD protocol for high-performance data access and transfer. | `provisional` |
| `urn:doe-iri:service:transfer-protocol:sftp` | SFTP | The SSH File Transfer Protocol. | `provisional` |

The XRootD technology value and the XRootD protocol value answer different questions: the former identifies an implementation, while the latter identifies a transfer interface. A DTN may advertise several protocols regardless of its implementation technology. Facilities SHOULD explicitly advertise supported protocols rather than require clients to infer them from `dtn_technology`.

### 4.3. Transfer Endpoints

The `transfer_endpoints` attribute identifies configured network endpoints through which transfers can be requested or performed. A DTN may expose multiple endpoints, including endpoints for different protocols.

Each `TransferEndpoint` contains:

| Property | Type | Description | Mandatory |
|---|---|---|---|
| `url` | string URI | Configured network endpoint. | yes |
| `protocol` | IRI URN string | Registered transfer protocol exposed by the endpoint. | yes |
| `name` | string | Human-readable endpoint label. | no |

The `protocol` value MUST come from `urn:doe-iri:service:transfer-protocol:*`. An endpoint is configured access information, not a claim that it is currently reachable, available to a particular consumer, or authorized for a particular transfer.

### 4.4. Time-Varying and Security Information

This version of the profile does not define endpoint health, current endpoint reachability, active transfers, queues, throughput, credentials, or current availability. If time-varying values are represented, their semantics and update behavior are governed by the applicable IRI API contract and Resource Definition Profile. Credentials and authorization remain governed by the applicable security and access-control contracts.

## 5. DTN Service JSON Schema

```yaml
components:
  schemas:

    IriUrn:
      type: string
      description: >
        A DOE-IRI Uniform Resource Name (URN) identifying a registered
        IRI resource type, attribute value, capability, or other
        controlled vocabulary value.
      pattern: '^urn:doe-iri:[A-Za-z0-9][A-Za-z0-9:._~-]*$'
      example: urn:doe-iri:service:dtn-technology:globus

    TransferEndpoint:
      type: object
      required:
        - url
        - protocol
      properties:

        url:
          type: string
          format: uri
          description: Configured network endpoint for transfer operations.

        protocol:
          $ref: '#/components/schemas/IriUrn'
          description: Registered transfer protocol exposed by this endpoint.

        name:
          type: string
          description: Human-readable endpoint label.

    DtnServiceAttributes:
      type: object
      description: >
        Attributes describing a DTN service resource with resource type
        urn:doe-iri:resource:service:dtn.
      required:
        - schema_version

      properties:

        schema_version:
          type: string
          description: Version of the DTN service attribute contract.
          enum:
            - "1.0.0"
          example: "1.0.0"

        dtn_technology:
          $ref: '#/components/schemas/IriUrn'
          description: Identifies the technology or implementation providing the DTN service.
          example: urn:doe-iri:service:dtn-technology:globus

        technology_version:
          type: string
          description: Identifies the deployed technology version when useful and known.

        transfer_protocols:
          type: array
          description: Identifies transfer protocols supported by the DTN service.
          uniqueItems: true
          items:
            $ref: '#/components/schemas/IriUrn'
          example:
            - urn:doe-iri:service:transfer-protocol:https
            - urn:doe-iri:service:transfer-protocol:gridftp

        transfer_endpoints:
          type: array
          description: >
            Identifies configured endpoints through which transfers can be
            requested or performed.
          items:
            $ref: '#/components/schemas/TransferEndpoint'
```

## 6. Example DTN Service JSON Instances

The following Globus DTN service advertises HTTPS and GridFTP transfer protocols and provides one configured endpoint for each protocol.

```json
{
  "schema_version": "1.0.0",
  "dtn_technology": "urn:doe-iri:service:dtn-technology:globus",
  "technology_version": "5.4",
  "transfer_protocols": [
    "urn:doe-iri:service:transfer-protocol:https",
    "urn:doe-iri:service:transfer-protocol:gridftp"
  ],
  "transfer_endpoints": [
    {
      "url": "https://globus.example.gov",
      "protocol": "urn:doe-iri:service:transfer-protocol:https",
      "name": "Globus HTTPS endpoint"
    },
    {
      "url": "gsiftp://globus.example.gov",
      "protocol": "urn:doe-iri:service:transfer-protocol:gridftp",
      "name": "Globus GridFTP endpoint"
    }
  ]
}
```

The following illustrative complete resource representation applies the
`DtnServiceAttributes` profile inside `attributes` and adds HAL relationships
for its hosting infrastructure and configured mount access. It is a
resource-level example, not an instance of `DtnServiceAttributes` alone.

```json
{
  "id": "globus-dtn",
  "name": "Globus DTN Service",
  "description": "Facility data-transfer service with HTTPS and GridFTP access",
  "last_modified": "2026-08-13T12:00:00Z",
  "resource_type": "urn:doe-iri:resource:service:dtn",
  "self_uri": "https://api.example.gov/api/v2/status/resources/globus-dtn",
  "site_uri": "https://api.example.gov/api/v2/facility/sites/example-site",
  "capability_uris": [],
  "attributes": {
    "schema_version": "1.0.0",
    "dtn_technology": "urn:doe-iri:service:dtn-technology:globus",
    "technology_version": "5.4",
    "transfer_protocols": [
      "urn:doe-iri:service:transfer-protocol:https",
      "urn:doe-iri:service:transfer-protocol:gridftp"
    ],
    "transfer_endpoints": [
      {
        "url": "https://globus.example.gov",
        "protocol": "urn:doe-iri:service:transfer-protocol:https",
        "name": "Globus HTTPS endpoint"
      },
      {
        "url": "gsiftp://globus.example.gov",
        "protocol": "urn:doe-iri:service:transfer-protocol:gridftp",
        "name": "Globus GridFTP endpoint"
      }
    ]
  },
  "_links": {
    "iri:located-at": {
      "href": "https://api.example.gov/api/v2/facility/sites/example-site",
      "profile": "https://iri.science/profiles/facility/site"
    },
    "iri:hosted-on": {
      "href": "/api/v2/status/resources/perlmutter",
      "profile": "https://iri.science/profiles/resource-definition/compute/system"
    },
    "iri:accesses-mount": [
      {
        "href": "/api/v2/status/resources/perlmutter-scratch-mount",
        "profile": "https://iri.science/profiles/resource-definition/storage/mount"
      },
      {
        "href": "/api/v2/status/resources/analysis-home-mount",
        "profile": "https://iri.science/profiles/resource-definition/storage/mount"
      }
    ]
  }
}
```

The following XRootD DTN service uses the XRootD technology and exposes XRootD and HTTPS endpoints.

```json
{
  "schema_version": "1.0.0",
  "dtn_technology": "urn:doe-iri:service:dtn-technology:xrootd",
  "technology_version": "5.7",
  "transfer_protocols": [
    "urn:doe-iri:service:transfer-protocol:xrootd",
    "urn:doe-iri:service:transfer-protocol:https"
  ],
  "transfer_endpoints": [
    {
      "url": "root://xrootd.example.gov",
      "protocol": "urn:doe-iri:service:transfer-protocol:xrootd",
      "name": "XRootD endpoint"
    },
    {
      "url": "https://xrootd.example.gov",
      "protocol": "urn:doe-iri:service:transfer-protocol:https",
      "name": "XRootD HTTPS endpoint"
    }
  ]
}
```

The examples describe configured service attributes and do not assert endpoint health, active transfers, queue depth, throughput, credentials, or current availability.

## 7. Applicable Operation Affordances

This profile supplements the [common Resource profile](/profiles/status/resource/).
The registered relation definitions remain authoritative for operation
semantics, and the applicable deployed OpenAPI description remains
authoritative for the invocation contract.

The filesystem operation family is conditionally applicable only when this
DTN Resource itself is the explicit adapter context and the adapter establishes
an unambiguous path namespace and operation context:

- metadata and security: [`iri:change-file-mode`](/rels/change-file-mode/),
  [`iri:change-file-owner`](/rels/change-file-owner/),
  [`iri:identify-file`](/rels/identify-file/),
  [`iri:stat-file`](/rels/stat-file/), and
  [`iri:checksum-file`](/rels/checksum-file/);
- directory and read: [`iri:create-directory`](/rels/create-directory/),
  [`iri:create-symlink`](/rels/create-symlink/),
  [`iri:list-directory`](/rels/list-directory/),
  [`iri:read-file-head`](/rels/read-file-head/), and
  [`iri:read-file-tail`](/rels/read-file-tail/);
- content transfer: [`iri:view-file`](/rels/view-file/),
  [`iri:copy-path`](/rels/copy-path/),
  [`iri:download-file`](/rels/download-file/), and
  [`iri:upload-file`](/rels/upload-file/); and
- mutation and archive: [`iri:remove-path`](/rels/remove-path/),
  [`iri:compress-paths`](/rels/compress-paths/),
  [`iri:extract-archive`](/rels/extract-archive/), and
  [`iri:move-path`](/rels/move-path/).

[`iri:resolve-storage-locations`](/rels/resolve-storage-locations/)
MAY be advertised when location resolution is supported for this DTN context.
Compute-job relations and `iri:get-storage-access-endpoints` do not apply to a
DTN Resource. This profile defines no generic transfer-execution relation.

The `iri:hosted-on` and `iri:accesses-mount` topology relations do not confer
filesystem operations from the host or a referenced mount. DTN technology,
transfer protocols, and transfer endpoints likewise do not identify operation
entry points or guarantee current reachability or authorization.

When any applicable operation relation is advertised, the representation MUST
also advertise at least one applicable `service-desc` whose deployed OpenAPI
contains the matching canonical `x-iri-relation` binding. An operation link
targets an operation entry point and MUST NOT carry an IRI representation
`profile`. Clients MUST NOT infer an operation path from the Resource Type,
profile URI, Resource identifier, topology, or DTN attributes.

A provider MAY omit an operation link because it is not configured,
applicable, or visible to the requester. Absence means only that the operation
is not advertised in the current representation. Presence grants no
permission and guarantees no successful invocation.

---

*DOE Integrated Research Infrastructure — URN Registry: DTN Service*
