Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions api_reference/master.adoc
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
:_mod-docs-content-type: ASSEMBLY
include::_attributes/attributes.adoc[][id="api-reference"]
= {productname} API reference

Check warning on line 3 in api_reference/master.adoc

View workflow job for this annotation

GitHub Actions / vale

Vale: AsciiDocDITA.ShortDescription

Assign [role="_abstract"] to a paragraph to use it as <shortdesc> in DITA.

Check warning on line 3 in api_reference/master.adoc

View workflow job for this annotation

GitHub Actions / vale

Vale: AsciiDocDITA.DocumentId

The document ID assigned to the level 0 (=) heading is missing.
:context: use-api

The {productname} application programming interface (API) provides a comprehensive, RESTful interface for managing and automating tasks within {productname}. Designed around the link:https://oauth.net/2/[_OAuth 2.0 protocol_], this API enables secure, fine-grained access to {productname} resources, and allows administrators and users to perform such actions as creating repositories, managing images, setting permissions, and more.

Check warning on line 6 in api_reference/master.adoc

View workflow job for this annotation

GitHub Actions / vale

Vale: AsciiDocDITA.ConceptLink

Move all links and cross references to Additional resources.

{productname} follows Semantic Versioning (SemVer) principles, ensuring predictable API stability across releases, such as:

Expand All @@ -21,7 +21,7 @@
* Authentication and authorization requirements
* Common error codes and troubleshooting information

For a more guided approach, including token overview, management strategies, understanding API endpoints, and more, refer to the link:https://docs.redhat.com/en/documentation/red_hat_quay/{producty}/html/red_hat_quay_api_guide/index[{productname} API guide].

Check warning on line 24 in api_reference/master.adoc

View workflow job for this annotation

GitHub Actions / vale

Vale: AsciiDocDITA.ConceptLink

Move all links and cross references to Additional resources.

include::modules/api-authorization.adoc[leveloffset=+1]

Expand Down Expand Up @@ -113,6 +113,17 @@
include::modules/api-namespacequota-listOrganizationQuota.adoc[leveloffset=+2]
include::modules/api-namespacequota-getUserQuota.adoc[leveloffset=+2]

//commands provided
include::modules/api-namespacenotification.adoc[leveloffset=+1]
include::modules/api-namespacenotification-createOrgNotification.adoc[leveloffset=+2]
include::modules/api-namespacenotification-listOrgNotifications.adoc[leveloffset=+2]
include::modules/api-namespacenotification-deleteOrgNotification.adoc[leveloffset=+2]
include::modules/api-namespacenotification-testOrgNotification.adoc[leveloffset=+2]
include::modules/api-namespacenotification-resetOrgNotificationFailures.adoc[leveloffset=+2]
include::modules/api-namespacenotification-createUserNotification.adoc[leveloffset=+2]
include::modules/api-namespacenotification-listUserNotifications.adoc[leveloffset=+2]
include::modules/api-namespacenotification-deleteUserNotification.adoc[leveloffset=+2]

//done
include::modules/api-organization.adoc[leveloffset=+1]
include::modules/api-organization-createOrganization.adoc[leveloffset=+2]
Expand Down
1 change: 1 addition & 0 deletions manage_quay/master.adoc
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
:_mod-docs-content-type: ASSEMBLY
include::_attributes/attributes.adoc[]
[id="manage-quay"]
= Manage {productname}

Check warning on line 4 in manage_quay/master.adoc

View workflow job for this annotation

GitHub Actions / vale

Vale: AsciiDocDITA.ShortDescription

Assign [role="_abstract"] to a paragraph to use it as <shortdesc> in DITA.

Once you have deployed a {productname} registry, there are many ways you can
further configure and manage that deployment. Topics covered here include:
Expand All @@ -19,7 +19,7 @@
* Setting up geo-replication
* Troubleshooting {productname}

For a complete list of {productname} configuration fields, see the link:https://access.redhat.com/documentation/en-us/red_hat_quay/3.15/html-single/configure_red_hat_quay/index[Configure {productname}] page.

Check warning on line 22 in manage_quay/master.adoc

View workflow job for this annotation

GitHub Actions / vale

Vale: AsciiDocDITA.ConceptLink

Move all links and cross references to Additional resources.

include::modules/proc_manage-advanced-config.adoc[leveloffset=+1]

Expand All @@ -34,7 +34,7 @@


[[using-ssl-to-protect-quay]]
== Using SSL to protect connections to {productname}

Check warning on line 37 in manage_quay/master.adoc

View workflow job for this annotation

GitHub Actions / vale

Vale: AsciiDocDITA.AssemblyContents

Content other than additional resources cannot follow include directives.
//include::modules/proc_manage-quay-ssl.adoc[leveloffset=+1]
include::modules/ssl-intro.adoc[leveloffset=+2]
////
Expand Down Expand Up @@ -132,6 +132,7 @@
include::modules/quota-management-limitations.adoc[leveloffset=+2]
include::modules/setting-default-quota.adoc[leveloffset=+2]
include::modules/quota-establishment-ui.adoc[leveloffset=+2]
include::modules/quota-configurations-ui.adoc[leveloffset=+2]
include::modules/quota-establishment-api.adoc[leveloffset=+2]
include::modules/quota-management-query-39.adoc[leveloffset=+2]
include::modules/deleting-tag-permanently.adoc[leveloffset=+2]
Expand Down
78 changes: 78 additions & 0 deletions modules/api-namespacenotification-createOrgNotification.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
:_mod-docs-content-type: REFERENCE


= createOrgNotification

Check warning on line 4 in modules/api-namespacenotification-createOrgNotification.adoc

View workflow job for this annotation

GitHub Actions / vale

Vale: AsciiDocDITA.ShortDescription

Assign [role="_abstract"] to a paragraph to use it as <shortdesc> in DITA.

Check warning on line 4 in modules/api-namespacenotification-createOrgNotification.adoc

View workflow job for this annotation

GitHub Actions / vale

Vale: AsciiDocDITA.DocumentId

The document ID assigned to the level 0 (=) heading is missing.


[discrete]

Check warning on line 7 in modules/api-namespacenotification-createOrgNotification.adoc

View workflow job for this annotation

GitHub Actions / vale

Vale: AsciiDocDITA.DiscreteHeading

Discrete headings are not supported in DITA.
== POST /api/v1/organization/{orgname}/notifications



**Authorizations: **oauth2_implicit (**org:admin**)



[discrete]
== Path parameters

[options="header", width=100%, cols=".^2a,.^3a,.^9a,.^4a"]
|===
|Type|Name|Description|Schema
|path|**orgname** +
_required_|The name of the organization|string
|===

[discrete]
== Request body schema (application/json)

Create a notification for an organization namespace

[options="header", width=100%, cols=".^3a,.^9a,.^4a"]
|===
|Name|Description|Schema
|**event** +
_required_|The event that triggers this notification. Options include `quota_warning` and
`quota_error`.|string
|**method** +
_required_|The notification delivery method. Options include `email`, `slack`, `webhook`,
`quay_notification`, `flowdock`, and `hipchat`.|string
|**config** +
_required_|JSON configuration for the notification method. Configuration varies by method
type.|object
|**eventConfig** +
_required_|JSON configuration for filtering which events trigger the notification.|object
|**title** +
_optional_|Optional user-friendly title for the notification.|string
|===


[discrete]
== Responses

[options="header", width=100%, cols=".^2a,.^14a,.^4a"]
|===
|HTTP Code|Description|Schema
|201|Successful creation|
|400|Bad Request|&lt;&lt;_apierror,ApiError&gt;&gt;
|401|Session required|&lt;&lt;_apierror,ApiError&gt;&gt;
|403|Unauthorized access|&lt;&lt;_apierror,ApiError&gt;&gt;
|404|Not found|&lt;&lt;_apierror,ApiError&gt;&gt;
|===

[discrete]
== Example command

[source,terminal]
----
$ curl -X POST \
-H "Authorization: Bearer <bearer_token>" \
-H "Content-Type: application/json" \
--data '{
"event": "quota_warning",
"method": "email",
"config": {},
"eventConfig": {}
}' \
https://<quay-server.example.com>/api/v1/organization/<orgname>/notifications
----
67 changes: 67 additions & 0 deletions modules/api-namespacenotification-createUserNotification.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
:_mod-docs-content-type: REFERENCE

= createUserNotification


[discrete]
== POST /api/v1/user/namespacenotifications



**Authorizations: **oauth2_implicit (**user:admin**)



[discrete]
== Request body schema (application/json)

Create a notification for a user namespace

[options="header", width=100%, cols=".^3a,.^9a,.^4a"]
|===
|Name|Description|Schema
|**event** +
_required_|The event that triggers this notification. Options include `quota_warning` and
`quota_error`.|string
|**method** +
_required_|The notification delivery method. Options include `email`, `slack`, `webhook`,
`quay_notification`, `flowdock`, and `hipchat`.|string
|**config** +
_required_|JSON configuration for the notification method. Configuration varies by method
type.|object
|**eventConfig** +
_required_|JSON configuration for filtering which events trigger the notification.|object
|**title** +
_optional_|Optional user-friendly title for the notification.|string
|===


[discrete]
== Responses

[options="header", width=100%, cols=".^2a,.^14a,.^4a"]
|===
|HTTP Code|Description|Schema
|201|Successful creation|
|400|Bad Request|&lt;&lt;_apierror,ApiError&gt;&gt;
|401|Session required|&lt;&lt;_apierror,ApiError&gt;&gt;
|403|Unauthorized access|&lt;&lt;_apierror,ApiError&gt;&gt;
|404|Not found|&lt;&lt;_apierror,ApiError&gt;&gt;
|===

[discrete]
== Example command

[source,terminal]
----
$ curl -X POST \
-H "Authorization: Bearer <bearer_token>" \
-H "Content-Type: application/json" \
--data '{
"event": "quota_warning",
"method": "email",
"config": {},
"eventConfig": {}
}' \
https://<quay-server.example.com>/api/v1/user/namespacenotifications
----
48 changes: 48 additions & 0 deletions modules/api-namespacenotification-deleteOrgNotification.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
:_mod-docs-content-type: REFERENCE

= deleteOrgNotification


[discrete]
== DELETE /api/v1/organization/{orgname}/notifications/{uuid}



**Authorizations: **oauth2_implicit (**org:admin**)


[discrete]
== Path parameters

[options="header", width=100%, cols=".^2a,.^3a,.^9a,.^4a"]
|===
|Type|Name|Description|Schema
|path|**orgname** +
_required_|The name of the organization|string
|path|**uuid** +
_required_|The uuid of the notification|string
|===


[discrete]
== Responses

[options="header", width=100%, cols=".^2a,.^14a,.^4a"]
|===
|HTTP Code|Description|Schema
|204|Deleted|
|400|Bad Request|&lt;&lt;_apierror,ApiError&gt;&gt;
|401|Session required|&lt;&lt;_apierror,ApiError&gt;&gt;
|403|Unauthorized access|&lt;&lt;_apierror,ApiError&gt;&gt;
|404|Not found|&lt;&lt;_apierror,ApiError&gt;&gt;
|===

[discrete]
== Example command

[source,terminal]
----
$ curl -X DELETE \
-H "Authorization: Bearer <bearer_token>" \
https://<quay-server.example.com>/api/v1/organization/<orgname>/notifications/<uuid>
----
46 changes: 46 additions & 0 deletions modules/api-namespacenotification-deleteUserNotification.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
:_mod-docs-content-type: REFERENCE

= deleteUserNotification


[discrete]
== DELETE /api/v1/user/namespacenotifications/{uuid}



**Authorizations: **oauth2_implicit (**user:admin**)


[discrete]
== Path parameters

[options="header", width=100%, cols=".^2a,.^3a,.^9a,.^4a"]
|===
|Type|Name|Description|Schema
|path|**uuid** +
_required_|The uuid of the notification|string
|===


[discrete]
== Responses

[options="header", width=100%, cols=".^2a,.^14a,.^4a"]
|===
|HTTP Code|Description|Schema
|204|Deleted|
|400|Bad Request|&lt;&lt;_apierror,ApiError&gt;&gt;
|401|Session required|&lt;&lt;_apierror,ApiError&gt;&gt;
|403|Unauthorized access|&lt;&lt;_apierror,ApiError&gt;&gt;
|404|Not found|&lt;&lt;_apierror,ApiError&gt;&gt;
|===

[discrete]
== Example command

[source,terminal]
----
$ curl -X DELETE \
-H "Authorization: Bearer <bearer_token>" \
https://<quay-server.example.com>/api/v1/user/namespacenotifications/<uuid>
----
67 changes: 67 additions & 0 deletions modules/api-namespacenotification-listOrgNotifications.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
:_mod-docs-content-type: REFERENCE

= listOrgNotifications


[discrete]
== GET /api/v1/organization/{orgname}/notifications



**Authorizations: **oauth2_implicit (**org:admin**)


[discrete]
== Path parameters

[options="header", width=100%, cols=".^2a,.^3a,.^9a,.^4a"]
|===
|Type|Name|Description|Schema
|path|**orgname** +
_required_|The name of the organization|string
|===


[discrete]
== Responses

[options="header", width=100%, cols=".^2a,.^14a,.^4a"]
|===
|HTTP Code|Description|Schema
|200|Successful invocation|
|400|Bad Request|&lt;&lt;_apierror,ApiError&gt;&gt;
|401|Session required|&lt;&lt;_apierror,ApiError&gt;&gt;
|403|Unauthorized access|&lt;&lt;_apierror,ApiError&gt;&gt;
|404|Not found|&lt;&lt;_apierror,ApiError&gt;&gt;
|===

[discrete]
== Example command

[source,terminal]
----
$ curl -X GET \
-H "Authorization: Bearer <bearer_token>" \
-H "Accept: application/json" \
https://<quay-server.example.com>/api/v1/organization/<orgname>/notifications
----

[discrete]
== Example output

[source,json]
----
{
"notifications": [
{
"uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"title": "Quota Warning Alert",
"event": "quota_warning",
"method": "email",
"config": {},
"event_config": {},
"number_of_failures": 0
}
]
}
----
56 changes: 56 additions & 0 deletions modules/api-namespacenotification-listUserNotifications.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
:_mod-docs-content-type: REFERENCE

= listUserNotifications


[discrete]
== GET /api/v1/user/namespacenotifications



**Authorizations: **oauth2_implicit (**user:admin**)


[discrete]
== Responses

[options="header", width=100%, cols=".^2a,.^14a,.^4a"]
|===
|HTTP Code|Description|Schema
|200|Successful invocation|
|400|Bad Request|&lt;&lt;_apierror,ApiError&gt;&gt;
|401|Session required|&lt;&lt;_apierror,ApiError&gt;&gt;
|403|Unauthorized access|&lt;&lt;_apierror,ApiError&gt;&gt;
|404|Not found|&lt;&lt;_apierror,ApiError&gt;&gt;
|===

[discrete]
== Example command

[source,terminal]
----
$ curl -X GET \
-H "Authorization: Bearer <bearer_token>" \
-H "Accept: application/json" \
https://<quay-server.example.com>/api/v1/user/namespacenotifications
----

[discrete]
== Example output

[source,json]
----
{
"notifications": [
{
"uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"title": "Quota Warning Alert",
"event": "quota_warning",
"method": "email",
"config": {},
"event_config": {},
"number_of_failures": 0
}
]
}
----
Loading
Loading