

```json
{
  "openapi": "3.0.0",
  "info": {
    "title": "Assets manager external providers API",
    "description": "# Introduction\n   The Asset manager external providers API exposes endpoints to access functionality provided by external providers.\n",
    "contact": {
      "name": "Asset Management Cloud",
      "x-slack-channel": "#cloud-amc-api"
    },
    "license": {
      "name": "Unity Legal"
    },
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://services.api.unity.com",
      "description": "Production"
    },
    {
      "url": "https://staging.services.api.unity.com",
      "description": "Staging"
    }
  ],
  "paths": {
    "/assets/external/v1/providers/physna/types/geometric-search/projects/{projectId}": {
      "post": {
        "tags": [
          "Physna"
        ],
        "summary": "Geometric search",
        "description": "The endpoint will return the geometric search results from physna along with more information about the asset and the file.\n",
        "operationId": "assets.external.v1.physna.providers.types.geometricSearch",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "description": "The id of the project where the asset belongs.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "e5a3ca16-13c7-4f2d-a5bb-984e349911df"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/assets.external.v1.physna.geometricSearch.request"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The search results",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/assets.external.v1.physna.geometricSearch.response"
                }
              }
            }
          }
        }
      }
    },
    "/assets/external/v1/providers/physna/types/part-search/projects/{projectId}": {
      "post": {
        "tags": [
          "Physna"
        ],
        "summary": "Part search",
        "description": "The endpoint will return the part search results from physna along with more information about the asset and the file.\n",
        "operationId": "assets.external.v1.physna.providers.types.partSearch",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "description": "The id of the project where the asset belongs.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "e5a3ca16-13c7-4f2d-a5bb-984e349911df"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/assets.external.v1.physna.partSearch.request"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The search results",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/assets.external.v1.physna.partSearch.response"
                }
              }
            }
          }
        }
      }
    },
    "/assets/external/v1/providers/physna/types/image-search/projects/{projectId}": {
      "post": {
        "tags": [
          "Physna"
        ],
        "summary": "Image search",
        "description": "The endpoint will return the image search results from physna along with more information about the asset and the file.\n",
        "operationId": "assets.external.v1.physna.providers.types.imageSearch",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "description": "The id of the project where the asset belongs.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "e5a3ca16-13c7-4f2d-a5bb-984e349911df"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/assets.external.v1.physna.imageSearch.request"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The search results",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/assets.external.v1.physna.imageSearch.response"
                }
              }
            }
          }
        }
      }
    },
    "/assets/external/v1/providers/physna/types/image-upload-url/projects/{projectId}": {
      "post": {
        "tags": [
          "Physna"
        ],
        "summary": "Image upload url",
        "description": "The endpoint will return the data needed to upload an image to use with the image search.\n",
        "operationId": "assets.external.v1.physna.providers.types.imageUploadUrl",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "description": "The id of the project where the asset belongs.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "e5a3ca16-13c7-4f2d-a5bb-984e349911df"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/assets.external.v1.physna.imageUploadUrl.request"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The search results",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/assets.external.v1.physna.imageUploadUrl.response"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "assets.external.v1.physna.search.pagination": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "description": "The current search page."
          },
          "pageSize": {
            "type": "integer",
            "description": "The number of results per page."
          }
        },
        "additionalProperties": false,
        "description": "Represents the pagination information."
      },
      "assets.external.v1.physna.search.includeFields": {
        "description": "The fields to be returned for the expanded asset, file and dataset",
        "type": "array",
        "items": {
          "type": "string"
        },
        "example": [
          "*",
          "name",
          "description",
          "tags",
          "primaryType",
          "portalMetadata",
          "metadata",
          "metadata.yourFieldName",
          "systemMetadata.fieldName",
          "datasets.*",
          "datasets.name",
          "datasets.isVisible",
          "datasets.workflowName",
          "datasets.description",
          "datasets.tags",
          "datasets.portalMetadata",
          "datasets.metadata",
          "datasets.systemMetadata",
          "datasets.primaryType",
          "files.*",
          "files.filePath",
          "files.description",
          "files.tags",
          "files.portalMetadata",
          "files.metadata",
          "files.systemMetadata",
          "files.userChecksum",
          "files.fileSize",
          "files.downloadURL",
          "files.previewURL"
        ]
      },
      "assets.external.v1.physna.geometricSearch.request": {
        "type": "object",
        "properties": {
          "assetId": {
            "type": "string",
            "description": "The id of the asset to search for"
          },
          "assetVersion": {
            "type": "string",
            "description": "The version of the asset to search for"
          },
          "filePath": {
            "type": "string",
            "description": "The path of the file within the asset to use for the search"
          },
          "providerRequest": {
            "$ref": "#/components/schemas/assets.external.v1.physna.search.match.providerRequest.physna.geometricSearch"
          },
          "includeFields": {
            "$ref": "#/components/schemas/assets.external.v1.physna.search.includeFields"
          },
          "pagination": {
            "$ref": "#/components/schemas/assets.external.v1.physna.search.pagination"
          }
        }
      },
      "assets.external.v1.physna.partSearch.request": {
        "type": "object",
        "properties": {
          "assetId": {
            "type": "string",
            "description": "The id of the asset to search for"
          },
          "assetVersion": {
            "type": "string",
            "description": "The version of the asset to search for"
          },
          "filePath": {
            "type": "string",
            "description": "The path of the file within the asset to use for the search"
          },
          "providerRequest": {
            "$ref": "#/components/schemas/assets.external.v1.physna.search.match.providerRequest.physna.partSearch"
          },
          "includeFields": {
            "$ref": "#/components/schemas/assets.external.v1.physna.search.includeFields"
          },
          "pagination": {
            "$ref": "#/components/schemas/assets.external.v1.physna.search.pagination"
          }
        }
      },
      "assets.external.v1.physna.imageSearch.request": {
        "type": "object",
        "properties": {
          "providerRequest": {
            "$ref": "#/components/schemas/assets.external.v1.physna.search.match.providerRequest.physna.imageSearch"
          },
          "includeFields": {
            "$ref": "#/components/schemas/assets.external.v1.physna.search.includeFields"
          },
          "pagination": {
            "$ref": "#/components/schemas/assets.external.v1.physna.search.pagination"
          }
        }
      },
      "assets.external.v1.physna.imageUploadUrl.request": {
        "type": "object",
        "properties": {
          "providerRequest": {
            "$ref": "#/components/schemas/assets.external.v1.physna.search.match.providerRequest.physna.imageUploadUrl"
          }
        }
      },
      "assets.external.v1.physna.search.match.providerRequest.physna.geometricSearch": {
        "type": "object",
        "description": "The request to the external provider",
        "nullable": false,
        "externalDocs": {
          "description": "Physna GeometricSearch API Documentation",
          "url": "https://nexus-plus-api-production.physna.com/docs/#/Files/GetGeometricMatchesForAFileInAProject"
        }
      },
      "assets.external.v1.physna.search.match.providerRequest.physna.partSearch": {
        "type": "object",
        "description": "The request to the external provider",
        "nullable": false,
        "externalDocs": {
          "description": "Physna PartSearch API Documentation",
          "url": "https://nexus-plus-api-production.physna.com/docs/#/Files/GetPartMatchesForAFileInAProject"
        }
      },
      "assets.external.v1.physna.search.match.providerRequest.physna.imageSearch": {
        "type": "object",
        "description": "The request to the external provider",
        "nullable": false,
        "externalDocs": {
          "description": "Physna ImageSearch API Documentation",
          "url": "https://nexus-plus-api-production.physna.com/docs/#/Projects/GetVisualMatchesInAProject"
        }
      },
      "assets.external.v1.physna.search.match.providerRequest.physna.imageUploadUrl": {
        "type": "object",
        "description": "The request to the external provider",
        "nullable": false,
        "externalDocs": {
          "description": "Physna Image UploadURL API Documentation",
          "url": "https://nexus-plus-api-production.physna.com/docs/#/Physna/GetSignedUrlForImageUpload"
        }
      },
      "assets.external.v1.physna.geometricSearch.response": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "description": "The current search page."
          },
          "pageSize": {
            "type": "integer",
            "description": "The number of results per page."
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/assets.external.v1.physna.geometricSearch.match"
            },
            "nullable": false
          }
        }
      },
      "assets.external.v1.physna.partSearch.response": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "description": "The current search page."
          },
          "pageSize": {
            "type": "integer",
            "description": "The number of results per page."
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/assets.external.v1.physna.partSearch.match"
            },
            "nullable": false
          }
        }
      },
      "assets.external.v1.physna.imageSearch.response": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "description": "The current search page."
          },
          "pageSize": {
            "type": "integer",
            "description": "The number of results per page."
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/assets.external.v1.physna.imageSearch.match"
            },
            "nullable": false
          }
        }
      },
      "assets.external.v1.physna.imageUploadUrl.response": {
        "type": "object",
        "properties": {
          "providerResponse": {
            "$ref": "#/components/schemas/assets.external.v1.physna.search.match.providerResponse.physna.imageUploadUrl"
          }
        }
      },
      "assets.external.v1.physna.geometricSearch.match": {
        "type": "object",
        "properties": {
          "organizationId": {
            "type": "string",
            "description": "The organization id of the asset that matched"
          },
          "projectId": {
            "type": "string",
            "description": "The project id of the asset that matched"
          },
          "assetId": {
            "type": "string",
            "description": "The id of the asset that matched"
          },
          "assetVersion": {
            "type": "string",
            "description": "The version of the asset that matched"
          },
          "assetFilePath": {
            "type": "string",
            "description": "The path of the file within the asset that matched"
          },
          "providerResponse": {
            "$ref": "#/components/schemas/assets.external.v1.physna.search.match.providerResponse.physna.geometricSearch"
          }
        },
        "additionalProperties": false,
        "description": "Represents a single search match."
      },
      "assets.external.v1.physna.partSearch.match": {
        "type": "object",
        "properties": {
          "organizationId": {
            "type": "string",
            "description": "The organization id of the asset that matched"
          },
          "projectId": {
            "type": "string",
            "description": "The project id of the asset that matched"
          },
          "assetId": {
            "type": "string",
            "description": "The id of the asset that matched"
          },
          "assetVersion": {
            "type": "string",
            "description": "The version of the asset that matched"
          },
          "assetFilePath": {
            "type": "string",
            "description": "The path of the file within the asset that matched"
          },
          "providerResponse": {
            "$ref": "#/components/schemas/assets.external.v1.physna.search.match.providerResponse.physna.partSearch"
          }
        },
        "additionalProperties": false,
        "description": "Represents a single search match."
      },
      "assets.external.v1.physna.imageSearch.match": {
        "type": "object",
        "properties": {
          "organizationId": {
            "type": "string",
            "description": "The organization id of the asset that matched"
          },
          "projectId": {
            "type": "string",
            "description": "The project id of the asset that matched"
          },
          "assetId": {
            "type": "string",
            "description": "The id of the asset that matched"
          },
          "assetVersion": {
            "type": "string",
            "description": "The version of the asset that matched"
          },
          "assetFilePath": {
            "type": "string",
            "description": "The path of the file within the asset that matched"
          },
          "providerResponse": {
            "$ref": "#/components/schemas/assets.external.v1.physna.search.match.providerResponse.physna.imageSearch"
          }
        },
        "additionalProperties": false,
        "description": "Represents a single search match."
      },
      "assets.external.v1.physna.search.match.providerResponse.physna.geometricSearch": {
        "description": "Geometric search response",
        "externalDocs": {
          "description": "GeometricSearch API Documentation",
          "url": "https://nexus-plus-api-production.physna.com/docs/#/Files/GetGeometricMatchesForAFileInAProject"
        }
      },
      "assets.external.v1.physna.search.match.providerResponse.physna.partSearch": {
        "description": "Part search response",
        "externalDocs": {
          "description": "Physna PartSearch API Documentation",
          "url": "https://nexus-plus-api-production.physna.com/docs/#/Files/GetPartMatchesForAFileInAProject"
        }
      },
      "assets.external.v1.physna.search.match.providerResponse.physna.imageSearch": {
        "description": "Geometric search response",
        "externalDocs": {
          "description": "Physna ImageSearch API Documentation",
          "url": "https://nexus-plus-api-production.physna.com/docs/#/Projects/GetVisualMatchesInAProject"
        }
      },
      "assets.external.v1.physna.search.match.providerResponse.physna.imageUploadUrl": {
        "description": "image upload url response",
        "externalDocs": {
          "description": "Physna Image UploadURL API Documentation",
          "url": "https://nexus-plus-api-production.physna.com/docs/#/Physna/GetSignedUrlForImageUpload"
        }
      }
    },
    "securitySchemes": {
      "ServiceAccount": {
        "type": "http",
        "scheme": "basic"
      }
    }
  },
  "security": [
    {
      "ServiceAccount": [
        "ServiceAccount"
      ]
    }
  ],
  "tags": [
    {
      "name": "Physna",
      "description": "Operations provided by external provider Physna"
    }
  ]
}
```