Update

Python objects

Message schema for Updates.

Each message is defined as a Python class. For details, see fedora-messaging documentation on messages.

class bodhi.messages.schemas.update.UpdateCommentV1(body=None, headers=None, topic=None, properties=None, severity=None)[source]

Bases: UpdateMessage

Sent when a comment is made on an update.

__annotations__ = {}
__str__() str[source]

Return a human-readable representation of this message.

This should provide a detailed representation of the message, much like the body of an email.

Returns:

A human readable representation of this message.

property agent: str

Return the agent’s username for this message.

Returns:

The agent’s username.

property karma: int

Return the karma from this comment.

property summary: str

Return a short, human-readable representation of this message.

This should provide a short summary of the message, much like the subject line of an email.

Returns:

A summary for this message.

topic = 'bodhi.update.comment'
property user: UserV1

Return the user who wrote this comment.

class bodhi.messages.schemas.update.UpdateCompleteStableV1(body=None, headers=None, topic=None, properties=None, severity=None)[source]

Bases: UpdateMessage

Sent when an update is available in the stable repository.

__annotations__ = {}
property summary: str

Return a short, human-readable representation of this message.

This should provide a short summary of the message, much like the subject line of an email.

Returns:

A summary for this message.

topic = 'bodhi.update.complete.stable'
class bodhi.messages.schemas.update.UpdateCompleteTestingV1(body=None, headers=None, topic=None, properties=None, severity=None)[source]

Bases: UpdateMessage

Sent when an update is available in the testing repository.

__annotations__ = {}
property summary: str

Return a short, human-readable representation of this message.

This should provide a short summary of the message, much like the subject line of an email.

Returns:

A summary for this message.

topic = 'bodhi.update.complete.testing'
class bodhi.messages.schemas.update.UpdateEditV1(body=None, headers=None, topic=None, properties=None, severity=None)[source]

Bases: UpdateMessage

Sent when an update is edited.

__annotations__ = {}
property new_bugs: Iterable[int]

Return an iterable of the new bugs that have been added to the update.

Returns:

A list of Bugzilla bug IDs.

property summary: str

Return a short, human-readable representation of this message.

This should provide a short summary of the message, much like the subject line of an email.

Returns:

A summary for this message.

topic = 'bodhi.update.edit'
class bodhi.messages.schemas.update.UpdateEjectV1(body=None, headers=None, topic=None, properties=None, severity=None)[source]

Bases: UpdateMessage

Sent when an update is ejected from the push.

__annotations__ = {}
property reason: str

Return the reason this update was ejected from the compose.

property repo: str

Return the name of the repository that this update is associated with.

property summary: str

Return a short, human-readable representation of this message.

This should provide a short summary of the message, much like the subject line of an email.

Returns:

A summary for this message.

topic = 'bodhi.update.eject'
class bodhi.messages.schemas.update.UpdateKarmaThresholdV1(body=None, headers=None, topic=None, properties=None, severity=None)[source]

Bases: UpdateMessage

Sent when an update reaches its karma threshold.

__annotations__ = {}
property status: str

Return the threshold that was reached.

property summary: str

Return a short, human-readable representation of this message.

This should provide a short summary of the message, much like the subject line of an email.

Returns:

A summary for this message.

topic = 'bodhi.update.karma.threshold.reach'
class bodhi.messages.schemas.update.UpdateMessage(body=None, headers=None, topic=None, properties=None, severity=None)[source]

Bases: BodhiMessage

Base class for update messages.

__annotations__ = {}
property packages: Iterable[str]

List of names of packages affected by the action that generated this message.

Returns:

A list of affected package names.

property update: UpdateV1

Return the Update referenced by this message.

property url: str

Return a URL to the action that caused this message to be emitted.

Returns:

A relevant URL.

property usernames: List[str]

List of users affected by the action that generated this message.

Returns:

A list of affected usernames.

class bodhi.messages.schemas.update.UpdateReadyForTestingV1(body=None, headers=None, topic=None, properties=None, severity=None)[source]

Bases: BodhiMessage

Sent when an update is ready to be tested. Original version.

Does not have ‘update’ property or inherit from UpdateMessage.

__annotations__ = {}
property agent: str | None

Return the agent’s username for this message.

Returns:

The agent’s username, or None if the body has no agent key.

property packages: Iterable[str]

List of names of packages affected by the action that generated this message.

Returns:

A list of affected package names.

property summary: str

Return a short, human-readable representation of this message.

This should provide a short summary of the message, much like the subject line of an email.

Returns:

A summary for this message.

topic = 'bodhi.update.status.testing.koji-build-group.build.complete'
property url: str

Return a URL to the action that caused this message to be emitted.

Returns:

A relevant URL.

property usernames: List[str]

List of users affected by the action that generated this message.

Returns:

A list of affected usernames.

class bodhi.messages.schemas.update.UpdateReadyForTestingV2(body=None, headers=None, topic=None, properties=None, severity=None)[source]

Bases: UpdateReadyForTestingV1

Sent when an update is ready to be tested. Newer version.

Has ‘update’ property, like other update messages.

__annotations__ = {'body_schema': typing.Any}
renamed = {'$ref': '#/definitions/artifactbuild'}
class bodhi.messages.schemas.update.UpdateRequestMessage(body=None, headers=None, topic=None, properties=None, severity=None)[source]

Bases: UpdateMessage

Sent when an update’s request is changed.

__annotations__ = {}
property summary: str

Return a short, human-readable representation of this message.

This should provide a short summary of the message, much like the subject line of an email.

Returns:

A summary for this message.

class bodhi.messages.schemas.update.UpdateRequestObsoleteV1(body=None, headers=None, topic=None, properties=None, severity=None)[source]

Bases: UpdateRequestMessage

Sent when an update is requested to be obsoleted.

__annotations__ = {}
topic = 'bodhi.update.request.obsolete'
class bodhi.messages.schemas.update.UpdateRequestRevokeV1(body=None, headers=None, topic=None, properties=None, severity=None)[source]

Bases: UpdateRequestMessage

Sent when an update is revoked.

__annotations__ = {}
topic = 'bodhi.update.request.revoke'
class bodhi.messages.schemas.update.UpdateRequestStableV1(body=None, headers=None, topic=None, properties=None, severity=None)[source]

Bases: UpdateRequestMessage

Sent when an update is submitted as a stable candidate.

__annotations__ = {}
topic = 'bodhi.update.request.stable'
class bodhi.messages.schemas.update.UpdateRequestTestingV1(body=None, headers=None, topic=None, properties=None, severity=None)[source]

Bases: UpdateRequestMessage

Sent when an update is submitted as a testing candidate.

__annotations__ = {}
topic = 'bodhi.update.request.testing'
class bodhi.messages.schemas.update.UpdateRequestUnpushV1(body=None, headers=None, topic=None, properties=None, severity=None)[source]

Bases: UpdateRequestMessage

Sent when an update is requested to be unpushed.

__annotations__ = {}
topic = 'bodhi.update.request.unpush'
class bodhi.messages.schemas.update.UpdateRequirementsMetStableV1(body=None, headers=None, topic=None, properties=None, severity=None)[source]

Bases: UpdateMessage

Sent when all the update requirements are meant for stable.

__annotations__ = {}
property summary: str

Return a short, human-readable representation of this message.

This should provide a short summary of the message, much like the subject line of an email.

Returns:

A summary for this message.

topic = 'bodhi.update.requirements_met.stable'

JSON schemas

bodhi.update.comment

{
    "id": "https://bodhi.fedoraproject.org/message-schemas/v1/bodhi.update.comment#",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "description": "Schema for message sent when a comment is added to an update",
    "type": "object",
    "properties": {
        "comment": {
            "type": "object",
            "description": "The comment added to an update",
            "properties": {
                "karma": {
                    "type": "integer",
                    "description": "The karma associated with the comment"
                },
                "text": {
                    "type": "string",
                    "description": "The text of the comment"
                },
                "timestamp": {
                    "type": "string",
                    "description": "The timestamp that the comment was left on."
                },
                "update": {
                    "type": "object",
                    "description": "An update",
                    "properties": {
                        "alias": {
                            "type": "string",
                            "description": "The alias of the update"
                        },
                        "builds": {
                            "type": "array",
                            "description": "A list of builds included in this update",
                            "items": {
                                "$ref": "#/definitions/build"
                            }
                        },
                        "release": {
                            "type": "object",
                            "description": "A release",
                            "properties": {
                                "name": {
                                    "type": "string",
                                    "description": "The name of the release e.g. F32"
                                }
                            },
                            "required": [
                                "name"
                            ]
                        },
                        "request": {
                            "type": [
                                "null",
                                "string"
                            ],
                            "description": "The request of the update, if any",
                            "enum": [
                                null,
                                "testing",
                                "obsolete",
                                "unpush",
                                "revoke",
                                "stable"
                            ]
                        },
                        "status": {
                            "type": "string",
                            "description": "The current status of the update",
                            "enum": [
                                null,
                                "pending",
                                "testing",
                                "stable",
                                "unpushed",
                                "obsolete",
                                "side_tag_active",
                                "side_tag_expired"
                            ]
                        },
                        "user": {
                            "type": "object",
                            "description": "The user that submitted the override",
                            "properties": {
                                "name": {
                                    "type": "string",
                                    "description": "The user's account name"
                                }
                            },
                            "required": [
                                "name"
                            ]
                        }
                    },
                    "required": [
                        "alias",
                        "builds",
                        "release",
                        "request",
                        "status",
                        "user"
                    ]
                },
                "user": {
                    "type": "object",
                    "description": "The user that submitted the override",
                    "properties": {
                        "name": {
                            "type": "string",
                            "description": "The user's account name"
                        }
                    },
                    "required": [
                        "name"
                    ]
                }
            },
            "required": [
                "karma",
                "text",
                "timestamp",
                "update",
                "user"
            ]
        }
    },
    "required": [
        "comment"
    ],
    "definitions": {
        "build": {
            "type": "object",
            "description": "A build",
            "properties": {
                "nvr": {
                    "type": "string",
                    "description": "The nvr the identifies the build in koji"
                }
            },
            "required": [
                "nvr"
            ]
        }
    }
}

bodhi.update.complete.stable

{
    "id": "https://bodhi.fedoraproject.org/message-schemas/v1/bodhi.update.complete.stable#",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "description": "Schema for message sent when an update is pushed stable",
    "type": "object",
    "properties": {
        "update": {
            "type": "object",
            "description": "An update",
            "properties": {
                "alias": {
                    "type": "string",
                    "description": "The alias of the update"
                },
                "builds": {
                    "type": "array",
                    "description": "A list of builds included in this update",
                    "items": {
                        "$ref": "#/definitions/build"
                    }
                },
                "release": {
                    "type": "object",
                    "description": "A release",
                    "properties": {
                        "name": {
                            "type": "string",
                            "description": "The name of the release e.g. F32"
                        }
                    },
                    "required": [
                        "name"
                    ]
                },
                "request": {
                    "type": [
                        "null",
                        "string"
                    ],
                    "description": "The request of the update, if any",
                    "enum": [
                        null,
                        "testing",
                        "obsolete",
                        "unpush",
                        "revoke",
                        "stable"
                    ]
                },
                "status": {
                    "type": "string",
                    "description": "The current status of the update",
                    "enum": [
                        null,
                        "pending",
                        "testing",
                        "stable",
                        "unpushed",
                        "obsolete",
                        "side_tag_active",
                        "side_tag_expired"
                    ]
                },
                "user": {
                    "type": "object",
                    "description": "The user that submitted the override",
                    "properties": {
                        "name": {
                            "type": "string",
                            "description": "The user's account name"
                        }
                    },
                    "required": [
                        "name"
                    ]
                }
            },
            "required": [
                "alias",
                "builds",
                "release",
                "request",
                "status",
                "user"
            ]
        }
    },
    "required": [
        "update"
    ],
    "definitions": {
        "build": {
            "type": "object",
            "description": "A build",
            "properties": {
                "nvr": {
                    "type": "string",
                    "description": "The nvr the identifies the build in koji"
                }
            },
            "required": [
                "nvr"
            ]
        }
    }
}

bodhi.update.complete.testing

{
    "id": "https://bodhi.fedoraproject.org/message-schemas/v1/bodhi.update.complete.testing#",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "description": "Schema for message sent when an update is pushed to testing",
    "type": "object",
    "properties": {
        "update": {
            "type": "object",
            "description": "An update",
            "properties": {
                "alias": {
                    "type": "string",
                    "description": "The alias of the update"
                },
                "builds": {
                    "type": "array",
                    "description": "A list of builds included in this update",
                    "items": {
                        "$ref": "#/definitions/build"
                    }
                },
                "release": {
                    "type": "object",
                    "description": "A release",
                    "properties": {
                        "name": {
                            "type": "string",
                            "description": "The name of the release e.g. F32"
                        }
                    },
                    "required": [
                        "name"
                    ]
                },
                "request": {
                    "type": [
                        "null",
                        "string"
                    ],
                    "description": "The request of the update, if any",
                    "enum": [
                        null,
                        "testing",
                        "obsolete",
                        "unpush",
                        "revoke",
                        "stable"
                    ]
                },
                "status": {
                    "type": "string",
                    "description": "The current status of the update",
                    "enum": [
                        null,
                        "pending",
                        "testing",
                        "stable",
                        "unpushed",
                        "obsolete",
                        "side_tag_active",
                        "side_tag_expired"
                    ]
                },
                "user": {
                    "type": "object",
                    "description": "The user that submitted the override",
                    "properties": {
                        "name": {
                            "type": "string",
                            "description": "The user's account name"
                        }
                    },
                    "required": [
                        "name"
                    ]
                }
            },
            "required": [
                "alias",
                "builds",
                "release",
                "request",
                "status",
                "user"
            ]
        }
    },
    "required": [
        "update"
    ],
    "definitions": {
        "build": {
            "type": "object",
            "description": "A build",
            "properties": {
                "nvr": {
                    "type": "string",
                    "description": "The nvr the identifies the build in koji"
                }
            },
            "required": [
                "nvr"
            ]
        }
    }
}

bodhi.update.edit

{
    "id": "https://bodhi.fedoraproject.org/message-schemas/v1/bodhi.update.edit#",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "description": "Schema for message sent when an update is edited",
    "type": "object",
    "properties": {
        "agent": {
            "type": "string",
            "description": "The user who edited the update"
        },
        "new_bugs": {
            "type": "array",
            "description": "An array of bug ids that have been added to the update",
            "items": {
                "type": "integer",
                "description": "A Bugzilla bug ID"
            }
        },
        "update": {
            "type": "object",
            "description": "An update",
            "properties": {
                "alias": {
                    "type": "string",
                    "description": "The alias of the update"
                },
                "builds": {
                    "type": "array",
                    "description": "A list of builds included in this update",
                    "items": {
                        "$ref": "#/definitions/build"
                    }
                },
                "release": {
                    "type": "object",
                    "description": "A release",
                    "properties": {
                        "name": {
                            "type": "string",
                            "description": "The name of the release e.g. F32"
                        }
                    },
                    "required": [
                        "name"
                    ]
                },
                "request": {
                    "type": [
                        "null",
                        "string"
                    ],
                    "description": "The request of the update, if any",
                    "enum": [
                        null,
                        "testing",
                        "obsolete",
                        "unpush",
                        "revoke",
                        "stable"
                    ]
                },
                "status": {
                    "type": "string",
                    "description": "The current status of the update",
                    "enum": [
                        null,
                        "pending",
                        "testing",
                        "stable",
                        "unpushed",
                        "obsolete",
                        "side_tag_active",
                        "side_tag_expired"
                    ]
                },
                "user": {
                    "type": "object",
                    "description": "The user that submitted the override",
                    "properties": {
                        "name": {
                            "type": "string",
                            "description": "The user's account name"
                        }
                    },
                    "required": [
                        "name"
                    ]
                }
            },
            "required": [
                "alias",
                "builds",
                "release",
                "request",
                "status",
                "user"
            ]
        }
    },
    "required": [
        "agent",
        "new_bugs",
        "update"
    ],
    "definitions": {
        "build": {
            "type": "object",
            "description": "A build",
            "properties": {
                "nvr": {
                    "type": "string",
                    "description": "The nvr the identifies the build in koji"
                }
            },
            "required": [
                "nvr"
            ]
        }
    }
}

bodhi.update.eject

{
    "id": "https://bodhi.fedoraproject.org/message-schemas/v1/bodhi.update.eject#",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "description": "Schema for message sent when an update is ejected from a compose",
    "type": "object",
    "properties": {
        "reason": {
            "type": "string",
            "description": "The reason the update was ejected"
        },
        "repo": {
            "type": "string",
            "description": "The name of the repo that the update is associated with"
        },
        "update": {
            "type": "object",
            "description": "An update",
            "properties": {
                "alias": {
                    "type": "string",
                    "description": "The alias of the update"
                },
                "builds": {
                    "type": "array",
                    "description": "A list of builds included in this update",
                    "items": {
                        "$ref": "#/definitions/build"
                    }
                },
                "release": {
                    "type": "object",
                    "description": "A release",
                    "properties": {
                        "name": {
                            "type": "string",
                            "description": "The name of the release e.g. F32"
                        }
                    },
                    "required": [
                        "name"
                    ]
                },
                "request": {
                    "type": [
                        "null",
                        "string"
                    ],
                    "description": "The request of the update, if any",
                    "enum": [
                        null,
                        "testing",
                        "obsolete",
                        "unpush",
                        "revoke",
                        "stable"
                    ]
                },
                "status": {
                    "type": "string",
                    "description": "The current status of the update",
                    "enum": [
                        null,
                        "pending",
                        "testing",
                        "stable",
                        "unpushed",
                        "obsolete",
                        "side_tag_active",
                        "side_tag_expired"
                    ]
                },
                "user": {
                    "type": "object",
                    "description": "The user that submitted the override",
                    "properties": {
                        "name": {
                            "type": "string",
                            "description": "The user's account name"
                        }
                    },
                    "required": [
                        "name"
                    ]
                }
            },
            "required": [
                "alias",
                "builds",
                "release",
                "request",
                "status",
                "user"
            ]
        }
    },
    "required": [
        "reason",
        "repo",
        "update"
    ],
    "definitions": {
        "build": {
            "type": "object",
            "description": "A build",
            "properties": {
                "nvr": {
                    "type": "string",
                    "description": "The nvr the identifies the build in koji"
                }
            },
            "required": [
                "nvr"
            ]
        }
    }
}

bodhi.update.karma.threshold.reach

{
    "id": "https://bodhi.fedoraproject.org/message-schemas/v1/bodhi.update.karma.threshold.reach#",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "description": "Schema for message sent when an update reaches its karma threshold",
    "type": "object",
    "properties": {
        "status": {
            "type": "string",
            "description": "Which karma threshold was reached",
            "enum": [
                "stable",
                "unstable"
            ]
        },
        "update": {
            "type": "object",
            "description": "An update",
            "properties": {
                "alias": {
                    "type": "string",
                    "description": "The alias of the update"
                },
                "builds": {
                    "type": "array",
                    "description": "A list of builds included in this update",
                    "items": {
                        "$ref": "#/definitions/build"
                    }
                },
                "release": {
                    "type": "object",
                    "description": "A release",
                    "properties": {
                        "name": {
                            "type": "string",
                            "description": "The name of the release e.g. F32"
                        }
                    },
                    "required": [
                        "name"
                    ]
                },
                "request": {
                    "type": [
                        "null",
                        "string"
                    ],
                    "description": "The request of the update, if any",
                    "enum": [
                        null,
                        "testing",
                        "obsolete",
                        "unpush",
                        "revoke",
                        "stable"
                    ]
                },
                "status": {
                    "type": "string",
                    "description": "The current status of the update",
                    "enum": [
                        null,
                        "pending",
                        "testing",
                        "stable",
                        "unpushed",
                        "obsolete",
                        "side_tag_active",
                        "side_tag_expired"
                    ]
                },
                "user": {
                    "type": "object",
                    "description": "The user that submitted the override",
                    "properties": {
                        "name": {
                            "type": "string",
                            "description": "The user's account name"
                        }
                    },
                    "required": [
                        "name"
                    ]
                }
            },
            "required": [
                "alias",
                "builds",
                "release",
                "request",
                "status",
                "user"
            ]
        }
    },
    "required": [
        "status",
        "update"
    ],
    "definitions": {
        "build": {
            "type": "object",
            "description": "A build",
            "properties": {
                "nvr": {
                    "type": "string",
                    "description": "The nvr the identifies the build in koji"
                }
            },
            "required": [
                "nvr"
            ]
        }
    }
}

bodhi.update.status.testing.koji-build-group.build.complete

{
    "id": "https://bodhi.fedoraproject.org/message-schemas/v1/bodhi.update.status.testing#",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "description": "Schema for message sent when an update is ready for testing",
    "type": "object",
    "properties": {
        "contact": {
            "description": "Schema for message sent when an update is ready for testing",
            "type": "object",
            "properties": {
                "name": {
                    "type": "string",
                    "description": "A human readable name of the team running the testing or gating"
                },
                "team": {
                    "type": "string",
                    "description": "A human readable name of the team running the testing or gating"
                },
                "docs": {
                    "type": "string",
                    "description": " Link to documentation with details about the system."
                },
                "email": {
                    "type": "string",
                    "description": "Contact email address."
                }
            },
            "required": [
                "name",
                "team",
                "docs",
                "email"
            ]
        },
        "artifact": {
            "description": "Details about the builds to test.",
            "type": "object",
            "properties": {
                "id": {
                    "description": "The bodhi identifier for this update",
                    "type": "string"
                },
                "type": {
                    "description": "Artifact type, in this case \"rpm-build-group\".",
                    "type": "string"
                },
                "builds": {
                    "type": "array",
                    "description": "A list of builds included in this group",
                    "items": {
                        "$ref": "#/definitions/build"
                    }
                },
                "repository": {
                    "description": "Url of the repository with packages from the side-tag.",
                    "type": "string",
                    "format": "uri"
                },
                "release": {
                    "description": "The release targetted by this side-tag/group of builds.",
                    "type": "string"
                }
            },
            "required": [
                "id",
                "type",
                "builds",
                "repository",
                "release"
            ]
        },
        "generated_at": {
            "description": "Time when the requested was generated, in UTC and ISO 8601 format",
            "type": "string"
        },
        "version": {
            "description": "Version of the specification",
            "type": "string"
        },
        "agent": {
            "description": "Re-trigger request: name of requester, trigger on push: \"bodhi\".",
            "type": "string"
        }
    },
    "required": [
        "contact",
        "artifact",
        "generated_at",
        "version",
        "agent"
    ],
    "definitions": {
        "build": {
            "description": "Details about a build to test.",
            "type": "object",
            "properties": {
                "type": {
                    "description": "Artifact type, in this case \"koji-build\"",
                    "type": "string"
                },
                "id": {
                    "description": "Build ID of the koji build.",
                    "type": "integer"
                },
                "task_id": {
                    "description": "Task ID of the koji build.",
                    "type": [
                        "null",
                        "integer"
                    ]
                },
                "component": {
                    "description": "Name of the component tested.",
                    "type": "string"
                },
                "issuer": {
                    "description": "Build issuer of the artifact.",
                    "type": "string"
                },
                "scratch": {
                    "description": "Indication if the build is a scratch build.",
                    "type": "boolean"
                },
                "nvr": {
                    "description": "Name-version-release of the artifact.",
                    "type": "string"
                }
            },
            "required": [
                "type",
                "id",
                "issuer",
                "component",
                "nvr",
                "scratch"
            ]
        }
    },
    "re-trigger": {
        "type": "bool",
        "description": "This flag is True if the message is sent to re-trigger tests"
    }
}

bodhi.update.status.testing.koji-build-group.build.complete

{
    "id": "https://bodhi.fedoraproject.org/message-schemas/v1/bodhi.update.status.testing#",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "description": "Schema for message sent when an update is ready for testing",
    "type": "object",
    "properties": {
        "contact": {
            "description": "Schema for message sent when an update is ready for testing",
            "type": "object",
            "properties": {
                "name": {
                    "type": "string",
                    "description": "A human readable name of the team running the testing or gating"
                },
                "team": {
                    "type": "string",
                    "description": "A human readable name of the team running the testing or gating"
                },
                "docs": {
                    "type": "string",
                    "description": " Link to documentation with details about the system."
                },
                "email": {
                    "type": "string",
                    "description": "Contact email address."
                }
            },
            "required": [
                "name",
                "team",
                "docs",
                "email"
            ]
        },
        "artifact": {
            "description": "Details about the builds to test.",
            "type": "object",
            "properties": {
                "id": {
                    "description": "The bodhi identifier for this update",
                    "type": "string"
                },
                "type": {
                    "description": "Artifact type, in this case \"rpm-build-group\".",
                    "type": "string"
                },
                "builds": {
                    "type": "array",
                    "description": "A list of builds included in this group",
                    "items": {
                        "$ref": "#/definitions/artifactbuild"
                    }
                },
                "repository": {
                    "description": "Url of the repository with packages from the side-tag.",
                    "type": "string",
                    "format": "uri"
                },
                "release": {
                    "description": "The release targetted by this side-tag/group of builds.",
                    "type": "string"
                }
            },
            "required": [
                "id",
                "type",
                "builds",
                "repository",
                "release"
            ]
        },
        "generated_at": {
            "description": "Time when the requested was generated, in UTC and ISO 8601 format",
            "type": "string"
        },
        "version": {
            "description": "Version of the specification",
            "type": "string"
        },
        "agent": {
            "description": "Re-trigger request: name of requester, trigger on push: \"bodhi\".",
            "type": "string"
        },
        "update": {
            "type": "object",
            "description": "An update",
            "properties": {
                "alias": {
                    "type": "string",
                    "description": "The alias of the update"
                },
                "builds": {
                    "type": "array",
                    "description": "A list of builds included in this update",
                    "items": {
                        "$ref": "#/definitions/build"
                    }
                },
                "release": {
                    "type": "object",
                    "description": "A release",
                    "properties": {
                        "name": {
                            "type": "string",
                            "description": "The name of the release e.g. F32"
                        }
                    },
                    "required": [
                        "name"
                    ]
                },
                "request": {
                    "type": [
                        "null",
                        "string"
                    ],
                    "description": "The request of the update, if any",
                    "enum": [
                        null,
                        "testing",
                        "obsolete",
                        "unpush",
                        "revoke",
                        "stable"
                    ]
                },
                "status": {
                    "type": "string",
                    "description": "The current status of the update",
                    "enum": [
                        null,
                        "pending",
                        "testing",
                        "stable",
                        "unpushed",
                        "obsolete",
                        "side_tag_active",
                        "side_tag_expired"
                    ]
                },
                "user": {
                    "type": "object",
                    "description": "The user that submitted the override",
                    "properties": {
                        "name": {
                            "type": "string",
                            "description": "The user's account name"
                        }
                    },
                    "required": [
                        "name"
                    ]
                }
            },
            "required": [
                "alias",
                "builds",
                "release",
                "request",
                "status",
                "user"
            ]
        }
    },
    "required": [
        "contact",
        "artifact",
        "generated_at",
        "version",
        "agent",
        "update"
    ],
    "definitions": {
        "build": {
            "type": "object",
            "description": "A build",
            "properties": {
                "nvr": {
                    "type": "string",
                    "description": "The nvr the identifies the build in koji"
                }
            },
            "required": [
                "nvr"
            ]
        },
        "artifactbuild": {
            "description": "Details about a build to test.",
            "type": "object",
            "properties": {
                "type": {
                    "description": "Artifact type, in this case \"koji-build\"",
                    "type": "string"
                },
                "id": {
                    "description": "Build ID of the koji build.",
                    "type": "integer"
                },
                "task_id": {
                    "description": "Task ID of the koji build.",
                    "type": [
                        "null",
                        "integer"
                    ]
                },
                "component": {
                    "description": "Name of the component tested.",
                    "type": "string"
                },
                "issuer": {
                    "description": "Build issuer of the artifact.",
                    "type": "string"
                },
                "scratch": {
                    "description": "Indication if the build is a scratch build.",
                    "type": "boolean"
                },
                "nvr": {
                    "description": "Name-version-release of the artifact.",
                    "type": "string"
                }
            },
            "required": [
                "type",
                "id",
                "issuer",
                "component",
                "nvr",
                "scratch"
            ]
        }
    },
    "re-trigger": {
        "type": "bool",
        "description": "This flag is True if the message is sent to re-trigger tests"
    }
}

bodhi.update.request.obsolete

{
    "id": "https://bodhi.fedoraproject.org/message-schemas/v1/bodhi.update.request.obsolete#",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "description": "Schema for message sent when an update is obsoleted",
    "type": "object",
    "properties": {
        "agent": {
            "type": "string",
            "description": "The user who requested the update to be obsoleted"
        },
        "update": {
            "type": "object",
            "description": "An update",
            "properties": {
                "alias": {
                    "type": "string",
                    "description": "The alias of the update"
                },
                "builds": {
                    "type": "array",
                    "description": "A list of builds included in this update",
                    "items": {
                        "$ref": "#/definitions/build"
                    }
                },
                "release": {
                    "type": "object",
                    "description": "A release",
                    "properties": {
                        "name": {
                            "type": "string",
                            "description": "The name of the release e.g. F32"
                        }
                    },
                    "required": [
                        "name"
                    ]
                },
                "request": {
                    "type": [
                        "null",
                        "string"
                    ],
                    "description": "The request of the update, if any",
                    "enum": [
                        null,
                        "testing",
                        "obsolete",
                        "unpush",
                        "revoke",
                        "stable"
                    ]
                },
                "status": {
                    "type": "string",
                    "description": "The current status of the update",
                    "enum": [
                        null,
                        "pending",
                        "testing",
                        "stable",
                        "unpushed",
                        "obsolete",
                        "side_tag_active",
                        "side_tag_expired"
                    ]
                },
                "user": {
                    "type": "object",
                    "description": "The user that submitted the override",
                    "properties": {
                        "name": {
                            "type": "string",
                            "description": "The user's account name"
                        }
                    },
                    "required": [
                        "name"
                    ]
                }
            },
            "required": [
                "alias",
                "builds",
                "release",
                "request",
                "status",
                "user"
            ]
        }
    },
    "required": [
        "agent",
        "update"
    ],
    "definitions": {
        "build": {
            "type": "object",
            "description": "A build",
            "properties": {
                "nvr": {
                    "type": "string",
                    "description": "The nvr the identifies the build in koji"
                }
            },
            "required": [
                "nvr"
            ]
        }
    }
}

bodhi.update.request.revoke

{
    "id": "https://bodhi.fedoraproject.org/message-schemas/v1/bodhi.update.request.revoke#",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "description": "Schema for message sent when an update is revoked",
    "type": "object",
    "properties": {
        "agent": {
            "type": "string",
            "description": "The user who requested the update to be revoked"
        },
        "update": {
            "type": "object",
            "description": "An update",
            "properties": {
                "alias": {
                    "type": "string",
                    "description": "The alias of the update"
                },
                "builds": {
                    "type": "array",
                    "description": "A list of builds included in this update",
                    "items": {
                        "$ref": "#/definitions/build"
                    }
                },
                "release": {
                    "type": "object",
                    "description": "A release",
                    "properties": {
                        "name": {
                            "type": "string",
                            "description": "The name of the release e.g. F32"
                        }
                    },
                    "required": [
                        "name"
                    ]
                },
                "request": {
                    "type": [
                        "null",
                        "string"
                    ],
                    "description": "The request of the update, if any",
                    "enum": [
                        null,
                        "testing",
                        "obsolete",
                        "unpush",
                        "revoke",
                        "stable"
                    ]
                },
                "status": {
                    "type": "string",
                    "description": "The current status of the update",
                    "enum": [
                        null,
                        "pending",
                        "testing",
                        "stable",
                        "unpushed",
                        "obsolete",
                        "side_tag_active",
                        "side_tag_expired"
                    ]
                },
                "user": {
                    "type": "object",
                    "description": "The user that submitted the override",
                    "properties": {
                        "name": {
                            "type": "string",
                            "description": "The user's account name"
                        }
                    },
                    "required": [
                        "name"
                    ]
                }
            },
            "required": [
                "alias",
                "builds",
                "release",
                "request",
                "status",
                "user"
            ]
        }
    },
    "required": [
        "agent",
        "update"
    ],
    "definitions": {
        "build": {
            "type": "object",
            "description": "A build",
            "properties": {
                "nvr": {
                    "type": "string",
                    "description": "The nvr the identifies the build in koji"
                }
            },
            "required": [
                "nvr"
            ]
        }
    }
}

bodhi.update.request.stable

{
    "id": "https://bodhi.fedoraproject.org/message-schemas/v1/bodhi.update.request.stable#",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "description": "Schema for message sent when an update is requested stable",
    "type": "object",
    "properties": {
        "agent": {
            "type": "string",
            "description": "The user who requested the update to be stable"
        },
        "update": {
            "type": "object",
            "description": "An update",
            "properties": {
                "alias": {
                    "type": "string",
                    "description": "The alias of the update"
                },
                "builds": {
                    "type": "array",
                    "description": "A list of builds included in this update",
                    "items": {
                        "$ref": "#/definitions/build"
                    }
                },
                "release": {
                    "type": "object",
                    "description": "A release",
                    "properties": {
                        "name": {
                            "type": "string",
                            "description": "The name of the release e.g. F32"
                        }
                    },
                    "required": [
                        "name"
                    ]
                },
                "request": {
                    "type": [
                        "null",
                        "string"
                    ],
                    "description": "The request of the update, if any",
                    "enum": [
                        null,
                        "testing",
                        "obsolete",
                        "unpush",
                        "revoke",
                        "stable"
                    ]
                },
                "status": {
                    "type": "string",
                    "description": "The current status of the update",
                    "enum": [
                        null,
                        "pending",
                        "testing",
                        "stable",
                        "unpushed",
                        "obsolete",
                        "side_tag_active",
                        "side_tag_expired"
                    ]
                },
                "user": {
                    "type": "object",
                    "description": "The user that submitted the override",
                    "properties": {
                        "name": {
                            "type": "string",
                            "description": "The user's account name"
                        }
                    },
                    "required": [
                        "name"
                    ]
                }
            },
            "required": [
                "alias",
                "builds",
                "release",
                "request",
                "status",
                "user"
            ]
        }
    },
    "required": [
        "agent",
        "update"
    ],
    "definitions": {
        "build": {
            "type": "object",
            "description": "A build",
            "properties": {
                "nvr": {
                    "type": "string",
                    "description": "The nvr the identifies the build in koji"
                }
            },
            "required": [
                "nvr"
            ]
        }
    }
}

bodhi.update.request.testing

{
    "id": "https://bodhi.fedoraproject.org/message-schemas/v1/bodhi.update.request.testing#",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "description": "Schema for message sent when an update is requested testing",
    "type": "object",
    "properties": {
        "agent": {
            "type": "string",
            "description": "The user who requested the update to be tested"
        },
        "update": {
            "type": "object",
            "description": "An update",
            "properties": {
                "alias": {
                    "type": "string",
                    "description": "The alias of the update"
                },
                "builds": {
                    "type": "array",
                    "description": "A list of builds included in this update",
                    "items": {
                        "$ref": "#/definitions/build"
                    }
                },
                "release": {
                    "type": "object",
                    "description": "A release",
                    "properties": {
                        "name": {
                            "type": "string",
                            "description": "The name of the release e.g. F32"
                        }
                    },
                    "required": [
                        "name"
                    ]
                },
                "request": {
                    "type": [
                        "null",
                        "string"
                    ],
                    "description": "The request of the update, if any",
                    "enum": [
                        null,
                        "testing",
                        "obsolete",
                        "unpush",
                        "revoke",
                        "stable"
                    ]
                },
                "status": {
                    "type": "string",
                    "description": "The current status of the update",
                    "enum": [
                        null,
                        "pending",
                        "testing",
                        "stable",
                        "unpushed",
                        "obsolete",
                        "side_tag_active",
                        "side_tag_expired"
                    ]
                },
                "user": {
                    "type": "object",
                    "description": "The user that submitted the override",
                    "properties": {
                        "name": {
                            "type": "string",
                            "description": "The user's account name"
                        }
                    },
                    "required": [
                        "name"
                    ]
                }
            },
            "required": [
                "alias",
                "builds",
                "release",
                "request",
                "status",
                "user"
            ]
        }
    },
    "required": [
        "agent",
        "update"
    ],
    "definitions": {
        "build": {
            "type": "object",
            "description": "A build",
            "properties": {
                "nvr": {
                    "type": "string",
                    "description": "The nvr the identifies the build in koji"
                }
            },
            "required": [
                "nvr"
            ]
        }
    }
}

bodhi.update.request.unpush

{
    "id": "https://bodhi.fedoraproject.org/message-schemas/v1/bodhi.update.request.unpush#",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "description": "Schema for message sent when an update is unpushed",
    "type": "object",
    "properties": {
        "agent": {
            "type": "string",
            "description": "The user who requested the update to be unpushed"
        },
        "update": {
            "type": "object",
            "description": "An update",
            "properties": {
                "alias": {
                    "type": "string",
                    "description": "The alias of the update"
                },
                "builds": {
                    "type": "array",
                    "description": "A list of builds included in this update",
                    "items": {
                        "$ref": "#/definitions/build"
                    }
                },
                "release": {
                    "type": "object",
                    "description": "A release",
                    "properties": {
                        "name": {
                            "type": "string",
                            "description": "The name of the release e.g. F32"
                        }
                    },
                    "required": [
                        "name"
                    ]
                },
                "request": {
                    "type": [
                        "null",
                        "string"
                    ],
                    "description": "The request of the update, if any",
                    "enum": [
                        null,
                        "testing",
                        "obsolete",
                        "unpush",
                        "revoke",
                        "stable"
                    ]
                },
                "status": {
                    "type": "string",
                    "description": "The current status of the update",
                    "enum": [
                        null,
                        "pending",
                        "testing",
                        "stable",
                        "unpushed",
                        "obsolete",
                        "side_tag_active",
                        "side_tag_expired"
                    ]
                },
                "user": {
                    "type": "object",
                    "description": "The user that submitted the override",
                    "properties": {
                        "name": {
                            "type": "string",
                            "description": "The user's account name"
                        }
                    },
                    "required": [
                        "name"
                    ]
                }
            },
            "required": [
                "alias",
                "builds",
                "release",
                "request",
                "status",
                "user"
            ]
        }
    },
    "required": [
        "agent",
        "update"
    ],
    "definitions": {
        "build": {
            "type": "object",
            "description": "A build",
            "properties": {
                "nvr": {
                    "type": "string",
                    "description": "The nvr the identifies the build in koji"
                }
            },
            "required": [
                "nvr"
            ]
        }
    }
}

bodhi.update.requirements_met.stable

{
    "id": "https://bodhi.fedoraproject.org/message-schemas/v1/bodhi.update.requirements_met.stable#",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "description": "Schema for message sent when an update meets stable requirements",
    "type": "object",
    "properties": {
        "update": {
            "type": "object",
            "description": "An update",
            "properties": {
                "alias": {
                    "type": "string",
                    "description": "The alias of the update"
                },
                "builds": {
                    "type": "array",
                    "description": "A list of builds included in this update",
                    "items": {
                        "$ref": "#/definitions/build"
                    }
                },
                "release": {
                    "type": "object",
                    "description": "A release",
                    "properties": {
                        "name": {
                            "type": "string",
                            "description": "The name of the release e.g. F32"
                        }
                    },
                    "required": [
                        "name"
                    ]
                },
                "request": {
                    "type": [
                        "null",
                        "string"
                    ],
                    "description": "The request of the update, if any",
                    "enum": [
                        null,
                        "testing",
                        "obsolete",
                        "unpush",
                        "revoke",
                        "stable"
                    ]
                },
                "status": {
                    "type": "string",
                    "description": "The current status of the update",
                    "enum": [
                        null,
                        "pending",
                        "testing",
                        "stable",
                        "unpushed",
                        "obsolete",
                        "side_tag_active",
                        "side_tag_expired"
                    ]
                },
                "user": {
                    "type": "object",
                    "description": "The user that submitted the override",
                    "properties": {
                        "name": {
                            "type": "string",
                            "description": "The user's account name"
                        }
                    },
                    "required": [
                        "name"
                    ]
                }
            },
            "required": [
                "alias",
                "builds",
                "release",
                "request",
                "status",
                "user"
            ]
        }
    },
    "required": [
        "update"
    ],
    "definitions": {
        "build": {
            "type": "object",
            "description": "A build",
            "properties": {
                "nvr": {
                    "type": "string",
                    "description": "The nvr the identifies the build in koji"
                }
            },
            "required": [
                "nvr"
            ]
        }
    }
}