From 78a6862631592d9d2c7d4e620f5775038da4a09b Mon Sep 17 00:00:00 2001 From: Netlify Bot Date: Thu, 23 Apr 2026 11:37:50 +0100 Subject: [PATCH] feat: add database endpoints --- go/models/database_migration.go | 52 ++++ go/models/database_migration_detail.go | 52 ++++ .../list_database_migrations_response.go | 80 ++++++ go/models/reset_database_branch_request.go | 43 ++++ go/models/reset_database_branch_response.go | 49 ++++ .../get_site_database_migration_parameters.go | 186 ++++++++++++++ .../get_site_database_migration_responses.go | 175 +++++++++++++ ...ist_site_database_migrations_parameters.go | 165 ++++++++++++ ...list_site_database_migrations_responses.go | 175 +++++++++++++ go/plumbing/operations/operations_client.go | 108 ++++++++ .../reset_site_database_branch_parameters.go | 240 ++++++++++++++++++ .../reset_site_database_branch_responses.go | 175 +++++++++++++ swagger.yml | 201 +++++++++++++-- 13 files changed, 1685 insertions(+), 16 deletions(-) create mode 100644 go/models/database_migration.go create mode 100644 go/models/database_migration_detail.go create mode 100644 go/models/list_database_migrations_response.go create mode 100644 go/models/reset_database_branch_request.go create mode 100644 go/models/reset_database_branch_response.go create mode 100644 go/plumbing/operations/get_site_database_migration_parameters.go create mode 100644 go/plumbing/operations/get_site_database_migration_responses.go create mode 100644 go/plumbing/operations/list_site_database_migrations_parameters.go create mode 100644 go/plumbing/operations/list_site_database_migrations_responses.go create mode 100644 go/plumbing/operations/reset_site_database_branch_parameters.go create mode 100644 go/plumbing/operations/reset_site_database_branch_responses.go diff --git a/go/models/database_migration.go b/go/models/database_migration.go new file mode 100644 index 00000000..56493b10 --- /dev/null +++ b/go/models/database_migration.go @@ -0,0 +1,52 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package models + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + "github.com/go-openapi/strfmt" + "github.com/go-openapi/swag" +) + +// DatabaseMigration A migration available to a database branch +// +// swagger:model databaseMigration +type DatabaseMigration struct { + + // Whether this migration has been applied to the branch + Applied bool `json:"applied,omitempty"` + + // The migration name + Name string `json:"name,omitempty"` + + // The path to the migration file in the deploy bundle + Path string `json:"path,omitempty"` + + // The migration version number + Version int64 `json:"version,omitempty"` +} + +// Validate validates this database migration +func (m *DatabaseMigration) Validate(formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (m *DatabaseMigration) MarshalBinary() ([]byte, error) { + if m == nil { + return nil, nil + } + return swag.WriteJSON(m) +} + +// UnmarshalBinary interface implementation +func (m *DatabaseMigration) UnmarshalBinary(b []byte) error { + var res DatabaseMigration + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *m = res + return nil +} diff --git a/go/models/database_migration_detail.go b/go/models/database_migration_detail.go new file mode 100644 index 00000000..12a1eb01 --- /dev/null +++ b/go/models/database_migration_detail.go @@ -0,0 +1,52 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package models + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + "github.com/go-openapi/strfmt" + "github.com/go-openapi/swag" +) + +// DatabaseMigrationDetail A migration with its file contents +// +// swagger:model databaseMigrationDetail +type DatabaseMigrationDetail struct { + + // The raw contents of the migration file + Content string `json:"content,omitempty"` + + // The migration name + Name string `json:"name,omitempty"` + + // The path to the migration file in the deploy bundle + Path string `json:"path,omitempty"` + + // The migration version number + Version int64 `json:"version,omitempty"` +} + +// Validate validates this database migration detail +func (m *DatabaseMigrationDetail) Validate(formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (m *DatabaseMigrationDetail) MarshalBinary() ([]byte, error) { + if m == nil { + return nil, nil + } + return swag.WriteJSON(m) +} + +// UnmarshalBinary interface implementation +func (m *DatabaseMigrationDetail) UnmarshalBinary(b []byte) error { + var res DatabaseMigrationDetail + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *m = res + return nil +} diff --git a/go/models/list_database_migrations_response.go b/go/models/list_database_migrations_response.go new file mode 100644 index 00000000..3b742bc0 --- /dev/null +++ b/go/models/list_database_migrations_response.go @@ -0,0 +1,80 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package models + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + "strconv" + + "github.com/go-openapi/errors" + "github.com/go-openapi/strfmt" + "github.com/go-openapi/swag" +) + +// ListDatabaseMigrationsResponse Response containing the list of migrations for a branch +// +// swagger:model listDatabaseMigrationsResponse +type ListDatabaseMigrationsResponse struct { + + // List of migrations + Migrations []*DatabaseMigration `json:"migrations"` +} + +// Validate validates this list database migrations response +func (m *ListDatabaseMigrationsResponse) Validate(formats strfmt.Registry) error { + var res []error + + if err := m.validateMigrations(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (m *ListDatabaseMigrationsResponse) validateMigrations(formats strfmt.Registry) error { + + if swag.IsZero(m.Migrations) { // not required + return nil + } + + for i := 0; i < len(m.Migrations); i++ { + if swag.IsZero(m.Migrations[i]) { // not required + continue + } + + if m.Migrations[i] != nil { + if err := m.Migrations[i].Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("migrations" + "." + strconv.Itoa(i)) + } + return err + } + } + + } + + return nil +} + +// MarshalBinary interface implementation +func (m *ListDatabaseMigrationsResponse) MarshalBinary() ([]byte, error) { + if m == nil { + return nil, nil + } + return swag.WriteJSON(m) +} + +// UnmarshalBinary interface implementation +func (m *ListDatabaseMigrationsResponse) UnmarshalBinary(b []byte) error { + var res ListDatabaseMigrationsResponse + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *m = res + return nil +} diff --git a/go/models/reset_database_branch_request.go b/go/models/reset_database_branch_request.go new file mode 100644 index 00000000..9027b643 --- /dev/null +++ b/go/models/reset_database_branch_request.go @@ -0,0 +1,43 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package models + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + "github.com/go-openapi/strfmt" + "github.com/go-openapi/swag" +) + +// ResetDatabaseBranchRequest Request body for resetting a database branch +// +// swagger:model resetDatabaseBranchRequest +type ResetDatabaseBranchRequest struct { + + // The ID of the branch to re-fork the target branch from. Defaults to "production" if not specified. + SourceBranchID string `json:"source_branch_id,omitempty"` +} + +// Validate validates this reset database branch request +func (m *ResetDatabaseBranchRequest) Validate(formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (m *ResetDatabaseBranchRequest) MarshalBinary() ([]byte, error) { + if m == nil { + return nil, nil + } + return swag.WriteJSON(m) +} + +// UnmarshalBinary interface implementation +func (m *ResetDatabaseBranchRequest) UnmarshalBinary(b []byte) error { + var res ResetDatabaseBranchRequest + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *m = res + return nil +} diff --git a/go/models/reset_database_branch_response.go b/go/models/reset_database_branch_response.go new file mode 100644 index 00000000..573f4aed --- /dev/null +++ b/go/models/reset_database_branch_response.go @@ -0,0 +1,49 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package models + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + "github.com/go-openapi/strfmt" + "github.com/go-openapi/swag" +) + +// ResetDatabaseBranchResponse Response for a database branch reset +// +// swagger:model resetDatabaseBranchResponse +type ResetDatabaseBranchResponse struct { + + // The connection string for the reset (or unchanged) branch + ConnectionString string `json:"connection_string,omitempty"` + + // Metadata associated with the branch + Metadata interface{} `json:"metadata,omitempty"` + + // Whether the branch was actually re-forked. False when the target was already in sync with the source and `force=true` was not set. + Reset bool `json:"reset,omitempty"` +} + +// Validate validates this reset database branch response +func (m *ResetDatabaseBranchResponse) Validate(formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (m *ResetDatabaseBranchResponse) MarshalBinary() ([]byte, error) { + if m == nil { + return nil, nil + } + return swag.WriteJSON(m) +} + +// UnmarshalBinary interface implementation +func (m *ResetDatabaseBranchResponse) UnmarshalBinary(b []byte) error { + var res ResetDatabaseBranchResponse + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *m = res + return nil +} diff --git a/go/plumbing/operations/get_site_database_migration_parameters.go b/go/plumbing/operations/get_site_database_migration_parameters.go new file mode 100644 index 00000000..0a366569 --- /dev/null +++ b/go/plumbing/operations/get_site_database_migration_parameters.go @@ -0,0 +1,186 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package operations + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + "context" + "net/http" + "time" + + "github.com/go-openapi/errors" + "github.com/go-openapi/runtime" + cr "github.com/go-openapi/runtime/client" + "github.com/go-openapi/strfmt" +) + +// NewGetSiteDatabaseMigrationParams creates a new GetSiteDatabaseMigrationParams object +// with the default values initialized. +func NewGetSiteDatabaseMigrationParams() *GetSiteDatabaseMigrationParams { + var () + return &GetSiteDatabaseMigrationParams{ + + timeout: cr.DefaultTimeout, + } +} + +// NewGetSiteDatabaseMigrationParamsWithTimeout creates a new GetSiteDatabaseMigrationParams object +// with the default values initialized, and the ability to set a timeout on a request +func NewGetSiteDatabaseMigrationParamsWithTimeout(timeout time.Duration) *GetSiteDatabaseMigrationParams { + var () + return &GetSiteDatabaseMigrationParams{ + + timeout: timeout, + } +} + +// NewGetSiteDatabaseMigrationParamsWithContext creates a new GetSiteDatabaseMigrationParams object +// with the default values initialized, and the ability to set a context for a request +func NewGetSiteDatabaseMigrationParamsWithContext(ctx context.Context) *GetSiteDatabaseMigrationParams { + var () + return &GetSiteDatabaseMigrationParams{ + + Context: ctx, + } +} + +// NewGetSiteDatabaseMigrationParamsWithHTTPClient creates a new GetSiteDatabaseMigrationParams object +// with the default values initialized, and the ability to set a custom HTTPClient for a request +func NewGetSiteDatabaseMigrationParamsWithHTTPClient(client *http.Client) *GetSiteDatabaseMigrationParams { + var () + return &GetSiteDatabaseMigrationParams{ + HTTPClient: client, + } +} + +/* +GetSiteDatabaseMigrationParams contains all the parameters to send to the API endpoint +for the get site database migration operation typically these are written to a http.Request +*/ +type GetSiteDatabaseMigrationParams struct { + + /*Branch + The branch ID to look up the migration on. Defaults to the currently published deploy's branch. + + */ + Branch *string + /*Name + The migration name + + */ + Name string + /*SiteID*/ + SiteID string + + timeout time.Duration + Context context.Context + HTTPClient *http.Client +} + +// WithTimeout adds the timeout to the get site database migration params +func (o *GetSiteDatabaseMigrationParams) WithTimeout(timeout time.Duration) *GetSiteDatabaseMigrationParams { + o.SetTimeout(timeout) + return o +} + +// SetTimeout adds the timeout to the get site database migration params +func (o *GetSiteDatabaseMigrationParams) SetTimeout(timeout time.Duration) { + o.timeout = timeout +} + +// WithContext adds the context to the get site database migration params +func (o *GetSiteDatabaseMigrationParams) WithContext(ctx context.Context) *GetSiteDatabaseMigrationParams { + o.SetContext(ctx) + return o +} + +// SetContext adds the context to the get site database migration params +func (o *GetSiteDatabaseMigrationParams) SetContext(ctx context.Context) { + o.Context = ctx +} + +// WithHTTPClient adds the HTTPClient to the get site database migration params +func (o *GetSiteDatabaseMigrationParams) WithHTTPClient(client *http.Client) *GetSiteDatabaseMigrationParams { + o.SetHTTPClient(client) + return o +} + +// SetHTTPClient adds the HTTPClient to the get site database migration params +func (o *GetSiteDatabaseMigrationParams) SetHTTPClient(client *http.Client) { + o.HTTPClient = client +} + +// WithBranch adds the branch to the get site database migration params +func (o *GetSiteDatabaseMigrationParams) WithBranch(branch *string) *GetSiteDatabaseMigrationParams { + o.SetBranch(branch) + return o +} + +// SetBranch adds the branch to the get site database migration params +func (o *GetSiteDatabaseMigrationParams) SetBranch(branch *string) { + o.Branch = branch +} + +// WithName adds the name to the get site database migration params +func (o *GetSiteDatabaseMigrationParams) WithName(name string) *GetSiteDatabaseMigrationParams { + o.SetName(name) + return o +} + +// SetName adds the name to the get site database migration params +func (o *GetSiteDatabaseMigrationParams) SetName(name string) { + o.Name = name +} + +// WithSiteID adds the siteID to the get site database migration params +func (o *GetSiteDatabaseMigrationParams) WithSiteID(siteID string) *GetSiteDatabaseMigrationParams { + o.SetSiteID(siteID) + return o +} + +// SetSiteID adds the siteId to the get site database migration params +func (o *GetSiteDatabaseMigrationParams) SetSiteID(siteID string) { + o.SiteID = siteID +} + +// WriteToRequest writes these params to a swagger request +func (o *GetSiteDatabaseMigrationParams) WriteToRequest(r runtime.ClientRequest, reg strfmt.Registry) error { + + if err := r.SetTimeout(o.timeout); err != nil { + return err + } + var res []error + + 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 + } + } + + } + + // path param name + if err := r.SetPathParam("name", o.Name); err != nil { + return err + } + + // path param site_id + if err := r.SetPathParam("site_id", o.SiteID); err != nil { + return err + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} diff --git a/go/plumbing/operations/get_site_database_migration_responses.go b/go/plumbing/operations/get_site_database_migration_responses.go new file mode 100644 index 00000000..01beb804 --- /dev/null +++ b/go/plumbing/operations/get_site_database_migration_responses.go @@ -0,0 +1,175 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package operations + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + "fmt" + "io" + + "github.com/go-openapi/runtime" + "github.com/go-openapi/strfmt" + + "github.com/netlify/open-api/v2/go/models" +) + +// GetSiteDatabaseMigrationReader is a Reader for the GetSiteDatabaseMigration structure. +type GetSiteDatabaseMigrationReader struct { + formats strfmt.Registry +} + +// ReadResponse reads a server response into the received o. +func (o *GetSiteDatabaseMigrationReader) ReadResponse(response runtime.ClientResponse, consumer runtime.Consumer) (interface{}, error) { + switch response.Code() { + case 200: + result := NewGetSiteDatabaseMigrationOK() + if err := result.readResponse(response, consumer, o.formats); err != nil { + return nil, err + } + return result, nil + case 404: + result := NewGetSiteDatabaseMigrationNotFound() + if err := result.readResponse(response, consumer, o.formats); err != nil { + return nil, err + } + return nil, result + case 423: + result := NewGetSiteDatabaseMigrationLocked() + if err := result.readResponse(response, consumer, o.formats); err != nil { + return nil, err + } + return nil, result + default: + result := NewGetSiteDatabaseMigrationDefault(response.Code()) + if err := result.readResponse(response, consumer, o.formats); err != nil { + return nil, err + } + if response.Code()/100 == 2 { + return result, nil + } + return nil, result + } +} + +// NewGetSiteDatabaseMigrationOK creates a GetSiteDatabaseMigrationOK with default headers values +func NewGetSiteDatabaseMigrationOK() *GetSiteDatabaseMigrationOK { + return &GetSiteDatabaseMigrationOK{} +} + +/* +GetSiteDatabaseMigrationOK handles this case with default header values. + +OK +*/ +type GetSiteDatabaseMigrationOK struct { + Payload *models.DatabaseMigrationDetail +} + +func (o *GetSiteDatabaseMigrationOK) Error() string { + return fmt.Sprintf("[GET /sites/{site_id}/database/migrations/{name}][%d] getSiteDatabaseMigrationOK %+v", 200, o.Payload) +} + +func (o *GetSiteDatabaseMigrationOK) GetPayload() *models.DatabaseMigrationDetail { + return o.Payload +} + +func (o *GetSiteDatabaseMigrationOK) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { + + o.Payload = new(models.DatabaseMigrationDetail) + + // response payload + if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { + return err + } + + return nil +} + +// NewGetSiteDatabaseMigrationNotFound creates a GetSiteDatabaseMigrationNotFound with default headers values +func NewGetSiteDatabaseMigrationNotFound() *GetSiteDatabaseMigrationNotFound { + return &GetSiteDatabaseMigrationNotFound{} +} + +/* +GetSiteDatabaseMigrationNotFound handles this case with default header values. + +Migration, database, or branch not found +*/ +type GetSiteDatabaseMigrationNotFound struct { +} + +func (o *GetSiteDatabaseMigrationNotFound) Error() string { + return fmt.Sprintf("[GET /sites/{site_id}/database/migrations/{name}][%d] getSiteDatabaseMigrationNotFound ", 404) +} + +func (o *GetSiteDatabaseMigrationNotFound) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { + + return nil +} + +// NewGetSiteDatabaseMigrationLocked creates a GetSiteDatabaseMigrationLocked with default headers values +func NewGetSiteDatabaseMigrationLocked() *GetSiteDatabaseMigrationLocked { + return &GetSiteDatabaseMigrationLocked{} +} + +/* +GetSiteDatabaseMigrationLocked handles this case with default header values. + +Database is disabled +*/ +type GetSiteDatabaseMigrationLocked struct { +} + +func (o *GetSiteDatabaseMigrationLocked) Error() string { + return fmt.Sprintf("[GET /sites/{site_id}/database/migrations/{name}][%d] getSiteDatabaseMigrationLocked ", 423) +} + +func (o *GetSiteDatabaseMigrationLocked) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { + + return nil +} + +// NewGetSiteDatabaseMigrationDefault creates a GetSiteDatabaseMigrationDefault with default headers values +func NewGetSiteDatabaseMigrationDefault(code int) *GetSiteDatabaseMigrationDefault { + return &GetSiteDatabaseMigrationDefault{ + _statusCode: code, + } +} + +/* +GetSiteDatabaseMigrationDefault handles this case with default header values. + +error +*/ +type GetSiteDatabaseMigrationDefault struct { + _statusCode int + + Payload *models.Error +} + +// Code gets the status code for the get site database migration default response +func (o *GetSiteDatabaseMigrationDefault) Code() int { + return o._statusCode +} + +func (o *GetSiteDatabaseMigrationDefault) Error() string { + return fmt.Sprintf("[GET /sites/{site_id}/database/migrations/{name}][%d] getSiteDatabaseMigration default %+v", o._statusCode, o.Payload) +} + +func (o *GetSiteDatabaseMigrationDefault) GetPayload() *models.Error { + return o.Payload +} + +func (o *GetSiteDatabaseMigrationDefault) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { + + o.Payload = new(models.Error) + + // response payload + if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { + return err + } + + return nil +} diff --git a/go/plumbing/operations/list_site_database_migrations_parameters.go b/go/plumbing/operations/list_site_database_migrations_parameters.go new file mode 100644 index 00000000..80c17526 --- /dev/null +++ b/go/plumbing/operations/list_site_database_migrations_parameters.go @@ -0,0 +1,165 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package operations + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + "context" + "net/http" + "time" + + "github.com/go-openapi/errors" + "github.com/go-openapi/runtime" + cr "github.com/go-openapi/runtime/client" + "github.com/go-openapi/strfmt" +) + +// NewListSiteDatabaseMigrationsParams creates a new ListSiteDatabaseMigrationsParams object +// with the default values initialized. +func NewListSiteDatabaseMigrationsParams() *ListSiteDatabaseMigrationsParams { + var () + return &ListSiteDatabaseMigrationsParams{ + + timeout: cr.DefaultTimeout, + } +} + +// NewListSiteDatabaseMigrationsParamsWithTimeout creates a new ListSiteDatabaseMigrationsParams object +// with the default values initialized, and the ability to set a timeout on a request +func NewListSiteDatabaseMigrationsParamsWithTimeout(timeout time.Duration) *ListSiteDatabaseMigrationsParams { + var () + return &ListSiteDatabaseMigrationsParams{ + + timeout: timeout, + } +} + +// NewListSiteDatabaseMigrationsParamsWithContext creates a new ListSiteDatabaseMigrationsParams object +// with the default values initialized, and the ability to set a context for a request +func NewListSiteDatabaseMigrationsParamsWithContext(ctx context.Context) *ListSiteDatabaseMigrationsParams { + var () + return &ListSiteDatabaseMigrationsParams{ + + Context: ctx, + } +} + +// NewListSiteDatabaseMigrationsParamsWithHTTPClient creates a new ListSiteDatabaseMigrationsParams object +// with the default values initialized, and the ability to set a custom HTTPClient for a request +func NewListSiteDatabaseMigrationsParamsWithHTTPClient(client *http.Client) *ListSiteDatabaseMigrationsParams { + var () + return &ListSiteDatabaseMigrationsParams{ + HTTPClient: client, + } +} + +/* +ListSiteDatabaseMigrationsParams contains all the parameters to send to the API endpoint +for the list site database migrations operation typically these are written to a http.Request +*/ +type ListSiteDatabaseMigrationsParams struct { + + /*Branch + The branch ID to list migrations for. Defaults to "production" if not specified. + + */ + Branch *string + /*SiteID*/ + SiteID string + + timeout time.Duration + Context context.Context + HTTPClient *http.Client +} + +// WithTimeout adds the timeout to the list site database migrations params +func (o *ListSiteDatabaseMigrationsParams) WithTimeout(timeout time.Duration) *ListSiteDatabaseMigrationsParams { + o.SetTimeout(timeout) + return o +} + +// SetTimeout adds the timeout to the list site database migrations params +func (o *ListSiteDatabaseMigrationsParams) SetTimeout(timeout time.Duration) { + o.timeout = timeout +} + +// WithContext adds the context to the list site database migrations params +func (o *ListSiteDatabaseMigrationsParams) WithContext(ctx context.Context) *ListSiteDatabaseMigrationsParams { + o.SetContext(ctx) + return o +} + +// SetContext adds the context to the list site database migrations params +func (o *ListSiteDatabaseMigrationsParams) SetContext(ctx context.Context) { + o.Context = ctx +} + +// WithHTTPClient adds the HTTPClient to the list site database migrations params +func (o *ListSiteDatabaseMigrationsParams) WithHTTPClient(client *http.Client) *ListSiteDatabaseMigrationsParams { + o.SetHTTPClient(client) + return o +} + +// SetHTTPClient adds the HTTPClient to the list site database migrations params +func (o *ListSiteDatabaseMigrationsParams) SetHTTPClient(client *http.Client) { + o.HTTPClient = client +} + +// WithBranch adds the branch to the list site database migrations params +func (o *ListSiteDatabaseMigrationsParams) WithBranch(branch *string) *ListSiteDatabaseMigrationsParams { + o.SetBranch(branch) + return o +} + +// SetBranch adds the branch to the list site database migrations params +func (o *ListSiteDatabaseMigrationsParams) SetBranch(branch *string) { + o.Branch = branch +} + +// WithSiteID adds the siteID to the list site database migrations params +func (o *ListSiteDatabaseMigrationsParams) WithSiteID(siteID string) *ListSiteDatabaseMigrationsParams { + o.SetSiteID(siteID) + return o +} + +// SetSiteID adds the siteId to the list site database migrations params +func (o *ListSiteDatabaseMigrationsParams) SetSiteID(siteID string) { + o.SiteID = siteID +} + +// WriteToRequest writes these params to a swagger request +func (o *ListSiteDatabaseMigrationsParams) WriteToRequest(r runtime.ClientRequest, reg strfmt.Registry) error { + + if err := r.SetTimeout(o.timeout); err != nil { + return err + } + var res []error + + 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 + } + } + + } + + // path param site_id + if err := r.SetPathParam("site_id", o.SiteID); err != nil { + return err + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} diff --git a/go/plumbing/operations/list_site_database_migrations_responses.go b/go/plumbing/operations/list_site_database_migrations_responses.go new file mode 100644 index 00000000..a076e749 --- /dev/null +++ b/go/plumbing/operations/list_site_database_migrations_responses.go @@ -0,0 +1,175 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package operations + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + "fmt" + "io" + + "github.com/go-openapi/runtime" + "github.com/go-openapi/strfmt" + + "github.com/netlify/open-api/v2/go/models" +) + +// ListSiteDatabaseMigrationsReader is a Reader for the ListSiteDatabaseMigrations structure. +type ListSiteDatabaseMigrationsReader struct { + formats strfmt.Registry +} + +// ReadResponse reads a server response into the received o. +func (o *ListSiteDatabaseMigrationsReader) ReadResponse(response runtime.ClientResponse, consumer runtime.Consumer) (interface{}, error) { + switch response.Code() { + case 200: + result := NewListSiteDatabaseMigrationsOK() + if err := result.readResponse(response, consumer, o.formats); err != nil { + return nil, err + } + return result, nil + case 404: + result := NewListSiteDatabaseMigrationsNotFound() + if err := result.readResponse(response, consumer, o.formats); err != nil { + return nil, err + } + return nil, result + case 423: + result := NewListSiteDatabaseMigrationsLocked() + if err := result.readResponse(response, consumer, o.formats); err != nil { + return nil, err + } + return nil, result + default: + result := NewListSiteDatabaseMigrationsDefault(response.Code()) + if err := result.readResponse(response, consumer, o.formats); err != nil { + return nil, err + } + if response.Code()/100 == 2 { + return result, nil + } + return nil, result + } +} + +// NewListSiteDatabaseMigrationsOK creates a ListSiteDatabaseMigrationsOK with default headers values +func NewListSiteDatabaseMigrationsOK() *ListSiteDatabaseMigrationsOK { + return &ListSiteDatabaseMigrationsOK{} +} + +/* +ListSiteDatabaseMigrationsOK handles this case with default header values. + +OK +*/ +type ListSiteDatabaseMigrationsOK struct { + Payload *models.ListDatabaseMigrationsResponse +} + +func (o *ListSiteDatabaseMigrationsOK) Error() string { + return fmt.Sprintf("[GET /sites/{site_id}/database/migrations][%d] listSiteDatabaseMigrationsOK %+v", 200, o.Payload) +} + +func (o *ListSiteDatabaseMigrationsOK) GetPayload() *models.ListDatabaseMigrationsResponse { + return o.Payload +} + +func (o *ListSiteDatabaseMigrationsOK) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { + + o.Payload = new(models.ListDatabaseMigrationsResponse) + + // response payload + if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { + return err + } + + return nil +} + +// NewListSiteDatabaseMigrationsNotFound creates a ListSiteDatabaseMigrationsNotFound with default headers values +func NewListSiteDatabaseMigrationsNotFound() *ListSiteDatabaseMigrationsNotFound { + return &ListSiteDatabaseMigrationsNotFound{} +} + +/* +ListSiteDatabaseMigrationsNotFound handles this case with default header values. + +Database or branch not found +*/ +type ListSiteDatabaseMigrationsNotFound struct { +} + +func (o *ListSiteDatabaseMigrationsNotFound) Error() string { + return fmt.Sprintf("[GET /sites/{site_id}/database/migrations][%d] listSiteDatabaseMigrationsNotFound ", 404) +} + +func (o *ListSiteDatabaseMigrationsNotFound) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { + + return nil +} + +// NewListSiteDatabaseMigrationsLocked creates a ListSiteDatabaseMigrationsLocked with default headers values +func NewListSiteDatabaseMigrationsLocked() *ListSiteDatabaseMigrationsLocked { + return &ListSiteDatabaseMigrationsLocked{} +} + +/* +ListSiteDatabaseMigrationsLocked handles this case with default header values. + +Database is disabled +*/ +type ListSiteDatabaseMigrationsLocked struct { +} + +func (o *ListSiteDatabaseMigrationsLocked) Error() string { + return fmt.Sprintf("[GET /sites/{site_id}/database/migrations][%d] listSiteDatabaseMigrationsLocked ", 423) +} + +func (o *ListSiteDatabaseMigrationsLocked) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { + + return nil +} + +// NewListSiteDatabaseMigrationsDefault creates a ListSiteDatabaseMigrationsDefault with default headers values +func NewListSiteDatabaseMigrationsDefault(code int) *ListSiteDatabaseMigrationsDefault { + return &ListSiteDatabaseMigrationsDefault{ + _statusCode: code, + } +} + +/* +ListSiteDatabaseMigrationsDefault handles this case with default header values. + +error +*/ +type ListSiteDatabaseMigrationsDefault struct { + _statusCode int + + Payload *models.Error +} + +// Code gets the status code for the list site database migrations default response +func (o *ListSiteDatabaseMigrationsDefault) Code() int { + return o._statusCode +} + +func (o *ListSiteDatabaseMigrationsDefault) Error() string { + return fmt.Sprintf("[GET /sites/{site_id}/database/migrations][%d] listSiteDatabaseMigrations default %+v", o._statusCode, o.Payload) +} + +func (o *ListSiteDatabaseMigrationsDefault) GetPayload() *models.Error { + return o.Payload +} + +func (o *ListSiteDatabaseMigrationsDefault) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { + + o.Payload = new(models.Error) + + // response payload + if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { + return err + } + + return nil +} diff --git a/go/plumbing/operations/operations_client.go b/go/plumbing/operations/operations_client.go index ab92e226..5f1df86d 100644 --- a/go/plumbing/operations/operations_client.go +++ b/go/plumbing/operations/operations_client.go @@ -209,6 +209,8 @@ type ClientService interface { GetSiteDatabaseComputeSettings(params *GetSiteDatabaseComputeSettingsParams, authInfo runtime.ClientAuthInfoWriter) (*GetSiteDatabaseComputeSettingsOK, error) + GetSiteDatabaseMigration(params *GetSiteDatabaseMigrationParams, authInfo runtime.ClientAuthInfoWriter) (*GetSiteDatabaseMigrationOK, error) + GetSiteDeploy(params *GetSiteDeployParams, authInfo runtime.ClientAuthInfoWriter) (*GetSiteDeployOK, error) GetSiteDevServer(params *GetSiteDevServerParams, authInfo runtime.ClientAuthInfoWriter) (*GetSiteDevServerOK, error) @@ -261,6 +263,8 @@ type ClientService interface { ListSiteDatabaseBranches(params *ListSiteDatabaseBranchesParams, authInfo runtime.ClientAuthInfoWriter) (*ListSiteDatabaseBranchesOK, error) + ListSiteDatabaseMigrations(params *ListSiteDatabaseMigrationsParams, authInfo runtime.ClientAuthInfoWriter) (*ListSiteDatabaseMigrationsOK, error) + ListSiteDatabaseSnapshots(params *ListSiteDatabaseSnapshotsParams, authInfo runtime.ClientAuthInfoWriter) (*ListSiteDatabaseSnapshotsOK, error) ListSiteDeployedBranches(params *ListSiteDeployedBranchesParams, authInfo runtime.ClientAuthInfoWriter) (*ListSiteDeployedBranchesOK, error) @@ -295,6 +299,8 @@ type ClientService interface { RemoveAccountMember(params *RemoveAccountMemberParams, authInfo runtime.ClientAuthInfoWriter) (*RemoveAccountMemberNoContent, error) + ResetSiteDatabaseBranch(params *ResetSiteDatabaseBranchParams, authInfo runtime.ClientAuthInfoWriter) (*ResetSiteDatabaseBranchOK, error) + RestoreSiteDatabaseSnapshot(params *RestoreSiteDatabaseSnapshotParams, authInfo runtime.ClientAuthInfoWriter) (*RestoreSiteDatabaseSnapshotOK, error) RestoreSiteDeploy(params *RestoreSiteDeployParams, authInfo runtime.ClientAuthInfoWriter) (*RestoreSiteDeployCreated, error) @@ -3475,6 +3481,40 @@ func (a *Client) GetSiteDatabaseComputeSettings(params *GetSiteDatabaseComputeSe return nil, runtime.NewAPIError("unexpected success response: content available as default response in error", unexpectedSuccess, unexpectedSuccess.Code()) } +/* +GetSiteDatabaseMigration Returns the contents of a named migration for the specified branch. +*/ +func (a *Client) GetSiteDatabaseMigration(params *GetSiteDatabaseMigrationParams, authInfo runtime.ClientAuthInfoWriter) (*GetSiteDatabaseMigrationOK, error) { + // TODO: Validate the params before sending + if params == nil { + params = NewGetSiteDatabaseMigrationParams() + } + + result, err := a.transport.Submit(&runtime.ClientOperation{ + ID: "getSiteDatabaseMigration", + Method: "GET", + PathPattern: "/sites/{site_id}/database/migrations/{name}", + ProducesMediaTypes: []string{"application/json"}, + ConsumesMediaTypes: []string{"application/json"}, + Schemes: []string{"https"}, + Params: params, + Reader: &GetSiteDatabaseMigrationReader{formats: a.formats}, + AuthInfo: authInfo, + Context: params.Context, + Client: params.HTTPClient, + }) + if err != nil { + return nil, err + } + success, ok := result.(*GetSiteDatabaseMigrationOK) + if ok { + return success, nil + } + // unexpected success response + unexpectedSuccess := result.(*GetSiteDatabaseMigrationDefault) + return nil, runtime.NewAPIError("unexpected success response: content available as default response in error", unexpectedSuccess, unexpectedSuccess.Code()) +} + /* GetSiteDeploy get site deploy API */ @@ -4360,6 +4400,40 @@ func (a *Client) ListSiteDatabaseBranches(params *ListSiteDatabaseBranchesParams return nil, runtime.NewAPIError("unexpected success response: content available as default response in error", unexpectedSuccess, unexpectedSuccess.Code()) } +/* +ListSiteDatabaseMigrations Returns the list of migrations available for the specified branch, indicating which ones have been applied to the database. +*/ +func (a *Client) ListSiteDatabaseMigrations(params *ListSiteDatabaseMigrationsParams, authInfo runtime.ClientAuthInfoWriter) (*ListSiteDatabaseMigrationsOK, error) { + // TODO: Validate the params before sending + if params == nil { + params = NewListSiteDatabaseMigrationsParams() + } + + result, err := a.transport.Submit(&runtime.ClientOperation{ + ID: "listSiteDatabaseMigrations", + Method: "GET", + PathPattern: "/sites/{site_id}/database/migrations", + ProducesMediaTypes: []string{"application/json"}, + ConsumesMediaTypes: []string{"application/json"}, + Schemes: []string{"https"}, + Params: params, + Reader: &ListSiteDatabaseMigrationsReader{formats: a.formats}, + AuthInfo: authInfo, + Context: params.Context, + Client: params.HTTPClient, + }) + if err != nil { + return nil, err + } + success, ok := result.(*ListSiteDatabaseMigrationsOK) + if ok { + return success, nil + } + // unexpected success response + unexpectedSuccess := result.(*ListSiteDatabaseMigrationsDefault) + return nil, runtime.NewAPIError("unexpected success response: content available as default response in error", unexpectedSuccess, unexpectedSuccess.Code()) +} + /* ListSiteDatabaseSnapshots Returns all snapshots for the site's database. */ @@ -4948,6 +5022,40 @@ func (a *Client) RemoveAccountMember(params *RemoveAccountMemberParams, authInfo return nil, runtime.NewAPIError("unexpected success response: content available as default response in error", unexpectedSuccess, unexpectedSuccess.Code()) } +/* +ResetSiteDatabaseBranch Resets a non-production database branch by re-forking it from a source branch (defaults to the production branch). If the target branch is already in sync with the source, returns the existing connection string without performing a reset, unless `force=true` is passed. The production branch cannot be reset. +*/ +func (a *Client) ResetSiteDatabaseBranch(params *ResetSiteDatabaseBranchParams, authInfo runtime.ClientAuthInfoWriter) (*ResetSiteDatabaseBranchOK, error) { + // TODO: Validate the params before sending + if params == nil { + params = NewResetSiteDatabaseBranchParams() + } + + result, err := a.transport.Submit(&runtime.ClientOperation{ + ID: "resetSiteDatabaseBranch", + Method: "POST", + PathPattern: "/sites/{site_id}/database/branch/{branch_id}/reset", + ProducesMediaTypes: []string{"application/json"}, + ConsumesMediaTypes: []string{"application/json"}, + Schemes: []string{"https"}, + Params: params, + Reader: &ResetSiteDatabaseBranchReader{formats: a.formats}, + AuthInfo: authInfo, + Context: params.Context, + Client: params.HTTPClient, + }) + if err != nil { + return nil, err + } + success, ok := result.(*ResetSiteDatabaseBranchOK) + if ok { + return success, nil + } + // unexpected success response + unexpectedSuccess := result.(*ResetSiteDatabaseBranchDefault) + return nil, runtime.NewAPIError("unexpected success response: content available as default response in error", unexpectedSuccess, unexpectedSuccess.Code()) +} + /* RestoreSiteDatabaseSnapshot Restores a snapshot to a database branch. Defaults to the production branch if no branch_name is specified. */ diff --git a/go/plumbing/operations/reset_site_database_branch_parameters.go b/go/plumbing/operations/reset_site_database_branch_parameters.go new file mode 100644 index 00000000..c8a0acad --- /dev/null +++ b/go/plumbing/operations/reset_site_database_branch_parameters.go @@ -0,0 +1,240 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package operations + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + "context" + "net/http" + "time" + + "github.com/go-openapi/errors" + "github.com/go-openapi/runtime" + cr "github.com/go-openapi/runtime/client" + "github.com/go-openapi/strfmt" + "github.com/go-openapi/swag" + + "github.com/netlify/open-api/v2/go/models" +) + +// NewResetSiteDatabaseBranchParams creates a new ResetSiteDatabaseBranchParams object +// with the default values initialized. +func NewResetSiteDatabaseBranchParams() *ResetSiteDatabaseBranchParams { + var () + return &ResetSiteDatabaseBranchParams{ + + timeout: cr.DefaultTimeout, + } +} + +// NewResetSiteDatabaseBranchParamsWithTimeout creates a new ResetSiteDatabaseBranchParams object +// with the default values initialized, and the ability to set a timeout on a request +func NewResetSiteDatabaseBranchParamsWithTimeout(timeout time.Duration) *ResetSiteDatabaseBranchParams { + var () + return &ResetSiteDatabaseBranchParams{ + + timeout: timeout, + } +} + +// NewResetSiteDatabaseBranchParamsWithContext creates a new ResetSiteDatabaseBranchParams object +// with the default values initialized, and the ability to set a context for a request +func NewResetSiteDatabaseBranchParamsWithContext(ctx context.Context) *ResetSiteDatabaseBranchParams { + var () + return &ResetSiteDatabaseBranchParams{ + + Context: ctx, + } +} + +// NewResetSiteDatabaseBranchParamsWithHTTPClient creates a new ResetSiteDatabaseBranchParams object +// with the default values initialized, and the ability to set a custom HTTPClient for a request +func NewResetSiteDatabaseBranchParamsWithHTTPClient(client *http.Client) *ResetSiteDatabaseBranchParams { + var () + return &ResetSiteDatabaseBranchParams{ + HTTPClient: client, + } +} + +/* +ResetSiteDatabaseBranchParams contains all the parameters to send to the API endpoint +for the reset site database branch operation typically these are written to a http.Request +*/ +type ResetSiteDatabaseBranchParams struct { + + /*BranchID + The branch ID to reset + + */ + BranchID string + /*Force + If true, resets the branch even when it is already in sync with the source. + + */ + Force *bool + /*Reset*/ + Reset *models.ResetDatabaseBranchRequest + /*Role + The database role to use for the returned connection string. Defaults to netlifydb_owner if not specified. + + */ + Role *string + /*SiteID*/ + SiteID string + + timeout time.Duration + Context context.Context + HTTPClient *http.Client +} + +// WithTimeout adds the timeout to the reset site database branch params +func (o *ResetSiteDatabaseBranchParams) WithTimeout(timeout time.Duration) *ResetSiteDatabaseBranchParams { + o.SetTimeout(timeout) + return o +} + +// SetTimeout adds the timeout to the reset site database branch params +func (o *ResetSiteDatabaseBranchParams) SetTimeout(timeout time.Duration) { + o.timeout = timeout +} + +// WithContext adds the context to the reset site database branch params +func (o *ResetSiteDatabaseBranchParams) WithContext(ctx context.Context) *ResetSiteDatabaseBranchParams { + o.SetContext(ctx) + return o +} + +// SetContext adds the context to the reset site database branch params +func (o *ResetSiteDatabaseBranchParams) SetContext(ctx context.Context) { + o.Context = ctx +} + +// WithHTTPClient adds the HTTPClient to the reset site database branch params +func (o *ResetSiteDatabaseBranchParams) WithHTTPClient(client *http.Client) *ResetSiteDatabaseBranchParams { + o.SetHTTPClient(client) + return o +} + +// SetHTTPClient adds the HTTPClient to the reset site database branch params +func (o *ResetSiteDatabaseBranchParams) SetHTTPClient(client *http.Client) { + o.HTTPClient = client +} + +// WithBranchID adds the branchID to the reset site database branch params +func (o *ResetSiteDatabaseBranchParams) WithBranchID(branchID string) *ResetSiteDatabaseBranchParams { + o.SetBranchID(branchID) + return o +} + +// SetBranchID adds the branchId to the reset site database branch params +func (o *ResetSiteDatabaseBranchParams) SetBranchID(branchID string) { + o.BranchID = branchID +} + +// WithForce adds the force to the reset site database branch params +func (o *ResetSiteDatabaseBranchParams) WithForce(force *bool) *ResetSiteDatabaseBranchParams { + o.SetForce(force) + return o +} + +// SetForce adds the force to the reset site database branch params +func (o *ResetSiteDatabaseBranchParams) SetForce(force *bool) { + o.Force = force +} + +// WithReset adds the reset to the reset site database branch params +func (o *ResetSiteDatabaseBranchParams) WithReset(reset *models.ResetDatabaseBranchRequest) *ResetSiteDatabaseBranchParams { + o.SetReset(reset) + return o +} + +// SetReset adds the reset to the reset site database branch params +func (o *ResetSiteDatabaseBranchParams) SetReset(reset *models.ResetDatabaseBranchRequest) { + o.Reset = reset +} + +// WithRole adds the role to the reset site database branch params +func (o *ResetSiteDatabaseBranchParams) WithRole(role *string) *ResetSiteDatabaseBranchParams { + o.SetRole(role) + return o +} + +// SetRole adds the role to the reset site database branch params +func (o *ResetSiteDatabaseBranchParams) SetRole(role *string) { + o.Role = role +} + +// WithSiteID adds the siteID to the reset site database branch params +func (o *ResetSiteDatabaseBranchParams) WithSiteID(siteID string) *ResetSiteDatabaseBranchParams { + o.SetSiteID(siteID) + return o +} + +// SetSiteID adds the siteId to the reset site database branch params +func (o *ResetSiteDatabaseBranchParams) SetSiteID(siteID string) { + o.SiteID = siteID +} + +// WriteToRequest writes these params to a swagger request +func (o *ResetSiteDatabaseBranchParams) WriteToRequest(r runtime.ClientRequest, reg strfmt.Registry) error { + + if err := r.SetTimeout(o.timeout); err != nil { + return err + } + var res []error + + // path param branch_id + if err := r.SetPathParam("branch_id", o.BranchID); err != nil { + return err + } + + if o.Force != nil { + + // query param force + var qrForce bool + if o.Force != nil { + qrForce = *o.Force + } + qForce := swag.FormatBool(qrForce) + if qForce != "" { + if err := r.SetQueryParam("force", qForce); err != nil { + return err + } + } + + } + + if o.Reset != nil { + if err := r.SetBodyParam(o.Reset); err != nil { + return err + } + } + + if o.Role != nil { + + // query param role + var qrRole string + if o.Role != nil { + qrRole = *o.Role + } + qRole := qrRole + if qRole != "" { + if err := r.SetQueryParam("role", qRole); err != nil { + return err + } + } + + } + + // path param site_id + if err := r.SetPathParam("site_id", o.SiteID); err != nil { + return err + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} diff --git a/go/plumbing/operations/reset_site_database_branch_responses.go b/go/plumbing/operations/reset_site_database_branch_responses.go new file mode 100644 index 00000000..da4f53c2 --- /dev/null +++ b/go/plumbing/operations/reset_site_database_branch_responses.go @@ -0,0 +1,175 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package operations + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + "fmt" + "io" + + "github.com/go-openapi/runtime" + "github.com/go-openapi/strfmt" + + "github.com/netlify/open-api/v2/go/models" +) + +// ResetSiteDatabaseBranchReader is a Reader for the ResetSiteDatabaseBranch structure. +type ResetSiteDatabaseBranchReader struct { + formats strfmt.Registry +} + +// ReadResponse reads a server response into the received o. +func (o *ResetSiteDatabaseBranchReader) ReadResponse(response runtime.ClientResponse, consumer runtime.Consumer) (interface{}, error) { + switch response.Code() { + case 200: + result := NewResetSiteDatabaseBranchOK() + if err := result.readResponse(response, consumer, o.formats); err != nil { + return nil, err + } + return result, nil + case 400: + result := NewResetSiteDatabaseBranchBadRequest() + if err := result.readResponse(response, consumer, o.formats); err != nil { + return nil, err + } + return nil, result + case 404: + result := NewResetSiteDatabaseBranchNotFound() + if err := result.readResponse(response, consumer, o.formats); err != nil { + return nil, err + } + return nil, result + default: + result := NewResetSiteDatabaseBranchDefault(response.Code()) + if err := result.readResponse(response, consumer, o.formats); err != nil { + return nil, err + } + if response.Code()/100 == 2 { + return result, nil + } + return nil, result + } +} + +// NewResetSiteDatabaseBranchOK creates a ResetSiteDatabaseBranchOK with default headers values +func NewResetSiteDatabaseBranchOK() *ResetSiteDatabaseBranchOK { + return &ResetSiteDatabaseBranchOK{} +} + +/* +ResetSiteDatabaseBranchOK handles this case with default header values. + +OK +*/ +type ResetSiteDatabaseBranchOK struct { + Payload *models.ResetDatabaseBranchResponse +} + +func (o *ResetSiteDatabaseBranchOK) Error() string { + return fmt.Sprintf("[POST /sites/{site_id}/database/branch/{branch_id}/reset][%d] resetSiteDatabaseBranchOK %+v", 200, o.Payload) +} + +func (o *ResetSiteDatabaseBranchOK) GetPayload() *models.ResetDatabaseBranchResponse { + return o.Payload +} + +func (o *ResetSiteDatabaseBranchOK) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { + + o.Payload = new(models.ResetDatabaseBranchResponse) + + // response payload + if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { + return err + } + + return nil +} + +// NewResetSiteDatabaseBranchBadRequest creates a ResetSiteDatabaseBranchBadRequest with default headers values +func NewResetSiteDatabaseBranchBadRequest() *ResetSiteDatabaseBranchBadRequest { + return &ResetSiteDatabaseBranchBadRequest{} +} + +/* +ResetSiteDatabaseBranchBadRequest handles this case with default header values. + +Invalid request — for example, the target is the production branch or the source branch is the same as the target. +*/ +type ResetSiteDatabaseBranchBadRequest struct { +} + +func (o *ResetSiteDatabaseBranchBadRequest) Error() string { + return fmt.Sprintf("[POST /sites/{site_id}/database/branch/{branch_id}/reset][%d] resetSiteDatabaseBranchBadRequest ", 400) +} + +func (o *ResetSiteDatabaseBranchBadRequest) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { + + return nil +} + +// NewResetSiteDatabaseBranchNotFound creates a ResetSiteDatabaseBranchNotFound with default headers values +func NewResetSiteDatabaseBranchNotFound() *ResetSiteDatabaseBranchNotFound { + return &ResetSiteDatabaseBranchNotFound{} +} + +/* +ResetSiteDatabaseBranchNotFound handles this case with default header values. + +Database or branch not found +*/ +type ResetSiteDatabaseBranchNotFound struct { +} + +func (o *ResetSiteDatabaseBranchNotFound) Error() string { + return fmt.Sprintf("[POST /sites/{site_id}/database/branch/{branch_id}/reset][%d] resetSiteDatabaseBranchNotFound ", 404) +} + +func (o *ResetSiteDatabaseBranchNotFound) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { + + return nil +} + +// NewResetSiteDatabaseBranchDefault creates a ResetSiteDatabaseBranchDefault with default headers values +func NewResetSiteDatabaseBranchDefault(code int) *ResetSiteDatabaseBranchDefault { + return &ResetSiteDatabaseBranchDefault{ + _statusCode: code, + } +} + +/* +ResetSiteDatabaseBranchDefault handles this case with default header values. + +error +*/ +type ResetSiteDatabaseBranchDefault struct { + _statusCode int + + Payload *models.Error +} + +// Code gets the status code for the reset site database branch default response +func (o *ResetSiteDatabaseBranchDefault) Code() int { + return o._statusCode +} + +func (o *ResetSiteDatabaseBranchDefault) Error() string { + return fmt.Sprintf("[POST /sites/{site_id}/database/branch/{branch_id}/reset][%d] resetSiteDatabaseBranch default %+v", o._statusCode, o.Payload) +} + +func (o *ResetSiteDatabaseBranchDefault) GetPayload() *models.Error { + return o.Payload +} + +func (o *ResetSiteDatabaseBranchDefault) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { + + o.Payload = new(models.Error) + + // response payload + if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { + return err + } + + return nil +} diff --git a/swagger.yml b/swagger.yml index ac8768a9..1fa3ff70 100644 --- a/swagger.yml +++ b/swagger.yml @@ -3323,7 +3323,6 @@ paths: in: path required: true post: - x-internal: true operationId: createSiteDatabase tags: [database] description: >- @@ -3349,7 +3348,6 @@ paths: default: $ref: '#/responses/error' get: - x-internal: true operationId: getSiteDatabase tags: [database] description: Returns the database connection string for the specified site. @@ -3371,7 +3369,6 @@ paths: default: $ref: '#/responses/error' delete: - x-internal: true operationId: deleteSiteDatabase tags: [database] description: Deletes the database and all associated branches and snapshots for the specified site. @@ -3387,7 +3384,6 @@ paths: in: path required: true post: - x-internal: true operationId: createSiteDatabaseBranch tags: [database] description: >- @@ -3419,7 +3415,6 @@ paths: in: path required: true get: - x-internal: true operationId: listSiteDatabaseBranches tags: [database] description: Returns all branches for the site's database with compute status and metadata. @@ -3442,7 +3437,6 @@ paths: required: true description: The branch ID get: - x-internal: true operationId: getSiteDatabaseBranch tags: [database] description: Returns the database branch connection string for a specific branch. @@ -3466,7 +3460,6 @@ paths: default: $ref: '#/responses/error' delete: - x-internal: true operationId: deleteSiteDatabaseBranch tags: [database] description: Deletes a database branch. @@ -3475,6 +3468,59 @@ paths: description: Deleted default: $ref: '#/responses/error' + /sites/{site_id}/database/branch/{branch_id}/reset: + parameters: + - name: site_id + type: string + in: path + required: true + - name: branch_id + type: string + in: path + required: true + description: The branch ID to reset + post: + operationId: resetSiteDatabaseBranch + tags: [database] + description: >- + Resets a non-production database branch by re-forking it from a source branch + (defaults to the production branch). If the target branch is already in sync + with the source, returns the existing connection string without performing a + reset, unless `force=true` is passed. The production branch cannot be reset. + consumes: + - application/json + parameters: + - name: force + type: boolean + in: query + description: >- + If true, resets the branch even when it is already in sync with the source. + - name: role + type: string + in: query + description: >- + The database role to use for the returned connection string. + Defaults to netlifydb_owner if not specified. + enum: + - netlifydb_owner + - netlifydb_readonly + - name: reset + in: body + schema: + $ref: '#/definitions/resetDatabaseBranchRequest' + responses: + '200': + description: OK + schema: + $ref: '#/definitions/resetDatabaseBranchResponse' + '400': + description: >- + Invalid request — for example, the target is the production branch + or the source branch is the same as the target. + '404': + description: Database or branch not found + default: + $ref: '#/responses/error' /sites/{site_id}/database/branch/{branch_id}/compute/settings: parameters: - name: site_id @@ -3487,7 +3533,6 @@ paths: required: true description: The branch ID put: - x-internal: true operationId: setSiteDatabaseBranchComputeSettings tags: [database] description: >- @@ -3517,7 +3562,6 @@ paths: in: path required: true put: - x-internal: true operationId: setSiteDatabaseComputeSettings tags: [database] description: >- @@ -3542,7 +3586,6 @@ paths: default: $ref: '#/responses/error' get: - x-internal: true operationId: getSiteDatabaseComputeSettings tags: [database] description: >- @@ -3559,7 +3602,6 @@ paths: default: $ref: '#/responses/error' delete: - x-internal: true operationId: clearSiteDatabaseComputeSettings tags: [database] description: >- @@ -3572,6 +3614,70 @@ paths: description: Compute customization requires a Pro or higher plan default: $ref: '#/responses/error' + /sites/{site_id}/database/migrations: + parameters: + - name: site_id + type: string + in: path + required: true + get: + operationId: listSiteDatabaseMigrations + tags: [database] + description: >- + Returns the list of migrations available for the specified branch, + indicating which ones have been applied to the database. + parameters: + - name: branch + type: string + in: query + description: >- + The branch ID to list migrations for. + Defaults to "production" if not specified. + responses: + '200': + description: OK + schema: + $ref: '#/definitions/listDatabaseMigrationsResponse' + '404': + description: Database or branch not found + '423': + description: Database is disabled + default: + $ref: '#/responses/error' + /sites/{site_id}/database/migrations/{name}: + parameters: + - name: site_id + type: string + in: path + required: true + - name: name + type: string + in: path + required: true + description: The migration name + get: + operationId: getSiteDatabaseMigration + tags: [database] + description: >- + Returns the contents of a named migration for the specified branch. + parameters: + - name: branch + type: string + in: query + description: >- + The branch ID to look up the migration on. + Defaults to the currently published deploy's branch. + responses: + '200': + description: OK + schema: + $ref: '#/definitions/databaseMigrationDetail' + '404': + description: Migration, database, or branch not found + '423': + description: Database is disabled + default: + $ref: '#/responses/error' /sites/{site_id}/database/migrations/{deploy_id}: parameters: - name: site_id @@ -3584,7 +3690,6 @@ paths: required: true description: The deploy ID to run migrations for post: - x-internal: true operationId: runSiteDatabaseMigrations tags: [database] description: >- @@ -3613,7 +3718,6 @@ paths: in: path required: true post: - x-internal: true operationId: createSiteDatabaseSnapshot tags: [database] description: >- @@ -3640,7 +3744,6 @@ paths: in: path required: true get: - x-internal: true operationId: listSiteDatabaseSnapshots tags: [database] description: Returns all snapshots for the site's database. @@ -3663,7 +3766,6 @@ paths: required: true description: The snapshot ID delete: - x-internal: true operationId: deleteSiteDatabaseSnapshot tags: [database] description: Deletes a database snapshot. @@ -3684,7 +3786,6 @@ paths: required: true description: The snapshot ID to restore post: - x-internal: true operationId: restoreSiteDatabaseSnapshot tags: [database] description: >- @@ -3956,6 +4057,74 @@ definitions: type: boolean description: >- If true, validates migrations without applying them. + resetDatabaseBranchRequest: + type: object + description: Request body for resetting a database branch + properties: + source_branch_id: + type: string + description: >- + The ID of the branch to re-fork the target branch from. + Defaults to "production" if not specified. + resetDatabaseBranchResponse: + type: object + description: Response for a database branch reset + properties: + reset: + type: boolean + description: >- + Whether the branch was actually re-forked. False when the target was + already in sync with the source and `force=true` was not set. + connection_string: + type: string + description: The connection string for the reset (or unchanged) branch + metadata: + type: object + description: Metadata associated with the branch + additionalProperties: true + listDatabaseMigrationsResponse: + type: object + description: Response containing the list of migrations for a branch + properties: + migrations: + type: array + items: + $ref: '#/definitions/databaseMigration' + description: List of migrations + databaseMigration: + type: object + description: A migration available to a database branch + properties: + version: + type: integer + format: int64 + description: The migration version number + name: + type: string + description: The migration name + path: + type: string + description: The path to the migration file in the deploy bundle + applied: + type: boolean + description: Whether this migration has been applied to the branch + databaseMigrationDetail: + type: object + description: A migration with its file contents + properties: + version: + type: integer + format: int64 + description: The migration version number + name: + type: string + description: The migration name + path: + type: string + description: The path to the migration file in the deploy bundle + content: + type: string + description: The raw contents of the migration file DeployValidationsReport: type: object