From 9a5319081ab23a17d8a0aa41f2dc67c1150b7fd6 Mon Sep 17 00:00:00 2001 From: Karin Hendrikse <30577427+khendrikse@users.noreply.github.com> Date: Fri, 7 Nov 2025 14:30:11 +0100 Subject: [PATCH] fix: update docs and on ssl endpoint --- .../create_site_build_parameters.go | 166 ++++++++++++++++-- .../operations/create_site_build_responses.go | 84 +++++++++ go/plumbing/operations/operations_client.go | 12 +- ...ovision_site_tls_certificate_parameters.go | 15 +- ...rovision_site_tls_certificate_responses.go | 28 +++ swagger.yml | 57 +++++- 6 files changed, 340 insertions(+), 22 deletions(-) diff --git a/go/plumbing/operations/create_site_build_parameters.go b/go/plumbing/operations/create_site_build_parameters.go index cc0ba39f..352df060 100644 --- a/go/plumbing/operations/create_site_build_parameters.go +++ b/go/plumbing/operations/create_site_build_parameters.go @@ -14,8 +14,7 @@ import ( "github.com/go-openapi/runtime" cr "github.com/go-openapi/runtime/client" "github.com/go-openapi/strfmt" - - "github.com/netlify/open-api/v2/go/models" + "github.com/go-openapi/swag" ) // NewCreateSiteBuildParams creates a new CreateSiteBuildParams object @@ -63,10 +62,33 @@ for the create site build operation typically these are written to a http.Reques */ type CreateSiteBuildParams struct { - /*Build*/ - Build *models.BuildSetup + /*Branch + The branch to build; defaults to main branch + + */ + Branch *string + /*ClearCache + Whether to clear the build cache before building + + */ + ClearCache *bool + /*Image + The build image tag to use for the build + + */ + Image *string /*SiteID*/ SiteID string + /*TemplateID + The build template to use for the build + + */ + TemplateID *string + /*Title + The title of the build + + */ + Title *string timeout time.Duration Context context.Context @@ -106,15 +128,37 @@ func (o *CreateSiteBuildParams) SetHTTPClient(client *http.Client) { o.HTTPClient = client } -// WithBuild adds the build to the create site build params -func (o *CreateSiteBuildParams) WithBuild(build *models.BuildSetup) *CreateSiteBuildParams { - o.SetBuild(build) +// WithBranch adds the branch to the create site build params +func (o *CreateSiteBuildParams) WithBranch(branch *string) *CreateSiteBuildParams { + o.SetBranch(branch) + return o +} + +// SetBranch adds the branch to the create site build params +func (o *CreateSiteBuildParams) SetBranch(branch *string) { + o.Branch = branch +} + +// WithClearCache adds the clearCache to the create site build params +func (o *CreateSiteBuildParams) WithClearCache(clearCache *bool) *CreateSiteBuildParams { + o.SetClearCache(clearCache) return o } -// SetBuild adds the build to the create site build params -func (o *CreateSiteBuildParams) SetBuild(build *models.BuildSetup) { - o.Build = build +// SetClearCache adds the clearCache to the create site build params +func (o *CreateSiteBuildParams) SetClearCache(clearCache *bool) { + o.ClearCache = clearCache +} + +// WithImage adds the image to the create site build params +func (o *CreateSiteBuildParams) WithImage(image *string) *CreateSiteBuildParams { + o.SetImage(image) + return o +} + +// SetImage adds the image to the create site build params +func (o *CreateSiteBuildParams) SetImage(image *string) { + o.Image = image } // WithSiteID adds the siteID to the create site build params @@ -128,6 +172,28 @@ func (o *CreateSiteBuildParams) SetSiteID(siteID string) { o.SiteID = siteID } +// WithTemplateID adds the templateID to the create site build params +func (o *CreateSiteBuildParams) WithTemplateID(templateID *string) *CreateSiteBuildParams { + o.SetTemplateID(templateID) + return o +} + +// SetTemplateID adds the templateId to the create site build params +func (o *CreateSiteBuildParams) SetTemplateID(templateID *string) { + o.TemplateID = templateID +} + +// WithTitle adds the title to the create site build params +func (o *CreateSiteBuildParams) WithTitle(title *string) *CreateSiteBuildParams { + o.SetTitle(title) + return o +} + +// SetTitle adds the title to the create site build params +func (o *CreateSiteBuildParams) SetTitle(title *string) { + o.Title = title +} + // WriteToRequest writes these params to a swagger request func (o *CreateSiteBuildParams) WriteToRequest(r runtime.ClientRequest, reg strfmt.Registry) error { @@ -136,10 +202,52 @@ func (o *CreateSiteBuildParams) WriteToRequest(r runtime.ClientRequest, reg strf } var res []error - if o.Build != nil { - if err := r.SetBodyParam(o.Build); err != nil { - return err + if o.Branch != nil { + + // query param branch + var qrBranch string + if o.Branch != nil { + qrBranch = *o.Branch } + qBranch := qrBranch + if qBranch != "" { + if err := r.SetQueryParam("branch", qBranch); err != nil { + return err + } + } + + } + + if o.ClearCache != nil { + + // query param clear_cache + var qrClearCache bool + if o.ClearCache != nil { + qrClearCache = *o.ClearCache + } + qClearCache := swag.FormatBool(qrClearCache) + if qClearCache != "" { + if err := r.SetQueryParam("clear_cache", qClearCache); err != nil { + return err + } + } + + } + + if o.Image != nil { + + // query param image + var qrImage string + if o.Image != nil { + qrImage = *o.Image + } + qImage := qrImage + if qImage != "" { + if err := r.SetQueryParam("image", qImage); err != nil { + return err + } + } + } // path param site_id @@ -147,6 +255,38 @@ func (o *CreateSiteBuildParams) WriteToRequest(r runtime.ClientRequest, reg strf return err } + if o.TemplateID != nil { + + // query param template_id + var qrTemplateID string + if o.TemplateID != nil { + qrTemplateID = *o.TemplateID + } + qTemplateID := qrTemplateID + if qTemplateID != "" { + if err := r.SetQueryParam("template_id", qTemplateID); err != nil { + return err + } + } + + } + + if o.Title != nil { + + // query param title + var qrTitle string + if o.Title != nil { + qrTitle = *o.Title + } + qTitle := qrTitle + if qTitle != "" { + if err := r.SetQueryParam("title", qTitle); err != nil { + return err + } + } + + } + if len(res) > 0 { return errors.CompositeValidationError(res...) } diff --git a/go/plumbing/operations/create_site_build_responses.go b/go/plumbing/operations/create_site_build_responses.go index 81973f36..b72e69d6 100644 --- a/go/plumbing/operations/create_site_build_responses.go +++ b/go/plumbing/operations/create_site_build_responses.go @@ -29,6 +29,24 @@ func (o *CreateSiteBuildReader) ReadResponse(response runtime.ClientResponse, co return nil, err } return result, nil + case 400: + result := NewCreateSiteBuildBadRequest() + if err := result.readResponse(response, consumer, o.formats); err != nil { + return nil, err + } + return nil, result + case 404: + result := NewCreateSiteBuildNotFound() + if err := result.readResponse(response, consumer, o.formats); err != nil { + return nil, err + } + return nil, result + case 422: + result := NewCreateSiteBuildUnprocessableEntity() + if err := result.readResponse(response, consumer, o.formats); err != nil { + return nil, err + } + return nil, result default: result := NewCreateSiteBuildDefault(response.Code()) if err := result.readResponse(response, consumer, o.formats); err != nil { @@ -75,6 +93,72 @@ func (o *CreateSiteBuildOK) readResponse(response runtime.ClientResponse, consum return nil } +// NewCreateSiteBuildBadRequest creates a CreateSiteBuildBadRequest with default headers values +func NewCreateSiteBuildBadRequest() *CreateSiteBuildBadRequest { + return &CreateSiteBuildBadRequest{} +} + +/* +CreateSiteBuildBadRequest handles this case with default header values. + +Bad Request +*/ +type CreateSiteBuildBadRequest struct { +} + +func (o *CreateSiteBuildBadRequest) Error() string { + return fmt.Sprintf("[POST /sites/{site_id}/builds][%d] createSiteBuildBadRequest ", 400) +} + +func (o *CreateSiteBuildBadRequest) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { + + return nil +} + +// NewCreateSiteBuildNotFound creates a CreateSiteBuildNotFound with default headers values +func NewCreateSiteBuildNotFound() *CreateSiteBuildNotFound { + return &CreateSiteBuildNotFound{} +} + +/* +CreateSiteBuildNotFound handles this case with default header values. + +Not Found +*/ +type CreateSiteBuildNotFound struct { +} + +func (o *CreateSiteBuildNotFound) Error() string { + return fmt.Sprintf("[POST /sites/{site_id}/builds][%d] createSiteBuildNotFound ", 404) +} + +func (o *CreateSiteBuildNotFound) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { + + return nil +} + +// NewCreateSiteBuildUnprocessableEntity creates a CreateSiteBuildUnprocessableEntity with default headers values +func NewCreateSiteBuildUnprocessableEntity() *CreateSiteBuildUnprocessableEntity { + return &CreateSiteBuildUnprocessableEntity{} +} + +/* +CreateSiteBuildUnprocessableEntity handles this case with default header values. + +Unprocessable Entity +*/ +type CreateSiteBuildUnprocessableEntity struct { +} + +func (o *CreateSiteBuildUnprocessableEntity) Error() string { + return fmt.Sprintf("[POST /sites/{site_id}/builds][%d] createSiteBuildUnprocessableEntity ", 422) +} + +func (o *CreateSiteBuildUnprocessableEntity) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { + + return nil +} + // NewCreateSiteBuildDefault creates a CreateSiteBuildDefault with default headers values func NewCreateSiteBuildDefault(code int) *CreateSiteBuildDefault { return &CreateSiteBuildDefault{ diff --git a/go/plumbing/operations/operations_client.go b/go/plumbing/operations/operations_client.go index ea6829a4..0f2bc487 100644 --- a/go/plumbing/operations/operations_client.go +++ b/go/plumbing/operations/operations_client.go @@ -1015,7 +1015,7 @@ func (a *Client) CreateSiteAsset(params *CreateSiteAssetParams, authInfo runtime } /* -CreateSiteBuild create site build API +CreateSiteBuild Runs a build for a site. The build will be scheduled to run at the first opportunity, but it might not start immediately if insufficient account build capacity is available. Files for build could be also uploaded as a zipped site. */ func (a *Client) CreateSiteBuild(params *CreateSiteBuildParams, authInfo runtime.ClientAuthInfoWriter) (*CreateSiteBuildOK, error) { // TODO: Validate the params before sending @@ -4282,7 +4282,15 @@ func (a *Client) NotifyBuildStart(params *NotifyBuildStartParams, authInfo runti } /* -ProvisionSiteTLSCertificate provision site TLS certificate API + ProvisionSiteTLSCertificate Provisions or updates a TLS certificate for the site. + +**Creating a certificate (site has no certificate):** +- Omit certificate params to initiate Let's Encrypt provisioning +- Provide certificate, key, and ca_certificates to upload a custom certificate + +**Updating a certificate (site already has a certificate):** +- REQUIRES certificate, key, and ca_certificates to replace with a new custom certificate +- Use POST /api/v1/sites/{site_id}/ssl/renew to renew an existing Let's Encrypt certificate */ func (a *Client) ProvisionSiteTLSCertificate(params *ProvisionSiteTLSCertificateParams, authInfo runtime.ClientAuthInfoWriter) (*ProvisionSiteTLSCertificateOK, error) { // TODO: Validate the params before sending diff --git a/go/plumbing/operations/provision_site_tls_certificate_parameters.go b/go/plumbing/operations/provision_site_tls_certificate_parameters.go index a6ab0b0a..1b91b1cb 100644 --- a/go/plumbing/operations/provision_site_tls_certificate_parameters.go +++ b/go/plumbing/operations/provision_site_tls_certificate_parameters.go @@ -61,11 +61,20 @@ for the provision site TLS certificate operation typically these are written to */ type ProvisionSiteTLSCertificateParams struct { - /*CaCertificates*/ + /*CaCertificates + PEM-encoded CA certificate chain. Required when updating an existing certificate. + + */ CaCertificates *string - /*Certificate*/ + /*Certificate + PEM-encoded certificate. Required when updating an existing certificate. + + */ Certificate *string - /*Key*/ + /*Key + PEM-encoded private key. Required when updating an existing certificate. + + */ Key *string /*SiteID*/ SiteID string diff --git a/go/plumbing/operations/provision_site_tls_certificate_responses.go b/go/plumbing/operations/provision_site_tls_certificate_responses.go index 7fce016e..bcce5e73 100644 --- a/go/plumbing/operations/provision_site_tls_certificate_responses.go +++ b/go/plumbing/operations/provision_site_tls_certificate_responses.go @@ -29,6 +29,12 @@ func (o *ProvisionSiteTLSCertificateReader) ReadResponse(response runtime.Client return nil, err } return result, nil + case 422: + result := NewProvisionSiteTLSCertificateUnprocessableEntity() + if err := result.readResponse(response, consumer, o.formats); err != nil { + return nil, err + } + return nil, result default: result := NewProvisionSiteTLSCertificateDefault(response.Code()) if err := result.readResponse(response, consumer, o.formats); err != nil { @@ -75,6 +81,28 @@ func (o *ProvisionSiteTLSCertificateOK) readResponse(response runtime.ClientResp return nil } +// NewProvisionSiteTLSCertificateUnprocessableEntity creates a ProvisionSiteTLSCertificateUnprocessableEntity with default headers values +func NewProvisionSiteTLSCertificateUnprocessableEntity() *ProvisionSiteTLSCertificateUnprocessableEntity { + return &ProvisionSiteTLSCertificateUnprocessableEntity{} +} + +/* +ProvisionSiteTLSCertificateUnprocessableEntity handles this case with default header values. + +Unprocessable Entity. Returns errors such as: "certificate parameter is required when updating an existing certificate" (when updating without params), "No custom domain configured", or "bad dns for custom domain" +*/ +type ProvisionSiteTLSCertificateUnprocessableEntity struct { +} + +func (o *ProvisionSiteTLSCertificateUnprocessableEntity) Error() string { + return fmt.Sprintf("[POST /sites/{site_id}/ssl][%d] provisionSiteTlsCertificateUnprocessableEntity ", 422) +} + +func (o *ProvisionSiteTLSCertificateUnprocessableEntity) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { + + return nil +} + // NewProvisionSiteTLSCertificateDefault creates a ProvisionSiteTLSCertificateDefault with default headers values func NewProvisionSiteTLSCertificateDefault(code int) *ProvisionSiteTLSCertificateDefault { return &ProvisionSiteTLSCertificateDefault{ diff --git a/swagger.yml b/swagger.yml index c507f934..f20b4f72 100644 --- a/swagger.yml +++ b/swagger.yml @@ -158,6 +158,22 @@ paths: post: operationId: provisionSiteTLSCertificate tags: [sniCertificate] + description: >- + Provisions or updates a TLS certificate for the site. + + + **Creating a certificate (site has no certificate):** + + - Omit certificate params to initiate Let's Encrypt provisioning + + - Provide certificate, key, and ca_certificates to upload a custom certificate + + + **Updating a certificate (site already has a certificate):** + + - REQUIRES certificate, key, and ca_certificates to replace with a new custom certificate + + - Use POST /api/v1/sites/{site_id}/ssl/renew to renew an existing Let's Encrypt certificate parameters: - name: site_id type: string @@ -166,17 +182,23 @@ paths: - name: certificate type: string in: query + description: PEM-encoded certificate. Required when updating an existing certificate. - name: key type: string in: query + description: PEM-encoded private key. Required when updating an existing certificate. - name: ca_certificates type: string in: query + description: PEM-encoded CA certificate chain. Required when updating an existing certificate. responses: '200': description: OK schema: $ref: '#/definitions/sniCertificate' + '422': + description: >- + Unprocessable Entity. Returns errors such as: "certificate parameter is required when updating an existing certificate" (when updating without params), "No custom domain configured", or "bad dns for custom domain" default: $ref: '#/responses/error' get: @@ -1208,17 +1230,44 @@ paths: post: operationId: createSiteBuild tags: [build] + description: 'Runs a build for a site. The build will be scheduled to run at the first opportunity, but it might not start immediately if insufficient account build capacity is available. Files for build could be also uploaded as a zipped site.' parameters: - - name: build - in: body - schema: - $ref: '#/definitions/buildSetup' + - name: branch + description: The branch to build; defaults to main branch required: false + in: query + type: string + - name: clear_cache + description: Whether to clear the build cache before building + required: false + in: query + type: boolean + - name: image + description: The build image tag to use for the build + required: false + in: query + type: string + - name: template_id + description: The build template to use for the build + required: false + in: query + type: string + - name: title + description: The title of the build + required: false + in: query + type: string responses: '200': description: OK schema: $ref: '#/definitions/build' + '400': + description: Bad Request + '404': + description: Not Found + '422': + description: Unprocessable Entity default: $ref: '#/responses/error' /sites/{site_id}/deployed-branches: