openapi: 3.0.1 info: title: Provision API version: '1.0' servers: - url: https://api.veracity.com/veracity/datafabric/provisioning paths: /api/1/container: post: tags: - v1.0 Container summary: Create blob storage container description: "Provision a blob storage container, requires a short name and storage container\r\nTo return correct values for \"StorageLocation\" use GET api/regions and use the \"azureName\"" operationId: v1-0Container_ProvisionAzureBlobContainer requestBody: content: application/json: schema: $ref: '#/components/schemas/ContainerInput' example: storageLocation: string containerShortName: string mayContainPersonalData: true title: string description: string icon: id: string backgroundColor: string tags: - title: string type: userTag text/json: schema: $ref: '#/components/schemas/ContainerInput' example: storageLocation: string containerShortName: string mayContainPersonalData: true title: string description: string icon: id: string backgroundColor: string tags: - title: string type: userTag application/xml: schema: $ref: '#/components/schemas/ContainerInput' example: storageLocation: string containerShortName: string mayContainPersonalData: true title: string description: string icon: id: string backgroundColor: string tags: - title: string type: userTag text/xml: schema: $ref: '#/components/schemas/ContainerInput' example: storageLocation: string containerShortName: string mayContainPersonalData: true title: string description: string icon: id: string backgroundColor: string tags: - title: string type: userTag application/x-www-form-urlencoded: { } responses: '202': description: Request accepted for processing. Note that provisioning can take up to 15 minutes. Please check DataApi to verify container was created. Returns new resource id content: application/json: schema: $ref: '#/components/schemas/Api1ContainerPost202TextXmlResponse' example: 00000000-0000-0000-0000-000000000000 text/json: schema: $ref: '#/components/schemas/Api1ContainerPost202TextXmlResponse' example: 00000000-0000-0000-0000-000000000000 application/xml: schema: $ref: '#/components/schemas/Api1ContainerPost202TextXmlResponse' example: 00000000-0000-0000-0000-000000000000 text/xml: schema: $ref: '#/components/schemas/Api1ContainerPost202TextXmlResponse' example: 00000000-0000-0000-0000-000000000000 '400': description: BadRequest content: application/json: { } text/json: { } application/xml: { } text/xml: { } '409': description: '' content: application/json: { } text/json: { } application/xml: { } text/xml: { } '502': description: Request to Identity API was unsuccessful. content: application/json: { } text/json: { } application/xml: { } text/xml: { } '/api/1/container/{id}/metadata': patch: tags: - v1.0 Container summary: Update Metadata description: " JSON Patch (https://tools.ietf.org/html/rfc6902) defines a JSON document structure for expressing a sequence of operations to apply to a JavaScript Object Notation (JSON) document; it is suitable for use with the HTTP PATCH method. The \"application/json-patch+json\" media type is used to identify such patch documents.\r\n\r\n Example in this case:\r\n{\r\n \"value\": \"My new container name\",\r\n \"path\": \"Title\",\r\n \"op\": \"replace\"\r\n },\r\n This operation would replace the title\r\n\r\n \r\n A other example for update of tags (NOTE: remember to update the list of tags with all the tags)\r\n\t{\r\n \"value\": [\r\n {\r\n \"Title\" :\"First tag\"\r\n },\r\n {\r\n \"Title\" : \"Second tag\"\r\n }\r\n \r\n ],\r\n \"path\": \"Tags\",\r\n \"op\": \"replace\"\r\n }\r\n This operation would replace the tags" operationId: v1-0Container_UpdateMetadata parameters: - name: id in: path description: Format - uuid. required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/JsonPatchDocument_ResourceMetadata_' example: operations: - value: { } path: string op: string from: string text/json: schema: $ref: '#/components/schemas/JsonPatchDocument_ResourceMetadata_' example: operations: - value: { } path: string op: string from: string application/xml: schema: $ref: '#/components/schemas/JsonPatchDocument_ResourceMetadata_' example: operations: - value: { } path: string op: string from: string text/xml: schema: $ref: '#/components/schemas/JsonPatchDocument_ResourceMetadata_' example: operations: - value: { } path: string op: string from: string application/x-www-form-urlencoded: { } responses: '200': description: Metadata was updated content: application/json: schema: $ref: '#/components/schemas/Resource' example: id: 00000000-0000-0000-0000-000000000000 reference: string url: string lastModifiedUTC: string creationDateTimeUTC: string ownerId: 00000000-0000-0000-0000-000000000000 accessLevel: owner region: string keyStatus: noKeys mayContainPersonalData: unknown metadata: title: string description: string icon: id: string backgroundColor: string tags: - id: 00000000-0000-0000-0000-000000000000 title: string type: userTag text/json: schema: $ref: '#/components/schemas/Resource' example: id: 00000000-0000-0000-0000-000000000000 reference: string url: string lastModifiedUTC: string creationDateTimeUTC: string ownerId: 00000000-0000-0000-0000-000000000000 accessLevel: owner region: string keyStatus: noKeys mayContainPersonalData: unknown metadata: title: string description: string icon: id: string backgroundColor: string tags: - id: 00000000-0000-0000-0000-000000000000 title: string type: userTag application/xml: schema: $ref: '#/components/schemas/Resource' example: 00000000-0000-0000-0000-000000000000 string string string string 00000000-0000-0000-0000-000000000000 owner string noKeys unknown string string string string 00000000-0000-0000-0000-000000000000 string userTag text/xml: schema: $ref: '#/components/schemas/Resource' example: 00000000-0000-0000-0000-000000000000 string string string string 00000000-0000-0000-0000-000000000000 owner string noKeys unknown string string string string 00000000-0000-0000-0000-000000000000 string userTag '403': description: Not resource owner content: application/json: { } text/json: { } application/xml: { } text/xml: { } '404': description: Resource was not found content: application/json: { } text/json: { } application/xml: { } text/xml: { } '500': description: Container metadata was not updated content: application/json: { } text/json: { } application/xml: { } text/xml: { } '/api/1/container/{id}': delete: tags: - v1.0 Container summary: Delete blob storage container description: "Deletes the blob storage container
\r\nYou need to be the owner of the resource to be able to delete the container.
\r\nWhat happens when the container is deleted: All active keys will stop working.
\r\nAll content on the container will be deleted and this action is not reversible
" operationId: v1-0Container_DeleteAzureBlobContainer parameters: - name: id in: path description: Format - uuid. Resource id (GUID) required: true schema: type: string responses: '202': description: 'Request accepted for processing: Azure Storage container will be deleted' content: application/json: { } text/json: { } application/xml: { } text/xml: { } '403': description: Not resource owner content: application/json: { } text/json: { } application/xml: { } text/xml: { } '404': description: Resource was not found content: application/json: { } text/json: { } application/xml: { } text/xml: { } '500': description: Container not deleted content: application/json: { } text/json: { } application/xml: { } text/xml: { } /api/1/regions: get: tags: - v1.0 Regions summary: List Active Regions description: Returns list of active regions supported by Veracity operationId: v1-0Regions_Get responses: '200': description: A list of active regions supported by veracity content: application/json: schema: $ref: '#/components/schemas/StorageRegionArray' example: - shortName: string fullName: string location: string azureName: string displayName: string groupName: string text/json: schema: $ref: '#/components/schemas/StorageRegionArray' example: - shortName: string fullName: string location: string azureName: string displayName: string groupName: string application/xml: schema: $ref: '#/components/schemas/StorageRegionArray' example: string string string string string string text/xml: schema: $ref: '#/components/schemas/StorageRegionArray' example: string string string string string string /api/1/container/copycontainer: post: tags: - v1.0 Container summary: Copy container description: "Copies a given Container with its content with access sharing ID. \r\nFor successful requests, Returns 202 Accepted without waiting for container create or content copy is finished." operationId: v1-0Container_CopyContainer parameters: - name: accessId in: query description: Format - uuid. Access Id required: true schema: type: string requestBody: description: Values required to copy a container. content: application/json: schema: $ref: '#/components/schemas/CopyContainerInputVM' example: sourceResourceId: 00000000-0000-0000-0000-000000000000 groupId: 00000000-0000-0000-0000-000000000000 copyResourceShortName: string copyResourceMayContainPersonalData: true copyResourceTitle: string copyResourceDescription: string copyResourceIcon: id: string backgroundColor: string copyResourceTags: - title: string type: userTag text/json: schema: $ref: '#/components/schemas/CopyContainerInputVM' example: sourceResourceId: 00000000-0000-0000-0000-000000000000 groupId: 00000000-0000-0000-0000-000000000000 copyResourceShortName: string copyResourceMayContainPersonalData: true copyResourceTitle: string copyResourceDescription: string copyResourceIcon: id: string backgroundColor: string copyResourceTags: - title: string type: userTag application/xml: schema: $ref: '#/components/schemas/CopyContainerInputVM' example: sourceResourceId: 00000000-0000-0000-0000-000000000000 groupId: 00000000-0000-0000-0000-000000000000 copyResourceShortName: string copyResourceMayContainPersonalData: true copyResourceTitle: string copyResourceDescription: string copyResourceIcon: id: string backgroundColor: string copyResourceTags: - title: string type: userTag text/xml: schema: $ref: '#/components/schemas/CopyContainerInputVM' example: sourceResourceId: 00000000-0000-0000-0000-000000000000 groupId: 00000000-0000-0000-0000-000000000000 copyResourceShortName: string copyResourceMayContainPersonalData: true copyResourceTitle: string copyResourceDescription: string copyResourceIcon: id: string backgroundColor: string copyResourceTags: - title: string type: userTag application/x-www-form-urlencoded: { } responses: '202': description: Request accepted for processing. Note that provisioning can take up to 15 minutes. Content copy may take longer depends on the size of the container. Returns new resource id content: application/json: schema: $ref: '#/components/schemas/Api1ContainerCopycontainerPost202TextXmlResponse' example: 00000000-0000-0000-0000-000000000000 text/json: schema: $ref: '#/components/schemas/Api1ContainerCopycontainerPost202TextXmlResponse' example: 00000000-0000-0000-0000-000000000000 application/xml: schema: $ref: '#/components/schemas/Api1ContainerCopycontainerPost202TextXmlResponse' example: 00000000-0000-0000-0000-000000000000 text/xml: schema: $ref: '#/components/schemas/Api1ContainerCopycontainerPost202TextXmlResponse' example: 00000000-0000-0000-0000-000000000000 '400': description: BadRequest content: application/json: { } text/json: { } application/xml: { } text/xml: { } /api/1/container/SubscribeToBlobContainerEvents: post: tags: - v1.0 Container summary: Create subscription to changes in blob container description: "Provision a blob storage container subscription, requires container id, call back url and subscription name\r\nSubscription name must be unique through the entire application" operationId: v1-0Container_SubscribeToAzureBlobContainerEvents requestBody: description: Subscription request content: application/json: schema: $ref: '#/components/schemas/ContainerSystemSubscriptionRequestVm' example: subscriptionName: string containerId: 00000000-0000-0000-0000-000000000000 subscriptionTypes: - BlobUpserted callback: string text/json: schema: $ref: '#/components/schemas/ContainerSystemSubscriptionRequestVm' example: subscriptionName: string containerId: 00000000-0000-0000-0000-000000000000 subscriptionTypes: - BlobUpserted callback: string application/xml: schema: $ref: '#/components/schemas/ContainerSystemSubscriptionRequestVm' example: subscriptionName: string containerId: 00000000-0000-0000-0000-000000000000 subscriptionTypes: - BlobUpserted callback: string text/xml: schema: $ref: '#/components/schemas/ContainerSystemSubscriptionRequestVm' example: subscriptionName: string containerId: 00000000-0000-0000-0000-000000000000 subscriptionTypes: - BlobUpserted callback: string application/x-www-form-urlencoded: { } responses: '202': description: Request accepted for completion. content: application/json: { } text/json: { } application/xml: { } text/xml: { } '400': description: BadRequest content: application/json: { } text/json: { } application/xml: { } text/xml: { } '409': description: '' content: application/json: { } text/json: { } application/xml: { } text/xml: { } '502': description: Request to Identity API was unsuccessful. content: application/json: { } text/json: { } application/xml: { } text/xml: { } delete: tags: - v1.0 Container summary: Delete subscription to changes in blob container description: 'Deletes a blob storage container subscription, requires subscription name' operationId: v1-0Container_UnsubscribeFromCustomEvents requestBody: description: Subscription deleting request content: application/json: schema: $ref: '#/components/schemas/DeleteContainerSubscriptionRequestVm' example: subscriptionName: string containerId: 00000000-0000-0000-0000-000000000000 text/json: schema: $ref: '#/components/schemas/DeleteContainerSubscriptionRequestVm' example: subscriptionName: string containerId: 00000000-0000-0000-0000-000000000000 application/xml: schema: $ref: '#/components/schemas/DeleteContainerSubscriptionRequestVm' example: subscriptionName: string containerId: 00000000-0000-0000-0000-000000000000 text/xml: schema: $ref: '#/components/schemas/DeleteContainerSubscriptionRequestVm' example: subscriptionName: string containerId: 00000000-0000-0000-0000-000000000000 application/x-www-form-urlencoded: { } responses: '202': description: Request accepted for completion. content: application/json: { } text/json: { } application/xml: { } text/xml: { } '400': description: BadRequest content: application/json: { } text/json: { } application/xml: { } text/xml: { } '409': description: '' content: application/json: { } text/json: { } application/xml: { } text/xml: { } '502': description: Request to Identity API was unsuccessful. content: application/json: { } text/json: { } application/xml: { } text/xml: { } /api/1/container/SubscribeToCustomEvents: delete: tags: - v1.0 Container summary: Delete subscription to changes in blob container description: 'Deletes a blob storage container subscription, requires subscription name' operationId: v1-0Container_UnsubscribeFromAzureBlobContainerEvents requestBody: description: Subscription deleting request content: application/json: schema: $ref: '#/components/schemas/DeleteContainerSubscriptionRequestVm' example: subscriptionName: string containerId: 00000000-0000-0000-0000-000000000000 text/json: schema: $ref: '#/components/schemas/DeleteContainerSubscriptionRequestVm' example: subscriptionName: string containerId: 00000000-0000-0000-0000-000000000000 application/xml: schema: $ref: '#/components/schemas/DeleteContainerSubscriptionRequestVm' example: subscriptionName: string containerId: 00000000-0000-0000-0000-000000000000 text/xml: schema: $ref: '#/components/schemas/DeleteContainerSubscriptionRequestVm' example: subscriptionName: string containerId: 00000000-0000-0000-0000-000000000000 application/x-www-form-urlencoded: { } responses: '202': description: Request accepted for completion. content: application/json: { } text/json: { } application/xml: { } text/xml: { } '400': description: BadRequest content: application/json: { } text/json: { } application/xml: { } text/xml: { } '409': description: '' content: application/json: { } text/json: { } application/xml: { } text/xml: { } '502': description: Request to Identity API was unsuccessful. content: application/json: { } text/json: { } application/xml: { } text/xml: { } post: tags: - v1.0 Container summary: Create subscription for custom events description: "Provision custom event subscription for a specific topic, call back url and subscription name\r\nSubscription name must be unique through the entire application" operationId: v1-0Container_SubscribeToCustomEvents requestBody: description: Subscription request content: application/json: schema: $ref: '#/components/schemas/ContainerCustomSubscriptionRequestVm' example: subscriptionName: string callback: string topic: AccessShare regions: - string text/json: schema: $ref: '#/components/schemas/ContainerCustomSubscriptionRequestVm' example: subscriptionName: string callback: string topic: AccessShare regions: - string application/xml: schema: $ref: '#/components/schemas/ContainerCustomSubscriptionRequestVm' example: subscriptionName: string callback: string topic: AccessShare regions: - string text/xml: schema: $ref: '#/components/schemas/ContainerCustomSubscriptionRequestVm' example: subscriptionName: string callback: string topic: AccessShare regions: - string application/x-www-form-urlencoded: { } responses: '202': description: Request accepted for completion. content: application/json: { } text/json: { } application/xml: { } text/xml: { } '400': description: BadRequest content: application/json: { } text/json: { } application/xml: { } text/xml: { } '409': description: '' content: application/json: { } text/json: { } application/xml: { } text/xml: { } '502': description: Request to Identity API was unsuccessful. content: application/json: { } text/json: { } application/xml: { } text/xml: { } components: schemas: ContainerInput: required: - storageLocation - mayContainPersonalData type: object properties: storageLocation: type: string description: The Location which a storage container will be provisioned. Containers can only be created in supported regions containerShortName: type: string description: 5-32 character short name used to distinguish between storage containers. The name needs to be lowercase and alphanumeric. The full name of the container will comprise of this shortname plus a unique Guid genarated by the system. Note - storage containers can not be renamed mayContainPersonalData: type: boolean description: Indicates whether the user has accepted that the container will not contain personal data. Required to be true for a user to upload a container title: type: string description: A title of the container description: type: string description: A description of the container icon: $ref: '#/components/schemas/Icon' tags: type: array items: $ref: '#/components/schemas/MetadataTag' description: List of container tags description: An input for provisioning a container example: storageLocation: string containerShortName: string mayContainPersonalData: true title: string description: string icon: id: string backgroundColor: string tags: - title: string type: userTag Icon: type: object properties: id: type: string backgroundColor: type: string MetadataTag: type: object properties: title: type: string type: enum: - userTag - systemTag type: string ContainerCustomSubscriptionRequestVm: required: - subscriptionName - callback - topic - regions type: object properties: subscriptionName: type: string callback: type: string topic: enum: - AccessShare type: string regions: type: array items: type: string example: subscriptionName: string callback: string topic: AccessShare regions: - string DeleteContainerSubscriptionRequestVm: required: - subscriptionName - containerId type: object properties: subscriptionName: type: string containerId: type: string format: uuid example: 00000000-0000-0000-0000-000000000000 example: subscriptionName: string containerId: 00000000-0000-0000-0000-000000000000 ContainerSystemSubscriptionRequestVm: required: - subscriptionName - containerId - subscriptionTypes - callback type: object properties: subscriptionName: type: string containerId: type: string format: uuid example: 00000000-0000-0000-0000-000000000000 subscriptionTypes: type: array items: enum: - BlobUpserted - BlobDeleted type: string callback: type: string example: subscriptionName: string containerId: 00000000-0000-0000-0000-000000000000 subscriptionTypes: - BlobUpserted callback: string CopyContainerInputVM: required: - sourceResourceId - copyResourceMayContainPersonalData type: object properties: sourceResourceId: type: string description: GUID for source resource format: uuid example: 00000000-0000-0000-0000-000000000000 groupId: type: string description: ID of the group that copy container will be included once it is created. format: uuid example: 00000000-0000-0000-0000-000000000000 copyResourceShortName: type: string description: 5-32 character short name used to distinguish between storage containers. The name needs to be lowercase and alphanumeric. The full name of the container will comprise of this shortname plus a unique Guid genarated by the system. Note - storage containers can not be renamed copyResourceMayContainPersonalData: type: boolean description: Indicates whether the user has accepted that the container will not contain personal data. Required to be true for a user to upload a container copyResourceTitle: type: string description: A title of the container copyResourceDescription: type: string description: A description of the container copyResourceIcon: $ref: '#/components/schemas/Icon' copyResourceTags: type: array items: $ref: '#/components/schemas/MetadataTag' description: List of container tags description: An input for provisioning a copy container example: sourceResourceId: 00000000-0000-0000-0000-000000000000 groupId: 00000000-0000-0000-0000-000000000000 copyResourceShortName: string copyResourceMayContainPersonalData: true copyResourceTitle: string copyResourceDescription: string copyResourceIcon: id: string backgroundColor: string copyResourceTags: - title: string type: userTag JsonPatchDocument_ResourceMetadata_: type: object properties: operations: type: array items: $ref: '#/components/schemas/Operation_ResourceMetadata_' readOnly: true example: operations: - value: { } path: string op: string from: string x-apim-schema-name: 'JsonPatchDocument[ResourceMetadata]' Operation_ResourceMetadata_: type: object properties: value: type: object path: type: string op: type: string from: type: string x-apim-schema-name: 'Operation[ResourceMetadata]' Resource: type: object properties: id: type: string format: uuid example: 00000000-0000-0000-0000-000000000000 reference: type: string url: type: string lastModifiedUTC: type: string format: date-time creationDateTimeUTC: type: string format: date-time ownerId: type: string format: uuid example: 00000000-0000-0000-0000-000000000000 accessLevel: enum: - owner - dataSteward - consumer type: string region: type: string keyStatus: enum: - noKeys - expired - available - active type: string mayContainPersonalData: enum: - unknown - 'true' - 'false' type: string metadata: $ref: '#/components/schemas/ResourceMetadata' ResourceMetadata: type: object properties: title: type: string description: type: string icon: $ref: '#/components/schemas/Icon' tags: type: array items: $ref: '#/components/schemas/Tag' Tag: type: object properties: id: type: string format: uuid example: 00000000-0000-0000-0000-000000000000 title: type: string type: enum: - userTag - systemTag type: string StorageRegion: type: object properties: shortName: type: string fullName: type: string location: type: string azureName: type: string displayName: type: string groupName: type: string Api1ContainerPost202ApplicationJsonResponse: type: string format: uuid example: 00000000-0000-0000-0000-000000000000 Api1ContainerPost202TextJsonResponse: type: string format: uuid example: 00000000-0000-0000-0000-000000000000 Api1ContainerPost202ApplicationXmlResponse: type: string format: uuid example: 00000000-0000-0000-0000-000000000000 Api1ContainerPost202TextXmlResponse: type: string format: uuid example: 00000000-0000-0000-0000-000000000000 Api1ContainerCopycontainerPost202ApplicationJsonResponse: type: string format: uuid example: 00000000-0000-0000-0000-000000000000 Api1ContainerCopycontainerPost202TextJsonResponse: type: string format: uuid example: 00000000-0000-0000-0000-000000000000 Api1ContainerCopycontainerPost202ApplicationXmlResponse: type: string format: uuid example: 00000000-0000-0000-0000-000000000000 Api1ContainerCopycontainerPost202TextXmlResponse: type: string format: uuid example: 00000000-0000-0000-0000-000000000000 StorageRegionArray: type: array items: $ref: '#/components/schemas/StorageRegion' securitySchemes: apiKeyHeader: type: apiKey name: Ocp-Apim-Subscription-Key in: header apiKeyQuery: type: apiKey name: subscription-key in: query oauth2b2c-prod-oauth---v2-endpoint: type: oauth2 flows: authorizationCode: authorizationUrl: https://login.veracity.com/dnvglb2cprod.onmicrosoft.com/oauth2/v2.0/authorize?p=B2C_1A_SignInWithADFSIdp tokenUrl: https://login.veracity.com/dnvglb2cprod.onmicrosoft.com/oauth2/v2.0/token?p=B2C_1A_SignInWithADFSIdp scopes: https://dnvglb2cprod.onmicrosoft.com/37c59c8d-cd9d-4cd5-b05a-e67f1650ee14/user_impersonation: https://dnvglb2cprod.onmicrosoft.com/37c59c8d-cd9d-4cd5-b05a-e67f1650ee14/user_impersonation security: - apiKeyHeader: [ ] oauth2b2c-prod-oauth---v2-endpoint: - https://dnvglb2cprod.onmicrosoft.com/37c59c8d-cd9d-4cd5-b05a-e67f1650ee14/user_impersonation - apiKeyQuery: [ ] oauth2b2c-prod-oauth---v2-endpoint: - https://dnvglb2cprod.onmicrosoft.com/37c59c8d-cd9d-4cd5-b05a-e67f1650ee14/user_impersonation