1. Authenticate
Prerequisites
- You should have registered in our developer portal. Check this link about how to register an Account.
- You should request access to the playground, sandbox and production environment using our Support page. Here is the link to support page to request access to our environments.
- You should have an App created in your account to get the client id and client secret. Check this link about how to create an App.
Note : The time data attribute on APIs follows a 24-hour clock starting at 00:00 and ending at 23:59.
Authentication
The bearer token obtained after successful authentication should be passed as credential when calling this API for authentication. Check the Access Token API link for instructions on how to generate your bearer token.
2. Permisssions
To Access PoP/POE room, the user must have "Service Tickets-PoP/POE Room Access" permission. If you are unaware of your user permissions, contact your Account Administrator.
3. Get Information
Get Account Information
Master account Id and account Id need to be passed in the header for this API call. This is needed to indicate your legal entity.
Refer to the Accounts API for instructions on how to retrieve your account information. You may skip this step if you already know your master account Id and account Id.
Get Site Information
Retrieve the available facility information which are assigned to you. You need the site code to indicate to which facility you want to make a request.
Refer to the Sites API for instructions on how to retrieve your site information. You may skip this step if you already know your sites.
Get Location Information
Retrieve the available location information which are assigned to you. You need the location name to indicate to which location in the facility you want to make a request.
Refer to the Locations API for instructions on how to retrieve your location information. You may skip this step if you already know your locations.
4. Request PoP/POE Access
The method can be used to request PoP/POE room access.
Method | POST |
---|---|
End point | /v1/facility-access/pop-poes/access-requests |
Headers | Authorization, Master-Account-Id, Account-Id, Content-Type |
Query Parameters | n/a |
Body | visitors [{ visitorFirstName, visitorLastName, visitorEmail,company, visitorPhone, contactType}], sites [{site, locations [{location, accessStartDate, accessEndDate,accessStartTime,accessEndTime}]}],visitorType,escortFirstName, escortLastName,visitorHostFirstName, visitorHostLastName, visitorHostCompany, customerExternalReference, emailNotifications, details |
AccessStartTime : Specifies the start time of the access privilege.
AccessEndTime : Specifies the end time of the access privilege.
Time Format : HH:MM:SS
Time Zone: Local time at the data centre when the technician is supposed to report to work for the day
Sample Curl Request
curl --location --request POST 'https://api.digitalrealty.com/v1/facility-access/pop-poes/access-requests' \
--header 'Master-Account-Id: <Master-Account-Id>' \
--header 'Account-Id: <Account-Id>' \
--header 'Authorization: Bearer <access_token>' \
--header 'Content-Type: application/json' \
--data-raw '{
"visitors": [
{
"visitorFirstName": "test2",
"visitorLastName": "forvisitor",
"visitorEmail": "test@forvisitor.com",
"company": "ABC Corporation",
"visitorPhone": "",
"contactType": "test visitor wants to visit ABC loc"
}
],
"sites": [
{
"site": "IAD024",
"locations": [
{
"location": "ABC Cage F150-B",
"accessStartDate": "2023-06-07",
"accessEndDate": "2023-06-07",
"accessStartTime": "06:22:00",
"accessEndTime": "06:22:00"
}
]
}
],
"visitorType": true,
"escortFirstName": "Jane",
"escortLastName": "Doe",
"visitorHostFirstName": "John",
"visitorHostLastName": "Doe",
"visitorHostCompany": "ABC Company",
"customerExternalReference": "REF1234",
"emailNotifications": "jane_doe@email.com,test@email.com",
"details": {
"serviceImpact": true,
"serviceType": "Installation/De-installation Work",
"serviceImpactedDescription": "abcaj",
"isCcPcInstallationRemoval": true,
"ccPcWorkDescription": "ccremoval",
"circuit": [
{
"circuitNameA": "Circuit01",
"roomNumberA": "Room01",
"rackNumberA": "Rack01",
"panelNumberA": "R01P01",
"portA": "R01P01X01",
"carrierCircuitIdA": "CC012345",
"circuitNameZ": "Circuit01",
"roomNumberZ": "Room01",
"rackNumberZ": "Rack01",
"panelNumberZ": "R01P01",
"portZ": "R01P01X01",
"carrierCircuitIdZ": "CC012345"
}
],
"ppop": [
{
"ppopRack": "pRack",
"ppopCabinet": "pCabinet"
}
],
"spop": [
{
"spopRack": "sRack123",
"spopCabinet": "sCabinet123"
}
],
"ppopRoomWork": true,
"ppopToRoomRackPanel": "pToRoom",
"ppopFromRoomRackPanel": "PFromRoom",
"ppopCableType": "Fiber",
"ppopInFiberGuide": false,
"ppopInInnerDuct": false,
"ppopOnLadderRack": false,
"spopRoomWork": true,
"spopToRoomRackPanel": "sToRoom",
"spopFromRoomRackPanel": "sFromRoom",
"spopCableType": "Fiber",
"spopInFiberGuide": false,
"spopInInnerDuct": false,
"spopOnLadderRack": false
}
}'
Headers
Field Name | Mandatory | Type | Description |
---|---|---|---|
Master-Account-Id | true | string | Customer master account identifier. |
Account-Id | true | string | Customer account identifier. |
Authorization | true | string | Token-based authentication. |
Content-Type | true | string | Indicates the request body format. value: [application/json] |
Query Parameters
n/a
Body
Field Name | Mandatory | Type | Description |
---|---|---|---|
visitors | true | array | Array of visitor objects. [up to 10 visitors] |
> visitorFirstName | true | string(20) | First name of the visitor. |
> visitorLastName | true | string(20) | Last name of the visitor. |
> visitorEmail | true | string(50) | Visitor’s email address. |
> company | true | string(120) | Name of company the visitor works for. |
> visitorPhone | false | string(40) | Visitor’s phone number. |
> contactType | true | string | Values: [Visitor,Contractor] Default Value for contactType= Visitor. |
sites | true | array | Array of site objects. |
> site | true | string(6) | Site work will be performed. |
> locations | true | array | Array of location objects. |
> > location | true | string | Space within the facility where access needed (suite, cage, etc.) |
> > accessStartDate | true | string($date) |
Date specific access privileges start. accessStartDate >= Current date < 90 days in the future |
> > accessEndDate | true | string($date) |
Date specific access privileges end. accessEndDate >= accessStartDate but < 14 days in the future |
> > accessStartTime | true | string($time) | Time specific access privileges start. format: [HH:mm:ss] |
> > accessEndTime | true | string($time) | Time specific access privileges end. format: [HH:mm:ss] |
visitorType | true | boolean | Indicates if visitors access is escorted. Values: [true = Escorted visitor, false = Unescorted visitor] Default Value for visitorType = true. |
escortFirstName | true | string(20) | First name of person escorting visitor. * Mandatory if visitorType is true |
escortLastName | true | string(20) | Last name of person escorting visitor. * Mandatory if visitorType is true |
visitorHostFirstName | true | string(20) | First name of host. |
visitorHostLastName | true | string(20) | Last name of host. |
visitorHostCompany | true | string(120) | Company hosting the visitor. |
customerExternalReference | false | string(40) | Customers external reference |
emailNotifications | false | string(32k) | Personnel's email addresses designated to be notified of the request. You can add one or more email addresses in the field by inserting a comma as a separator : "email_1, email_2, email_3". |
details | false | string(65k) | JSON object of details (see below) |
Details JSON
"{
"serviceImpact": true,
"serviceType": "Installation/De-installation Work",
"serviceImpactedDescription": "abcaj",
"isCcPcInstallationRemoval": true,
"ccPcWorkDescription": "ccremoval",
"circuit": [
{
"circuitNameA": "Circuit01",
"roomNumberA": "Room01",
"rackNumberA": "Rack01",
"panelNumberA": "R01P01",
"portA": "R01P01X01",
"carrierCircuitIdA": "CC012345",
"circuitNameZ": "Circuit01",
"roomNumberZ": "Room01",
"rackNumberZ": "Rack01",
"panelNumberZ": "R01P01",
"portZ": "R01P01X01",
"carrierCircuitIdZ": "CC012345"
}
],
"ppop": [
{
"ppopRack": "pRack",
"ppopCabinet": "pCabinet"
}
],
"spop": [
{
"spopRack": "sRack123",
"spopCabinet": "sCabinet123"
}
],
"ppopRoomWork": true,
"ppopToRoomRackPanel": "pToRoom",
"ppopFromRoomRackPanel": "PFromRoom",
"ppopCableType": "Fiber",
"ppopInFiberGuide": false,
"ppopInInnerDuct": false,
"ppopOnLadderRack": false,
"spopRoomWork": true,
"spopToRoomRackPanel": "sToRoom",
"spopFromRoomRackPanel": "sFromRoom",
"spopCableType": "Fiber",
"spopInFiberGuide": false,
"spopInInnerDuct": false,
"spopOnLadderRack": false
}"
Details Description
Field Name | Mandatory | Type | Description |
---|---|---|---|
serviceImpact | true | boolean | Indicates if service impacted |
serviceType | true | string | The type of service. values [ Site Survey, Testing, Installation/De-installation Work ] |
serviceImpactedDescription | false* | string | Description of the service impacting work * Mandatory if serviceImpact is true |
isCcPcInstallationRemoval | false* | boolean | Do you want to perform Installation/Removal. * Mandatory if serviceType is "Installation/De-installation Work" |
ccPcWorkDescription | false* | string | Define if it is installation or removal, and provide the scope. * Mandatory if isCcPcInstallationRemoval is true |
circuit | false | array | Array of circuit objects. * Mandatory if isCcPcInstallationRemoval is true |
> circuitNameA | true | string | Company Name on the A side and Company Name on the Z side. |
> roomNumberA | true | string | Room/Suite Number for the A and Z sides of the circuit. |
> rackNumberA | true | string | Labeled Rack Numbers for the A and Z sides of the circuit. |
> panelNumberA | true | string | Labeled Panel Number for the A and Z sides of the circuit. |
> portA | true | string | Labeled Port Number for the A and Z sides of the circuit. |
> carrierCircuitIdA | true | string | The carrier/provider provided circuit ID number. |
> circuitNameZ | true | string | Company Name on the A side and Company Name on the Z side. |
> roomNumberZ | true | string | Room/Suite Number for the A and Z sides of the circuit. |
> rackNumberZ | true | string | Labeled Rack Numbers for the A and Z sides of the circuit. |
> panelNumberZ | true | string | Labeled Panel Number for the A and Z sides of the circuit. |
> portZ | true | string | Labeled Port Number for the A and Z sides of the circuit. |
> carrierCircuitIdZ | true | string | The carrier/provider provided circuit ID number. |
ppop | false | array | Array of ppop objects. |
> ppopRack | true | string | Rack designation/labeling (Room/Aisle/Rack Number). |
> ppopCabinet | true | string | Cabinet designation/labeling (Room/Aisle/Rack Number). |
spop | false | array | Array of spop objects. |
> spopRack | true | string | Rack designation/labeling (Room/Aisle/Rack Number). |
> spopCabinet | true | string | Cabinet designation/labeling (Room/Aisle/Rack Number). |
ppopRoomWork | false | boolean | Indicates whether cabling will be run outside of cabinet/rack through common area. |
ppopToRoomRackPanel | false* | string | Provide which Room, Rack, and Panel cabling terminates. * Mandatory if ppopRoomWork = true |
ppopFromRoomRackPanel | false* | string | Provide which Room, Rack, and Panel cabling originates. * Mandatory if ppopRoomWork = true |
ppopCableType | false* | string | The type of cable. values [ Fiber, Copper ] * Mandatory if ppopRoomWork = true |
ppopInFiberGuide | false* | boolean | Indicates if run through fiber guide. * Mandatory if ppopRoomWork = true |
ppopInInnerDuct | false* | boolean | Indicates if run in innerduct. * Mandatory if ppopRoomWork = true |
ppopOnLadderRack | false* | boolean | Indicates on shared ladder rack/cable tray. * Mandatory if ppopRoomWork = true |
spopRoomWork | false | boolean | Indicates whether cabling will be run outside of cabinet/rack through common area. |
spopToRoomRackPanel | false* | string | Provide which Room, Rack, and Panel cabling terminates. * Mandatory if spopRoomWork = true |
spopFromRoomRackPanel | false* | string | Provide which Room, Rack, and Panel cabling originates. * Mandatory if spopRoomWork = true |
spopCableType | false* | string | The type of cable. values [ Fiber, Copper ] * Mandatory if spopRoomWork = true |
spopInFiberGuide | false* | boolean | Indicates if run through fiber guide. * Mandatory if spopRoomWork = true |
spopInInnerDuct | false* | boolean | Indicates if run in innerduct. * Mandatory if spopRoomWork = true |
spopOnLadderRack | false* | boolean | Indicates on shared ladder rack/cable tray. * Mandatory if spopRoomWork = true |
Sample JSON Response
{
"workOrder": [
{
"workOrderId": "WO8744051"
}
]
}
Payload Description
Field Name | Type | Description |
---|---|---|
workOrder | array | Array of workOrderId objects |
workOrderId | string(20) | Identifier of the facility access work order. |
5. Retrieve Pop/POE Locations
The method can be used to request PoP/POE Locations.
Method | GET |
---|---|
End point | /v1/facility-access/pop-poes/locations |
Headers | Authorization, Master-Account-Id, Account-Id, Content-Type |
Query Parameters | site |
Sample Curl Request
curl --location --request GET'https://api.digitalrealty.com/v1/facility-access/pop-poes/locations?site={site}' \
--header 'Master-Account-Id: <Master-Account-Id>' \
--header 'Account-Id: <Account-Id>' \
--header 'Authorization: Bearer <access_token>' \
--header 'Content-Type: application/json' \
Headers
Field Name | Mandatory | Type | Description |
---|---|---|---|
Master-Account-Id | true | string | Customer master account identifier. |
Account-Id | true | string | Customer account identifier. |
Authorization | true | string | Token-based authentication. |
Content-Type | true | string | Indicates the request body format. value: [application/json] |
Query Parameters
Field Name | Mandatory | Type | Description |
---|---|---|---|
Site | true | string | Filter by the DLR facility that handles the tickets. |
Sample JSON Response
[
{
"location": "166 (PPOE)",
"locationId": "98ae7f2013ca4f44f16fd0528144b082"
}
]
Payload Description
Field Name | Type | Description |
---|---|---|
location | string | Name of the location. |
locationId | string | Identifier of the location. |
6. Retrieve PoP/POE Ticket Information
The method can be used to retrieve details of a facility access request.
Method | GET |
---|---|
End point | /v1/facility-access/access-tickets/{ticketId} |
Headers | Authorization, Master-Account-Id, Account-Id |
Query Parameters | n/a |
Body | n/a |
Sample Curl Request
curl --location --request GET 'https://api.digitalrealty.com/v1/facility-access/access-tickets/<ticketId>' \
--header 'Master-Account-Id: <Master-Account-Id>' \
--header 'Account-Id: <Account-Id>' \
--header 'Authorization: Bearer <access_token>'
Headers
Field Name | Mandatory | Type | Description |
---|---|---|---|
Master-Account-Id | true | string | Customer master account identifier. |
Account-Id | true | string | Customer account identifier. |
Authorization | true | string | Token-based authentication. |
Query Parameters
n/a
Body
n/a
Sample JSON Response
{
"ticketId": "WO9284409",
"ticketType": "Security",
"ticketStatus": "New",
"requester": "Random User",
"ticketCreatedDate": "2023-06-08 10:37:08",
"ticketUpdatedDate": "2023-06-08 10:37:58",
"requestType": "PoP/POE Room Access",
"contactFirstName": "test2",
"contactLastName": "forvisitor",
"contactEmail": "test@forvisitor.com",
"contactPhone": "",
"representingCompany": "ABC Corporation",
"badgeStartDate": "2023-06-07",
"badgeEndDate": "2023-06-07",
"site": [
{
"site": "IAD024",
"locations": [
{
"location": "ABC Cage F150-B"
}
],
"address": "43830 Devin Shafron Drive (Bldg F)"
}
],
"modifiedBy": "system",
"emailNotifications": "test@email.com,jane_doe@email.com",
"visitorType": "Escorted visitor",
"visitorBadgeType": "POP Room Access",
"visitorHostFirstName": "John",
"visitorHostLastName": "Doe",
"hostCompany": "ABC Company",
"notes": "New POP Access",
"details": {
"serviceImpact": true,
"serviceType": "Installation/De-installation Work",
"serviceImpactedDescription": "abcaj",
"isCcPcInstallationRemoval": true,
"ccPcWorkDescription": "ccremoval",
"circuit": [
{
"circuitNameA": "Circuit01",
"roomNumberA": "Room01",
"rackNumberA": "Rack01",
"panelNumberA": "R01P01",
"portA": "R01P01X01",
"carrierCircuitIdA": "CC012345",
"circuitNameZ": "Circuit01",
"roomNumberZ": "Room01",
"rackNumberZ": "Rack01",
"panelNumberZ": "R01P01",
"portZ": "R01P01X01",
"carrierCircuitIdZ": "CC012345"
}
],
"ppop": [
{
"ppopRack": "pRack",
"ppopCabinet": "pCabinet"
}
],
"spop": [
{
"spopRack": "sRack123",
"spopCabinet": "sCabinet123"
}
],
"ppopRoomWork": true,
"ppopToRoomRackPanel": "pToRoom",
"ppopFromRoomRackPanel": "PFromRoom",
"ppopCableType": "Fiber",
"ppopInFiberGuide": false,
"ppopInInnerDuct": false,
"ppopOnLadderRack": false,
"spopRoomWork": true,
"spopToRoomRackPanel": "sToRoom",
"spopFromRoomRackPanel": "sFromRoom",
"spopCableType": "Fiber",
"spopInFiberGuide": false,
"spopInInnerDuct": false,
"spopOnLadderRack": false
},
"contactType": "test visitor wants to visit ABD loc",
"escortFirstName": "Jane",
"escortLastName": "Doe",
"visitorBadgeStartDate": "2023-06-07",
"visitorBadgeEndDate": "2023-06-07",
"customerExternalReference": "REF1234",
"workDescription": "New POP Access",
"description": "test visitor wants to visit ABD loc",
"bulkRequest": false
}
Payload Description
Field Name | Type | Description |
---|---|---|
ticketId | string(20) | Identifier of the ticket. |
ticketType | string(enum) |
The type of the ticket. Value: [Facility Access] |
ticketStatus | string(enum) |
Designates the stage of the ticket.
In Progress = ticket has been assigned to a DLR resource and in the process of being addressed. |
requester | string(40) | Designates the user that initially generated the work order. |
ticketCreatedDate | string(date-time) | Date on which the work order was generated. format: [yyyy-MM-dd HH:mm:ss] timezone: [UTC] |
ticketUpdatedDate | string(date-time) | Last date on which the work order details were modified. format: [yyyy-MM-dd HH:mm:ss] timezone: [UTC] |
requestType | string(enum) |
Type of the facility access request. Value: [PoP/POE Room Access] |
contactFirstName | string(20) | First name of the contact. |
contactLastName | string(20) | Last name of the contact. |
contactEmail | string(50) | Contact’s email address. |
contactPhone | string(40) | Contact’s phone number. |
representingCompany | string(120) | Company representing. |
badgeStartDate | string($date) | Date of the badge activation. format: [yyyy-MM-dd] |
badgeEndDate | string($date) | Date of the badge expiration. format: [yyyy-MM-dd] |
site | array | Array of site objects. |
> site | string(6) | Site work will be performed. |
> locations | array | Array of location objects. |
>> location | string | Space within the facility where access needed (suite, cage, etc.) |
> address | string | Site Address. |
modifiedBy | string(40) | Designates the user that modified the work order. |
emailNotifications | string(32k) | Personnel's email addresses designated to be notified of the request. You can add one or more email addresses in the field by inserting a comma as a separator : "email_1, email_2, email_3". |
visitorType | string(enum) | Indicates if visitors access is escorted. Values: [true = Escorted visitor, false = Unescorted visitor] Default Value for visitorType = true. |
visitorBadgeType | string(enum) | The Type of visitor badge. Values: [Visitor Access (Escorted),Visitor Access (Extended),Visitor Access (Unescorted)] |
visitorHostFirstName | string(20) | First name of host. |
visitorHostLastName | string(20) | Last name of host. |
hostCompany | string(120) | Company hosting the visitor. |
notes | string(32k) | Add additional information needed. |
details | string | Add additional information in JSON format. |
contactType | string | Values: [Visitor,Contractor] Default Value for contactType= Visitor. |
escortFirstName | string(20) | First name of person escorting visitor. |
escortLastName | string(20) | Last name of person escorting visitor. |
visitorBadgeStartDate | string($date) | Date the visitor access will begin. format: [yyyy-MM-dd] visitorBadgeStartDate >= current date but not > 90 days in the future |
visitorBadgeEndDate | string($date) | Date the visitor access will end. format: [yyyy-MM-dd] visitorBadgeEndDate >= visitorBadgeStartDate but not greater than 365 days from visitorBadgeStartDate |
customerExternalReference | string(40) | Customer external reference number. |
workDescription | string(32k) | The Description of the work. |
description | string | Short description of work order. |
bulkRequest | boolean | Indicates if this is a request for more than four visitors. |
Retrieve PoP/POE Room Access List
The method can be used to retrieve all PoP/POE room access requests of the customers account.
Method | GET |
---|---|
End point | /v1/facility-access/pop-poes/access-requests |
Headers | Authorization, Master-Account-Id, Account-Id |
Query Parameters | site, status, createdBy, size, page |
Body | n/a |
Sample Curl Request
curl --location --request GET 'https://api.digitalrealty.com/v1/facility-access/pop-poes/access-requests' \
--header 'Master-Account-Id: <Master-Account-Id>' \
--header 'Account-Id: <Account-Id>' \
--header 'Authorization: Bearer <access_token>'
Headers
Field Name | Mandatory | Type | Description |
---|---|---|---|
Master-Account-Id | true | string | Customer master account identifier. |
Account-Id | true | string | Customer account identifier. |
Authorization | true | string | Token-based authentication. |
Query Parameters
Field Name | Mandatory | Type | Description |
---|---|---|---|
site | false | string(6) | Filter by the DLR facility that handles the tickets. |
status | false | string(enum) |
Filter by state of the tickets. Values: [New,In Progress,Completed,Cancelled] |
createdBy | false | string(40) | Filter by user who generated the work order. |
size | false | integer | The maximum number of search results to return. Default value: 25 |
page | false | integer | The page number of the returning search results. Default value: 0 |
Body
n/a
Sample JSON Response
{
"content": [
{
"id": "WO8744078",
"title": "web",
"status": "New",
"site": "PHX015",
"requestType": "PoP/POE Room Access",
"category": "",
"isBulkRequest": false,
"createdOn": "2023-06-07 11:57:51",
"updatedOn": "2023-06-07 11:57:52",
"closedOn": "",
"createdBy": "dev146 tst146",
"ticketType": "Facility Access",
"description": "web",
"location": "COLO 8 ABC Cage 8.06"
}
],
"pageable": {
"last": true,
"totalPages": 1,
"totalElements": 1,
"size": 25,
"number": 0,
"first": true,
"numberOfElements": 1,
"empty": false
}
}
Payload Description
Field Name | Type | Description |
---|---|---|
id | string(20) | Identifier of the ticket. |
title | string(160) | Label on the work order. |
status | string(enum) |
Designates the stage of the ticket. Values: [New,In Progress,Completed,Cancelled] |
site | string(6) | Identifier of the DLR facility. |
requestType | string(enum) | Type of the facility access request. value: [PoP/POE Room Access] |
category | string(enum) | Category of the facility access request. value: [POP Room Access] |
isBulkRequest | boolean | Indication if for multiple visitors is use. |
createdOn | string(date-time) | Date on which the work order was generated. format: [yyyy-MM-dd HH:mm:ss] timezone: [UTC] |
updatedOn | string(date-time) | Last date on which the work order details were modified. format: [yyyy-MM-dd HH:mm:ss] timezone: [UTC] |
closedOn | string(date-time) | Date on which the work order’s status was marked Completed. format: [yyyy-MM-dd HH:mm:ss] timezone: [UTC] |
createdBy | string(40) | Designates the user that initially generated the work order. |
ticketType | string(enum) | Type of the ticket. value: [Facility Access] |
description | string | Short description of work order. |
location | string | Identifier of customer premise within DLR facility. |
7. Edit PoP/POE Ticket Information
The method can be used to edit a facility access ticket.
Method | PUT |
---|---|
End point | /v1/facility-access/access-tickets/{workOrderId} |
Headers | Authorization, Master-Account-Id, Account-Id, Content-Type |
Query Parameters | n/a |
Body | visitorPhone,company, escortFirstName, escortLastName, visitorHostFirstName, visitorHostLastName, visitorHostCompany, emailNotifications,details |
The following fields are editable BASED on the (Ticket Status)
Field Name | Mandatory | Status |
visitorPhone | false | All Statuses except Approval Denied, Completed, or Cancelled |
company | true | Pending Approval, Approved |
escortFirstName | true | Pending Approval, Approved |
escortLastName | true | Pending Approval, Approved |
visitorHostFirstName | true | Pending Approval, Approved |
visitorHostLastName | true | Pending Approval, Approved |
visitorHostCompany | true | Pending Approval, Approved |
emailNotifications | false | All Statuses except Approval Denied, Completed, or Cancelled |
details | true | Pending Approval, Approved |
Sample Curl Request
curl --location --request PUT 'https://api.digitalrealty.com/v1/facility-access/access-tickets/<workOrderId>' \
--header 'Master-Account-Id: <Master-Account-Id>' \
--header 'Account-Id: <Account-Id>' \
--header 'Authorization: Bearer <access_token>' \
--header 'Content-Type: application/json' \
--data-raw '{
"visitorPhone": "+918898805959",
"company": "ABC Company",
"escortFirstName":"John",
"escortLastName" : "DOE",
"visitorHostFirstName": "John",
"visitorHostLastName": "Doe",
"visitorHostCompany": "ABC Company",
"emailNotifications": "test_doe@email.com",
"details" : "{
"serviceImpact": true,
"serviceType": "Installation/De-installation Work",
"serviceImpactedDescription": "abcaj",
"isCcPcInstallationRemoval": true,
"ccPcWorkDescription": "ccremoval",
"circuit": [
{
"circuitNameA": "Circuit01",
"roomNumberA": "Room01",
"rackNumberA": "Rack01",
"panelNumberA": "R01P01",
"portA": "R01P01X01",
"carrierCircuitIdA": "CC012345",
"circuitNameZ": "Circuit01",
"roomNumberZ": "Room01",
"rackNumberZ": "Rack01",
"panelNumberZ": "R01P01",
"portZ": "R01P01X01",
"carrierCircuitIdZ": "CC012345"
}
],
"ppop": [
{
"ppopRack": "pRack",
"ppopCabinet": "pCabinet"
}
],
"spop": [
{
"spopRack": "sRack123",
"spopCabinet": "sCabinet123"
}
],
"ppopRoomWork": true,
"ppopToRoomRackPanel": "pToRoom",
"ppopFromRoomRackPanel": "PFromRoom",
"ppopCableType": "Fiber",
"ppopInFiberGuide": false,
"ppopInInnerDuct": false,
"ppopOnLadderRack": false,
"spopRoomWork": true,
"spopToRoomRackPanel": "sToRoom",
"spopFromRoomRackPanel": "sFromRoom",
"spopCableType": "Fiber",
"spopInFiberGuide": false,
"spopInInnerDuct": false,
"spopOnLadderRack": false
}"
}'
Headers
Field Name | Mandatory | Type | Description |
---|---|---|---|
Master-Account-Id | true | string | Customer master account identifier. |
Account-Id | true | string | Customer account identifier. |
Authorization | true | string | Token-based authentication. |
Content-Type | true | string | Indicates the request body format. value: [application/json] |
Query Parameters
n/a
Body
Field Name | Mandatory | Type | Description |
---|---|---|---|
visitorPhone | false | string(40) | Visitors phone number. |
company | false | string(120) | Company name of the requestor. |
escortFirstName | true | string(20) | First name of person escorting visitor. * Mandatory if visitorType is true. |
escortLastName | true | string(20) | Last name of person escorting visitor. * Mandatory if visitorType is true. |
visitorHostFirstName | false | string(20) | First name of host. |
visitorHostLastName | false | string(20) | Last name of host. |
visitorHostCompany | false | string(120) | Company hosting the visitor. |
emailNotifications | false | string(32k) | Personnel's email addresses designated to be notified of the request. You can add one or more email addresses in the field by inserting a comma as a separator : "email_1, email_2, email_3". |
details | true | string(65k) | JSON object of details (see below) |
Details JSON
"{
"serviceImpact": true,
"serviceType": "Installation/De-installation Work",
"serviceImpactedDescription": "abcaj",
"isCcPcInstallationRemoval": true,
"ccPcWorkDescription": "ccremoval",
"circuit": [
{
"circuitNameA": "Circuit01",
"roomNumberA": "Room01",
"rackNumberA": "Rack01",
"panelNumberA": "R01P01",
"portA": "R01P01X01",
"carrierCircuitIdA": "CC012345",
"circuitNameZ": "Circuit01",
"roomNumberZ": "Room01",
"rackNumberZ": "Rack01",
"panelNumberZ": "R01P01",
"portZ": "R01P01X01",
"carrierCircuitIdZ": "CC012345"
}
],
"ppop": [
{
"ppopRack": "pRack",
"ppopCabinet": "pCabinet"
}
],
"spop": [
{
"spopRack": "sRack123",
"spopCabinet": "sCabinet123"
}
],
"ppopRoomWork": true,
"ppopToRoomRackPanel": "pToRoom",
"ppopFromRoomRackPanel": "PFromRoom",
"ppopCableType": "Fiber",
"ppopInFiberGuide": false,
"ppopInInnerDuct": false,
"ppopOnLadderRack": false,
"spopRoomWork": true,
"spopToRoomRackPanel": "sToRoom",
"spopFromRoomRackPanel": "sFromRoom",
"spopCableType": "Fiber",
"spopInFiberGuide": false,
"spopInInnerDuct": false,
"spopOnLadderRack": false
}"
Details Description
Field Name | Mandatory | Type | Description |
---|---|---|---|
serviceImpact | true | boolean | Indicates if service impacted |
serviceType | true | string | The type of service. values [ Site Survey, Testing, Installation/De-installation Work ] |
serviceImpactedDescription | false* | string | Description of the service impacting work * Mandatory if serviceImpact is true |
isCcPcInstallationRemoval | false* | boolean | Do you want to perform Installation/Removal. * Mandatory if serviceType is "Installation/De-installation Work" |
ccPcWorkDescription | false* | string | Define if it is installation or removal, and provide the scope. * Mandatory if isCcPcInstallationRemoval is true |
circuit | false | array | Array of circuit objects. * Mandatory if isCcPcInstallationRemoval is true |
> circuitNameA | true | string | Company Name on the A side and Company Name on the Z side. |
> roomNumberA | true | string | Room/Suite Number for the A and Z sides of the circuit. |
> rackNumberA | true | string | Labeled Rack Numbers for the A and Z sides of the circuit. |
> panelNumberA | true | string | Labeled Panel Number for the A and Z sides of the circuit. |
> portA | true | string | Labeled Port Number for the A and Z sides of the circuit. |
> carrierCircuitIdA | true | string | The carrier/provider provided circuit ID number. |
> circuitNameZ | true | string | Company Name on the A side and Company Name on the Z side. |
> roomNumberZ | true | string | Room/Suite Number for the A and Z sides of the circuit. |
> rackNumberZ | true | string | Labeled Rack Numbers for the A and Z sides of the circuit. |
> panelNumberZ | true | string | Labeled Panel Number for the A and Z sides of the circuit. |
> portZ | true | string | Labeled Port Number for the A and Z sides of the circuit. |
> carrierCircuitIdZ | true | string | The carrier/provider provided circuit ID number. |
ppop | false | array | Array of ppop objects. |
> ppopRack | true | string | Rack designation/labeling (Room/Aisle/Rack Number). |
> ppopCabinet | true | string | Cabinet designation/labeling (Room/Aisle/Rack Number). |
spop | false | array | Array of spop objects. |
> spopRack | true | string | Rack designation/labeling (Room/Aisle/Rack Number). |
> spopCabinet | true | string | Cabinet designation/labeling (Room/Aisle/Rack Number). |
ppopRoomWork | false | boolean | Indicates whether cabling will be run outside of cabinet/rack through common area. |
ppopToRoomRackPanel | false* | string | Provide which Room, Rack, and Panel cabling terminates. * Mandatory if ppopRoomWork = true |
ppopFromRoomRackPanel | false* | string | Provide which Room, Rack, and Panel cabling originates. * Mandatory if ppopRoomWork = true |
ppopCableType | false* | string | The type of cable. values [ Fiber, Copper ] * Mandatory if ppopRoomWork = true |
ppopInFiberGuide | false* | boolean | Indicates if run through fiber guide. * Mandatory if ppopRoomWork = true |
ppopInInnerDuct | false* | boolean | Indicates if run in innerduct. * Mandatory if ppopRoomWork = true |
ppopOnLadderRack | false* | boolean | Indicates on shared ladder rack/cable tray. * Mandatory if ppopRoomWork = true |
spopRoomWork | false | boolean | Indicates whether cabling will be run outside of cabinet/rack through common area. |
spopToRoomRackPanel | false* | string | Provide which Room, Rack, and Panel cabling terminates. * Mandatory if spopRoomWork = true |
spopFromRoomRackPanel | false* | string | Provide which Room, Rack, and Panel cabling originates. * Mandatory if spopRoomWork = true |
spopCableType | false* | string | The type of cable. values [ Fiber, Copper ] * Mandatory if spopRoomWork = true |
spopInFiberGuide | false* | boolean | Indicates if run through fiber guide. * Mandatory if spopRoomWork = true |
spopInInnerDuct | false* | boolean | Indicates if run in innerduct. * Mandatory if spopRoomWork = true |
spopOnLadderRack | false* | boolean | Indicates on shared ladder rack/cable tray. * Mandatory if spopRoomWork = true |
Sample JSON Response
{
"workOrderId": "WO8741409"
}
Payload Description
Field Name | Type | Description |
---|---|---|
workOrderId | string(20) | Identifier of the facility access work order. |
8. Cancel PoP/POE Ticket
The method can be used to cancel a facility access request while the ticket status is still "New" or "In Progress".
Method | PUT |
---|---|
End point | /v1/facility-access/access-tickets/{workOrderId}/cancel |
Headers | Authorization, Master-Account-Id, Account-Id, Content-Type |
Query Parameters | n/a |
Body | cancelReason |
Sample Curl Request
curl --location --request PUT 'https://api.digitalrealty.com/v1/facility-access/access-tickets/<workOrderId>/cancel' \
--header 'Master-Account-Id: <Master-Account-Id>' \
--header 'Account-Id: <Account-Id>' \
--header 'Authorization: Bearer <access_token>' \
--header 'Content-Type: application/json' \
--data-raw '{
"cancelReason": "Duplicate request"
}'
Headers
Field Name | Mandatory | Type | Description |
---|---|---|---|
Master-Account-Id | true | string | Customer master account identifier. |
Account-Id | true | string | Customer account identifier. |
Authorization | true | string | Token-based authentication. |
Content-Type | true | string | Indicates the request body format. value: [application/json] |
Query Parameters
n/a
Body
Field Name | Mandatory | Type | Description |
---|---|---|---|
cancelReason | false | string(enum) | Reason of the cancellation. values: [Duplicate request, Request entered in error, Request no longer needed] default: [Request no longer needed] |
Sample JSON Response
{
"result": {
"status": "Work Order WO8741481 has been cancelled."
}
}
Payload Description
Field Name | Type | Description |
---|---|---|
status | string(255) | Acknowledgement message of the cancellation. |
9. Add a Comment or Attachment
Add Comments
Add comments to an existing work order. Multiple comments can be added to a work order as long as the status of the order is not closed or cancelled. Refer to the Comments API instructions on how to add comments. You may skip this step if you already know how to add comments.
Add Attachments
Add attachments to an existing work order. Multiple attachments can be added to a work order as long as the status of the order is not closed or cancelled. Refer to the Attachments API for instructions on how to add attachments. You may skip this step if you already know how to add attachments.