// File generated from our OpenAPI spec by Stainless.
import { APIResource } from 'cloudflare/resource';
import * as HistoryAPI from 'cloudflare/resources/pages/projects/deployments/history/history';
import { multipartFormRequestOptions } from 'cloudflare/core';
export class Deployments extends APIResource {
    constructor() {
        super(...arguments);
        this.history = new HistoryAPI.History(this._client);
    }
    /**
     * Start a new deployment from production. The repository and account must have
     * already been authorized on the Cloudflare Pages dashboard.
     */
    create(projectName, params, options) {
        const { account_id, ...body } = params;
        return this._client.post(`/accounts/${account_id}/pages/projects/${projectName}/deployments`, multipartFormRequestOptions({ body, ...options }))._thenUnwrap((obj) => obj.result);
    }
    /**
     * Fetch a list of project deployments.
     */
    list(projectName, params, options) {
        const { account_id } = params;
        return this._client.get(`/accounts/${account_id}/pages/projects/${projectName}/deployments`, options)._thenUnwrap((obj) => obj.result);
    }
    /**
     * Delete a deployment.
     */
    delete(projectName, deploymentId, params, options) {
        const { account_id } = params;
        return this._client.delete(`/accounts/${account_id}/pages/projects/${projectName}/deployments/${deploymentId}`, options);
    }
    /**
     * Fetch information about a deployment.
     */
    get(projectName, deploymentId, params, options) {
        const { account_id } = params;
        return this._client.get(`/accounts/${account_id}/pages/projects/${projectName}/deployments/${deploymentId}`, options)._thenUnwrap((obj) => obj.result);
    }
    /**
     * Retry a previous deployment.
     */
    retry(projectName, deploymentId, params, options) {
        const { account_id } = params;
        return this._client.post(`/accounts/${account_id}/pages/projects/${projectName}/deployments/${deploymentId}/retry`, options)._thenUnwrap((obj) => obj.result);
    }
    /**
     * Rollback the production deployment to a previous deployment. You can only
     * rollback to succesful builds on production.
     */
    rollback(projectName, deploymentId, params, options) {
        const { account_id } = params;
        return this._client.post(`/accounts/${account_id}/pages/projects/${projectName}/deployments/${deploymentId}/rollback`, options)._thenUnwrap((obj) => obj.result);
    }
}
(function (Deployments) {
    Deployments.History = HistoryAPI.History;
})(Deployments || (Deployments = {}));
//# sourceMappingURL=deployments.mjs.map