fleet-memory/hindsight-clients/go/model_update_document_request.go
Nicolò Boschi 1b4ad7f435
feat: change tags for a document (#517)
* feat: add update document tags endpoint with observation invalidation

Adds PATCH /v1/default/banks/{bank_id}/documents/{document_id} to change
tags on a document without re-processing content.

- Updates tags on the document and all associated memory units atomically
- Invalidates observations derived from the document's memory units
- Resets consolidated_at on the document's own units for re-consolidation
- Also resets consolidated_at on co-source memories from other documents
  that shared those observations (matching delete_document behavior)
- Triggers async consolidation when observations are invalidated
- 9 new tests covering all invalidation scenarios

UI: adds inline tag editor to the document detail panel in the control plane
Docs: new "Update Document Tags" section in documents.mdx with Python/JS examples

* refactor: simplify UpdateDocumentTagsResponse to {success: true}

* refactor: make PATCH /documents generic update_document endpoint

Renames update_document_tags → update_document (engine + HTTP + clients + UI).
Currently only tags are supported; the structure is open for future fields.
Tags are the only field with side effects (observation invalidation + re-consolidation).
2026-03-07 09:00:13 +01:00

127 lines
3.3 KiB
Go

/*
Hindsight HTTP API
HTTP API for Hindsight
API version: 0.4.16
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package hindsight
import (
"encoding/json"
)
// checks if the UpdateDocumentRequest type satisfies the MappedNullable interface at compile time
var _ MappedNullable = &UpdateDocumentRequest{}
// UpdateDocumentRequest Request model for updating a document's mutable fields.
type UpdateDocumentRequest struct {
Tags []string `json:"tags,omitempty"`
}
// NewUpdateDocumentRequest instantiates a new UpdateDocumentRequest object
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed
func NewUpdateDocumentRequest() *UpdateDocumentRequest {
this := UpdateDocumentRequest{}
return &this
}
// NewUpdateDocumentRequestWithDefaults instantiates a new UpdateDocumentRequest object
// This constructor will only assign default values to properties that have it defined,
// but it doesn't guarantee that properties required by API are set
func NewUpdateDocumentRequestWithDefaults() *UpdateDocumentRequest {
this := UpdateDocumentRequest{}
return &this
}
// GetTags returns the Tags field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *UpdateDocumentRequest) GetTags() []string {
if o == nil {
var ret []string
return ret
}
return o.Tags
}
// GetTagsOk returns a tuple with the Tags field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *UpdateDocumentRequest) GetTagsOk() ([]string, bool) {
if o == nil || IsNil(o.Tags) {
return nil, false
}
return o.Tags, true
}
// HasTags returns a boolean if a field has been set.
func (o *UpdateDocumentRequest) HasTags() bool {
if o != nil && !IsNil(o.Tags) {
return true
}
return false
}
// SetTags gets a reference to the given []string and assigns it to the Tags field.
func (o *UpdateDocumentRequest) SetTags(v []string) {
o.Tags = v
}
func (o UpdateDocumentRequest) MarshalJSON() ([]byte, error) {
toSerialize,err := o.ToMap()
if err != nil {
return []byte{}, err
}
return json.Marshal(toSerialize)
}
func (o UpdateDocumentRequest) ToMap() (map[string]interface{}, error) {
toSerialize := map[string]interface{}{}
if o.Tags != nil {
toSerialize["tags"] = o.Tags
}
return toSerialize, nil
}
type NullableUpdateDocumentRequest struct {
value *UpdateDocumentRequest
isSet bool
}
func (v NullableUpdateDocumentRequest) Get() *UpdateDocumentRequest {
return v.value
}
func (v *NullableUpdateDocumentRequest) Set(val *UpdateDocumentRequest) {
v.value = val
v.isSet = true
}
func (v NullableUpdateDocumentRequest) IsSet() bool {
return v.isSet
}
func (v *NullableUpdateDocumentRequest) Unset() {
v.value = nil
v.isSet = false
}
func NewNullableUpdateDocumentRequest(val *UpdateDocumentRequest) *NullableUpdateDocumentRequest {
return &NullableUpdateDocumentRequest{value: val, isSet: true}
}
func (v NullableUpdateDocumentRequest) MarshalJSON() ([]byte, error) {
return json.Marshal(v.value)
}
func (v *NullableUpdateDocumentRequest) UnmarshalJSON(src []byte) error {
v.isSet = true
return json.Unmarshal(src, &v.value)
}