DataFlex / Atlassian Confluence Cloud / Find relationship from source to target
Back to Collection Items
Use ChilkatAx-win32.pkg
Procedure Test
Handle hoHttp
Boolean iSuccess
Variant vQueryParams
Handle hoQueryParams
Variant vResp
Handle hoResp
Variant vSbResponseBody
Handle hoSbResponseBody
Handle hoJResp
Integer iRespStatusCode
String sOperation
String sTargetType
String sValue
String sV_expandableValue
String sUserValue
String sGroupValue
String sOperation
String sTargetType
Boolean iAnonymousAccess
Boolean iUnlicensedAccess
String sName
String sRelationData
String sSource
String sTarget
String sV_Type
String sAccountId
String sAccountType
String sV_Email
String sPublicName
String sPath
Integer iWidth
Integer iHeight
Boolean iIsDefault
String sDisplayName
String sOperations
String sDetails
String sPersonalSpace
String sUsername
String sUserKey
String sValue
String sPersonalValue
Integer iId
String sKey
String sName
String sPersonalSpaceType
String sStatus
String sSettings
String sMetadata
String sV_expandableOperations
String sLookAndFeel
String sPermissions
String sIcon
String sDescription
String sTheme
String sHistory
String sHomepage
String sIconPath
Integer iIconWidth
Integer iIconHeight
Boolean iIconIsDefault
String sPlainValue
String sRepresentation
String sViewValue
String sViewRepresentation
String sHomepageValue
Integer iStart
Integer iLimit
Integer iSize
Boolean iRouteOverrideEnabled
String sColor
String sLinksColor
String sHoverOrFocusValue
String sColorValue
String sBackgroundColorValue
String sButtonValue
String sPrimaryNavigationValue
String sSecondaryNavigationValue
String sSearchValue
String sScreenValue
String sContainerValue
String sHeaderValue
String sBodyValue
String sBordersAndDividersColor
String sCreatedDate
String sRelationDataCreatedDate
String sFriendlyCreatedDate
Integer i
Integer iCount_i
String sTemp1
Boolean bTemp1
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
Get Create (RefClass(cComChilkatHttp)) To hoHttp
If (Not(IsComObjectCreated(hoHttp))) Begin
Send CreateComObject of hoHttp
End
Get Create (RefClass(cComChilkatJsonObject)) To hoQueryParams
If (Not(IsComObjectCreated(hoQueryParams))) Begin
Send CreateComObject of hoQueryParams
End
Get ComUpdateString Of hoQueryParams "sourceStatus" "<string>" To iSuccess
Get ComUpdateString Of hoQueryParams "targetStatus" "<string>" To iSuccess
Get ComUpdateString Of hoQueryParams "sourceVersion" "<integer>" To iSuccess
Get ComUpdateString Of hoQueryParams "targetVersion" "<integer>" To iSuccess
Get ComUpdateString Of hoQueryParams "expand" "<string>" To iSuccess
Get ComUpdateString Of hoQueryParams "expand" "<string>" To iSuccess
// Adds the "Authorization: Bearer <access_token>" header.
Set ComAuthToken Of hoHttp To "<access_token>"
Get pvComObject of hoQueryParams to vQueryParams
Get ComQuickRequestParams Of hoHttp "GET" "https://your-domain.atlassian.net/wiki/rest/api/relation/:relationName/from/:sourceType/:sourceKey/to/:targetType/:targetKey" vQueryParams To vResp
If (IsComObject(vResp)) Begin
Get Create (RefClass(cComChilkatHttpResponse)) To hoResp
Set pvComObject Of hoResp To vResp
End
Get ComLastMethodSuccess Of hoHttp To bTemp1
If (bTemp1 = False) Begin
Get ComLastErrorText Of hoHttp To sTemp1
Showln sTemp1
Procedure_Return
End
Get Create (RefClass(cComChilkatStringBuilder)) To hoSbResponseBody
If (Not(IsComObjectCreated(hoSbResponseBody))) Begin
Send CreateComObject of hoSbResponseBody
End
Get pvComObject of hoSbResponseBody to vSbResponseBody
Get ComGetBodySb Of hoResp vSbResponseBody To iSuccess
Get Create (RefClass(cComChilkatJsonObject)) To hoJResp
If (Not(IsComObjectCreated(hoJResp))) Begin
Send CreateComObject of hoJResp
End
Get pvComObject of hoSbResponseBody to vSbResponseBody
Get ComLoadSb Of hoJResp vSbResponseBody To iSuccess
Set ComEmitCompact Of hoJResp To False
Showln "Response Body:"
Get ComEmit Of hoJResp To sTemp1
Showln sTemp1
Get ComStatusCode Of hoResp To iRespStatusCode
Showln "Response Status Code = " iRespStatusCode
If (iRespStatusCode >= 400) Begin
Showln "Response Header:"
Get ComHeader Of hoResp To sTemp1
Showln sTemp1
Showln "Failed."
Send Destroy of hoResp
Procedure_Return
End
Send Destroy of hoResp
// Sample JSON response:
// (Sample code for parsing the JSON response is shown below)
// {
// "name": "laborum amet",
// "_expandable": {
// "relationData": "minim do quis",
// "source": "quis velit dolore ut",
// "target": "sint fugiat id repreh"
// },
// "_links": {},
// "relationData": {
// "createdBy": {
// "type": "known",
// "accountId": "est veniam nisi",
// "accountType": "atlassian",
// "email": "fugiat tempor est",
// "publicName": "proident cillum adipisicing",
// "profilePicture": {
// "path": "incididunt dolore sit in eu",
// "width": 66665902,
// "height": 7198703,
// "isDefault": false
// },
// "displayName": "mollit ex pariatur dolor",
// "_expandable": {
// "operations": "adipisicing in",
// "details": "id minim sed",
// "personalSpace": "Ut"
// },
// "_links": {},
// "username": "proident ut incididunt consequat",
// "userKey": "ipsum consequat sed ullamco aliquip",
// "operations": [
// {
// "operation": "copy",
// "targetType": "space"
// },
// {
// "operation": "purge_version",
// "targetType": "space"
// }
// ],
// "details": {
// "business": {
// "value": "<Error: Too many levels of nesting to fake this schema>"
// },
// "personal": {
// "value": "<Error: Too many levels of nesting to fake this schema>"
// }
// },
// "personalSpace": {
// "id": 32251017,
// "key": "Excepteur do",
// "name": "est velit non",
// "type": "deserunt occaecat",
// "status": "in commodo incididunt non",
// "_expandable": {
// "settings": "ut cillum quis in",
// "metadata": "dolore minim",
// "operations": "anim commodo amet",
// "lookAndFeel": "dolore Lorem",
// "permissions": "dolore anim",
// "icon": "deserunt ex occaecat amet",
// "description": "cillum nostrud sint",
// "theme": "dolor id",
// "history": "in fugiat eu esse",
// "homepage": "et"
// },
// "_links": {},
// "icon": {
// "path": "laboris eiusmod Excepteur eu",
// "width": -89581460,
// "height": -66835718,
// "isDefault": true
// },
// "description": {
// "plain": {
// "value": "ut eu reprehenderit",
// "representation": "view",
// "embeddedContent": [
// {
// "value": "<Error: Too many levels of nesting to fake this schema>"
// },
// {
// "value": "<Error: Too many levels of nesting to fake this schema>"
// }
// ]
// },
// "view": {
// "value": "reprehenderit",
// "representation": "view",
// "embeddedContent": [
// {
// "value": "<Error: Too many levels of nesting to fake this schema>"
// },
// {
// "value": "<Error: Too many levels of nesting to fake this schema>"
// }
// ]
// }
// },
// "homepage": {
// "value": "<Circular reference to #/components/schemas/Content detected>"
// },
// "metadata": {
// "labels": {
// "results": [
// {
// "value": "<Error: Too many levels of nesting to fake this schema>"
// },
// {
// "value": "<Error: Too many levels of nesting to fake this schema>"
// }
// ],
// "start": 83305188,
// "limit": 81363289,
// "size": -91970205,
// "_links": {}
// }
// },
// "operations": [
// {
// "operation": "purge",
// "targetType": "comment"
// },
// {
// "operation": "use",
// "targetType": "blogpost"
// }
// ],
// "permissions": [
// {
// "subjects": {
// "_expandable": {
// "value": "<Error: Too many levels of nesting to fake this schema>"
// },
// "user": {
// "value": "<Error: Too many levels of nesting to fake this schema>"
// },
// "group": {
// "value": "<Error: Too many levels of nesting to fake this schema>"
// }
// },
// "operation": {
// "operation": "purge_version",
// "targetType": "page"
// },
// "anonymousAccess": false,
// "unlicensedAccess": false
// },
// {
// "subjects": {
// "_expandable": {
// "value": "<Error: Too many levels of nesting to fake this schema>"
// },
// "user": {
// "value": "<Error: Too many levels of nesting to fake this schema>"
// },
// "group": {
// "value": "<Error: Too many levels of nesting to fake this schema>"
// }
// },
// "operation": {
// "operation": "administer",
// "targetType": "blogpost"
// },
// "anonymousAccess": false,
// "unlicensedAccess": false
// }
// ],
// "settings": {
// "routeOverrideEnabled": true,
// "_links": {}
// },
// "theme": {},
// "lookAndFeel": {
// "headings": {
// "color": "fugiat irure nostrud"
// },
// "links": {
// "color": "ad velit"
// },
// "menus": {
// "hoverOrFocus": {
// "value": "<Error: Too many levels of nesting to fake this schema>"
// },
// "color": {
// "value": "<Error: Too many levels of nesting to fake this schema>"
// }
// },
// "header": {
// "backgroundColor": {
// "value": "<Error: Too many levels of nesting to fake this schema>"
// },
// "button": {
// "value": "<Error: Too many levels of nesting to fake this schema>"
// },
// "primaryNavigation": {
// "value": "<Error: Too many levels of nesting to fake this schema>"
// },
// "secondaryNavigation": {
// "value": "<Error: Too many levels of nesting to fake this schema>"
// },
// "search": {
// "value": "<Error: Too many levels of nesting to fake this schema>"
// }
// },
// "content": {
// "screen": {
// "value": "<Error: Too many levels of nesting to fake this schema>"
// },
// "container": {
// "value": "<Error: Too many levels of nesting to fake this schema>"
// },
// "header": {
// "value": "<Error: Too many levels of nesting to fake this schema>"
// },
// "body": {
// "value": "<Error: Too many levels of nesting to fake this schema>"
// }
// },
// "bordersAndDividers": {
// "color": "do in laborum"
// }
// },
// "history": {
// "createdDate": "1968-05-01T03:07:38.118Z"
// }
// }
// },
// "createdDate": "1955-09-27T16:15:59.770Z",
// "friendlyCreatedDate": "reprehenderit quis"
// },
// "source": {},
// "target": {}
// }
// Sample code for parsing the JSON response...
// Use this online tool to generate parsing code from sample JSON: Generate JSON Parsing Code
Get ComStringOf Of hoJResp "name" To sName
Get ComStringOf Of hoJResp "_expandable.relationData" To sRelationData
Get ComStringOf Of hoJResp "_expandable.source" To sSource
Get ComStringOf Of hoJResp "_expandable.target" To sTarget
Get ComStringOf Of hoJResp "relationData.createdBy.type" To sV_Type
Get ComStringOf Of hoJResp "relationData.createdBy.accountId" To sAccountId
Get ComStringOf Of hoJResp "relationData.createdBy.accountType" To sAccountType
Get ComStringOf Of hoJResp "relationData.createdBy.email" To sV_Email
Get ComStringOf Of hoJResp "relationData.createdBy.publicName" To sPublicName
Get ComStringOf Of hoJResp "relationData.createdBy.profilePicture.path" To sPath
Get ComIntOf Of hoJResp "relationData.createdBy.profilePicture.width" To iWidth
Get ComIntOf Of hoJResp "relationData.createdBy.profilePicture.height" To iHeight
Get ComBoolOf Of hoJResp "relationData.createdBy.profilePicture.isDefault" To iIsDefault
Get ComStringOf Of hoJResp "relationData.createdBy.displayName" To sDisplayName
Get ComStringOf Of hoJResp "relationData.createdBy._expandable.operations" To sOperations
Get ComStringOf Of hoJResp "relationData.createdBy._expandable.details" To sDetails
Get ComStringOf Of hoJResp "relationData.createdBy._expandable.personalSpace" To sPersonalSpace
Get ComStringOf Of hoJResp "relationData.createdBy.username" To sUsername
Get ComStringOf Of hoJResp "relationData.createdBy.userKey" To sUserKey
Get ComStringOf Of hoJResp "relationData.createdBy.details.business.value" To sValue
Get ComStringOf Of hoJResp "relationData.createdBy.details.personal.value" To sPersonalValue
Get ComIntOf Of hoJResp "relationData.createdBy.personalSpace.id" To iId
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace.key" To sKey
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace.name" To sName
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace.type" To sPersonalSpaceType
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace.status" To sStatus
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace._expandable.settings" To sSettings
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace._expandable.metadata" To sMetadata
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace._expandable.operations" To sV_expandableOperations
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace._expandable.lookAndFeel" To sLookAndFeel
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace._expandable.permissions" To sPermissions
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace._expandable.icon" To sIcon
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace._expandable.description" To sDescription
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace._expandable.theme" To sTheme
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace._expandable.history" To sHistory
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace._expandable.homepage" To sHomepage
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace.icon.path" To sIconPath
Get ComIntOf Of hoJResp "relationData.createdBy.personalSpace.icon.width" To iIconWidth
Get ComIntOf Of hoJResp "relationData.createdBy.personalSpace.icon.height" To iIconHeight
Get ComBoolOf Of hoJResp "relationData.createdBy.personalSpace.icon.isDefault" To iIconIsDefault
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace.description.plain.value" To sPlainValue
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace.description.plain.representation" To sRepresentation
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace.description.view.value" To sViewValue
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace.description.view.representation" To sViewRepresentation
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace.homepage.value" To sHomepageValue
Get ComIntOf Of hoJResp "relationData.createdBy.personalSpace.metadata.labels.start" To iStart
Get ComIntOf Of hoJResp "relationData.createdBy.personalSpace.metadata.labels.limit" To iLimit
Get ComIntOf Of hoJResp "relationData.createdBy.personalSpace.metadata.labels.size" To iSize
Get ComBoolOf Of hoJResp "relationData.createdBy.personalSpace.settings.routeOverrideEnabled" To iRouteOverrideEnabled
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace.lookAndFeel.headings.color" To sColor
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace.lookAndFeel.links.color" To sLinksColor
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace.lookAndFeel.menus.hoverOrFocus.value" To sHoverOrFocusValue
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace.lookAndFeel.menus.color.value" To sColorValue
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace.lookAndFeel.header.backgroundColor.value" To sBackgroundColorValue
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace.lookAndFeel.header.button.value" To sButtonValue
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace.lookAndFeel.header.primaryNavigation.value" To sPrimaryNavigationValue
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace.lookAndFeel.header.secondaryNavigation.value" To sSecondaryNavigationValue
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace.lookAndFeel.header.search.value" To sSearchValue
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace.lookAndFeel.content.screen.value" To sScreenValue
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace.lookAndFeel.content.container.value" To sContainerValue
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace.lookAndFeel.content.header.value" To sHeaderValue
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace.lookAndFeel.content.body.value" To sBodyValue
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace.lookAndFeel.bordersAndDividers.color" To sBordersAndDividersColor
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace.history.createdDate" To sCreatedDate
Get ComStringOf Of hoJResp "relationData.createdDate" To sRelationDataCreatedDate
Get ComStringOf Of hoJResp "relationData.friendlyCreatedDate" To sFriendlyCreatedDate
Move 0 To i
Get ComSizeOfArray Of hoJResp "relationData.createdBy.operations" To iCount_i
While (i < iCount_i)
Set ComI Of hoJResp To i
Get ComStringOf Of hoJResp "relationData.createdBy.operations[i].operation" To sOperation
Get ComStringOf Of hoJResp "relationData.createdBy.operations[i].targetType" To sTargetType
Move (i + 1) To i
Loop
Move 0 To i
Get ComSizeOfArray Of hoJResp "relationData.createdBy.personalSpace.description.plain.embeddedContent" To iCount_i
While (i < iCount_i)
Set ComI Of hoJResp To i
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace.description.plain.embeddedContent[i].value" To sValue
Move (i + 1) To i
Loop
Move 0 To i
Get ComSizeOfArray Of hoJResp "relationData.createdBy.personalSpace.description.view.embeddedContent" To iCount_i
While (i < iCount_i)
Set ComI Of hoJResp To i
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace.description.view.embeddedContent[i].value" To sValue
Move (i + 1) To i
Loop
Move 0 To i
Get ComSizeOfArray Of hoJResp "relationData.createdBy.personalSpace.metadata.labels.results" To iCount_i
While (i < iCount_i)
Set ComI Of hoJResp To i
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace.metadata.labels.results[i].value" To sValue
Move (i + 1) To i
Loop
Move 0 To i
Get ComSizeOfArray Of hoJResp "relationData.createdBy.personalSpace.operations" To iCount_i
While (i < iCount_i)
Set ComI Of hoJResp To i
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace.operations[i].operation" To sOperation
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace.operations[i].targetType" To sTargetType
Move (i + 1) To i
Loop
Move 0 To i
Get ComSizeOfArray Of hoJResp "relationData.createdBy.personalSpace.permissions" To iCount_i
While (i < iCount_i)
Set ComI Of hoJResp To i
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace.permissions[i].subjects._expandable.value" To sV_expandableValue
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace.permissions[i].subjects.user.value" To sUserValue
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace.permissions[i].subjects.group.value" To sGroupValue
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace.permissions[i].operation.operation" To sOperation
Get ComStringOf Of hoJResp "relationData.createdBy.personalSpace.permissions[i].operation.targetType" To sTargetType
Get ComBoolOf Of hoJResp "relationData.createdBy.personalSpace.permissions[i].anonymousAccess" To iAnonymousAccess
Get ComBoolOf Of hoJResp "relationData.createdBy.personalSpace.permissions[i].unlicensedAccess" To iUnlicensedAccess
Move (i + 1) To i
Loop
End_Procedure
Curl Command
curl -G -d "sourceStatus=%3Cstring%3E"
-d "targetStatus=%3Cstring%3E"
-d "sourceVersion=%3Cinteger%3E"
-d "targetVersion=%3Cinteger%3E"
-d "expand=%3Cstring%3E"
-d "expand=%3Cstring%3E"
-H "Authorization: Bearer <access_token>"
https://your-domain.atlassian.net/wiki/rest/api/relation/:relationName/from/:sourceType/:sourceKey/to/:targetType/:targetKey
Postman Collection Item JSON
{
"name": "Find relationship from source to target",
"request": {
"auth": {
"type": "oauth2"
},
"method": "GET",
"header": [
],
"url": {
"raw": "{{baseUrl}}/api/relation/:relationName/from/:sourceType/:sourceKey/to/:targetType/:targetKey?sourceStatus=<string>&targetStatus=<string>&sourceVersion=<integer>&targetVersion=<integer>&expand=<string>&expand=<string>",
"host": [
"{{baseUrl}}"
],
"path": [
"api",
"relation",
":relationName",
"from",
":sourceType",
":sourceKey",
"to",
":targetType",
":targetKey"
],
"query": [
{
"key": "sourceStatus",
"value": "<string>",
"description": "The status of the source. This parameter is only used when the\n`sourceType` is 'content'."
},
{
"key": "targetStatus",
"value": "<string>",
"description": "The status of the target. This parameter is only used when the\n`targetType` is 'content'."
},
{
"key": "sourceVersion",
"value": "<integer>",
"description": "The version of the source. This parameter is only used when the\n`sourceType` is 'content' and the `sourceStatus` is 'historical'."
},
{
"key": "targetVersion",
"value": "<integer>",
"description": "The version of the target. This parameter is only used when the\n`targetType` is 'content' and the `targetStatus` is 'historical'."
},
{
"key": "expand",
"value": "<string>",
"description": "A multi-value parameter indicating which properties of the response\nobject to expand.\n\n- `relationData` returns information about the relationship, such as\nwho created it and when it was created.\n- `source` returns the source entity.\n- `target` returns the target entity."
},
{
"key": "expand",
"value": "<string>",
"description": "A multi-value parameter indicating which properties of the response\nobject to expand.\n\n- `relationData` returns information about the relationship, such as\nwho created it and when it was created.\n- `source` returns the source entity.\n- `target` returns the target entity."
}
],
"variable": [
{
"key": "relationName",
"value": "<string>",
"type": "string",
"description": "(Required) The name of the relationship. This method supports the 'favourite'\n(i.e. 'save for later') relationship as well as any other relationship\ntypes created via [Create relationship](#api-relation-relationName-from-sourceType-sourceKey-to-targetType-targetKey-put)."
},
{
"key": "sourceType",
"value": "<string>",
"type": "string",
"description": "(Required) The source entity type of the relationship. This must be 'user', if\nthe `relationName` is 'favourite'."
},
{
"key": "sourceKey",
"value": "<string>",
"type": "string",
"description": "(Required) - The identifier for the source entity:\n\n- If `sourceType` is `user`, then specify either `current` (logged-in user), the user key of the user, or\nthe account ID of the user. Note that the user key has been deprecated in favor of the account ID for this parameter. See the\n[migration guide](https://developer.atlassian.com/cloud/confluence/deprecation-notice-user-privacy-api-migration-guide/)\nfor details.\n- If `sourceType` is 'content', then specify the content ID.\n- If `sourceType` is 'space', then specify the space key."
},
{
"key": "targetType",
"value": "<string>",
"type": "string",
"description": "(Required) The target entity type of the relationship. This must be 'space' or\n'content', if the `relationName` is 'favourite'."
},
{
"key": "targetKey",
"value": "<string>",
"type": "string",
"description": "(Required) The identifier for the target entity:\n\n- If `targetType` is `user`, then specify either `current` (logged-in user), the user key of the user, or\nthe account ID of the user. Note that the user key has been deprecated in favor of the account ID for this parameter. See the\n[migration guide](https://developer.atlassian.com/cloud/confluence/deprecation-notice-user-privacy-api-migration-guide/)\nfor details.\n- If `targetType` is 'content', then specify the content ID.\n- If `targetType` is 'space', then specify the space key."
}
]
},
"description": "Find whether a particular type of relationship exists from a source\nentity to a target entity. Note, relationships are one way.\n\nFor example, you can use this method to find whether the current user has\nselected a particular page as a favorite (i.e. 'save for later'):\n`GET https://your-domain.atlassian.net/wiki/rest/api/relation/favourite/from/user/current/to/content/123`\n\n**[Permissions](https://confluence.atlassian.com/x/_AozKw) required**:\nPermission to view both the target entity and source entity."
},
"response": [
{
"name": "Returned if the relationship exists.",
"originalRequest": {
"method": "GET",
"header": [
{
"description": {
"content": "Added as a part of security scheme: oauth2",
"type": "text/plain"
},
"key": "Authorization",
"value": "<token>"
}
],
"url": {
"raw": "{{baseUrl}}/api/relation/:relationName/from/:sourceType/:sourceKey/to/:targetType/:targetKey?sourceStatus=<string>&targetStatus=<string>&sourceVersion=<integer>&targetVersion=<integer>&expand=<string>&expand=<string>",
"host": [
"{{baseUrl}}"
],
"path": [
"api",
"relation",
":relationName",
"from",
":sourceType",
":sourceKey",
"to",
":targetType",
":targetKey"
],
"query": [
{
"key": "sourceStatus",
"value": "<string>"
},
{
"key": "targetStatus",
"value": "<string>"
},
{
"key": "sourceVersion",
"value": "<integer>"
},
{
"key": "targetVersion",
"value": "<integer>"
},
{
"key": "expand",
"value": "<string>"
},
{
"key": "expand",
"value": "<string>"
}
],
"variable": [
{
"key": "relationName"
},
{
"key": "sourceType"
},
{
"key": "sourceKey"
},
{
"key": "targetType"
},
{
"key": "targetKey"
}
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"cookie": [
],
"body": "{\n \"name\": \"laborum amet\",\n \"_expandable\": {\n \"relationData\": \"minim do quis\",\n \"source\": \"quis velit dolore ut\",\n \"target\": \"sint fugiat id repreh\"\n },\n \"_links\": {},\n \"relationData\": {\n \"createdBy\": {\n \"type\": \"known\",\n \"accountId\": \"est veniam nisi\",\n \"accountType\": \"atlassian\",\n \"email\": \"fugiat tempor est\",\n \"publicName\": \"proident cillum adipisicing\",\n \"profilePicture\": {\n \"path\": \"incididunt dolore sit in eu\",\n \"width\": 66665902,\n \"height\": 7198703,\n \"isDefault\": false\n },\n \"displayName\": \"mollit ex pariatur dolor\",\n \"_expandable\": {\n \"operations\": \"adipisicing in\",\n \"details\": \"id minim sed\",\n \"personalSpace\": \"Ut\"\n },\n \"_links\": {},\n \"username\": \"proident ut incididunt consequat\",\n \"userKey\": \"ipsum consequat sed ullamco aliquip\",\n \"operations\": [\n {\n \"operation\": \"copy\",\n \"targetType\": \"space\"\n },\n {\n \"operation\": \"purge_version\",\n \"targetType\": \"space\"\n }\n ],\n \"details\": {\n \"business\": {\n \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n },\n \"personal\": {\n \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n }\n },\n \"personalSpace\": {\n \"id\": 32251017,\n \"key\": \"Excepteur do\",\n \"name\": \"est velit non\",\n \"type\": \"deserunt occaecat\",\n \"status\": \"in commodo incididunt non\",\n \"_expandable\": {\n \"settings\": \"ut cillum quis in\",\n \"metadata\": \"dolore minim\",\n \"operations\": \"anim commodo amet\",\n \"lookAndFeel\": \"dolore Lorem\",\n \"permissions\": \"dolore anim\",\n \"icon\": \"deserunt ex occaecat amet\",\n \"description\": \"cillum nostrud sint\",\n \"theme\": \"dolor id\",\n \"history\": \"in fugiat eu esse\",\n \"homepage\": \"et\"\n },\n \"_links\": {},\n \"icon\": {\n \"path\": \"laboris eiusmod Excepteur eu\",\n \"width\": -89581460,\n \"height\": -66835718,\n \"isDefault\": true\n },\n \"description\": {\n \"plain\": {\n \"value\": \"ut eu reprehenderit\",\n \"representation\": \"view\",\n \"embeddedContent\": [\n {\n \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n },\n {\n \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n }\n ]\n },\n \"view\": {\n \"value\": \"reprehenderit\",\n \"representation\": \"view\",\n \"embeddedContent\": [\n {\n \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n },\n {\n \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n }\n ]\n }\n },\n \"homepage\": {\n \"value\": \"<Circular reference to #/components/schemas/Content detected>\"\n },\n \"metadata\": {\n \"labels\": {\n \"results\": [\n {\n \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n },\n {\n \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n }\n ],\n \"start\": 83305188,\n \"limit\": 81363289,\n \"size\": -91970205,\n \"_links\": {}\n }\n },\n \"operations\": [\n {\n \"operation\": \"purge\",\n \"targetType\": \"comment\"\n },\n {\n \"operation\": \"use\",\n \"targetType\": \"blogpost\"\n }\n ],\n \"permissions\": [\n {\n \"subjects\": {\n \"_expandable\": {\n \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n },\n \"user\": {\n \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n },\n \"group\": {\n \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n }\n },\n \"operation\": {\n \"operation\": \"purge_version\",\n \"targetType\": \"page\"\n },\n \"anonymousAccess\": false,\n \"unlicensedAccess\": false\n },\n {\n \"subjects\": {\n \"_expandable\": {\n \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n },\n \"user\": {\n \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n },\n \"group\": {\n \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n }\n },\n \"operation\": {\n \"operation\": \"administer\",\n \"targetType\": \"blogpost\"\n },\n \"anonymousAccess\": false,\n \"unlicensedAccess\": false\n }\n ],\n \"settings\": {\n \"routeOverrideEnabled\": true,\n \"_links\": {}\n },\n \"theme\": {},\n \"lookAndFeel\": {\n \"headings\": {\n \"color\": \"fugiat irure nostrud\"\n },\n \"links\": {\n \"color\": \"ad velit\"\n },\n \"menus\": {\n \"hoverOrFocus\": {\n \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n },\n \"color\": {\n \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n }\n },\n \"header\": {\n \"backgroundColor\": {\n \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n },\n \"button\": {\n \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n },\n \"primaryNavigation\": {\n \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n },\n \"secondaryNavigation\": {\n \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n },\n \"search\": {\n \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n }\n },\n \"content\": {\n \"screen\": {\n \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n },\n \"container\": {\n \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n },\n \"header\": {\n \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n },\n \"body\": {\n \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n }\n },\n \"bordersAndDividers\": {\n \"color\": \"do in laborum\"\n }\n },\n \"history\": {\n \"createdDate\": \"1968-05-01T03:07:38.118Z\"\n }\n }\n },\n \"createdDate\": \"1955-09-27T16:15:59.770Z\",\n \"friendlyCreatedDate\": \"reprehenderit quis\"\n },\n \"source\": {},\n \"target\": {}\n}"
},
{
"name": "Returned if the user does not have permission to view the\nrelationship.",
"originalRequest": {
"method": "GET",
"header": [
{
"description": {
"content": "Added as a part of security scheme: oauth2",
"type": "text/plain"
},
"key": "Authorization",
"value": "<token>"
}
],
"url": {
"raw": "{{baseUrl}}/api/relation/:relationName/from/:sourceType/:sourceKey/to/:targetType/:targetKey?sourceStatus=<string>&targetStatus=<string>&sourceVersion=<integer>&targetVersion=<integer>&expand=<string>&expand=<string>",
"host": [
"{{baseUrl}}"
],
"path": [
"api",
"relation",
":relationName",
"from",
":sourceType",
":sourceKey",
"to",
":targetType",
":targetKey"
],
"query": [
{
"key": "sourceStatus",
"value": "<string>"
},
{
"key": "targetStatus",
"value": "<string>"
},
{
"key": "sourceVersion",
"value": "<integer>"
},
{
"key": "targetVersion",
"value": "<integer>"
},
{
"key": "expand",
"value": "<string>"
},
{
"key": "expand",
"value": "<string>"
}
],
"variable": [
{
"key": "relationName"
},
{
"key": "sourceType"
},
{
"key": "sourceKey"
},
{
"key": "targetType"
},
{
"key": "targetKey"
}
]
}
},
"status": "Forbidden",
"code": 403,
"_postman_previewlanguage": "text",
"header": [
{
"key": "Content-Type",
"value": "text/plain"
}
],
"cookie": [
],
"body": ""
},
{
"name": "Returned if the relationship does not exist.",
"originalRequest": {
"method": "GET",
"header": [
{
"description": {
"content": "Added as a part of security scheme: oauth2",
"type": "text/plain"
},
"key": "Authorization",
"value": "<token>"
}
],
"url": {
"raw": "{{baseUrl}}/api/relation/:relationName/from/:sourceType/:sourceKey/to/:targetType/:targetKey?sourceStatus=<string>&targetStatus=<string>&sourceVersion=<integer>&targetVersion=<integer>&expand=<string>&expand=<string>",
"host": [
"{{baseUrl}}"
],
"path": [
"api",
"relation",
":relationName",
"from",
":sourceType",
":sourceKey",
"to",
":targetType",
":targetKey"
],
"query": [
{
"key": "sourceStatus",
"value": "<string>"
},
{
"key": "targetStatus",
"value": "<string>"
},
{
"key": "sourceVersion",
"value": "<integer>"
},
{
"key": "targetVersion",
"value": "<integer>"
},
{
"key": "expand",
"value": "<string>"
},
{
"key": "expand",
"value": "<string>"
}
],
"variable": [
{
"key": "relationName"
},
{
"key": "sourceType"
},
{
"key": "sourceKey"
},
{
"key": "targetType"
},
{
"key": "targetKey"
}
]
}
},
"status": "Not Found",
"code": 404,
"_postman_previewlanguage": "text",
"header": [
{
"key": "Content-Type",
"value": "text/plain"
}
],
"cookie": [
],
"body": ""
}
]
}