openapi: 3.2.0 info: description: "Use the Generic Artifacts Content API to upload non-container generic artifacts or blobs to an artifact [repository](#/en/registry/latest/Repository). \n\n- To upload container images such as Docker images to a container repository, use the [Artifacts and Container Images API](#/en/registry/latest/). \n\n- To list, get details, and delete generic artifacts, use the [GenericArtifact](#/en/registry/latest/GenericArtifact/) resource included in the Artifacts and Container Images API. \n\nFor more information, see [Artifact Registry](/iaas/Content/artifacts/home.htm).\n" license: name: Oracle Corporation title: Generic Artifacts Content API version: '20160918' x-provenance: method: harvested first_party: true publisher: Oracle source: https://docs.oracle.com/en-us/iaas/api/specs/971715d2904d72ed7469c3053f482634a9aea37a123cf4d26b223b68896898e0.yaml harvested: '2026-08-04' note: Published by Oracle as the contract for the Generic Artifacts Content API OCI service and stored verbatim; API Evangelist added only this provenance block. x-evidence: - url: https://docs.oracle.com/en-us/iaas/api/specs/index.json what: Oracle's own index of every OCI service specification - url: https://docs.oracle.com/en-us/iaas/api/specs/971715d2904d72ed7469c3053f482634a9aea37a123cf4d26b223b68896898e0.yaml what: the harvested document for Generic Artifacts Content API servers: - url: /20160918 tags: - name: genericArtifactsContent paths: /generic/artifacts/{artifactId}/content: get: description: Gets the specified artifact's content. operationId: GetGenericArtifactContent parameters: - $ref: '#/components/parameters/GenericArtifactIdPathParam' - $ref: '#/components/parameters/RequestIdHeader' responses: 200: description: The artifact's content was retrieved successfully. headers: etag: description: 'For optimistic concurrency control. See `if-match`. ' schema: type: string opc-request-id: description: 'Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. ' schema: type: string content: application/octet-stream: schema: format: binary type: string 400: $ref: '#/components/responses/400' 401: $ref: '#/components/responses/401' 404: $ref: '#/components/responses/404' 429: $ref: '#/components/responses/429' 500: $ref: '#/components/responses/500' summary: GetGenericArtifactContent tags: - genericArtifactsContent x-related-resource: '#/definitions/GenericArtifact' /generic/repositories/{repositoryId}/artifactPaths/{artifactPath}/versions/{version}/content: get: description: Gets the content of an artifact with a specified `artifactPath` and `version`. operationId: GetGenericArtifactContentByPath parameters: - $ref: '#/components/parameters/RepositoryIdPathParam' - $ref: '#/components/parameters/GenericArtifactPathPathParam' - $ref: '#/components/parameters/GenericArtifactVersionPathParam' - $ref: '#/components/parameters/RequestIdHeader' responses: 200: description: The content of the artifact with the specified `artifactPath` and `version` was retrieved successfully. headers: etag: description: 'For optimistic concurrency control. See `if-match`. ' schema: type: string opc-request-id: description: 'Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. ' schema: type: string content: application/octet-stream: schema: format: binary type: string 400: $ref: '#/components/responses/400' 401: $ref: '#/components/responses/401' 404: $ref: '#/components/responses/404' 429: $ref: '#/components/responses/429' 500: $ref: '#/components/responses/500' summary: GetGenericArtifactContentByPath tags: - genericArtifactsContent x-related-resource: '#/definitions/GenericArtifact' put: description: Uploads an artifact. Provide `artifactPath`, `version` and content. Avoid entering confidential information when you define the path and version. operationId: PutGenericArtifactContentByPath parameters: - $ref: '#/components/parameters/RepositoryIdPathParam' - $ref: '#/components/parameters/GenericArtifactPathPathParam' - $ref: '#/components/parameters/GenericArtifactVersionPathParam' - $ref: '#/components/parameters/IfMatchHeader' - $ref: '#/components/parameters/RequestIdHeader' responses: 200: description: The artifact was uploaded successfully. headers: etag: description: 'For optimistic concurrency control. See `if-match`. ' schema: type: string opc-request-id: description: 'Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. ' schema: type: string content: application/json: schema: $ref: '#/components/schemas/GenericArtifact' 400: $ref: '#/components/responses/400' 401: $ref: '#/components/responses/401' 404: $ref: '#/components/responses/404' 409: $ref: '#/components/responses/409' 412: $ref: '#/components/responses/412' 429: $ref: '#/components/responses/429' 500: $ref: '#/components/responses/500' summary: PutGenericArtifactContentByPath tags: - genericArtifactsContent x-obmcs-signing-strategy: exclude_body x-related-resource: '#/definitions/GenericArtifact' requestBody: content: application/octet-stream: schema: format: binary type: string description: Uploads an artifact. Provide artifact path, version and content. Avoid entering confidential information when you define the path and version. required: true components: parameters: IfMatchHeader: description: 'For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match` parameter to the value of the `etag` from a previous GET or POST response for that resource. The resource will be updated or deleted only if the `etag` you provide matches the resource''s current `etag` value. When ''if-match'' is provided and its value does not exactly match the ''etag'' of the resource on the server, the request fails with the 412 response code. ' in: header name: if-match schema: type: string RequestIdHeader: description: 'Unique Oracle-assigned [request ID](/iaas/Content/API/Concepts/usingapi.htm) Example: `bxxxxxxx-fxxx-4xxx-9xxx-bxxxxxxxxxxx` If you contact Oracle about a request, provide this request ID. ' in: header name: opc-request-id schema: type: string pattern: '[A-Za-z0-9\-_\.]+' GenericArtifactPathPathParam: description: 'A user-defined path to describe the location of an artifact. You can use slashes to organize the repository, but slashes do not create a directory structure. An artifact path does not include an artifact version. Example: `project01/my-web-app/artifact-abc` ' in: path name: artifactPath required: true schema: type: string maxLength: 256 minLength: 1 RepositoryIdPathParam: description: 'The [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the repository. Example: `ocid1.repository.oc1..exampleuniqueID` ' in: path name: repositoryId required: true schema: type: string maxLength: 255 minLength: 1 GenericArtifactVersionPathParam: description: 'A user-defined string to describe the artifact version. Example: `1.1.2` or `1.2-beta-2` ' in: path name: version required: true schema: type: string maxLength: 128 minLength: 1 GenericArtifactIdPathParam: description: 'The [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the artifact. Example: `ocid1.genericartifact.oc1..exampleuniqueID` ' in: path name: artifactId required: true schema: type: string maxLength: 255 minLength: 1 schemas: GenericArtifact: description: The metadata of the artifact. properties: artifactPath: description: 'A user-defined path to describe the location of an artifact. Slashes do not create a directory structure, but you can use slashes to organize the repository. An artifact path does not include an artifact version. Example: `project01/my-web-app/artifact-abc` ' maxLength: 256 minLength: 1 type: string compartmentId: description: The [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the repository's compartment. maxLength: 100 minLength: 1 type: string definedTags: additionalProperties: additionalProperties: description: 'The value of the tag. Only the String type is supported. ' type: object description: 'Key-value pair representing a defined tag key and value, scoped to a namespace. Example: `{"CostCenter": "42"}` ' type: object description: 'Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Operations": {"CostCenter": "42"}}` ' type: object displayName: description: 'The artifact name with the format of `:`. The artifact name is truncated to a maximum length of 255. Example: `project01/my-web-app/artifact-abc:1.0.0` ' maxLength: 255 minLength: 1 type: string freeformTags: additionalProperties: type: string description: 'Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}` ' type: object id: description: 'The [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the artifact. Example: `ocid1.genericartifact.oc1..exampleuniqueID` ' maxLength: 255 minLength: 1 type: string lifecycleState: description: The current state of the artifact. enum: - AVAILABLE - DELETING - DELETED type: string repositoryId: description: The [OCID](/Content/General/Concepts/identifiers.htm) of the repository. maxLength: 255 minLength: 1 type: string sha256: description: The SHA256 digest for the artifact. When you upload an artifact to the repository, a SHA256 digest is calculated and added to the artifact properties. maxLength: 64 minLength: 1 type: string sizeInBytes: description: The size of the artifact in bytes. format: int64 type: integer timeCreated: description: An RFC 3339 timestamp indicating when the repository was created. format: date-time type: string version: description: 'A user-defined string to describe the artifact version. Example: `1.1.0` or `1.2-beta-2` ' maxLength: 128 minLength: 1 type: string required: - id - displayName - compartmentId - repositoryId - artifactPath - version - sha256 - sizeInBytes - lifecycleState - freeformTags - definedTags - timeCreated x-anchors: x-headers: etag: description: 'For optimistic concurrency control. See `if-match`. ' type: string opc-next-page: description: 'For list pagination. When this header appears in the response, additional pages of results remain. For important details about how pagination works, see [List Pagination](/iaas/Content/API/Concepts/usingapi.htm#nine). ' type: string opc-request-id: description: 'Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. ' type: string x-properties: definedTags: additionalProperties: additionalProperties: description: 'The value of the tag. Only the String type is supported. ' type: object description: 'Key-value pair representing a defined tag key and value, scoped to a namespace. Example: `{"CostCenter": "42"}` ' type: object description: 'Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Operations": {"CostCenter": "42"}}` ' type: object freeformTags: additionalProperties: type: string description: 'Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}` ' type: object x-oracle-package: com.oracle.pic.artifacts.generic