package main
import(
"context"
"github.com/conductorone/conductorone-sdk-go/pkg/models/shared"
conductoronesdkgo "github.com/conductorone/conductorone-sdk-go"
"log"
)
func main() {
ctx := context.Background()
s := conductoronesdkgo.New(
conductoronesdkgo.WithSecurity(shared.Security{
BearerAuth: "<YOUR_BEARER_TOKEN_HERE>",
Oauth: "<YOUR_OAUTH_HERE>",
}),
)
res, err := s.AppResourceSearch.SearchAppResources(ctx, nil)
if err != nil {
log.Fatal(err)
}
if res.SearchAppResourcesResponse != nil {
for {
// handle items
res, err = res.Next()
if err != nil {
// handle error
}
if res == nil {
break
}
}
}
}import { ConductoroneSDKTypescript } from "conductorone-sdk-typescript";
const conductoroneSDKTypescript = new ConductoroneSDKTypescript({
security: {
bearerAuth: "<YOUR_BEARER_TOKEN_HERE>",
oauth: "<YOUR_OAUTH_HERE>",
},
});
async function run() {
const result = await conductoroneSDKTypescript.appResourceSearch.searchAppResources();
for await (const page of result) {
console.log(page);
}
}
run();curl --request POST \
--url https://{tenantDomain}.conductor.one/api/v1/search/app_resources \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"appId": "<string>",
"appUserIds": [
"<string>"
],
"excludeDeletedResourceBindings": true,
"excludeResourceIds": [
"<string>"
],
"excludeResourceTypeTraitIds": [
"<string>"
],
"ownerUserIds": [
"<string>"
],
"pageSize": 123,
"pageToken": "<string>",
"query": "<string>",
"refs": [
{
"appId": "<string>",
"appResourceTypeId": "<string>",
"id": "<string>"
}
],
"resourceIds": [
"<string>"
],
"resourceTypeIds": [
"<string>"
],
"resourceTypeTraitIds": [
"<string>"
]
}
'import requests
url = "https://{tenantDomain}.conductor.one/api/v1/search/app_resources"
payload = {
"appId": "<string>",
"appUserIds": ["<string>"],
"excludeDeletedResourceBindings": True,
"excludeResourceIds": ["<string>"],
"excludeResourceTypeTraitIds": ["<string>"],
"ownerUserIds": ["<string>"],
"pageSize": 123,
"pageToken": "<string>",
"query": "<string>",
"refs": [
{
"appId": "<string>",
"appResourceTypeId": "<string>",
"id": "<string>"
}
],
"resourceIds": ["<string>"],
"resourceTypeIds": ["<string>"],
"resourceTypeTraitIds": ["<string>"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
appId: '<string>',
appUserIds: ['<string>'],
excludeDeletedResourceBindings: true,
excludeResourceIds: ['<string>'],
excludeResourceTypeTraitIds: ['<string>'],
ownerUserIds: ['<string>'],
pageSize: 123,
pageToken: '<string>',
query: '<string>',
refs: [{appId: '<string>', appResourceTypeId: '<string>', id: '<string>'}],
resourceIds: ['<string>'],
resourceTypeIds: ['<string>'],
resourceTypeTraitIds: ['<string>']
})
};
fetch('https://{tenantDomain}.conductor.one/api/v1/search/app_resources', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{tenantDomain}.conductor.one/api/v1/search/app_resources",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'appId' => '<string>',
'appUserIds' => [
'<string>'
],
'excludeDeletedResourceBindings' => true,
'excludeResourceIds' => [
'<string>'
],
'excludeResourceTypeTraitIds' => [
'<string>'
],
'ownerUserIds' => [
'<string>'
],
'pageSize' => 123,
'pageToken' => '<string>',
'query' => '<string>',
'refs' => [
[
'appId' => '<string>',
'appResourceTypeId' => '<string>',
'id' => '<string>'
]
],
'resourceIds' => [
'<string>'
],
'resourceTypeIds' => [
'<string>'
],
'resourceTypeTraitIds' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}HttpResponse<String> response = Unirest.post("https://{tenantDomain}.conductor.one/api/v1/search/app_resources")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"appId\": \"<string>\",\n \"appUserIds\": [\n \"<string>\"\n ],\n \"excludeDeletedResourceBindings\": true,\n \"excludeResourceIds\": [\n \"<string>\"\n ],\n \"excludeResourceTypeTraitIds\": [\n \"<string>\"\n ],\n \"ownerUserIds\": [\n \"<string>\"\n ],\n \"pageSize\": 123,\n \"pageToken\": \"<string>\",\n \"query\": \"<string>\",\n \"refs\": [\n {\n \"appId\": \"<string>\",\n \"appResourceTypeId\": \"<string>\",\n \"id\": \"<string>\"\n }\n ],\n \"resourceIds\": [\n \"<string>\"\n ],\n \"resourceTypeIds\": [\n \"<string>\"\n ],\n \"resourceTypeTraitIds\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{tenantDomain}.conductor.one/api/v1/search/app_resources")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"appId\": \"<string>\",\n \"appUserIds\": [\n \"<string>\"\n ],\n \"excludeDeletedResourceBindings\": true,\n \"excludeResourceIds\": [\n \"<string>\"\n ],\n \"excludeResourceTypeTraitIds\": [\n \"<string>\"\n ],\n \"ownerUserIds\": [\n \"<string>\"\n ],\n \"pageSize\": 123,\n \"pageToken\": \"<string>\",\n \"query\": \"<string>\",\n \"refs\": [\n {\n \"appId\": \"<string>\",\n \"appResourceTypeId\": \"<string>\",\n \"id\": \"<string>\"\n }\n ],\n \"resourceIds\": [\n \"<string>\"\n ],\n \"resourceTypeIds\": [\n \"<string>\"\n ],\n \"resourceTypeTraitIds\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"expanded": [
{
"@type": "<string>"
}
],
"list": [
{
"appPath": "<string>",
"appResource": {
"accessConfigId": "<string>",
"annotations": {},
"appId": "<string>",
"appResourceTypeId": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"customDescription": "<string>",
"deletedAt": "2023-11-07T05:31:56Z",
"description": "<string>",
"displayName": "<string>",
"externalId": "<string>",
"grantCount": "<string>",
"id": "<string>",
"matchBatonId": "<string>",
"parentAppResourceId": "<string>",
"parentAppResourceTypeId": "<string>",
"profile": {},
"secretTrait": {
"identityAppUserId": "<string>",
"lastUsedAt": "2023-11-07T05:31:56Z",
"secretCreatedAt": "2023-11-07T05:31:56Z",
"secretExpiresAt": "2023-11-07T05:31:56Z"
},
"updatedAt": "2023-11-07T05:31:56Z"
},
"objectPermissions": {
"delete": true,
"edit": true,
"extra": {},
"read": true
},
"parentResourcePath": "<string>",
"parentResourceTypePath": "<string>",
"resourceTypePath": "<string>"
}
],
"nextPageToken": "<string>"
}Search App Resources
Search app resources based on filters specified in the request body.
package main
import(
"context"
"github.com/conductorone/conductorone-sdk-go/pkg/models/shared"
conductoronesdkgo "github.com/conductorone/conductorone-sdk-go"
"log"
)
func main() {
ctx := context.Background()
s := conductoronesdkgo.New(
conductoronesdkgo.WithSecurity(shared.Security{
BearerAuth: "<YOUR_BEARER_TOKEN_HERE>",
Oauth: "<YOUR_OAUTH_HERE>",
}),
)
res, err := s.AppResourceSearch.SearchAppResources(ctx, nil)
if err != nil {
log.Fatal(err)
}
if res.SearchAppResourcesResponse != nil {
for {
// handle items
res, err = res.Next()
if err != nil {
// handle error
}
if res == nil {
break
}
}
}
}import { ConductoroneSDKTypescript } from "conductorone-sdk-typescript";
const conductoroneSDKTypescript = new ConductoroneSDKTypescript({
security: {
bearerAuth: "<YOUR_BEARER_TOKEN_HERE>",
oauth: "<YOUR_OAUTH_HERE>",
},
});
async function run() {
const result = await conductoroneSDKTypescript.appResourceSearch.searchAppResources();
for await (const page of result) {
console.log(page);
}
}
run();curl --request POST \
--url https://{tenantDomain}.conductor.one/api/v1/search/app_resources \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"appId": "<string>",
"appUserIds": [
"<string>"
],
"excludeDeletedResourceBindings": true,
"excludeResourceIds": [
"<string>"
],
"excludeResourceTypeTraitIds": [
"<string>"
],
"ownerUserIds": [
"<string>"
],
"pageSize": 123,
"pageToken": "<string>",
"query": "<string>",
"refs": [
{
"appId": "<string>",
"appResourceTypeId": "<string>",
"id": "<string>"
}
],
"resourceIds": [
"<string>"
],
"resourceTypeIds": [
"<string>"
],
"resourceTypeTraitIds": [
"<string>"
]
}
'import requests
url = "https://{tenantDomain}.conductor.one/api/v1/search/app_resources"
payload = {
"appId": "<string>",
"appUserIds": ["<string>"],
"excludeDeletedResourceBindings": True,
"excludeResourceIds": ["<string>"],
"excludeResourceTypeTraitIds": ["<string>"],
"ownerUserIds": ["<string>"],
"pageSize": 123,
"pageToken": "<string>",
"query": "<string>",
"refs": [
{
"appId": "<string>",
"appResourceTypeId": "<string>",
"id": "<string>"
}
],
"resourceIds": ["<string>"],
"resourceTypeIds": ["<string>"],
"resourceTypeTraitIds": ["<string>"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
appId: '<string>',
appUserIds: ['<string>'],
excludeDeletedResourceBindings: true,
excludeResourceIds: ['<string>'],
excludeResourceTypeTraitIds: ['<string>'],
ownerUserIds: ['<string>'],
pageSize: 123,
pageToken: '<string>',
query: '<string>',
refs: [{appId: '<string>', appResourceTypeId: '<string>', id: '<string>'}],
resourceIds: ['<string>'],
resourceTypeIds: ['<string>'],
resourceTypeTraitIds: ['<string>']
})
};
fetch('https://{tenantDomain}.conductor.one/api/v1/search/app_resources', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{tenantDomain}.conductor.one/api/v1/search/app_resources",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'appId' => '<string>',
'appUserIds' => [
'<string>'
],
'excludeDeletedResourceBindings' => true,
'excludeResourceIds' => [
'<string>'
],
'excludeResourceTypeTraitIds' => [
'<string>'
],
'ownerUserIds' => [
'<string>'
],
'pageSize' => 123,
'pageToken' => '<string>',
'query' => '<string>',
'refs' => [
[
'appId' => '<string>',
'appResourceTypeId' => '<string>',
'id' => '<string>'
]
],
'resourceIds' => [
'<string>'
],
'resourceTypeIds' => [
'<string>'
],
'resourceTypeTraitIds' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}HttpResponse<String> response = Unirest.post("https://{tenantDomain}.conductor.one/api/v1/search/app_resources")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"appId\": \"<string>\",\n \"appUserIds\": [\n \"<string>\"\n ],\n \"excludeDeletedResourceBindings\": true,\n \"excludeResourceIds\": [\n \"<string>\"\n ],\n \"excludeResourceTypeTraitIds\": [\n \"<string>\"\n ],\n \"ownerUserIds\": [\n \"<string>\"\n ],\n \"pageSize\": 123,\n \"pageToken\": \"<string>\",\n \"query\": \"<string>\",\n \"refs\": [\n {\n \"appId\": \"<string>\",\n \"appResourceTypeId\": \"<string>\",\n \"id\": \"<string>\"\n }\n ],\n \"resourceIds\": [\n \"<string>\"\n ],\n \"resourceTypeIds\": [\n \"<string>\"\n ],\n \"resourceTypeTraitIds\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{tenantDomain}.conductor.one/api/v1/search/app_resources")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"appId\": \"<string>\",\n \"appUserIds\": [\n \"<string>\"\n ],\n \"excludeDeletedResourceBindings\": true,\n \"excludeResourceIds\": [\n \"<string>\"\n ],\n \"excludeResourceTypeTraitIds\": [\n \"<string>\"\n ],\n \"ownerUserIds\": [\n \"<string>\"\n ],\n \"pageSize\": 123,\n \"pageToken\": \"<string>\",\n \"query\": \"<string>\",\n \"refs\": [\n {\n \"appId\": \"<string>\",\n \"appResourceTypeId\": \"<string>\",\n \"id\": \"<string>\"\n }\n ],\n \"resourceIds\": [\n \"<string>\"\n ],\n \"resourceTypeIds\": [\n \"<string>\"\n ],\n \"resourceTypeTraitIds\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"expanded": [
{
"@type": "<string>"
}
],
"list": [
{
"appPath": "<string>",
"appResource": {
"accessConfigId": "<string>",
"annotations": {},
"appId": "<string>",
"appResourceTypeId": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"customDescription": "<string>",
"deletedAt": "2023-11-07T05:31:56Z",
"description": "<string>",
"displayName": "<string>",
"externalId": "<string>",
"grantCount": "<string>",
"id": "<string>",
"matchBatonId": "<string>",
"parentAppResourceId": "<string>",
"parentAppResourceTypeId": "<string>",
"profile": {},
"secretTrait": {
"identityAppUserId": "<string>",
"lastUsedAt": "2023-11-07T05:31:56Z",
"secretCreatedAt": "2023-11-07T05:31:56Z",
"secretExpiresAt": "2023-11-07T05:31:56Z"
},
"updatedAt": "2023-11-07T05:31:56Z"
},
"objectPermissions": {
"delete": true,
"edit": true,
"extra": {},
"read": true
},
"parentResourcePath": "<string>",
"parentResourceTypePath": "<string>",
"resourceTypePath": "<string>"
}
],
"nextPageToken": "<string>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
This API uses OAuth2 with the Client Credential flow. Client Credentials must be sent in the BODY, not the headers. For an example of how to implement this, refer to the c1TokenSource.Token() function.
Body
Search app resources based on filters specified in the request body.
The app ID to restrict the search to.
A list of app user IDs to restrict the search by.
If true, exclude resources whose bindings have been deleted.
A list of resource IDs to exclude from the search results.
A list of resource type trait IDs to exclude from the search.
A list of C1 user IDs to filter resources by ownership.
The maximum number of results to return per page.
The token for fetching the next page of results.
Fuzzy search the display name of resources.
A list of specific app resource references to restrict the search to.
Show child attributes
Show child attributes
A list of resource IDs to restrict the search to.
A list of resource type IDs to restrict the search by.
A list of resource type trait IDs to restrict the search by.
Response
The SearchAppResourcesResponse message contains a list of results and a nextPageToken if applicable.
The SearchAppResourcesResponse message contains a list of results and a nextPageToken if applicable.
Was this page helpful?