Skip to main content

FacilityAccess-v1 1.0.0

ServiceRequests

1. Authenticate

Text (formatted, long)

Prerequisites


  1. You should have registered in our developer portal. Check this link about how to register an Account.
  2. 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.
  3. 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.

 

 

Read the Get Started documentation if you are unaware of your client credentials.

 

2. Permisssions

3. Get Information

Text (formatted, long)

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.

 

Text (formatted, long)

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.

 

Text (formatted, long)

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.
format: [yyyy-MM-dd]

accessStartDate >= Current date < 90 days in the future

> > accessEndDate true string($date)

Date specific access privileges end.
format: [yyyy-MM-dd]

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.
New = ticket was created but work on it has not started. Two use cases:

  • Approved and created in the downstream systems. This includes tickets with a mix of approved/denied access to sites/locations.
  • No approval is needed; tickets are automatically created in the downstream systems.

In Progress = ticket has been assigned to a DLR resource and in the process of being addressed.
Completed = all work on the ticket has been completed.
Cancelled = ticket was cancelled as it was not necessary (created by mistake, duplicate, etc)

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

Text (formatted, long)

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.

 

Text (formatted, long)

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.

Response Codes

Text (formatted, long)

Please check the Response Codes overview in case of any issues.


Need Help?

Have not found what you are looking for, please do not hesitate to reach out to us!

globe