Chilkat Online Tools

Objective-C / Cognite API v1 / Update files

Back to Collection Items

#import <CkoHttp.h>
#import <CkoJsonObject.h>
#import <CkoHttpResponse.h>

// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

CkoHttp *http = [[CkoHttp alloc] init];
BOOL success;

// Use this online tool to generate code from sample JSON: Generate Code to Create JSON

// The following JSON is sent in the request body.

// {
//   "items": [
//     {
//       "id": 4053335824259500,
//       "update": {
//         "externalId": {
//           "set": "esse"
//         },
//         "directory": {
//           "set": "occaecat in sit deserunt"
//         },
//         "source": {
//           "set": "adipisicing in"
//         },
//         "mimeType": {
//           "set": "exe"
//         },
//         "metadata": {
//           "set": {}
//         },
//         "assetIds": {
//           "set": [
//           ]
//         },
//         "sourceCreatedTime": {
//           "setNull": true
//         },
//         "sourceModifiedTime": {
//           "setNull": true
//         },
//         "dataSetId": {
//           "setNull": true
//         },
//         "securityCategories": {
//           "set": [
//           ]
//         },
//         "labels": {
//           "add": [
//             {
//               "externalId": "sit irure reprehenderit magna labore"
//             },
//             {
//               "externalId": "dolor in"
//             }
//           ],
//           "remove": [
//             {
//               "externalId": "ut adipisicing esse laboris"
//             },
//             {
//               "externalId": "sint enim sed dolor in"
//             }
//           ]
//         },
//         "geoLocation": {
//           "set": {
//             "type": "Feature",
//             "geometry": {
//               "type": "MultiPoint",
//               "coordinates": [
//               ]
//             },
//             "properties": {}
//           }
//         }
//       }
//     },
//     {
//       "id": 7148873468997944,
//       "update": {
//         "externalId": {
//           "set": "magna consectetur irure labore"
//         },
//         "directory": {
//           "setNull": true
//         },
//         "source": {
//           "setNull": false
//         },
//         "mimeType": {
//           "set": "pariatur exercitation laborum et do"
//         },
//         "metadata": {
//           "set": {}
//         },
//         "assetIds": {
//           "set": [
//           ]
//         },
//         "sourceCreatedTime": {
//           "set": -126295
//         },
//         "sourceModifiedTime": {
//           "setNull": true
//         },
//         "dataSetId": {
//           "setNull": false
//         },
//         "securityCategories": {
//           "set": [
//           ]
//         },
//         "labels": {
//           "add": [
//             {
//               "externalId": "nostrud ex consequat"
//             },
//             {
//               "externalId": "ullamco eiusmod elit ea"
//             }
//           ],
//           "remove": [
//             {
//               "externalId": "deserunt dolor anim"
//             },
//             {
//               "externalId": "in"
//             }
//           ]
//         },
//         "geoLocation": {
//           "set": {
//             "type": "Feature",
//             "geometry": {
//               "type": "Point",
//               "coordinates": [
//                 67913028.4430609,
//                 -56262049.39717141
//               ]
//             },
//             "properties": {}
//           }
//         }
//       }
//     }
//   ]
// }

CkoJsonObject *json = [[CkoJsonObject alloc] init];
[json UpdateInt: @"items[0].id" value: [NSNumber numberWithInt: 123]];
[json UpdateString: @"items[0].update.externalId.set" value: @"esse"];
[json UpdateString: @"items[0].update.directory.set" value: @"occaecat in sit deserunt"];
[json UpdateString: @"items[0].update.source.set" value: @"adipisicing in"];
[json UpdateString: @"items[0].update.mimeType.set" value: @"exe"];
[json UpdateNewObject: @"items[0].update.metadata.set"];
[json UpdateNewArray: @"items[0].update.assetIds.set"];
[json UpdateBool: @"items[0].update.sourceCreatedTime.setNull" value: YES];
[json UpdateBool: @"items[0].update.sourceModifiedTime.setNull" value: YES];
[json UpdateBool: @"items[0].update.dataSetId.setNull" value: YES];
[json UpdateNewArray: @"items[0].update.securityCategories.set"];
[json UpdateString: @"items[0].update.labels.add[0].externalId" value: @"sit irure reprehenderit magna labore"];
[json UpdateString: @"items[0].update.labels.add[1].externalId" value: @"dolor in"];
[json UpdateString: @"items[0].update.labels.remove[0].externalId" value: @"ut adipisicing esse laboris"];
[json UpdateString: @"items[0].update.labels.remove[1].externalId" value: @"sint enim sed dolor in"];
[json UpdateString: @"items[0].update.geoLocation.set.type" value: @"Feature"];
[json UpdateString: @"items[0].update.geoLocation.set.geometry.type" value: @"MultiPoint"];
[json UpdateNewArray: @"items[0].update.geoLocation.set.geometry.coordinates"];
[json UpdateNewObject: @"items[0].update.geoLocation.set.properties"];
[json UpdateInt: @"items[1].id" value: [NSNumber numberWithInt: 123]];
[json UpdateString: @"items[1].update.externalId.set" value: @"magna consectetur irure labore"];
[json UpdateBool: @"items[1].update.directory.setNull" value: YES];
[json UpdateBool: @"items[1].update.source.setNull" value: NO];
[json UpdateString: @"items[1].update.mimeType.set" value: @"pariatur exercitation laborum et do"];
[json UpdateNewObject: @"items[1].update.metadata.set"];
[json UpdateNewArray: @"items[1].update.assetIds.set"];
[json UpdateInt: @"items[1].update.sourceCreatedTime.set" value: [NSNumber numberWithInt: -126295]];
[json UpdateBool: @"items[1].update.sourceModifiedTime.setNull" value: YES];
[json UpdateBool: @"items[1].update.dataSetId.setNull" value: NO];
[json UpdateNewArray: @"items[1].update.securityCategories.set"];
[json UpdateString: @"items[1].update.labels.add[0].externalId" value: @"nostrud ex consequat"];
[json UpdateString: @"items[1].update.labels.add[1].externalId" value: @"ullamco eiusmod elit ea"];
[json UpdateString: @"items[1].update.labels.remove[0].externalId" value: @"deserunt dolor anim"];
[json UpdateString: @"items[1].update.labels.remove[1].externalId" value: @"in"];
[json UpdateString: @"items[1].update.geoLocation.set.type" value: @"Feature"];
[json UpdateString: @"items[1].update.geoLocation.set.geometry.type" value: @"Point"];
[json UpdateNumber: @"items[1].update.geoLocation.set.geometry.coordinates[0]" numericStr: @"67913028.4430609"];
[json UpdateNumber: @"items[1].update.geoLocation.set.geometry.coordinates[1]" numericStr: @"-56262049.39717141"];
[json UpdateNewObject: @"items[1].update.geoLocation.set.properties"];

[http SetRequestHeader: @"content-type" value: @"application/json"];
[http SetRequestHeader: @"api-key" value: @"{{api-key}}"];

CkoHttpResponse *resp = [http PostJson3: @"https://domain.com/api/v1/projects/{{project}}/files/update" contentType: @"application/json" json: json];
if (http.LastMethodSuccess == NO) {
    NSLog(@"%@",http.LastErrorText);
    return;
}

NSLog(@"%d",[resp.StatusCode intValue]);
NSLog(@"%@",resp.BodyStr);

Curl Command

curl -X POST
	-H "api-key: {{api-key}}"
	-H "content-type: application/json"
	-d '{
    "items": [
        {
            "id": 4053335824259500,
            "update": {
                "externalId": {
                    "set": "esse"
                },
                "directory": {
                    "set": "occaecat in sit deserunt"
                },
                "source": {
                    "set": "adipisicing in"
                },
                "mimeType": {
                    "set": "exe"
                },
                "metadata": {
                    "set": {}
                },
                "assetIds": {
                    "set": []
                },
                "sourceCreatedTime": {
                    "setNull": true
                },
                "sourceModifiedTime": {
                    "setNull": true
                },
                "dataSetId": {
                    "setNull": true
                },
                "securityCategories": {
                    "set": []
                },
                "labels": {
                    "add": [
                        {
                            "externalId": "sit irure reprehenderit magna labore"
                        },
                        {
                            "externalId": "dolor in"
                        }
                    ],
                    "remove": [
                        {
                            "externalId": "ut adipisicing esse laboris"
                        },
                        {
                            "externalId": "sint enim sed dolor in"
                        }
                    ]
                },
                "geoLocation": {
                    "set": {
                        "type": "Feature",
                        "geometry": {
                            "type": "MultiPoint",
                            "coordinates": []
                        },
                        "properties": {}
                    }
                }
            }
        },
        {
            "id": 7148873468997944,
            "update": {
                "externalId": {
                    "set": "magna consectetur irure labore"
                },
                "directory": {
                    "setNull": true
                },
                "source": {
                    "setNull": false
                },
                "mimeType": {
                    "set": "pariatur exercitation laborum et do"
                },
                "metadata": {
                    "set": {}
                },
                "assetIds": {
                    "set": []
                },
                "sourceCreatedTime": {
                    "set": -126295
                },
                "sourceModifiedTime": {
                    "setNull": true
                },
                "dataSetId": {
                    "setNull": false
                },
                "securityCategories": {
                    "set": []
                },
                "labels": {
                    "add": [
                        {
                            "externalId": "nostrud ex consequat"
                        },
                        {
                            "externalId": "ullamco eiusmod elit ea"
                        }
                    ],
                    "remove": [
                        {
                            "externalId": "deserunt dolor anim"
                        },
                        {
                            "externalId": "in"
                        }
                    ]
                },
                "geoLocation": {
                    "set": {
                        "type": "Feature",
                        "geometry": {
                            "type": "Point",
                            "coordinates": [
                                67913028.4430609,
                                -56262049.39717141
                            ]
                        },
                        "properties": {}
                    }
                }
            }
        }
    ]
}'
https://domain.com/api/v1/projects/{{project}}/files/update

Postman Collection Item JSON

{
  "id": "updateFiles",
  "name": "Update files",
  "request": {
    "url": {
      "host": "{{baseUrl}}",
      "path": [
        "api",
        "v1",
        "projects",
        "{{project}}",
        "files",
        "update"
      ],
      "query": [
      ],
      "variable": [
      ]
    },
    "method": "POST",
    "header": [
      {
        "key": "api-key",
        "value": "{{api-key}}",
        "description": "An admin can create API keys in the Cognite console."
      },
      {
        "key": "content-type",
        "value": "application/json"
      }
    ],
    "description": "Updates the information for the files specified in the request body.\n\nIf you want to update the file content, uploaded using the uploadUrl, please\nuse the initFileUpload request with the query parameter 'overwrite=true'.\nAlternatively, delete and recreate the file.\n\nFor primitive fields (String, Long, Int), use 'set': 'value' to update\nvalue; use 'setNull': true to set that field to null.\n\nFor the Json Array field (e.g. assetIds and securityCategories): Use either only 'set', or a combination of 'add' and/or 'remove'. \n\n__AssetIds update examples__:\n\nExample request body to overwrite assetIds with a new set, asset ID 1 and 2.\n\n```\n{\n  \"items\": [\n    {\n      \"id\": 1,\n      \"update\": {\n        \"assetIds\" : {\n          \"set\" : [ 1, 2 ]\n        }\n      }\n    }\n  ]\n}\n```\n\nExample request body to add one asset Id, and remove another asset ID.\n\n```\n{\n  \"items\": [\n    {\n      \"id\": 1,\n      \"update\": {\n        \"assetIds\" : {\n          \"add\" : [ 3 ],\n          \"remove\": [ 2 ]\n        }\n      }\n    }\n  ]\n}\n```\n\n__Metadata update examples__:\n\nExample request body to overwrite metadata with a new set.\n```\n{\n  \"items\": [\n    {\n      \"id\": 1,\n      \"update\": {\n        \"metadata\": {\n          \"set\": {\n            \"key1\": \"value1\",\n            \"key2\": \"value2\"\n          }\n        }\n      }\n    }\n  ]\n}\n```\n\nExample request body to add two key-value pairs and remove two other key-value pairs by key for\nthe metadata field.\n```\n{\n  \"items\": [\n    {\n      \"id\": 1,\n      \"update\": {\n        \"metadata\": {\n          \"add\": {\n            \"key3\": \"value3\",\n            \"key4\": \"value4\"\n          },\n          \"remove\": [\n            \"key1\",\n            \"key2\"\n          ]\n        }\n      }\n    }\n  ]\n}\n```",
    "body": {
      "mode": "raw",
      "raw": "{\n    \"items\": [\n        {\n            \"id\": 4053335824259500,\n            \"update\": {\n                \"externalId\": {\n                    \"set\": \"esse\"\n                },\n                \"directory\": {\n                    \"set\": \"occaecat in sit deserunt\"\n                },\n                \"source\": {\n                    \"set\": \"adipisicing in\"\n                },\n                \"mimeType\": {\n                    \"set\": \"exe\"\n                },\n                \"metadata\": {\n                    \"set\": {}\n                },\n                \"assetIds\": {\n                    \"set\": []\n                },\n                \"sourceCreatedTime\": {\n                    \"setNull\": true\n                },\n                \"sourceModifiedTime\": {\n                    \"setNull\": true\n                },\n                \"dataSetId\": {\n                    \"setNull\": true\n                },\n                \"securityCategories\": {\n                    \"set\": []\n                },\n                \"labels\": {\n                    \"add\": [\n                        {\n                            \"externalId\": \"sit irure reprehenderit magna labore\"\n                        },\n                        {\n                            \"externalId\": \"dolor in\"\n                        }\n                    ],\n                    \"remove\": [\n                        {\n                            \"externalId\": \"ut adipisicing esse laboris\"\n                        },\n                        {\n                            \"externalId\": \"sint enim sed dolor in\"\n                        }\n                    ]\n                },\n                \"geoLocation\": {\n                    \"set\": {\n                        \"type\": \"Feature\",\n                        \"geometry\": {\n                            \"type\": \"MultiPoint\",\n                            \"coordinates\": []\n                        },\n                        \"properties\": {}\n                    }\n                }\n            }\n        },\n        {\n            \"id\": 7148873468997944,\n            \"update\": {\n                \"externalId\": {\n                    \"set\": \"magna consectetur irure labore\"\n                },\n                \"directory\": {\n                    \"setNull\": true\n                },\n                \"source\": {\n                    \"setNull\": false\n                },\n                \"mimeType\": {\n                    \"set\": \"pariatur exercitation laborum et do\"\n                },\n                \"metadata\": {\n                    \"set\": {}\n                },\n                \"assetIds\": {\n                    \"set\": []\n                },\n                \"sourceCreatedTime\": {\n                    \"set\": -126295\n                },\n                \"sourceModifiedTime\": {\n                    \"setNull\": true\n                },\n                \"dataSetId\": {\n                    \"setNull\": false\n                },\n                \"securityCategories\": {\n                    \"set\": []\n                },\n                \"labels\": {\n                    \"add\": [\n                        {\n                            \"externalId\": \"nostrud ex consequat\"\n                        },\n                        {\n                            \"externalId\": \"ullamco eiusmod elit ea\"\n                        }\n                    ],\n                    \"remove\": [\n                        {\n                            \"externalId\": \"deserunt dolor anim\"\n                        },\n                        {\n                            \"externalId\": \"in\"\n                        }\n                    ]\n                },\n                \"geoLocation\": {\n                    \"set\": {\n                        \"type\": \"Feature\",\n                        \"geometry\": {\n                            \"type\": \"Point\",\n                            \"coordinates\": [\n                                67913028.4430609,\n                                -56262049.39717141\n                            ]\n                        },\n                        \"properties\": {}\n                    }\n                }\n            }\n        }\n    ]\n}"
    }
  }
}