delphiAx / Atlassian Confluence Cloud / Find target entities related to a source entity
Back to Collection Items
var
http: TChilkatHttp;
success: Integer;
queryParams: TChilkatJsonObject;
resp: IChilkatHttpResponse;
sbResponseBody: TChilkatStringBuilder;
jResp: TChilkatJsonObject;
respStatusCode: Integer;
name: WideString;
RelationData: WideString;
Source: WideString;
Target: WideString;
v_Type: WideString;
AccountId: WideString;
AccountType: WideString;
v_Email: WideString;
PublicName: WideString;
Path: WideString;
Width: Integer;
Height: Integer;
IsDefault: Integer;
DisplayName: WideString;
Operations: WideString;
Details: WideString;
PersonalSpace: WideString;
Username: WideString;
UserKey: WideString;
Value: WideString;
PersonalValue: WideString;
Id: Integer;
Key: WideString;
Name: WideString;
PersonalSpaceType: WideString;
Status: WideString;
Settings: WideString;
Metadata: WideString;
v_expandableOperations: WideString;
LookAndFeel: WideString;
Permissions: WideString;
Icon: WideString;
Description: WideString;
Theme: WideString;
History: WideString;
Homepage: WideString;
IconPath: WideString;
IconWidth: Integer;
IconHeight: Integer;
IconIsDefault: Integer;
PlainValue: WideString;
Representation: WideString;
ViewValue: WideString;
ViewRepresentation: WideString;
HomepageValue: WideString;
Start: Integer;
Limit: Integer;
Size: Integer;
RouteOverrideEnabled: Integer;
Color: WideString;
LinksColor: WideString;
HoverOrFocusValue: WideString;
ColorValue: WideString;
BackgroundColorValue: WideString;
ButtonValue: WideString;
PrimaryNavigationValue: WideString;
SecondaryNavigationValue: WideString;
SearchValue: WideString;
ScreenValue: WideString;
ContainerValue: WideString;
HeaderValue: WideString;
BodyValue: WideString;
BordersAndDividersColor: WideString;
CreatedDate: WideString;
relationDataCreatedDate: WideString;
FriendlyCreatedDate: WideString;
j: Integer;
count_j: Integer;
operation: WideString;
targetType: WideString;
value: WideString;
v_expandableValue: WideString;
UserValue: WideString;
GroupValue: WideString;
Operation: WideString;
TargetType: WideString;
anonymousAccess: Integer;
unlicensedAccess: Integer;
start: Integer;
limit: Integer;
size: Integer;
i: Integer;
count_i: Integer;
begin
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
http := TChilkatHttp.Create(Self);
queryParams := TChilkatJsonObject.Create(Self);
queryParams.UpdateString('sourceStatus','<string>');
queryParams.UpdateString('targetStatus','<string>');
queryParams.UpdateString('sourceVersion','<integer>');
queryParams.UpdateString('targetVersion','<integer>');
queryParams.UpdateString('expand','<string>');
queryParams.UpdateString('expand','<string>');
queryParams.UpdateInt('start',0);
queryParams.UpdateInt('limit',25);
// Adds the "Authorization: Bearer <access_token>" header.
http.AuthToken := '<access_token>';
resp := http.QuickRequestParams('GET','https://your-domain.atlassian.net/wiki/rest/api/relation/:relationName/from/:sourceType/:sourceKey/to/:targetType',queryParams.ControlInterface);
if (http.LastMethodSuccess = 0) then
begin
Memo1.Lines.Add(http.LastErrorText);
Exit;
end;
sbResponseBody := TChilkatStringBuilder.Create(Self);
resp.GetBodySb(sbResponseBody.ControlInterface);
jResp := TChilkatJsonObject.Create(Self);
jResp.LoadSb(sbResponseBody.ControlInterface);
jResp.EmitCompact := 0;
Memo1.Lines.Add('Response Body:');
Memo1.Lines.Add(jResp.Emit());
respStatusCode := resp.StatusCode;
Memo1.Lines.Add('Response Status Code = ' + IntToStr(respStatusCode));
if (respStatusCode >= 400) then
begin
Memo1.Lines.Add('Response Header:');
Memo1.Lines.Add(resp.Header);
Memo1.Lines.Add('Failed.');
Exit;
end;
// Sample JSON response:
// (Sample code for parsing the JSON response is shown below)
// {
// "results": [
// {
// "name": "eiusmod dolore",
// "_expandable": {
// "relationData": "officia",
// "source": "ut aliqua mollit in laboris",
// "target": "voluptate"
// },
// "_links": {},
// "relationData": {
// "createdBy": {
// "type": "user",
// "accountId": "proident nisi",
// "accountType": "app (if this user is a bot user created on behalf of an Atlassian app)",
// "email": "officia sit",
// "publicName": "culpa",
// "profilePicture": {
// "path": "nulla eiusmod",
// "width": 57363774,
// "height": -21452074,
// "isDefault": true
// },
// "displayName": "laborum officia",
// "_expandable": {
// "operations": "aliqua elit",
// "details": "sed ex commodo ullamco",
// "personalSpace": "est ut in ad"
// },
// "_links": {},
// "username": "Excepteur proident",
// "userKey": "voluptate fugiat nostrud laboris mollit",
// "operations": [
// {
// "operation": "copy",
// "targetType": "blogpost"
// },
// {
// "operation": "export",
// "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": 30176725,
// "key": "qui culpa sit officia irure",
// "name": "mollit",
// "type": "qui dolor consectetur et",
// "status": "exercitation est magna in",
// "_expandable": {
// "settings": "id incididunt magna",
// "metadata": "minim qui consectetur",
// "operations": "eu est i",
// "lookAndFeel": "deserunt quis",
// "permissions": "aliquip ut magna",
// "icon": "non",
// "description": "irure aute occaecat",
// "theme": "officia",
// "history": "pariatur Ut dolore adipisicing magna",
// "homepage": "sit sint magna cillum"
// },
// "_links": {},
// "icon": {
// "path": "est culpa consequ",
// "width": 28391664,
// "height": 6678264,
// "isDefault": true
// },
// "description": {
// "plain": {
// "value": "ad incididunt ex",
// "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": "magna aliqua exe",
// "representation": "plain",
// "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": -68962586,
// "limit": 86790834,
// "size": -46961334,
// "_links": {}
// }
// },
// "operations": [
// {
// "operation": "create",
// "targetType": "space"
// },
// {
// "operation": "move",
// "targetType": "space"
// }
// ],
// "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": "export",
// "targetType": "blogpost"
// },
// "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": "purge_version",
// "targetType": "space"
// },
// "anonymousAccess": false,
// "unlicensedAccess": false
// }
// ],
// "settings": {
// "routeOverrideEnabled": false,
// "_links": {}
// },
// "theme": {},
// "lookAndFeel": {
// "headings": {
// "color": "qui magna sint"
// },
// "links": {
// "color": "tempor in aliqua"
// },
// "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": "ipsum cillum elit"
// }
// },
// "history": {
// "createdDate": "2019-06-08T15:36:45.578Z"
// }
// }
// },
// "createdDate": "1942-04-10T17:03:01.544Z",
// "friendlyCreatedDate": "mollit v"
// },
// "source": {},
// "target": {}
// },
// {
// "name": "dolor quis in",
// "_expandable": {
// "relationData": "cillum in",
// "source": "irure",
// "target": "do in"
// },
// "_links": {},
// "relationData": {
// "createdBy": {
// "type": "anonymous",
// "accountId": "laboris reprehenderit Ut",
// "accountType": "atlassian",
// "email": "dolor",
// "publicName": "Lorem sit ad",
// "profilePicture": {
// "path": "in",
// "width": 79807980,
// "height": -29772365,
// "isDefault": false
// },
// "displayName": "fugiat consectetur et",
// "_expandable": {
// "operations": "est eu",
// "details": "in adipisicing",
// "personalSpace": "adipisicing in et id"
// },
// "_links": {},
// "username": "tempor consequat deserunt aliqua",
// "userKey": "dolore officia",
// "operations": [
// {
// "operation": "use",
// "targetType": "attachment"
// },
// {
// "operation": "copy",
// "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": 46964980,
// "key": "cillum adipisicing",
// "name": "nulla laboris",
// "type": "proident",
// "status": "dolor",
// "_expandable": {
// "settings": "ad Lorem anim dolore",
// "metadata": "non ipsum",
// "operations": "ea aliqua sint",
// "lookAndFeel": "irure minim voluptate sed",
// "permissions": "ullamco ",
// "icon": "aliquip in et irure",
// "description": "ad sed",
// "theme": "minim occaecat cillum",
// "history": "cupidatat aute ad",
// "homepage": "ex aliquip"
// },
// "_links": {},
// "icon": {
// "path": "sed dolor eiusmod sit",
// "width": -41978384,
// "height": 66964221,
// "isDefault": true
// },
// "description": {
// "plain": {
// "value": "velit sit fugiat in",
// "representation": "plain",
// "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": "non est",
// "representation": "plain",
// "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": 8721050,
// "limit": -31508499,
// "size": -70758219,
// "_links": {}
// }
// },
// "operations": [
// {
// "operation": "purge_version",
// "targetType": "page"
// },
// {
// "operation": "administer",
// "targetType": "comment"
// }
// ],
// "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": "update",
// "targetType": "application"
// },
// "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": "move",
// "targetType": "blogpost"
// },
// "anonymousAccess": false,
// "unlicensedAccess": false
// }
// ],
// "settings": {
// "routeOverrideEnabled": false,
// "_links": {}
// },
// "theme": {},
// "lookAndFeel": {
// "headings": {
// "color": "aute proident"
// },
// "links": {
// "color": "u"
// },
// "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": "amet"
// }
// },
// "history": {
// "createdDate": "1959-02-24T05:04:21.176Z"
// }
// }
// },
// "createdDate": "1955-10-26T09:32:56.560Z",
// "friendlyCreatedDate": "amet "
// },
// "source": {},
// "target": {}
// }
// ],
// "start": -92854805,
// "limit": -69118531,
// "size": 3210316,
// "_links": {}
// }
// Sample code for parsing the JSON response...
// Use this online tool to generate parsing code from sample JSON: Generate JSON Parsing Code
start := jResp.IntOf('start');
limit := jResp.IntOf('limit');
size := jResp.IntOf('size');
i := 0;
count_i := jResp.SizeOfArray('results');
while i < count_i do
begin
jResp.I := i;
name := jResp.StringOf('results[i].name');
RelationData := jResp.StringOf('results[i]._expandable.relationData');
Source := jResp.StringOf('results[i]._expandable.source');
Target := jResp.StringOf('results[i]._expandable.target');
v_Type := jResp.StringOf('results[i].relationData.createdBy.type');
AccountId := jResp.StringOf('results[i].relationData.createdBy.accountId');
AccountType := jResp.StringOf('results[i].relationData.createdBy.accountType');
v_Email := jResp.StringOf('results[i].relationData.createdBy.email');
PublicName := jResp.StringOf('results[i].relationData.createdBy.publicName');
Path := jResp.StringOf('results[i].relationData.createdBy.profilePicture.path');
Width := jResp.IntOf('results[i].relationData.createdBy.profilePicture.width');
Height := jResp.IntOf('results[i].relationData.createdBy.profilePicture.height');
IsDefault := jResp.BoolOf('results[i].relationData.createdBy.profilePicture.isDefault');
DisplayName := jResp.StringOf('results[i].relationData.createdBy.displayName');
Operations := jResp.StringOf('results[i].relationData.createdBy._expandable.operations');
Details := jResp.StringOf('results[i].relationData.createdBy._expandable.details');
PersonalSpace := jResp.StringOf('results[i].relationData.createdBy._expandable.personalSpace');
Username := jResp.StringOf('results[i].relationData.createdBy.username');
UserKey := jResp.StringOf('results[i].relationData.createdBy.userKey');
Value := jResp.StringOf('results[i].relationData.createdBy.details.business.value');
PersonalValue := jResp.StringOf('results[i].relationData.createdBy.details.personal.value');
Id := jResp.IntOf('results[i].relationData.createdBy.personalSpace.id');
Key := jResp.StringOf('results[i].relationData.createdBy.personalSpace.key');
Name := jResp.StringOf('results[i].relationData.createdBy.personalSpace.name');
PersonalSpaceType := jResp.StringOf('results[i].relationData.createdBy.personalSpace.type');
Status := jResp.StringOf('results[i].relationData.createdBy.personalSpace.status');
Settings := jResp.StringOf('results[i].relationData.createdBy.personalSpace._expandable.settings');
Metadata := jResp.StringOf('results[i].relationData.createdBy.personalSpace._expandable.metadata');
v_expandableOperations := jResp.StringOf('results[i].relationData.createdBy.personalSpace._expandable.operations');
LookAndFeel := jResp.StringOf('results[i].relationData.createdBy.personalSpace._expandable.lookAndFeel');
Permissions := jResp.StringOf('results[i].relationData.createdBy.personalSpace._expandable.permissions');
Icon := jResp.StringOf('results[i].relationData.createdBy.personalSpace._expandable.icon');
Description := jResp.StringOf('results[i].relationData.createdBy.personalSpace._expandable.description');
Theme := jResp.StringOf('results[i].relationData.createdBy.personalSpace._expandable.theme');
History := jResp.StringOf('results[i].relationData.createdBy.personalSpace._expandable.history');
Homepage := jResp.StringOf('results[i].relationData.createdBy.personalSpace._expandable.homepage');
IconPath := jResp.StringOf('results[i].relationData.createdBy.personalSpace.icon.path');
IconWidth := jResp.IntOf('results[i].relationData.createdBy.personalSpace.icon.width');
IconHeight := jResp.IntOf('results[i].relationData.createdBy.personalSpace.icon.height');
IconIsDefault := jResp.BoolOf('results[i].relationData.createdBy.personalSpace.icon.isDefault');
PlainValue := jResp.StringOf('results[i].relationData.createdBy.personalSpace.description.plain.value');
Representation := jResp.StringOf('results[i].relationData.createdBy.personalSpace.description.plain.representation');
ViewValue := jResp.StringOf('results[i].relationData.createdBy.personalSpace.description.view.value');
ViewRepresentation := jResp.StringOf('results[i].relationData.createdBy.personalSpace.description.view.representation');
HomepageValue := jResp.StringOf('results[i].relationData.createdBy.personalSpace.homepage.value');
Start := jResp.IntOf('results[i].relationData.createdBy.personalSpace.metadata.labels.start');
Limit := jResp.IntOf('results[i].relationData.createdBy.personalSpace.metadata.labels.limit');
Size := jResp.IntOf('results[i].relationData.createdBy.personalSpace.metadata.labels.size');
RouteOverrideEnabled := jResp.BoolOf('results[i].relationData.createdBy.personalSpace.settings.routeOverrideEnabled');
Color := jResp.StringOf('results[i].relationData.createdBy.personalSpace.lookAndFeel.headings.color');
LinksColor := jResp.StringOf('results[i].relationData.createdBy.personalSpace.lookAndFeel.links.color');
HoverOrFocusValue := jResp.StringOf('results[i].relationData.createdBy.personalSpace.lookAndFeel.menus.hoverOrFocus.value');
ColorValue := jResp.StringOf('results[i].relationData.createdBy.personalSpace.lookAndFeel.menus.color.value');
BackgroundColorValue := jResp.StringOf('results[i].relationData.createdBy.personalSpace.lookAndFeel.header.backgroundColor.value');
ButtonValue := jResp.StringOf('results[i].relationData.createdBy.personalSpace.lookAndFeel.header.button.value');
PrimaryNavigationValue := jResp.StringOf('results[i].relationData.createdBy.personalSpace.lookAndFeel.header.primaryNavigation.value');
SecondaryNavigationValue := jResp.StringOf('results[i].relationData.createdBy.personalSpace.lookAndFeel.header.secondaryNavigation.value');
SearchValue := jResp.StringOf('results[i].relationData.createdBy.personalSpace.lookAndFeel.header.search.value');
ScreenValue := jResp.StringOf('results[i].relationData.createdBy.personalSpace.lookAndFeel.content.screen.value');
ContainerValue := jResp.StringOf('results[i].relationData.createdBy.personalSpace.lookAndFeel.content.container.value');
HeaderValue := jResp.StringOf('results[i].relationData.createdBy.personalSpace.lookAndFeel.content.header.value');
BodyValue := jResp.StringOf('results[i].relationData.createdBy.personalSpace.lookAndFeel.content.body.value');
BordersAndDividersColor := jResp.StringOf('results[i].relationData.createdBy.personalSpace.lookAndFeel.bordersAndDividers.color');
CreatedDate := jResp.StringOf('results[i].relationData.createdBy.personalSpace.history.createdDate');
relationDataCreatedDate := jResp.StringOf('results[i].relationData.createdDate');
FriendlyCreatedDate := jResp.StringOf('results[i].relationData.friendlyCreatedDate');
j := 0;
count_j := jResp.SizeOfArray('results[i].relationData.createdBy.operations');
while j < count_j do
begin
jResp.J := j;
operation := jResp.StringOf('results[i].relationData.createdBy.operations[j].operation');
targetType := jResp.StringOf('results[i].relationData.createdBy.operations[j].targetType');
j := j + 1;
end;
j := 0;
count_j := jResp.SizeOfArray('results[i].relationData.createdBy.personalSpace.description.plain.embeddedContent');
while j < count_j do
begin
jResp.J := j;
value := jResp.StringOf('results[i].relationData.createdBy.personalSpace.description.plain.embeddedContent[j].value');
j := j + 1;
end;
j := 0;
count_j := jResp.SizeOfArray('results[i].relationData.createdBy.personalSpace.description.view.embeddedContent');
while j < count_j do
begin
jResp.J := j;
value := jResp.StringOf('results[i].relationData.createdBy.personalSpace.description.view.embeddedContent[j].value');
j := j + 1;
end;
j := 0;
count_j := jResp.SizeOfArray('results[i].relationData.createdBy.personalSpace.metadata.labels.results');
while j < count_j do
begin
jResp.J := j;
value := jResp.StringOf('results[i].relationData.createdBy.personalSpace.metadata.labels.results[j].value');
j := j + 1;
end;
j := 0;
count_j := jResp.SizeOfArray('results[i].relationData.createdBy.personalSpace.operations');
while j < count_j do
begin
jResp.J := j;
operation := jResp.StringOf('results[i].relationData.createdBy.personalSpace.operations[j].operation');
targetType := jResp.StringOf('results[i].relationData.createdBy.personalSpace.operations[j].targetType');
j := j + 1;
end;
j := 0;
count_j := jResp.SizeOfArray('results[i].relationData.createdBy.personalSpace.permissions');
while j < count_j do
begin
jResp.J := j;
v_expandableValue := jResp.StringOf('results[i].relationData.createdBy.personalSpace.permissions[j].subjects._expandable.value');
UserValue := jResp.StringOf('results[i].relationData.createdBy.personalSpace.permissions[j].subjects.user.value');
GroupValue := jResp.StringOf('results[i].relationData.createdBy.personalSpace.permissions[j].subjects.group.value');
Operation := jResp.StringOf('results[i].relationData.createdBy.personalSpace.permissions[j].operation.operation');
TargetType := jResp.StringOf('results[i].relationData.createdBy.personalSpace.permissions[j].operation.targetType');
anonymousAccess := jResp.BoolOf('results[i].relationData.createdBy.personalSpace.permissions[j].anonymousAccess');
unlicensedAccess := jResp.BoolOf('results[i].relationData.createdBy.personalSpace.permissions[j].unlicensedAccess');
j := j + 1;
end;
i := i + 1;
end;
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"
-d "start=0"
-d "limit=25"
-H "Authorization: Bearer <access_token>"
https://your-domain.atlassian.net/wiki/rest/api/relation/:relationName/from/:sourceType/:sourceKey/to/:targetType
Postman Collection Item JSON
{
"name": "Find target entities related to a source entity",
"request": {
"auth": {
"type": "oauth2"
},
"method": "GET",
"header": [
],
"url": {
"raw": "{{baseUrl}}/api/relation/:relationName/from/:sourceType/:sourceKey/to/:targetType?sourceStatus=<string>&targetStatus=<string>&sourceVersion=<integer>&targetVersion=<integer>&expand=<string>&expand=<string>&start=0&limit=25",
"host": [
"{{baseUrl}}"
],
"path": [
"api",
"relation",
":relationName",
"from",
":sourceType",
":sourceKey",
"to",
":targetType"
],
"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."
},
{
"key": "start",
"value": "0",
"description": "The starting index of the returned relationships."
},
{
"key": "limit",
"value": "25",
"description": "The maximum number of relationships to return per page.\nNote, this may be restricted by fixed system limits."
}
],
"variable": [
{
"key": "relationName",
"value": "<string>",
"type": "string",
"description": "(Required) The name of the relationship. This method supports relationships created via\n[Create relationship](#api-relation-relationName-from-sourceType-sourceKey-to-targetType-targetKey-put).\nNote, this method does not support 'favourite' relationships."
},
{
"key": "sourceType",
"value": "<string>",
"type": "string",
"description": "(Required) The source entity type of the relationship."
},
{
"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."
}
]
},
"description": "Returns all target entities that have a particular relationship to the\nsource entity. Note, relationships are one way.\n\nFor example, the following method finds all content that the current user\nhas an 'ignore' relationship with:\n`GET https://your-domain.atlassian.net/wiki/rest/api/relation/ignore/from/user/current/to/content`\nNote, 'ignore' is an example custom relationship type.\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 requested relationships are returned.",
"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?sourceStatus=<string>&targetStatus=<string>&sourceVersion=<integer>&targetVersion=<integer>&expand=<string>&expand=<string>&start=0&limit=25",
"host": [
"{{baseUrl}}"
],
"path": [
"api",
"relation",
":relationName",
"from",
":sourceType",
":sourceKey",
"to",
":targetType"
],
"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>"
},
{
"key": "start",
"value": "0"
},
{
"key": "limit",
"value": "25"
}
],
"variable": [
{
"key": "relationName"
},
{
"key": "sourceType"
},
{
"key": "sourceKey"
},
{
"key": "targetType"
}
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"cookie": [
],
"body": "{\n \"results\": [\n {\n \"name\": \"eiusmod dolore\",\n \"_expandable\": {\n \"relationData\": \"officia\",\n \"source\": \"ut aliqua mollit in laboris\",\n \"target\": \"voluptate\"\n },\n \"_links\": {},\n \"relationData\": {\n \"createdBy\": {\n \"type\": \"user\",\n \"accountId\": \"proident nisi\",\n \"accountType\": \"app (if this user is a bot user created on behalf of an Atlassian app)\",\n \"email\": \"officia sit\",\n \"publicName\": \"culpa\",\n \"profilePicture\": {\n \"path\": \"nulla eiusmod\",\n \"width\": 57363774,\n \"height\": -21452074,\n \"isDefault\": true\n },\n \"displayName\": \"laborum officia\",\n \"_expandable\": {\n \"operations\": \"aliqua elit\",\n \"details\": \"sed ex commodo ullamco\",\n \"personalSpace\": \"est ut in ad\"\n },\n \"_links\": {},\n \"username\": \"Excepteur proident\",\n \"userKey\": \"voluptate fugiat nostrud laboris mollit\",\n \"operations\": [\n {\n \"operation\": \"copy\",\n \"targetType\": \"blogpost\"\n },\n {\n \"operation\": \"export\",\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\": 30176725,\n \"key\": \"qui culpa sit officia irure\",\n \"name\": \"mollit\",\n \"type\": \"qui dolor consectetur et\",\n \"status\": \"exercitation est magna in\",\n \"_expandable\": {\n \"settings\": \"id incididunt magna\",\n \"metadata\": \"minim qui consectetur\",\n \"operations\": \"eu est i\",\n \"lookAndFeel\": \"deserunt quis\",\n \"permissions\": \"aliquip ut magna\",\n \"icon\": \"non\",\n \"description\": \"irure aute occaecat\",\n \"theme\": \"officia\",\n \"history\": \"pariatur Ut dolore adipisicing magna\",\n \"homepage\": \"sit sint magna cillum\"\n },\n \"_links\": {},\n \"icon\": {\n \"path\": \"est culpa consequ\",\n \"width\": 28391664,\n \"height\": 6678264,\n \"isDefault\": true\n },\n \"description\": {\n \"plain\": {\n \"value\": \"ad incididunt ex\",\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\": \"magna aliqua exe\",\n \"representation\": \"plain\",\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\": -68962586,\n \"limit\": 86790834,\n \"size\": -46961334,\n \"_links\": {}\n }\n },\n \"operations\": [\n {\n \"operation\": \"create\",\n \"targetType\": \"space\"\n },\n {\n \"operation\": \"move\",\n \"targetType\": \"space\"\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\": \"export\",\n \"targetType\": \"blogpost\"\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\": \"purge_version\",\n \"targetType\": \"space\"\n },\n \"anonymousAccess\": false,\n \"unlicensedAccess\": false\n }\n ],\n \"settings\": {\n \"routeOverrideEnabled\": false,\n \"_links\": {}\n },\n \"theme\": {},\n \"lookAndFeel\": {\n \"headings\": {\n \"color\": \"qui magna sint\"\n },\n \"links\": {\n \"color\": \"tempor in aliqua\"\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\": \"ipsum cillum elit\"\n }\n },\n \"history\": {\n \"createdDate\": \"2019-06-08T15:36:45.578Z\"\n }\n }\n },\n \"createdDate\": \"1942-04-10T17:03:01.544Z\",\n \"friendlyCreatedDate\": \"mollit v\"\n },\n \"source\": {},\n \"target\": {}\n },\n {\n \"name\": \"dolor quis in\",\n \"_expandable\": {\n \"relationData\": \"cillum in\",\n \"source\": \"irure\",\n \"target\": \"do in\"\n },\n \"_links\": {},\n \"relationData\": {\n \"createdBy\": {\n \"type\": \"anonymous\",\n \"accountId\": \"laboris reprehenderit Ut\",\n \"accountType\": \"atlassian\",\n \"email\": \"dolor\",\n \"publicName\": \"Lorem sit ad\",\n \"profilePicture\": {\n \"path\": \"in\",\n \"width\": 79807980,\n \"height\": -29772365,\n \"isDefault\": false\n },\n \"displayName\": \"fugiat consectetur et\",\n \"_expandable\": {\n \"operations\": \"est eu\",\n \"details\": \"in adipisicing\",\n \"personalSpace\": \"adipisicing in et id\"\n },\n \"_links\": {},\n \"username\": \"tempor consequat deserunt aliqua\",\n \"userKey\": \"dolore officia\",\n \"operations\": [\n {\n \"operation\": \"use\",\n \"targetType\": \"attachment\"\n },\n {\n \"operation\": \"copy\",\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\": 46964980,\n \"key\": \"cillum adipisicing\",\n \"name\": \"nulla laboris\",\n \"type\": \"proident\",\n \"status\": \"dolor\",\n \"_expandable\": {\n \"settings\": \"ad Lorem anim dolore\",\n \"metadata\": \"non ipsum\",\n \"operations\": \"ea aliqua sint\",\n \"lookAndFeel\": \"irure minim voluptate sed\",\n \"permissions\": \"ullamco \",\n \"icon\": \"aliquip in et irure\",\n \"description\": \"ad sed\",\n \"theme\": \"minim occaecat cillum\",\n \"history\": \"cupidatat aute ad\",\n \"homepage\": \"ex aliquip\"\n },\n \"_links\": {},\n \"icon\": {\n \"path\": \"sed dolor eiusmod sit\",\n \"width\": -41978384,\n \"height\": 66964221,\n \"isDefault\": true\n },\n \"description\": {\n \"plain\": {\n \"value\": \"velit sit fugiat in\",\n \"representation\": \"plain\",\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\": \"non est\",\n \"representation\": \"plain\",\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\": 8721050,\n \"limit\": -31508499,\n \"size\": -70758219,\n \"_links\": {}\n }\n },\n \"operations\": [\n {\n \"operation\": \"purge_version\",\n \"targetType\": \"page\"\n },\n {\n \"operation\": \"administer\",\n \"targetType\": \"comment\"\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\": \"update\",\n \"targetType\": \"application\"\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\": \"move\",\n \"targetType\": \"blogpost\"\n },\n \"anonymousAccess\": false,\n \"unlicensedAccess\": false\n }\n ],\n \"settings\": {\n \"routeOverrideEnabled\": false,\n \"_links\": {}\n },\n \"theme\": {},\n \"lookAndFeel\": {\n \"headings\": {\n \"color\": \"aute proident\"\n },\n \"links\": {\n \"color\": \"u\"\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\": \"amet\"\n }\n },\n \"history\": {\n \"createdDate\": \"1959-02-24T05:04:21.176Z\"\n }\n }\n },\n \"createdDate\": \"1955-10-26T09:32:56.560Z\",\n \"friendlyCreatedDate\": \"amet \"\n },\n \"source\": {},\n \"target\": {}\n }\n ],\n \"start\": -92854805,\n \"limit\": -69118531,\n \"size\": 3210316,\n \"_links\": {}\n}"
},
{
"name": "Returned if the user does not have permission to view the\nrelationships.",
"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?sourceStatus=<string>&targetStatus=<string>&sourceVersion=<integer>&targetVersion=<integer>&expand=<string>&expand=<string>&start=0&limit=25",
"host": [
"{{baseUrl}}"
],
"path": [
"api",
"relation",
":relationName",
"from",
":sourceType",
":sourceKey",
"to",
":targetType"
],
"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>"
},
{
"key": "start",
"value": "0"
},
{
"key": "limit",
"value": "25"
}
],
"variable": [
{
"key": "relationName"
},
{
"key": "sourceType"
},
{
"key": "sourceKey"
},
{
"key": "targetType"
}
]
}
},
"status": "Forbidden",
"code": 403,
"_postman_previewlanguage": "text",
"header": [
{
"key": "Content-Type",
"value": "text/plain"
}
],
"cookie": [
],
"body": ""
},
{
"name": "Returned if the target entity 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?sourceStatus=<string>&targetStatus=<string>&sourceVersion=<integer>&targetVersion=<integer>&expand=<string>&expand=<string>&start=0&limit=25",
"host": [
"{{baseUrl}}"
],
"path": [
"api",
"relation",
":relationName",
"from",
":sourceType",
":sourceKey",
"to",
":targetType"
],
"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>"
},
{
"key": "start",
"value": "0"
},
{
"key": "limit",
"value": "25"
}
],
"variable": [
{
"key": "relationName"
},
{
"key": "sourceType"
},
{
"key": "sourceKey"
},
{
"key": "targetType"
}
]
}
},
"status": "Not Found",
"code": 404,
"_postman_previewlanguage": "text",
"header": [
{
"key": "Content-Type",
"value": "text/plain"
}
],
"cookie": [
],
"body": ""
}
]
}