Work Visit Order
A Work Visit can be scheduled by users with Work Visit permissions for the related Equinix Data Center locations. Work Visits can grant up to 50 visitors access to the Equinix Data Centers for a duration of up to two weeks. These Work Visits can be organized together with or without an Equinix cage escort to open your private cage. If the on-site visit will exceed two weeks, Security Access must be set up for the visitors.
See Integrate with Equinix Messaging Gateway for links on how to use the EMG Templates for ordering.
The following screenshots show sample message requests to create, update, and cancel work visit in EMG.
Create Work Visit
Sample Request:
{
"Task": {
"Id": "bf9f2707-d612-4d63-9958-4c8b1fcf3cc0",
"Source": "3e095d30-40ff-11e9-8959-5be078353003",
"Verb": "Create",
"Resource": "WorkVisit",
"ContentType": "application/json",
"Version": "1.0",
"Body": {
"RequestorId": "123456789",
"RequestorIdUnique": false,
"Location": [
"LD8:00:000000",
"LD8:00:000001:0501",
"LD8:00:000002:0502",
"LD8:00:000003:0503"
],
"CustomerContact": "demo@equinix.com",
"Description": "Create Work Visit Order",
"Attachments": [
{
"Name": "samplepicture.jpeg",
"Url": "https://eqixazurestorage.blob.core.windows.net/file-download-blob/samplepicture.jpeg"
}
],
"ServiceDetails": {
"Visitors": [
{
"LastName": "John",
"FirstName": "Doe",
"CompanyName": "Demo"
}
],
"StartDateTime": "2020-05-22T00:05:00.000Z",
"EndDateTime": "2020-05-26T14:00:00Z",
"OpenCabinet": true
}
}
},
"Signature": "RWNobwp7CiAgIklkIjogIjM1MGFlZjcwLTc4MWItMTFlOSogIH0KfQ=="
}
The description of the create request schema is as follows:
Name | Mandatory | Type | Applicable Value(s) | Description |
---|---|---|---|---|
Task | Yes | Object | The task object comprises a common set of header attributes and a unique set of body attributes. The header attributes are applicable to all order types, whereas the body attributes vary for each order. | |
ID | Yes | String (Guid) | The unique identifier of the message. Customers must ensure to send a unique value for each message. | |
Source | Yes | String (Guid) | A unique value to identify the message sender. This value will be shared with the customer during the onboarding process. | |
Verb | Yes | String | Create | Indicates the action to be performed. |
Resource | Yes | String | WorkVisit | Indicates the order type. |
ContentType | No | String | application/json | |
Version | Yes | String | 1.0 | The version of the request and response schema. |
Body | Yes | Object | An object containing the details of the order. The attributes within the object will vary based on the resource and verb. | |
RequestorId | Conditional | String | The customer's reference number for this WorkVisit order. This attribute is only mandatory if RequestorIdUnique is true. | |
RequestorIdUnique | Yes | Boolean | true false | Indicates whether the RequestorId is unique. The default value for this attribute is false. The RequestorId should not be referenced in any other ticket and if referenced this operation will fail with a "400 - Bad Request". This field cannot be NULL. |
Location | Yes | array[String] | The location of the cage(s) and cabinet(s) where the Work Visit order is requested. All the Cages & Cabinets must belong to same the Equinix DataCenter | |
CustomerContact | Yes | String | The username or email address of the user registered with Equinix Customer Portal. | |
Description | No | String | A detailed description of the scope of work. | |
ServiceDetails | Yes | Object | Service details consist of visitors information and additional Work Visit details. | |
StartDateTime | Yes | String | Requested start date and time of the Work Visit in ISO format. | |
EndDateTime | Yes | String | Requested end date and time of the Work Visit in ISO format. | |
Visitors | Yes | array[String] | Visitors information that includes the Equinix- registered username of visitors (if they are active users under your organization) or the visitor first name, visitor last name, and visitor company name. The maximum number of visitors allowed in one Work Visit is 50. | |
UserName | Yes if FirstName, LastName & CompanyName = null | String | The username of the user registered with Equinix Customer Portal. | |
FirstName | Yes if UserName = null | String | First name of the non-registered user with Equinix Customer Portal. | |
LastName | Yes if UserName = null | String | Last name of the non-registered user with Equinix Customer Portal. | |
CompanyName | Yes if UserName = null | String | Company name of the non-registered user with Equinix Customer Portal. | |
No | String | Email address of the non-registered user with Equinix Customer Portal. | ||
MobilePhoneCountryCode | Yes if MobilePhone != null | String | Country Code of Mobile Phone of the non-registered user with Equinix Customer Portal.. Should be within [1…6] characters Supported Regex: ^\+[0-9]{1,6}$ | |
MobilePhone | No | String | Mobile Phone of the non-registered user with Equinix Customer Portal Should be within [1…40] characters Supported Regex: ^[0-9\.\-() ]{2,40}(?:(x|ext)[0-9\.\-() ]{1,10})?$ | |
OpenCabinet | No | Boolean | true false (default) | Indicates whether an Equinix staff should open the cabinet for the visitor. |
SupervisionRequired | No | Boolean | true false (default) | Indicates if an Equinix staff should provide any additional supervision, assistance, or access. |
Attachments | No | Array [{ String, String }] | Includes all attachments for supporting this request. Expected Value: [{"Name":<Attachment_Name>, "Url":<Attachment_URL>}] OR [{"Name":<Attachment_Name>, "Id":<Attachment_Id>}] URL - URL to download the attachment 5 files with 5MB size each Supported filetypes: .bmp,.jpeg,.jpg,.gif,.png,.tif,.txt,.doc,.docx,.xls,.tiff,.xlsx,.ppt,.pptx,.pdf,.vsd,.pps,.ppsx | |
AdditionalContacts | No | Array [{ Object}] | Can be used to overide details of TECHNICAL CONTACT sent as part of "CustomerContact" attribute. You can send details of non-registered contacts with Equinix Customer Portal | |
ContactType | Yes | String (Enum) | Type of Contact. Expected value : TECHNIICAL | |
Name | Yes | String | Full Name of the Contact, Eg. 'First_Name' + 'Last_Name' Supported Regex: ^[\s.]([^\s.][\s.]){0,100}$ | |
Yes | String | Valid email address of the contact. Should be <=100 characters Supported Regex: ^(([^<>()\[\]\.,;:\s@"]+(\.[^<>()\[\]\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$ | ||
WorkPhoneCountryCode | Yes | String | Country Code of Primary Phone of the contact. Should be within [1…6] characters Supported Regex: ^\+[0-9]{1,6}$ | |
WorkPhone | Yes | String | Primary Phone of the contact. Should be within [1…40] characters Supported Regex: ^[0-9\.\-() ]{2,40}(?:(x|ext)[0-9\.\-() ]{1,10})?$ | |
WorkPhonePrefToCall | No | String | Expected values are NEVER, ANYTIME, MY_BUSINESS_HOURS,IBX_BUSINESS_HOURS. Defauted to 'ANYTIME' | |
WorkPhoneTimeZone | No | String | Expected values are "Atlantic/Canary" "Europe/Dublin" "Europe/London" "Europe/Lisbon" "Africa/Algiers" "Europe/Berlin" "Europe/Amsterdam" "Europe/Copenhagen" "Europe/Madrid" "Europe/Paris" "Europe/Stockholm" "Europe/Zurich" "Europe/Warsaw" "Africa/Cairo" "Africa/Johannesburg" "Europe/Sofia" "Africa/Nairobi" "Asia/Jerusalem" "Europe/Istanbul" "Europe/Moscow" "Asia/Riyadh" "Asia/Dubai" "Asia/Kabul" "Asia/Tehran" "Asia/Karachi" "Indian/Maldives" "Asia/Kolkata" "Asia/Kathmandu" "Asia/Omsk" "Asia/Rangoon" "Asia/Jakarta" "Asia/Ho_Chi_Minh" "Asia/Brunei" "Asia/Hong_Kong" "Asia/Kuala_Lumpur" "Asia/Manila" "Asia/Shanghai" "Asia/Singapore" "Asia/Taipei" "Australia/Perth" "Asia/Seoul" "Asia/Tokyo" "Australia/Darwin" "Australia/Brisbane" "Pacific/Guam" "Australia/Adelaide" "Australia/Sydney" "Pacific/Auckland" "Pacific/Chatham" "Indian/Christmas" "America/Scoresbysund" "Atlantic/South_Georgia" "America/Sao_Paulo" "America/Detroit" "America/New_York" "America/Puerto_Rico" "America/Toronto" "America/Bogota" "America/Chicago" "America/Winnipeg" "America/Denver" "America/Edmonton" "America/Mexico_City" "America/Los_Angeles" "America/Vancouver" "America/Phoenix" "America/Anchorage" "Pacific/Gambier" "Pacific/Marquesas" "Pacific/Honolulu" "Pacific/Fiji" "Asia/Muscat" "America/Argentina/Buenos_Aires" "America/Caracas" "Etc/GMT+12" "UTC" "GMT" "America/Santiago" "America/St_Johns" "Asia/Almaty" "Asia/Bankgkok" "Asia/Calcutta" "Asia/Magadan" "Asia/Yekaterinburg" "Australia/Eucla" "Australia/Lord_Howe" "Europe/Bratislava" "Europe/Brussels" "Europe/Prague" "Europe/Rome" "Pacific/Kiritimati" "Pacific/Midway" "Pacific/Tongatapu" | |
MobilePhoneCountryCode | No | String | Country Code of Mobile Phone of the contact. Should be within [1…6] characters Supported Regex: ^\+[0-9]{1,6}$ | |
MobilePhone | No | String | Mobile Phone of the contact. Should be within [1…40] characters Supported Regex: ^[0-9\.\-() ]{2,40}(?:(x|ext)[0-9\.\-() ]{1,10})?$ | |
MobilePhonePrefToCall | No | String | Expected values are NEVER, ANYTIME, MY_BUSINESS_HOURS,IBX_BUSINESS_HOURS. Defauted to 'ANYTIME' | |
MobilePhoneTimeZone | No | String | Please refer to 'WorkPhoneTimeZone' for expected values | |
Signature | Yes | String | Base64 encoded signature. |
Sample Response:
{
"Task": "{\"Id\":\"69352cff-4f00-4c42-9dce-a1b5e5ecc40b\",\"Source\":\"3e095d30-40ff-11e9-8959-5be078353003\",\"Verb\":\"Ack\",\"Resource\":\"WorkVisit\",\"ContentType\":\"application/json\",\"CreateTimeUTC\":\"2019-12-13T15:45:04.553Z\",\"Version\":\"1.0\",\"OriginationId\":\"bf9f2707-d612-4d63-9958-4c8b1fcf3cc0\",\"OriginationVerb\":\"Create\",\"Body\":{\"RequestorId\":\"123456789\",\"ServicerId\": [{\"Locations\":[\"LD5:01:001MC2\", \"LD5:01:001MC3\"], \"ServicerId\": \"1-207846792176\"},{\"Locations\":[\"LD5:01:001CA3\"],\"ServicerId\": \"1-207846792200\"}],\"StatusCode\":201,\"Description\":\"Equinix WorkVisit: 1-199912345789 Was created in reference to : 123456789\",\"Object\":null}}",
"Signature": "Jm2BpG/5ll6s3v0w3WWMULkRXsIEPog1e5AuYWT/kF3qW+hhNAFDZGCJ5lNmUT4Y3jUFid/3yb3diXK+Tr0hm7zwGLMDyi/mRwlc7LxYKRtbhHgHxWviQgTsLrreKlLuOJHbl81bCLxK2UEPrfRXuAOUbMyOT2mzBhidiCFg=="
}
The description of the create response schema is as follows:
Name | Type | Description |
---|---|---|
Task | Object | The task object comprises a common set of header attributes and a unique set of body attributes. The header attributes are applicable to all order types, whereas the body attributes vary for each order. |
ID | String (Guid) | The unique identifier of the message. Customers must ensure to send a unique value for each message. |
Source | String (Guid) | A unique value to identify the message sender. This value will be shared with the customer during the onboarding process. |
Verb | String | Indicates the action to be performed. The verb for response messages is "Ack". |
Resource | String | Indicates the order type. |
ContentType | String | |
CreateTimeUTC | String | Indicates the date and time at which the WorkVisit request was created at Equinix's end. |
Version | String | The version of the request and response schema. |
Body | Object | An object containing the details of the order. The attributes within the object will vary based on the resource and verb. |
RequestorId | String | The customer's reference number for this WorkVisit order. |
ServicerId | array[objects] | Indicates the WorkVisit order ID(s) generated by Equinix after the order(s) was submitted. If all Cages/Cabinets provided in the WorkVisit request belong to the same customer account number then Equinix will send one order#. If Cages/Cabinets provided in the WorkVisit request belong to more than one customer account number then Equinix will send more than one order#. |
StatusCode | String | The HTTP status code of the request. |
Description | String | Additional details of the order created Ex: "Equinix WorkVisit: 1-199912345789 Was created in reference to : 123456789" |
Signature | String | Base64 encoded signature. |
Update Work Visit
Sample Request:
{
"Task": {
"Id": "2352c576-fab3-4856-a431-0a4b55a2babe",
"Source": "3e095d30-40ff-11e9-8959-5be078353003",
"Verb": "Update",
"Resource": "WorkVisit",
"ContentType": "application/json",
"Version": "1.0",
"Body": {
"ServicerId": "1-199912345789",
"Attachments": [
{
"Name": "samplepicture.jpeg",
"Url": "https://eqixazurestorage.blob.core.windows.net/file-download-blob/samplepicture.jpeg"
}
],
"Description": "Update WorkVisit Order"
}
},
"Signature": "RWNobwp7CiAgIklkIjogIjM1MGFlZjcwLTc4MWItMTFlOSogIH0KfQ=="
}
The description of the update request schema is as follows:
Name | Mandatory | Type | Applicable Values | Description |
---|---|---|---|---|
Task | Yes | Object | The task object comprises a common set of header attributes and a unique set of body attributes. The header attributes are applicable to all order types, whereas the body attributes vary for each order. | |
ID | Yes | String (Guid) | The unique identifier of the message. Customers must ensure to send a unique value for each message. | |
Source | Yes | String (Guid) | A unique value to identify the message sender. This value will be shared with the customer during the onboarding process. | |
Verb | Yes | String | Update | Indicates the action to be performed. |
Resource | Yes | String | WorkVisit | Indicates the order type. EMG currently supports 4 order types. |
ContentType | No | String | application/json | |
Version | Yes | String | 1.0 | The version of the request and response schema. |
Body | Yes | Object | An object containing the details of the order. The attributes within the object will vary based on the resource and verb. | |
RequestorId | Conditional | String | The customer's reference number for this Work Visit request. This attribute is only mandatory if RequestorIdUnique is true. | |
ServicerId | Conditional | String | Indicates the Work Visit order ID generated by Equinix after the order was submitted. | |
Description | Yes | String | A detailed description of the scope of work. This field can only be up to 3800 characters long. | |
ServiceDetails | No | Object | Service details consist of visitors information and additional Work Visit details. | |
StartDateTime | No | String | Requested start date and time of the Work Visit in ISO format. | |
EndDateTime | No | String | Requested end date and time of the Work Visit in ISO format. | |
Visitors | No | array[String] | Visitors information that includes the Equinix- registered username of visitors (if they are active users under your organization) or the visitor first name, visitor last name, and visitor company name. The maximum number of visitors allowed in one work visit is 50. | |
UserName | Yes if FirstName, LastName & CompanyName = null | String | The username of the user registered with Equinix Customer Portal. | |
FirstName | Yes if UserName = null | String | First name of the non-registered user with Equinix Customer Portal. | |
LastName | Yes if UserName = null | String | Last name of the non-registered user with Equinix Customer Portal. | |
CompanyName | Yes if UserName = null | String | Company name of the non-registered user with Equinix Customer Portal. | |
No | String | Email address of the non-registered user with Equinix Customer Portal. | ||
MobilePhoneCountryCode | Yes if MobilePhone != null | String | Country Code of Mobile Phone of the non-registered user with Equinix Customer Portal.. Should be within [1…6] characters Supported Regex: ^\+[0-9]{1,6}$ | |
MobilePhone | No | String | Mobile Phone of the non-registered user with Equinix Customer Portal Should be within [1…40] characters Supported Regex: ^[0-9\.\-() ]{2,40}(?:(x|ext)[0-9\.\-() ]{1,10})?$ | |
OpenCabinet | No | Boolean | true false (default) | Indicates whether an Equinix staff should open the cabinet for the visitor. |
SupervisionRequired | No | Boolean | true false (default) | Indicates if an Equinix staff should provide any additional supervision, assistance, or access. |
Attachments | No | Array [{ String, String }] | Includes all attachments for supporting this request. 5 files with 5MB size each Supported filetypes: .bmp,.jpeg,.jpg,.gif,.png,.tif,.txt,.doc,.docx,.xls,.tiff,.xlsx,.ppt,.pptx,.pdf,.vsd,.pps,.ppsx. | |
Signature | Yes | String | Base64 encoded signature. |
Sample Response:
{
"Task": "{\"Id\":\"69352cff-4f00-4c42-9dce-a1b5e5ecc40b\",\"Source\":\"3e095d30-40ff-11e9-8959-5be078353003\",\"Verb\":\"Ack\",\"Resource\":\"WorkVisit\",\"ContentType\":\"application/json\",\"CreateTimeUTC\":\"2019-12-13T15:45:04.553Z\",\"Version\":\"1.0\",\"OriginationId\":\"bf9f2707-d612-4d63-9958-4c8b1fcf3cc0\",\"OriginationVerb\":\"Update\",\"Body\":{\"RequestorId\":\"123456789\",\"ServicerId\":\"1-199912345789\",\"StatusCode\":201,\"Description\":\"Equinix WorkVisit: 1-199912345789 was updated\",\"Object\":null}}",
"Signature": "Jm2BpG/5ll6s3v0w3WWMULkRXsIEPog1e5AuYWT/kF3qW+hhNAFDZGCJ5lNmUT4Y3jUFid/3yb3diXK+Tr0hm7zwGLMDyi/mRwlc7LxYKRtbhHgHxWviQgTsLrreKlLuOJHbl81bCLxK2UEPrfRXuAOUbMyOT2mzBhidiCFg=="
}
The description of the update response schema is as follows:
Name | Type | Description |
---|---|---|
Task | Object | The task object comprises a common set of header attributes and a unique set of body attributes. The header attributes are applicable to all order types, whereas the body attributes vary for each order. |
ID | String (Guid) | The unique identifier of the message. Customers must ensure to send a unique value for each message. |
Source | String (Guid) | A unique value to identify the message sender. This value will be shared with the customer during the onboarding process. |
Verb | String | Indicates the action to be performed. The verb for response messages is "Ack". |
Resource | String | Indicates the order type. |
ContentType | String | |
CreateTimeUTC | Indicates the date and time at which the Work Visit order was updated at Equinix's end. | |
Version | String | The version of the request and response schema. |
Body | Object | An object containing the details of the order. The attributes within the object will vary based on the resource and verb. |
RequestorId | String | The customer's reference number for this WorkVisit request. |
ServicerId | String | Indicates the Work Visit ID generated by Equinix after the order was submitted. |
StatusCode | String | The HTTP status code of the request. |
Description | String | Additional details of the order updated. Ex: "Equinix WorkVisit: 1-199912345789 was updated" |
Signature | String | Base64 encoded signature. |
Cancel Work Visit
Sample Request:
{
"Task": {
"Id": "63d7a57b-848a-4335-ab47-6c1aaee71b04",
"Source": "3e095d30-40ff-11e9-8959-5be078353003",
"Verb": "Update",
"Resource": "WorkVisit",
"ContentType": "application/json",
"Version": "1.0",
"Body": {
"State": "Cancelled",
"ServicerId": "1-199912345789",
"Description": "Cancel WorkVisit Order"
}
},
"Signature": "RWNobwp7CiAgIklkIjogIjM1MGFlZjcwLTc4MWItMTFlOSogIH0KfQ=="
}
The description of the cancel request schema is as follows:
Name | Mandatory | Type | Applicable Values | Description |
---|---|---|---|---|
Task | Yes | Object | The task object comprises a common set of header attributes and a unique set of body attributes. The header attributes are applicable to all order types, whereas the body attributes vary for each order. | |
ID | Yes | String (Guid) | The unique identifier of the message. Customers must ensure to send a unique value for each message. | |
Source | Yes | String (Guid) | A unique value to identify the message sender. This value will be shared with the customer during the onboarding process. | |
Verb | Yes | String | Update | Indicates the action to be performed. |
Resource | Yes | String | WorkVisit | Indicates the order type. EMG currently supports 4 order types. |
ContentType | No | String | application/json | |
Version | Yes | String | 1.0 | The version of the request and response schema. |
OriginationId | No | String (Guid) | The ID of the origination message, the value will be Null for an initial message. | |
OriginationVerb | No | String | The action to be performed by Equinix, the value will be Null for an initial message. | |
Body | Yes | Object | An object containing the details of the order. The attributes within the object will vary based on the resource and verb. | |
State | Yes | String | Cancelled | This attribute is only valid when the verb is 'Update' and must only be used when cancelling an order. |
RequestorId | Conditional | String | The customer's reference number for this WorkVisit request. This attribute is only mandatory if ServicerId is not provided. | |
ServicerId | Conditional | String | Indicates the WorkVisit order ID generated by Equinix after the order was submitted. This attribute is only mandatory if RequestorId is not provided. | |
Description | Yes | String | A detailed description of the scope of work. This field can only be up to 3800 characters long. | |
Signature | Yes | String | Base64 encoded signature. |
Sample Response:
{
"Task": "{\"Id\":\"2f3b9c69-1446-46fa-b5c7-040421029c88\",\"Source\":\"3e095d30-40ff-11e9-8959-5be078353003\",\"Verb\":\"Ack\",\"Resource\":\"WorkVisit\",\"ContentType\":\"application/json\",\"CreateTimeUTC\":\"2019-12-13T15:53:33.084Z\",\"Version\":\"1.0\",\"OriginationId\":\"63d7a57b-848a-4335-ab47-6c1aaee71b04\",\"OriginationVerb\":\"Update\",\"Body\":{\"ServicerId\":\"1-199912345789\",\"RequestorId\":\"123456789\",\"StatusCode\":200,\"Description\":\"Equinix workvisit: 1-199912345789 Was Cancelled\",\"Object\":[{\"Name\":\"cancelticket.jpeg\",\"Id\":\"f1797cd8-4508-434d-9998-3cf4545c7ca0\"}]}}",
"Signature": "Jm2BpG/5ll6s3v0w3WWMULkRXsIEPog1e5AuYWT/kF3qW+hhNAFDZGCJ5lNmUT4Y3jUFid/3yb3diXK+Tr0hm7zwGLMDyi/mRwlc7LxYKRtbhHgHxWviQgTsLrreKlLuOJHbl81bCLxK2UEPrfRXuAOUbMyOT2mzBhidiCFg=="
}
The description of the cancel response schema is as follows:
Name | Type | Description |
---|---|---|
Task | Object | The task object comprises a common set of header attributes and a unique set of body attributes. The header attributes are applicable to all order types, whereas the body attributes vary for each order. |
ID | String (Guid) | The unique identifier of the message. Customers must ensure to send a unique value for each message. |
Source | String (Guid) | A unique value to identify the message sender. This value will be shared with the customer during the onboarding process. |
Verb | String | Indicates the action to be performed. The verb for response messages is "Ack". |
Resource | String | Indicates the order type. |
ContentType | String | |
CreateTimeUTC | Indicates the date and time at which the WorkVisit order was cancelled at Equinix's end. | |
Version | String | The version of the request and response schema. |
OriginationId | String (Guid) | The ID of the origination message, the value will be Null for an initial message. |
OriginationVerb | String | The action to be performed by Equinix, the value will be Null for an initial message. |
Body | Object | An object containing the details of the order. The attributes within the object will vary based on the resource and verb. |
RequestorId | String | The customer's reference number for this Work Visit order. |
ServicerId | String | Indicates the WorkVisit order ID created after the order was submitted. |
StatusCode | String | The HTTP status code of the request. |
Description | String | Additional details of the order cancelled. Ex: "Equinix WorkVisit: 1-199912345789 Was Cancelled" |
Signature | String | Base64 encoded signature. |
Sample Outgoing Notification
For more information, refer to Order Notifications - Work Visit.