diff --git a/_data/toc.yaml b/_data/toc.yaml index 8a8246fd22..897749c762 100644 --- a/_data/toc.yaml +++ b/_data/toc.yaml @@ -1028,8 +1028,12 @@ reference: title: v1.19 reference - path: /engine/api/v1.18/ title: v1.18 reference - - title: Docker Hub API - path: /docker-hub/api/latest/ + - sectiontitle: Docker Hub API + section: + - title: Docker Hub API + path: /docker-hub/api/latest/ + - title: DVP Data API + path: /docker-hub/api/dvp/ - title: Registry API path: /registry/spec/api/ - sectiontitle: Docker Extension SDK API (Beta) diff --git a/_layouts/hub-api.html b/_layouts/hub-api.html index 3ee8bbecaa..d89e5cc456 100644 --- a/_layouts/hub-api.html +++ b/_layouts/hub-api.html @@ -1,10 +1,10 @@ - Docker Hub API {{ page.name | replace: '.md' }} Reference + Docker Hub API Reference - {{ page.name | replace: '.md' }} - + diff --git a/docker-hub/api/dvp.yaml b/docker-hub/api/dvp.yaml index 3ebcc90921..8250bba884 100644 --- a/docker-hub/api/dvp.yaml +++ b/docker-hub/api/dvp.yaml @@ -6,12 +6,15 @@ info: url: https://docs.docker.com/images/logo-docker-main.png href: /reference description: | - The Docker DVP Data API allows Docker Verified Publishers to view image pull analytics data for their namespaces + The Docker DVP Data API allows [Docker Verified Publishers](https://docs.docker.com/docker-hub/publish/) to view image pull analytics data for their namespaces servers: - - url: https://hub-stage.docker.com/api/dvp/v1 + - url: https://hub.docker.com/api/dvp/v1 security: - HubAuth: [] +features.openapi: + schemaDefinitionsTagName: Schemas + tags: - name: namespaces x-displayName: Namespace data @@ -19,6 +22,22 @@ tags: x-displayName: Repository data - name: discovery x-displayName: Discovery + - name: responseDataFile + x-displayName: ResponseDataFile + description: | + + - name: yearModel + x-displayName: Year Data Model + description: | + + - name: monthModel + x-displayName: Month Data Model + description: | + + - name: weekModel + x-displayName: Week Data Model + description: | + x-tagGroups: - name: API @@ -26,13 +45,19 @@ x-tagGroups: - discovery - namespaces - repos + - name: Models + tags: + - responseDataFile + - yearModel + - monthModel + - weekModel paths: /data: get: tags: [discovery] summary: Get namespaces and repos - description: Gets a list of namespaces and repos which have data available + description: Gets a list of your namespaces and repos which have data available operationId: getNamespaces responses: '200': @@ -41,7 +66,27 @@ paths: application/json: schema: $ref: '#/components/schemas/NamespaceData' - /data/{namespace}/year: + /data/namespaces/{namespace}: + get: + tags: [discovery] + summary: Get namespace + description: Gets metadata associated with specified namespace, including extra repos associated with the namespace + operationId: getNamespace + parameters: + - in: path + name: namespace + schema: + type: string + required: true + description: Namespace to fetch data for + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/NamespaceMetadata' + /data/namespaces/{namespace}/years: get: tags: [namespaces] summary: Get years with data @@ -61,7 +106,7 @@ paths: application/json: schema: $ref: '#/components/schemas/YearData' - /data/{namespace}/year/{year}/month: + /data/namespaces/{namespace}/years/{year}/months: get: tags: [namespaces] summary: Get months with data @@ -87,7 +132,7 @@ paths: application/json: schema: $ref: '#/components/schemas/MonthData' - /data/{namespace}/year/{year}/week: + /data/namespaces/{namespace}/years/{year}/weeks: get: tags: [namespaces] summary: Get weeks with data @@ -113,11 +158,45 @@ paths: application/json: schema: $ref: '#/components/schemas/WeekData' - /data/{namespace}/year/{year}/month/{month}: + /data/namespaces/{namespace}/years/{year}/months/{month}: + get: + tags: [namespaces] + summary: Get namespace metadata for month + description: Gets info about data for the given namespace and month + operationId: getNamespaceMonthMetadata + parameters: + - in: path + name: namespace + schema: + type: string + required: true + description: Namespace to fetch data for + - in: path + name: year + schema: + type: integer + required: true + description: Year to fetch data for + - in: path + name: month + schema: + type: integer + required: true + description: Month to fetch data for + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/MonthModel' + '404': + description: Not Found + /data/namespaces/{namespace}/years/{year}/months/{month}/raw: get: tags: [namespaces] summary: Get namespace data for month - description: Gets a list of URLs that can be used to download the pull data for the given namespace and month + description: Gets a list of URLs that can be used to download the raw pull data for the given namespace and month operationId: getNamespaceDataByMonth parameters: - in: path @@ -145,11 +224,45 @@ paths: application/json: schema: $ref: '#/components/schemas/ResponseData' - /data/{namespace}/year/{year}/week/{week}: + /data/namespaces/{namespace}/years/{year}/weeks/{week}: + get: + tags: [namespaces] + summary: Get namespace metadata for week + description: Gets info about data for the given namespace and week + operationId: getNamespaceWeekMetadata + parameters: + - in: path + name: namespace + schema: + type: string + required: true + description: Namespace to fetch data for + - in: path + name: year + schema: + type: integer + required: true + description: Year to fetch data for + - in: path + name: week + schema: + type: integer + required: true + description: Week to fetch data for + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/WeekModel' + '404': + description: Not Found + /data/namespaces/{namespace}/years/{year}/weeks/{week}/raw: get: tags: [namespaces] summary: Get namespace data for week - description: Gets a list of URLs that can be used to download the pull data for the given namespace and week + description: Gets a list of URLs that can be used to download the raw pull data for the given namespace and week operationId: getNamespaceDataByWeek parameters: - in: path @@ -177,7 +290,7 @@ paths: application/json: schema: $ref: '#/components/schemas/ResponseData' - /data/{namespace}/year/{year}/month/{month}/summary: + /data/namespaces/{namespace}/years/{year}/months/{month}/summary: get: tags: [namespaces] summary: Get namespace summary data for month @@ -209,7 +322,7 @@ paths: application/json: schema: $ref: '#/components/schemas/ResponseData' - /data/{namespace}/year/{year}/week/{week}/summary: + /data/namespaces/{namespace}/years/{year}/weeks/{week}/summary: get: tags: [namespaces] summary: Get namespace summary data for week @@ -241,7 +354,7 @@ paths: application/json: schema: $ref: '#/components/schemas/ResponseData' - /data/{namespace}/{repo}/year: + /data/repos/{namespace}/{repo}/years: get: tags: [repos] summary: Get years with data @@ -267,7 +380,7 @@ paths: application/json: schema: $ref: '#/components/schemas/YearData' - /data/{namespace}/{repo}/year/{year}/month: + /data/repos/{namespace}/{repo}/years/{year}/months: get: tags: [repos] summary: Get months with data @@ -299,7 +412,7 @@ paths: application/json: schema: $ref: '#/components/schemas/MonthData' - /data/{namespace}/{repo}/year/{year}/week: + /data/repos/{namespace}/{repo}/years/{year}/weeks: get: tags: [repos] summary: Get weeks with data @@ -331,11 +444,51 @@ paths: application/json: schema: $ref: '#/components/schemas/WeekData' - /data/{namespace}/{repo}/year/{year}/month/{month}: + /data/repos/{namespace}/{repo}/years/{year}/months/{month}: + get: + tags: [repos] + summary: Get repository metadata for month + description: Gets info about data for the given repository and month + operationId: getRepoMonthMetadata + parameters: + - in: path + name: namespace + schema: + type: string + required: true + description: Namespace to fetch data for + - in: path + name: repo + schema: + type: string + required: true + description: Repo to fetch data for + - in: path + name: year + schema: + type: integer + required: true + description: Year to fetch data for + - in: path + name: month + schema: + type: integer + required: true + description: Month to fetch data for + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/MonthModel' + '404': + description: Not Found + /data/repos/{namespace}/{repo}/years/{year}/months/{month}/raw: get: tags: [repos] summary: Get repository data for month - description: Gets a list of URLs that can be used to download the pull data for the given repository and month + description: Gets a list of URLs that can be used to download the raw pull data for the given repository and month operationId: getRepoDataByMonth parameters: - in: path @@ -369,11 +522,51 @@ paths: application/json: schema: $ref: '#/components/schemas/ResponseData' - /data/{namespace}/{repo}/year/{year}/week/{week}: + /data/repos/{namespace}/{repo}/years/{year}/weeks/{week}: + get: + tags: [repos] + summary: Get repository metadata for week + description: Gets info about data for the given repository and week + operationId: getRepoWeekMetadata + parameters: + - in: path + name: namespace + schema: + type: string + required: true + description: Namespace to fetch data for + - in: path + name: repo + schema: + type: string + required: true + description: Repo to fetch data for + - in: path + name: year + schema: + type: integer + required: true + description: Year to fetch data for + - in: path + name: week + schema: + type: integer + required: true + description: Week to fetch data for + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/WeekModel' + '404': + description: Not Found + /data/repos/{namespace}/{repo}/years/{year}/weeks/{week}/raw: get: tags: [repos] summary: Get repository data for week - description: Gets a list of URLs that can be used to download the pull data for the given repository and week + description: Gets a list of URLs that can be used to download the raw pull data for the given repository and week operationId: getRepoDataByWeek parameters: - in: path @@ -407,7 +600,7 @@ paths: application/json: schema: $ref: '#/components/schemas/ResponseData' - /data/{namespace}/{repo}/year/{year}/month/{month}/summary: + /data/repos/{namespace}/{repo}/years/{year}/months/{month}/summary: get: tags: [repos] summary: Get repository summary data for month @@ -445,7 +638,7 @@ paths: application/json: schema: $ref: '#/components/schemas/ResponseData' - /data/{namespace}/{repo}/year/{year}/week/{week}/summary: + /data/repos/{namespace}/{repo}/years/{year}/weeks/{week}/summary: get: tags: [repos] summary: Get repository summary data for week @@ -506,28 +699,49 @@ components: type: array items: type: string + NamespaceMetadata: + properties: + namespace: + type: string + extraRepos: + type: array + items: + type: string YearData: properties: years: type: array items: - type: integer + $ref: '#/components/schemas/YearModel' + YearModel: + properties: + year: + type: integer MonthData: properties: months: type: array items: - type: integer + $ref: '#/components/schemas/MonthModel' + MonthModel: + properties: + month: + type: integer WeekData: properties: weeks: type: array items: - type: integer + $ref: '#/components/schemas/WeekModel' + WeekModel: + properties: + week: + type: integer securitySchemes: HubAuth: type: https scheme: bearer bearerFormat: JWT - description: Docker Hub bearer token + description: > + See [Hub API Authentication docs](https://docs.docker.com/docker-hub/api/latest/#tag/authentication) x-displayName: Docker Hub Authentication diff --git a/docker-hub/api/latest.yaml b/docker-hub/api/latest.yaml index 845a9449c9..96eb8d0ef8 100644 --- a/docker-hub/api/latest.yaml +++ b/docker-hub/api/latest.yaml @@ -1687,4 +1687,4 @@ components: This message shows that your installation appears to be working correctly. - ``` \ No newline at end of file + ``` diff --git a/reference/index.md b/reference/index.md index 3db7d9b477..458e1b70e3 100644 --- a/reference/index.md +++ b/reference/index.md @@ -30,7 +30,8 @@ various APIs, CLIs, and file formats. |:------------------------------------------------------|:---------------------------------------------------------------------------------------| | [Engine API](/engine/api/) | The main API for Docker, provides programmatic access to a daemon | | [Registry API](/registry/spec/api/) | Facilitates distribution of images to the engine | -| [Docker Hub API](/docker-hub/api/latest/) | API to interact with Docker Hub | +| [Docker Hub API](/docker-hub/api/latest/) | API to interact with Docker Hub | +| [DVP Data API](/docker-hub/api/dvp/) | API for Docker Verified Publishers to fetch analytics data | ## Drivers and specifications