diff --git a/VERSION b/VERSION index a3df0a6..ac39a10 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.8.0 +0.9.0 diff --git a/arkruntime/model/agent/oas_parameters_gen.go b/arkruntime/model/agent/oas_parameters_gen.go index a565fd2..f640ee0 100644 --- a/arkruntime/model/agent/oas_parameters_gen.go +++ b/arkruntime/model/agent/oas_parameters_gen.go @@ -38,6 +38,9 @@ type AgentsRemoveParams struct { // AgentsRetrieveParams is parameters of Agents_retrieve operation. type AgentsRetrieveParams struct { AgentId string + // 可选 Agent 版本号;省略返回当前最新版本,传入正整数返回 + // 该历史版本的冻结视图;版本不存在返回 404。. + Version OptInt32 `json:",omitempty,omitzero" query:"version"` } // AgentsUpdateParams is parameters of Agents_update operation. diff --git a/arkruntime/model/session/oas_json_gen.go b/arkruntime/model/session/oas_json_gen.go index d3e399f..996fcb8 100644 --- a/arkruntime/model/session/oas_json_gen.go +++ b/arkruntime/model/session/oas_json_gen.go @@ -1435,191 +1435,156 @@ func (s *CacheCreation) UnmarshalJSON(data []byte) error { } // Encode implements json.Marshaler. -func (s *CreateSessionRequest) Encode(e *jx.Encoder) { +func (s *CheckpointComponent) Encode(e *jx.Encoder) { e.ObjStart() s.encodeFields(e) e.ObjEnd() } // encodeFields encodes fields. -func (s *CreateSessionRequest) encodeFields(e *jx.Encoder) { +func (s *CheckpointComponent) encodeFields(e *jx.Encoder) { { - e.FieldStart("agent") - s.Agent.Encode(e) + e.FieldStart("type") + e.Str(s.Type) } { - if s.EnvironmentID.Set { - e.FieldStart("environment_id") - s.EnvironmentID.Encode(e) - } + e.FieldStart("status") + s.Status.Encode(e) } { - if s.Environment.Set { - e.FieldStart("environment") - s.Environment.Encode(e) + if s.SourceResourceID.Set { + e.FieldStart("source_resource_id") + s.SourceResourceID.Encode(e) } } { - if s.Tags != nil { - e.FieldStart("tags") - e.ArrStart() - for _, elem := range s.Tags { - elem.Encode(e) - } - e.ArrEnd() + if s.ObjectCount.Set { + e.FieldStart("object_count") + s.ObjectCount.Encode(e) } } { - if s.Resources != nil { - e.FieldStart("resources") - e.ArrStart() - for _, elem := range s.Resources { - elem.Encode(e) - } - e.ArrEnd() + if s.StorageBytes.Set { + e.FieldStart("storage_bytes") + s.StorageBytes.Encode(e) } } { - if s.Title.Set { - e.FieldStart("title") - s.Title.Encode(e) + if s.ErrorCode.Set { + e.FieldStart("error_code") + s.ErrorCode.Encode(e) } } { - if s.VaultIds != nil { - e.FieldStart("vault_ids") - e.ArrStart() - for _, elem := range s.VaultIds { - e.Str(elem) - } - e.ArrEnd() + if s.ErrorMessage.Set { + e.FieldStart("error_message") + s.ErrorMessage.Encode(e) } } } -var jsonFieldsNameOfCreateSessionRequest = [7]string{ - 0: "agent", - 1: "environment_id", - 2: "environment", - 3: "tags", - 4: "resources", - 5: "title", - 6: "vault_ids", +var jsonFieldsNameOfCheckpointComponent = [7]string{ + 0: "type", + 1: "status", + 2: "source_resource_id", + 3: "object_count", + 4: "storage_bytes", + 5: "error_code", + 6: "error_message", } -// Decode decodes CreateSessionRequest from json. -func (s *CreateSessionRequest) Decode(d *jx.Decoder) error { +// Decode decodes CheckpointComponent from json. +func (s *CheckpointComponent) Decode(d *jx.Decoder) error { if s == nil { - return errors.New("invalid: unable to decode CreateSessionRequest to nil") + return errors.New("invalid: unable to decode CheckpointComponent to nil") } var requiredBitSet [1]uint8 if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { switch string(k) { - case "agent": + case "type": requiredBitSet[0] |= 1 << 0 if err := func() error { - if err := s.Agent.Decode(d); err != nil { + v, err := d.Str() + s.Type = string(v) + if err != nil { return err } return nil }(); err != nil { - return errors.Wrap(err, "decode field \"agent\"") + return errors.Wrap(err, "decode field \"type\"") } - case "environment_id": + case "status": + requiredBitSet[0] |= 1 << 1 if err := func() error { - s.EnvironmentID.Reset() - if err := s.EnvironmentID.Decode(d); err != nil { + if err := s.Status.Decode(d); err != nil { return err } return nil }(); err != nil { - return errors.Wrap(err, "decode field \"environment_id\"") + return errors.Wrap(err, "decode field \"status\"") } - case "environment": + case "source_resource_id": if err := func() error { - s.Environment.Reset() - if err := s.Environment.Decode(d); err != nil { + s.SourceResourceID.Reset() + if err := s.SourceResourceID.Decode(d); err != nil { return err } return nil }(); err != nil { - return errors.Wrap(err, "decode field \"environment\"") + return errors.Wrap(err, "decode field \"source_resource_id\"") } - case "tags": + case "object_count": if err := func() error { - s.Tags = make([]Tag, 0) - if err := d.Arr(func(d *jx.Decoder) error { - var elem Tag - if err := elem.Decode(d); err != nil { - return err - } - s.Tags = append(s.Tags, elem) - return nil - }); err != nil { + s.ObjectCount.Reset() + if err := s.ObjectCount.Decode(d); err != nil { return err } return nil }(); err != nil { - return errors.Wrap(err, "decode field \"tags\"") + return errors.Wrap(err, "decode field \"object_count\"") } - case "resources": + case "storage_bytes": if err := func() error { - s.Resources = make([]SessionResource, 0) - if err := d.Arr(func(d *jx.Decoder) error { - var elem SessionResource - if err := elem.Decode(d); err != nil { - return err - } - s.Resources = append(s.Resources, elem) - return nil - }); err != nil { + s.StorageBytes.Reset() + if err := s.StorageBytes.Decode(d); err != nil { return err } return nil }(); err != nil { - return errors.Wrap(err, "decode field \"resources\"") + return errors.Wrap(err, "decode field \"storage_bytes\"") } - case "title": + case "error_code": if err := func() error { - s.Title.Reset() - if err := s.Title.Decode(d); err != nil { + s.ErrorCode.Reset() + if err := s.ErrorCode.Decode(d); err != nil { return err } return nil }(); err != nil { - return errors.Wrap(err, "decode field \"title\"") + return errors.Wrap(err, "decode field \"error_code\"") } - case "vault_ids": + case "error_message": if err := func() error { - s.VaultIds = make([]string, 0) - if err := d.Arr(func(d *jx.Decoder) error { - var elem string - v, err := d.Str() - elem = string(v) - if err != nil { - return err - } - s.VaultIds = append(s.VaultIds, elem) - return nil - }); err != nil { + s.ErrorMessage.Reset() + if err := s.ErrorMessage.Decode(d); err != nil { return err } return nil }(); err != nil { - return errors.Wrap(err, "decode field \"vault_ids\"") + return errors.Wrap(err, "decode field \"error_message\"") } default: return d.Skip() } return nil }); err != nil { - return errors.Wrap(err, "decode CreateSessionRequest") + return errors.Wrap(err, "decode CheckpointComponent") } // Validate required fields. var failures []validate.FieldError for i, mask := range [1]uint8{ - 0b00000001, + 0b00000011, } { if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { // Mask only required fields and check equality to mask using XOR. @@ -1631,8 +1596,8 @@ func (s *CreateSessionRequest) Decode(d *jx.Decoder) error { bitIdx := bits.TrailingZeros8(result) fieldIdx := i*8 + bitIdx var name string - if fieldIdx < len(jsonFieldsNameOfCreateSessionRequest) { - name = jsonFieldsNameOfCreateSessionRequest[fieldIdx] + if fieldIdx < len(jsonFieldsNameOfCheckpointComponent) { + name = jsonFieldsNameOfCheckpointComponent[fieldIdx] } else { name = strconv.Itoa(fieldIdx) } @@ -1653,84 +1618,113 @@ func (s *CreateSessionRequest) Decode(d *jx.Decoder) error { } // MarshalJSON implements stdjson.Marshaler. -func (s *CreateSessionRequest) MarshalJSON() ([]byte, error) { +func (s *CheckpointComponent) MarshalJSON() ([]byte, error) { e := jx.Encoder{} s.Encode(&e) return e.Bytes(), nil } // UnmarshalJSON implements stdjson.Unmarshaler. -func (s *CreateSessionRequest) UnmarshalJSON(data []byte) error { +func (s *CheckpointComponent) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes CheckpointComponentStatus as json. +func (s CheckpointComponentStatus) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes CheckpointComponentStatus from json. +func (s *CheckpointComponentStatus) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode CheckpointComponentStatus to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch CheckpointComponentStatus(v) { + case CheckpointComponentStatusCreating: + *s = CheckpointComponentStatusCreating + case CheckpointComponentStatusReady: + *s = CheckpointComponentStatusReady + case CheckpointComponentStatusFailed: + *s = CheckpointComponentStatusFailed + case CheckpointComponentStatusDeleted: + *s = CheckpointComponentStatusDeleted + default: + *s = CheckpointComponentStatus(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s CheckpointComponentStatus) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *CheckpointComponentStatus) UnmarshalJSON(data []byte) error { d := jx.DecodeBytes(data) return s.Decode(d) } // Encode implements json.Marshaler. -func (s *CreateSessionResourceRequest) Encode(e *jx.Encoder) { +func (s *CheckpointRestoreConfig) Encode(e *jx.Encoder) { e.ObjStart() s.encodeFields(e) e.ObjEnd() } // encodeFields encodes fields. -func (s *CreateSessionResourceRequest) encodeFields(e *jx.Encoder) { - { - e.FieldStart("type") - s.Type.Encode(e) - } +func (s *CheckpointRestoreConfig) encodeFields(e *jx.Encoder) { { - e.FieldStart("file_id") - e.Str(s.FileID) + e.FieldStart("tos_bucket") + e.Str(s.TosBucket) } } -var jsonFieldsNameOfCreateSessionResourceRequest = [2]string{ - 0: "type", - 1: "file_id", +var jsonFieldsNameOfCheckpointRestoreConfig = [1]string{ + 0: "tos_bucket", } -// Decode decodes CreateSessionResourceRequest from json. -func (s *CreateSessionResourceRequest) Decode(d *jx.Decoder) error { +// Decode decodes CheckpointRestoreConfig from json. +func (s *CheckpointRestoreConfig) Decode(d *jx.Decoder) error { if s == nil { - return errors.New("invalid: unable to decode CreateSessionResourceRequest to nil") + return errors.New("invalid: unable to decode CheckpointRestoreConfig to nil") } var requiredBitSet [1]uint8 if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { switch string(k) { - case "type": + case "tos_bucket": requiredBitSet[0] |= 1 << 0 - if err := func() error { - if err := s.Type.Decode(d); err != nil { - return err - } - return nil - }(); err != nil { - return errors.Wrap(err, "decode field \"type\"") - } - case "file_id": - requiredBitSet[0] |= 1 << 1 if err := func() error { v, err := d.Str() - s.FileID = string(v) + s.TosBucket = string(v) if err != nil { return err } return nil }(); err != nil { - return errors.Wrap(err, "decode field \"file_id\"") + return errors.Wrap(err, "decode field \"tos_bucket\"") } default: return d.Skip() } return nil }); err != nil { - return errors.Wrap(err, "decode CreateSessionResourceRequest") + return errors.Wrap(err, "decode CheckpointRestoreConfig") } // Validate required fields. var failures []validate.FieldError for i, mask := range [1]uint8{ - 0b00000011, + 0b00000001, } { if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { // Mask only required fields and check equality to mask using XOR. @@ -1742,8 +1736,8 @@ func (s *CreateSessionResourceRequest) Decode(d *jx.Decoder) error { bitIdx := bits.TrailingZeros8(result) fieldIdx := i*8 + bitIdx var name string - if fieldIdx < len(jsonFieldsNameOfCreateSessionResourceRequest) { - name = jsonFieldsNameOfCreateSessionResourceRequest[fieldIdx] + if fieldIdx < len(jsonFieldsNameOfCheckpointRestoreConfig) { + name = jsonFieldsNameOfCheckpointRestoreConfig[fieldIdx] } else { name = strconv.Itoa(fieldIdx) } @@ -1764,65 +1758,27 @@ func (s *CreateSessionResourceRequest) Decode(d *jx.Decoder) error { } // MarshalJSON implements stdjson.Marshaler. -func (s *CreateSessionResourceRequest) MarshalJSON() ([]byte, error) { - e := jx.Encoder{} - s.Encode(&e) - return e.Bytes(), nil -} - -// UnmarshalJSON implements stdjson.Unmarshaler. -func (s *CreateSessionResourceRequest) UnmarshalJSON(data []byte) error { - d := jx.DecodeBytes(data) - return s.Decode(d) -} - -// Encode encodes CreateSessionResourceRequestType as json. -func (s CreateSessionResourceRequestType) Encode(e *jx.Encoder) { - e.Str(string(s)) -} - -// Decode decodes CreateSessionResourceRequestType from json. -func (s *CreateSessionResourceRequestType) Decode(d *jx.Decoder) error { - if s == nil { - return errors.New("invalid: unable to decode CreateSessionResourceRequestType to nil") - } - v, err := d.StrBytes() - if err != nil { - return err - } - // Try to use constant string. - switch CreateSessionResourceRequestType(v) { - case CreateSessionResourceRequestTypeFile: - *s = CreateSessionResourceRequestTypeFile - default: - *s = CreateSessionResourceRequestType(v) - } - - return nil -} - -// MarshalJSON implements stdjson.Marshaler. -func (s CreateSessionResourceRequestType) MarshalJSON() ([]byte, error) { +func (s *CheckpointRestoreConfig) MarshalJSON() ([]byte, error) { e := jx.Encoder{} s.Encode(&e) return e.Bytes(), nil } // UnmarshalJSON implements stdjson.Unmarshaler. -func (s *CreateSessionResourceRequestType) UnmarshalJSON(data []byte) error { +func (s *CheckpointRestoreConfig) UnmarshalJSON(data []byte) error { d := jx.DecodeBytes(data) return s.Decode(d) } // Encode implements json.Marshaler. -func (s *CreateSessionUpgradeRequest) Encode(e *jx.Encoder) { +func (s *CheckpointSessionSnapshot) Encode(e *jx.Encoder) { e.ObjStart() s.encodeFields(e) e.ObjEnd() } // encodeFields encodes fields. -func (s *CreateSessionUpgradeRequest) encodeFields(e *jx.Encoder) { +func (s *CheckpointSessionSnapshot) encodeFields(e *jx.Encoder) { { if s.Agent.Set { e.FieldStart("agent") @@ -1835,6 +1791,16 @@ func (s *CreateSessionUpgradeRequest) encodeFields(e *jx.Encoder) { s.Environment.Encode(e) } } + { + if s.Resources != nil { + e.FieldStart("resources") + e.ArrStart() + for _, elem := range s.Resources { + elem.Encode(e) + } + e.ArrEnd() + } + } { if s.VaultIds != nil { e.FieldStart("vault_ids") @@ -1846,10 +1812,16 @@ func (s *CreateSessionUpgradeRequest) encodeFields(e *jx.Encoder) { } } { - if s.InitialEvents != nil { - e.FieldStart("initial_events") + if s.Title.Set { + e.FieldStart("title") + s.Title.Encode(e) + } + } + { + if s.Tags != nil { + e.FieldStart("tags") e.ArrStart() - for _, elem := range s.InitialEvents { + for _, elem := range s.Tags { elem.Encode(e) } e.ArrEnd() @@ -1857,17 +1829,19 @@ func (s *CreateSessionUpgradeRequest) encodeFields(e *jx.Encoder) { } } -var jsonFieldsNameOfCreateSessionUpgradeRequest = [4]string{ +var jsonFieldsNameOfCheckpointSessionSnapshot = [6]string{ 0: "agent", 1: "environment", - 2: "vault_ids", - 3: "initial_events", + 2: "resources", + 3: "vault_ids", + 4: "title", + 5: "tags", } -// Decode decodes CreateSessionUpgradeRequest from json. -func (s *CreateSessionUpgradeRequest) Decode(d *jx.Decoder) error { +// Decode decodes CheckpointSessionSnapshot from json. +func (s *CheckpointSessionSnapshot) Decode(d *jx.Decoder) error { if s == nil { - return errors.New("invalid: unable to decode CreateSessionUpgradeRequest to nil") + return errors.New("invalid: unable to decode CheckpointSessionSnapshot to nil") } if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { @@ -1892,17 +1866,917 @@ func (s *CreateSessionUpgradeRequest) Decode(d *jx.Decoder) error { }(); err != nil { return errors.Wrap(err, "decode field \"environment\"") } - case "vault_ids": + case "resources": if err := func() error { - s.VaultIds = make([]string, 0) + s.Resources = make([]SessionResource, 0) if err := d.Arr(func(d *jx.Decoder) error { - var elem string - v, err := d.Str() - elem = string(v) - if err != nil { + var elem SessionResource + if err := elem.Decode(d); err != nil { return err } - s.VaultIds = append(s.VaultIds, elem) + s.Resources = append(s.Resources, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"resources\"") + } + case "vault_ids": + if err := func() error { + s.VaultIds = make([]string, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem string + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + s.VaultIds = append(s.VaultIds, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"vault_ids\"") + } + case "title": + if err := func() error { + s.Title.Reset() + if err := s.Title.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"title\"") + } + case "tags": + if err := func() error { + s.Tags = make([]Tag, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem Tag + if err := elem.Decode(d); err != nil { + return err + } + s.Tags = append(s.Tags, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"tags\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode CheckpointSessionSnapshot") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *CheckpointSessionSnapshot) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *CheckpointSessionSnapshot) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s CheckpointSessionSnapshotAgent) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields implements json.Marshaler. +func (s CheckpointSessionSnapshotAgent) encodeFields(e *jx.Encoder) { + for k, elem := range s { + e.FieldStart(k) + + if len(elem) != 0 { + e.Raw(elem) + } + } +} + +// Decode decodes CheckpointSessionSnapshotAgent from json. +func (s *CheckpointSessionSnapshotAgent) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode CheckpointSessionSnapshotAgent to nil") + } + m := s.init() + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + var elem jx.Raw + if err := func() error { + v, err := d.RawAppend(nil) + elem = jx.Raw(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrapf(err, "decode field %q", k) + } + m[string(k)] = elem + return nil + }); err != nil { + return errors.Wrap(err, "decode CheckpointSessionSnapshotAgent") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s CheckpointSessionSnapshotAgent) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *CheckpointSessionSnapshotAgent) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s CheckpointSessionSnapshotEnvironment) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields implements json.Marshaler. +func (s CheckpointSessionSnapshotEnvironment) encodeFields(e *jx.Encoder) { + for k, elem := range s { + e.FieldStart(k) + + if len(elem) != 0 { + e.Raw(elem) + } + } +} + +// Decode decodes CheckpointSessionSnapshotEnvironment from json. +func (s *CheckpointSessionSnapshotEnvironment) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode CheckpointSessionSnapshotEnvironment to nil") + } + m := s.init() + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + var elem jx.Raw + if err := func() error { + v, err := d.RawAppend(nil) + elem = jx.Raw(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrapf(err, "decode field %q", k) + } + m[string(k)] = elem + return nil + }); err != nil { + return errors.Wrap(err, "decode CheckpointSessionSnapshotEnvironment") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s CheckpointSessionSnapshotEnvironment) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *CheckpointSessionSnapshotEnvironment) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes CheckpointStatus as json. +func (s CheckpointStatus) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes CheckpointStatus from json. +func (s *CheckpointStatus) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode CheckpointStatus to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch CheckpointStatus(v) { + case CheckpointStatusCreating: + *s = CheckpointStatusCreating + case CheckpointStatusReady: + *s = CheckpointStatusReady + case CheckpointStatusFailed: + *s = CheckpointStatusFailed + case CheckpointStatusDeleting: + *s = CheckpointStatusDeleting + case CheckpointStatusDeleted: + *s = CheckpointStatusDeleted + default: + *s = CheckpointStatus(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s CheckpointStatus) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *CheckpointStatus) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *CreateSessionCheckpointRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *CreateSessionCheckpointRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("name") + e.Str(s.Name) + } +} + +var jsonFieldsNameOfCreateSessionCheckpointRequest = [1]string{ + 0: "name", +} + +// Decode decodes CreateSessionCheckpointRequest from json. +func (s *CreateSessionCheckpointRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode CreateSessionCheckpointRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "name": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Name = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode CreateSessionCheckpointRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfCreateSessionCheckpointRequest) { + name = jsonFieldsNameOfCreateSessionCheckpointRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *CreateSessionCheckpointRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *CreateSessionCheckpointRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *CreateSessionCheckpointResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *CreateSessionCheckpointResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("checkpoint") + s.Checkpoint.Encode(e) + } +} + +var jsonFieldsNameOfCreateSessionCheckpointResponse = [1]string{ + 0: "checkpoint", +} + +// Decode decodes CreateSessionCheckpointResponse from json. +func (s *CreateSessionCheckpointResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode CreateSessionCheckpointResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "checkpoint": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Checkpoint.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"checkpoint\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode CreateSessionCheckpointResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfCreateSessionCheckpointResponse) { + name = jsonFieldsNameOfCreateSessionCheckpointResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *CreateSessionCheckpointResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *CreateSessionCheckpointResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *CreateSessionRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *CreateSessionRequest) encodeFields(e *jx.Encoder) { + { + if s.Agent.Set { + e.FieldStart("agent") + s.Agent.Encode(e) + } + } + { + if s.EnvironmentID.Set { + e.FieldStart("environment_id") + s.EnvironmentID.Encode(e) + } + } + { + if s.Environment.Set { + e.FieldStart("environment") + s.Environment.Encode(e) + } + } + { + if s.Tags != nil { + e.FieldStart("tags") + e.ArrStart() + for _, elem := range s.Tags { + elem.Encode(e) + } + e.ArrEnd() + } + } + { + if s.Resources != nil { + e.FieldStart("resources") + e.ArrStart() + for _, elem := range s.Resources { + elem.Encode(e) + } + e.ArrEnd() + } + } + { + if s.Title.Set { + e.FieldStart("title") + s.Title.Encode(e) + } + } + { + if s.VaultIds != nil { + e.FieldStart("vault_ids") + e.ArrStart() + for _, elem := range s.VaultIds { + e.Str(elem) + } + e.ArrEnd() + } + } + { + if s.CheckpointID.Set { + e.FieldStart("checkpoint_id") + s.CheckpointID.Encode(e) + } + } + { + if s.CheckpointRestoreConfig.Set { + e.FieldStart("checkpoint_restore_config") + s.CheckpointRestoreConfig.Encode(e) + } + } +} + +var jsonFieldsNameOfCreateSessionRequest = [9]string{ + 0: "agent", + 1: "environment_id", + 2: "environment", + 3: "tags", + 4: "resources", + 5: "title", + 6: "vault_ids", + 7: "checkpoint_id", + 8: "checkpoint_restore_config", +} + +// Decode decodes CreateSessionRequest from json. +func (s *CreateSessionRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode CreateSessionRequest to nil") + } + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "agent": + if err := func() error { + s.Agent.Reset() + if err := s.Agent.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"agent\"") + } + case "environment_id": + if err := func() error { + s.EnvironmentID.Reset() + if err := s.EnvironmentID.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"environment_id\"") + } + case "environment": + if err := func() error { + s.Environment.Reset() + if err := s.Environment.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"environment\"") + } + case "tags": + if err := func() error { + s.Tags = make([]Tag, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem Tag + if err := elem.Decode(d); err != nil { + return err + } + s.Tags = append(s.Tags, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"tags\"") + } + case "resources": + if err := func() error { + s.Resources = make([]SessionResource, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem SessionResource + if err := elem.Decode(d); err != nil { + return err + } + s.Resources = append(s.Resources, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"resources\"") + } + case "title": + if err := func() error { + s.Title.Reset() + if err := s.Title.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"title\"") + } + case "vault_ids": + if err := func() error { + s.VaultIds = make([]string, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem string + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + s.VaultIds = append(s.VaultIds, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"vault_ids\"") + } + case "checkpoint_id": + if err := func() error { + s.CheckpointID.Reset() + if err := s.CheckpointID.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"checkpoint_id\"") + } + case "checkpoint_restore_config": + if err := func() error { + s.CheckpointRestoreConfig.Reset() + if err := s.CheckpointRestoreConfig.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"checkpoint_restore_config\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode CreateSessionRequest") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *CreateSessionRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *CreateSessionRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *CreateSessionResourceRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *CreateSessionResourceRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + e.FieldStart("file_id") + e.Str(s.FileID) + } +} + +var jsonFieldsNameOfCreateSessionResourceRequest = [2]string{ + 0: "type", + 1: "file_id", +} + +// Decode decodes CreateSessionResourceRequest from json. +func (s *CreateSessionResourceRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode CreateSessionResourceRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "file_id": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.FileID = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"file_id\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode CreateSessionResourceRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfCreateSessionResourceRequest) { + name = jsonFieldsNameOfCreateSessionResourceRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *CreateSessionResourceRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *CreateSessionResourceRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes CreateSessionResourceRequestType as json. +func (s CreateSessionResourceRequestType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes CreateSessionResourceRequestType from json. +func (s *CreateSessionResourceRequestType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode CreateSessionResourceRequestType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch CreateSessionResourceRequestType(v) { + case CreateSessionResourceRequestTypeFile: + *s = CreateSessionResourceRequestTypeFile + default: + *s = CreateSessionResourceRequestType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s CreateSessionResourceRequestType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *CreateSessionResourceRequestType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *CreateSessionUpgradeRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *CreateSessionUpgradeRequest) encodeFields(e *jx.Encoder) { + { + if s.Agent.Set { + e.FieldStart("agent") + s.Agent.Encode(e) + } + } + { + if s.Environment.Set { + e.FieldStart("environment") + s.Environment.Encode(e) + } + } + { + if s.VaultIds != nil { + e.FieldStart("vault_ids") + e.ArrStart() + for _, elem := range s.VaultIds { + e.Str(elem) + } + e.ArrEnd() + } + } + { + if s.InitialEvents != nil { + e.FieldStart("initial_events") + e.ArrStart() + for _, elem := range s.InitialEvents { + elem.Encode(e) + } + e.ArrEnd() + } + } +} + +var jsonFieldsNameOfCreateSessionUpgradeRequest = [4]string{ + 0: "agent", + 1: "environment", + 2: "vault_ids", + 3: "initial_events", +} + +// Decode decodes CreateSessionUpgradeRequest from json. +func (s *CreateSessionUpgradeRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode CreateSessionUpgradeRequest to nil") + } + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "agent": + if err := func() error { + s.Agent.Reset() + if err := s.Agent.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"agent\"") + } + case "environment": + if err := func() error { + s.Environment.Reset() + if err := s.Environment.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"environment\"") + } + case "vault_ids": + if err := func() error { + s.VaultIds = make([]string, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem string + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + s.VaultIds = append(s.VaultIds, elem) return nil }); err != nil { return err @@ -1926,28 +2800,139 @@ func (s *CreateSessionUpgradeRequest) Decode(d *jx.Decoder) error { } return nil }(); err != nil { - return errors.Wrap(err, "decode field \"initial_events\"") + return errors.Wrap(err, "decode field \"initial_events\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode CreateSessionUpgradeRequest") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *CreateSessionUpgradeRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *CreateSessionUpgradeRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *DeleteSessionCheckpointResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *DeleteSessionCheckpointResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("id") + e.Str(s.ID) + } + { + e.FieldStart("status") + s.Status.Encode(e) + } +} + +var jsonFieldsNameOfDeleteSessionCheckpointResponse = [2]string{ + 0: "id", + 1: "status", +} + +// Decode decodes DeleteSessionCheckpointResponse from json. +func (s *DeleteSessionCheckpointResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode DeleteSessionCheckpointResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "id": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.ID = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"id\"") + } + case "status": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.Status.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"status\"") } default: return d.Skip() } return nil }); err != nil { - return errors.Wrap(err, "decode CreateSessionUpgradeRequest") + return errors.Wrap(err, "decode DeleteSessionCheckpointResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfDeleteSessionCheckpointResponse) { + name = jsonFieldsNameOfDeleteSessionCheckpointResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} } return nil } // MarshalJSON implements stdjson.Marshaler. -func (s *CreateSessionUpgradeRequest) MarshalJSON() ([]byte, error) { +func (s *DeleteSessionCheckpointResponse) MarshalJSON() ([]byte, error) { e := jx.Encoder{} s.Encode(&e) return e.Bytes(), nil } // UnmarshalJSON implements stdjson.Unmarshaler. -func (s *CreateSessionUpgradeRequest) UnmarshalJSON(data []byte) error { +func (s *DeleteSessionCheckpointResponse) UnmarshalJSON(data []byte) error { d := jx.DecodeBytes(data) return s.Decode(d) } @@ -3541,6 +4526,100 @@ func (s *FileImageSource) UnmarshalJSON(data []byte) error { return s.Decode(d) } +// Encode implements json.Marshaler. +func (s *GetSessionCheckpointResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetSessionCheckpointResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("checkpoint") + s.Checkpoint.Encode(e) + } +} + +var jsonFieldsNameOfGetSessionCheckpointResponse = [1]string{ + 0: "checkpoint", +} + +// Decode decodes GetSessionCheckpointResponse from json. +func (s *GetSessionCheckpointResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetSessionCheckpointResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "checkpoint": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Checkpoint.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"checkpoint\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetSessionCheckpointResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetSessionCheckpointResponse) { + name = jsonFieldsNameOfGetSessionCheckpointResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetSessionCheckpointResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetSessionCheckpointResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + // Encode implements json.Marshaler. func (s *ImageSource) Encode(e *jx.Encoder) { e.ObjStart() @@ -3714,6 +4793,129 @@ func (s *ImageSourceSum) UnmarshalJSON(data []byte) error { return s.Decode(d) } +// Encode implements json.Marshaler. +func (s *ListSessionCheckpointsResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *ListSessionCheckpointsResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("data") + e.ArrStart() + for _, elem := range s.Data { + elem.Encode(e) + } + e.ArrEnd() + } + { + if s.NextPage.Set { + e.FieldStart("next_page") + s.NextPage.Encode(e) + } + } +} + +var jsonFieldsNameOfListSessionCheckpointsResponse = [2]string{ + 0: "data", + 1: "next_page", +} + +// Decode decodes ListSessionCheckpointsResponse from json. +func (s *ListSessionCheckpointsResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode ListSessionCheckpointsResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "data": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + s.Data = make([]SessionCheckpoint, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem SessionCheckpoint + if err := elem.Decode(d); err != nil { + return err + } + s.Data = append(s.Data, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"data\"") + } + case "next_page": + if err := func() error { + s.NextPage.Reset() + if err := s.NextPage.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"next_page\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode ListSessionCheckpointsResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfListSessionCheckpointsResponse) { + name = jsonFieldsNameOfListSessionCheckpointsResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *ListSessionCheckpointsResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ListSessionCheckpointsResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + // Encode implements json.Marshaler. func (s *ListSessionEventsResponseWire) Encode(e *jx.Encoder) { e.ObjStart() @@ -6990,31 +8192,77 @@ func (s *ModelOverrides) encodeFields(e *jx.Encoder) { } } { - if s.Thinking.Set { - e.FieldStart("thinking") - s.Thinking.Encode(e) + if s.Thinking.Set { + e.FieldStart("thinking") + s.Thinking.Encode(e) + } + } + { + if s.ReasoningEffort.Set { + e.FieldStart("reasoning_effort") + s.ReasoningEffort.Encode(e) + } + } + { + if s.ServiceTier.Set { + e.FieldStart("service_tier") + s.ServiceTier.Encode(e) + } + } + { + if s.Provider.Set { + e.FieldStart("provider") + s.Provider.Encode(e) + } + } + { + if s.Protocol.Set { + e.FieldStart("protocol") + s.Protocol.Encode(e) + } + } + { + if s.BaseURL.Set { + e.FieldStart("base_url") + s.BaseURL.Encode(e) + } + } + { + if s.Headers.Set { + e.FieldStart("headers") + s.Headers.Encode(e) } } { - if s.ReasoningEffort.Set { - e.FieldStart("reasoning_effort") - s.ReasoningEffort.Encode(e) + if s.TokenLimits.Set { + e.FieldStart("token_limits") + s.TokenLimits.Encode(e) } } { - if s.ServiceTier.Set { - e.FieldStart("service_tier") - s.ServiceTier.Encode(e) + if s.InputModalities != nil { + e.FieldStart("input_modalities") + e.ArrStart() + for _, elem := range s.InputModalities { + e.Str(elem) + } + e.ArrEnd() } } } -var jsonFieldsNameOfModelOverrides = [5]string{ - 0: "id", - 1: "speed", - 2: "thinking", - 3: "reasoning_effort", - 4: "service_tier", +var jsonFieldsNameOfModelOverrides = [11]string{ + 0: "id", + 1: "speed", + 2: "thinking", + 3: "reasoning_effort", + 4: "service_tier", + 5: "provider", + 6: "protocol", + 7: "base_url", + 8: "headers", + 9: "token_limits", + 10: "input_modalities", } // Decode decodes ModelOverrides from json. @@ -7075,6 +8323,75 @@ func (s *ModelOverrides) Decode(d *jx.Decoder) error { }(); err != nil { return errors.Wrap(err, "decode field \"service_tier\"") } + case "provider": + if err := func() error { + s.Provider.Reset() + if err := s.Provider.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"provider\"") + } + case "protocol": + if err := func() error { + s.Protocol.Reset() + if err := s.Protocol.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"protocol\"") + } + case "base_url": + if err := func() error { + s.BaseURL.Reset() + if err := s.BaseURL.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"base_url\"") + } + case "headers": + if err := func() error { + s.Headers.Reset() + if err := s.Headers.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"headers\"") + } + case "token_limits": + if err := func() error { + s.TokenLimits.Reset() + if err := s.TokenLimits.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"token_limits\"") + } + case "input_modalities": + if err := func() error { + s.InputModalities = make([]string, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem string + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + s.InputModalities = append(s.InputModalities, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"input_modalities\"") + } default: return d.Skip() } @@ -7099,6 +8416,62 @@ func (s *ModelOverrides) UnmarshalJSON(data []byte) error { return s.Decode(d) } +// Encode implements json.Marshaler. +func (s ModelOverridesHeaders) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields implements json.Marshaler. +func (s ModelOverridesHeaders) encodeFields(e *jx.Encoder) { + for k, elem := range s { + e.FieldStart(k) + + e.Str(elem) + } +} + +// Decode decodes ModelOverridesHeaders from json. +func (s *ModelOverridesHeaders) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode ModelOverridesHeaders to nil") + } + m := s.init() + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + var elem string + if err := func() error { + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrapf(err, "decode field %q", k) + } + m[string(k)] = elem + return nil + }); err != nil { + return errors.Wrap(err, "decode ModelOverridesHeaders") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s ModelOverridesHeaders) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ModelOverridesHeaders) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + // Encode implements json.Marshaler. func (s *ModelUpgrades) Encode(e *jx.Encoder) { e.ObjStart() @@ -7218,33 +8591,201 @@ func (s *ModelUpgrades) Decode(d *jx.Decoder) error { } // MarshalJSON implements stdjson.Marshaler. -func (s *ModelUpgrades) MarshalJSON() ([]byte, error) { +func (s *ModelUpgrades) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ModelUpgrades) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes AgentIdentifier as json. +func (o OptAgentIdentifier) Encode(e *jx.Encoder) { + if !o.Set { + return + } + o.Value.Encode(e) +} + +// Decode decodes AgentIdentifier from json. +func (o *OptAgentIdentifier) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptAgentIdentifier to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptAgentIdentifier) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptAgentIdentifier) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes AgentRefMultiagent as json. +func (o OptAgentRefMultiagent) Encode(e *jx.Encoder) { + if !o.Set { + return + } + o.Value.Encode(e) +} + +// Decode decodes AgentRefMultiagent from json. +func (o *OptAgentRefMultiagent) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptAgentRefMultiagent to nil") + } + o.Set = true + o.Value = make(AgentRefMultiagent) + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptAgentRefMultiagent) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptAgentRefMultiagent) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes AgentWithUpgrades as json. +func (o OptAgentWithUpgrades) Encode(e *jx.Encoder) { + if !o.Set { + return + } + o.Value.Encode(e) +} + +// Decode decodes AgentWithUpgrades from json. +func (o *OptAgentWithUpgrades) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptAgentWithUpgrades to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptAgentWithUpgrades) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptAgentWithUpgrades) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes AgentWithUpgradesMultiagent as json. +func (o OptAgentWithUpgradesMultiagent) Encode(e *jx.Encoder) { + if !o.Set { + return + } + o.Value.Encode(e) +} + +// Decode decodes AgentWithUpgradesMultiagent from json. +func (o *OptAgentWithUpgradesMultiagent) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptAgentWithUpgradesMultiagent to nil") + } + o.Set = true + o.Value = make(AgentWithUpgradesMultiagent) + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptAgentWithUpgradesMultiagent) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptAgentWithUpgradesMultiagent) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes bool as json. +func (o OptBool) Encode(e *jx.Encoder) { + if !o.Set { + return + } + e.Bool(bool(o.Value)) +} + +// Decode decodes bool from json. +func (o *OptBool) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptBool to nil") + } + o.Set = true + v, err := d.Bool() + if err != nil { + return err + } + o.Value = bool(v) + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptBool) MarshalJSON() ([]byte, error) { e := jx.Encoder{} s.Encode(&e) return e.Bytes(), nil } // UnmarshalJSON implements stdjson.Unmarshaler. -func (s *ModelUpgrades) UnmarshalJSON(data []byte) error { +func (s *OptBool) UnmarshalJSON(data []byte) error { d := jx.DecodeBytes(data) return s.Decode(d) } -// Encode encodes AgentRefMultiagent as json. -func (o OptAgentRefMultiagent) Encode(e *jx.Encoder) { +// Encode encodes CacheCreation as json. +func (o OptCacheCreation) Encode(e *jx.Encoder) { if !o.Set { return } o.Value.Encode(e) } -// Decode decodes AgentRefMultiagent from json. -func (o *OptAgentRefMultiagent) Decode(d *jx.Decoder) error { +// Decode decodes CacheCreation from json. +func (o *OptCacheCreation) Decode(d *jx.Decoder) error { if o == nil { - return errors.New("invalid: unable to decode OptAgentRefMultiagent to nil") + return errors.New("invalid: unable to decode OptCacheCreation to nil") } o.Set = true - o.Value = make(AgentRefMultiagent) if err := o.Value.Decode(d); err != nil { return err } @@ -7252,30 +8793,30 @@ func (o *OptAgentRefMultiagent) Decode(d *jx.Decoder) error { } // MarshalJSON implements stdjson.Marshaler. -func (s OptAgentRefMultiagent) MarshalJSON() ([]byte, error) { +func (s OptCacheCreation) MarshalJSON() ([]byte, error) { e := jx.Encoder{} s.Encode(&e) return e.Bytes(), nil } // UnmarshalJSON implements stdjson.Unmarshaler. -func (s *OptAgentRefMultiagent) UnmarshalJSON(data []byte) error { +func (s *OptCacheCreation) UnmarshalJSON(data []byte) error { d := jx.DecodeBytes(data) return s.Decode(d) } -// Encode encodes AgentWithUpgrades as json. -func (o OptAgentWithUpgrades) Encode(e *jx.Encoder) { +// Encode encodes CheckpointRestoreConfig as json. +func (o OptCheckpointRestoreConfig) Encode(e *jx.Encoder) { if !o.Set { return } o.Value.Encode(e) } -// Decode decodes AgentWithUpgrades from json. -func (o *OptAgentWithUpgrades) Decode(d *jx.Decoder) error { +// Decode decodes CheckpointRestoreConfig from json. +func (o *OptCheckpointRestoreConfig) Decode(d *jx.Decoder) error { if o == nil { - return errors.New("invalid: unable to decode OptAgentWithUpgrades to nil") + return errors.New("invalid: unable to decode OptCheckpointRestoreConfig to nil") } o.Set = true if err := o.Value.Decode(d); err != nil { @@ -7285,33 +8826,32 @@ func (o *OptAgentWithUpgrades) Decode(d *jx.Decoder) error { } // MarshalJSON implements stdjson.Marshaler. -func (s OptAgentWithUpgrades) MarshalJSON() ([]byte, error) { +func (s OptCheckpointRestoreConfig) MarshalJSON() ([]byte, error) { e := jx.Encoder{} s.Encode(&e) return e.Bytes(), nil } // UnmarshalJSON implements stdjson.Unmarshaler. -func (s *OptAgentWithUpgrades) UnmarshalJSON(data []byte) error { +func (s *OptCheckpointRestoreConfig) UnmarshalJSON(data []byte) error { d := jx.DecodeBytes(data) return s.Decode(d) } -// Encode encodes AgentWithUpgradesMultiagent as json. -func (o OptAgentWithUpgradesMultiagent) Encode(e *jx.Encoder) { +// Encode encodes CheckpointSessionSnapshot as json. +func (o OptCheckpointSessionSnapshot) Encode(e *jx.Encoder) { if !o.Set { return } o.Value.Encode(e) } -// Decode decodes AgentWithUpgradesMultiagent from json. -func (o *OptAgentWithUpgradesMultiagent) Decode(d *jx.Decoder) error { +// Decode decodes CheckpointSessionSnapshot from json. +func (o *OptCheckpointSessionSnapshot) Decode(d *jx.Decoder) error { if o == nil { - return errors.New("invalid: unable to decode OptAgentWithUpgradesMultiagent to nil") + return errors.New("invalid: unable to decode OptCheckpointSessionSnapshot to nil") } o.Set = true - o.Value = make(AgentWithUpgradesMultiagent) if err := o.Value.Decode(d); err != nil { return err } @@ -7319,67 +8859,67 @@ func (o *OptAgentWithUpgradesMultiagent) Decode(d *jx.Decoder) error { } // MarshalJSON implements stdjson.Marshaler. -func (s OptAgentWithUpgradesMultiagent) MarshalJSON() ([]byte, error) { +func (s OptCheckpointSessionSnapshot) MarshalJSON() ([]byte, error) { e := jx.Encoder{} s.Encode(&e) return e.Bytes(), nil } // UnmarshalJSON implements stdjson.Unmarshaler. -func (s *OptAgentWithUpgradesMultiagent) UnmarshalJSON(data []byte) error { +func (s *OptCheckpointSessionSnapshot) UnmarshalJSON(data []byte) error { d := jx.DecodeBytes(data) return s.Decode(d) } -// Encode encodes bool as json. -func (o OptBool) Encode(e *jx.Encoder) { +// Encode encodes CheckpointSessionSnapshotAgent as json. +func (o OptCheckpointSessionSnapshotAgent) Encode(e *jx.Encoder) { if !o.Set { return } - e.Bool(bool(o.Value)) + o.Value.Encode(e) } -// Decode decodes bool from json. -func (o *OptBool) Decode(d *jx.Decoder) error { +// Decode decodes CheckpointSessionSnapshotAgent from json. +func (o *OptCheckpointSessionSnapshotAgent) Decode(d *jx.Decoder) error { if o == nil { - return errors.New("invalid: unable to decode OptBool to nil") + return errors.New("invalid: unable to decode OptCheckpointSessionSnapshotAgent to nil") } o.Set = true - v, err := d.Bool() - if err != nil { + o.Value = make(CheckpointSessionSnapshotAgent) + if err := o.Value.Decode(d); err != nil { return err } - o.Value = bool(v) return nil } // MarshalJSON implements stdjson.Marshaler. -func (s OptBool) MarshalJSON() ([]byte, error) { +func (s OptCheckpointSessionSnapshotAgent) MarshalJSON() ([]byte, error) { e := jx.Encoder{} s.Encode(&e) return e.Bytes(), nil } // UnmarshalJSON implements stdjson.Unmarshaler. -func (s *OptBool) UnmarshalJSON(data []byte) error { +func (s *OptCheckpointSessionSnapshotAgent) UnmarshalJSON(data []byte) error { d := jx.DecodeBytes(data) return s.Decode(d) } -// Encode encodes CacheCreation as json. -func (o OptCacheCreation) Encode(e *jx.Encoder) { +// Encode encodes CheckpointSessionSnapshotEnvironment as json. +func (o OptCheckpointSessionSnapshotEnvironment) Encode(e *jx.Encoder) { if !o.Set { return } o.Value.Encode(e) } -// Decode decodes CacheCreation from json. -func (o *OptCacheCreation) Decode(d *jx.Decoder) error { +// Decode decodes CheckpointSessionSnapshotEnvironment from json. +func (o *OptCheckpointSessionSnapshotEnvironment) Decode(d *jx.Decoder) error { if o == nil { - return errors.New("invalid: unable to decode OptCacheCreation to nil") + return errors.New("invalid: unable to decode OptCheckpointSessionSnapshotEnvironment to nil") } o.Set = true + o.Value = make(CheckpointSessionSnapshotEnvironment) if err := o.Value.Decode(d); err != nil { return err } @@ -7387,14 +8927,14 @@ func (o *OptCacheCreation) Decode(d *jx.Decoder) error { } // MarshalJSON implements stdjson.Marshaler. -func (s OptCacheCreation) MarshalJSON() ([]byte, error) { +func (s OptCheckpointSessionSnapshotEnvironment) MarshalJSON() ([]byte, error) { e := jx.Encoder{} s.Encode(&e) return e.Bytes(), nil } // UnmarshalJSON implements stdjson.Unmarshaler. -func (s *OptCacheCreation) UnmarshalJSON(data []byte) error { +func (s *OptCheckpointSessionSnapshotEnvironment) UnmarshalJSON(data []byte) error { d := jx.DecodeBytes(data) return s.Decode(d) } @@ -7767,6 +9307,40 @@ func (s *OptModelOverrides) UnmarshalJSON(data []byte) error { return s.Decode(d) } +// Encode encodes ModelOverridesHeaders as json. +func (o OptModelOverridesHeaders) Encode(e *jx.Encoder) { + if !o.Set { + return + } + o.Value.Encode(e) +} + +// Decode decodes ModelOverridesHeaders from json. +func (o *OptModelOverridesHeaders) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptModelOverridesHeaders to nil") + } + o.Set = true + o.Value = make(ModelOverridesHeaders) + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptModelOverridesHeaders) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptModelOverridesHeaders) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + // Encode encodes ModelUpgrades as json. func (o OptModelUpgrades) Encode(e *jx.Encoder) { if !o.Set { @@ -8135,6 +9709,39 @@ func (s *OptNilTagArray) UnmarshalJSON(data []byte) error { return s.Decode(d) } +// Encode encodes OverrideTokenLimits as json. +func (o OptOverrideTokenLimits) Encode(e *jx.Encoder) { + if !o.Set { + return + } + o.Value.Encode(e) +} + +// Decode decodes OverrideTokenLimits from json. +func (o *OptOverrideTokenLimits) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptOverrideTokenLimits to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptOverrideTokenLimits) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptOverrideTokenLimits) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + // Encode encodes SessionResourceAccess as json. func (o OptSessionResourceAccess) Encode(e *jx.Encoder) { if !o.Set { @@ -8152,53 +9759,183 @@ func (o *OptSessionResourceAccess) Decode(d *jx.Decoder) error { if err := o.Value.Decode(d); err != nil { return err } - return nil -} - -// MarshalJSON implements stdjson.Marshaler. -func (s OptSessionResourceAccess) MarshalJSON() ([]byte, error) { - e := jx.Encoder{} - s.Encode(&e) - return e.Bytes(), nil -} - -// UnmarshalJSON implements stdjson.Unmarshaler. -func (s *OptSessionResourceAccess) UnmarshalJSON(data []byte) error { - d := jx.DecodeBytes(data) - return s.Decode(d) -} - -// Encode encodes string as json. -func (o OptString) Encode(e *jx.Encoder) { - if !o.Set { - return + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptSessionResourceAccess) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptSessionResourceAccess) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes string as json. +func (o OptString) Encode(e *jx.Encoder) { + if !o.Set { + return + } + e.Str(string(o.Value)) +} + +// Decode decodes string from json. +func (o *OptString) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptString to nil") + } + o.Set = true + v, err := d.Str() + if err != nil { + return err + } + o.Value = string(v) + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptString) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptString) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *OverrideTokenLimits) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *OverrideTokenLimits) encodeFields(e *jx.Encoder) { + { + e.FieldStart("context_window") + e.Int64(s.ContextWindow) + } + { + e.FieldStart("max_input_token_length") + e.Int64(s.MaxInputTokenLength) + } + { + e.FieldStart("max_output_token_length") + e.Int64(s.MaxOutputTokenLength) + } +} + +var jsonFieldsNameOfOverrideTokenLimits = [3]string{ + 0: "context_window", + 1: "max_input_token_length", + 2: "max_output_token_length", +} + +// Decode decodes OverrideTokenLimits from json. +func (s *OverrideTokenLimits) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode OverrideTokenLimits to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "context_window": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Int64() + s.ContextWindow = int64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"context_window\"") + } + case "max_input_token_length": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Int64() + s.MaxInputTokenLength = int64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"max_input_token_length\"") + } + case "max_output_token_length": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Int64() + s.MaxOutputTokenLength = int64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"max_output_token_length\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode OverrideTokenLimits") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfOverrideTokenLimits) { + name = jsonFieldsNameOfOverrideTokenLimits[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} } - e.Str(string(o.Value)) -} -// Decode decodes string from json. -func (o *OptString) Decode(d *jx.Decoder) error { - if o == nil { - return errors.New("invalid: unable to decode OptString to nil") - } - o.Set = true - v, err := d.Str() - if err != nil { - return err - } - o.Value = string(v) return nil } // MarshalJSON implements stdjson.Marshaler. -func (s OptString) MarshalJSON() ([]byte, error) { +func (s *OverrideTokenLimits) MarshalJSON() ([]byte, error) { e := jx.Encoder{} s.Encode(&e) return e.Bytes(), nil } // UnmarshalJSON implements stdjson.Unmarshaler. -func (s *OptString) UnmarshalJSON(data []byte) error { +func (s *OverrideTokenLimits) UnmarshalJSON(data []byte) error { d := jx.DecodeBytes(data) return s.Decode(d) } @@ -9148,6 +10885,299 @@ func (s *SessionAgent) UnmarshalJSON(data []byte) error { return s.Decode(d) } +// Encode implements json.Marshaler. +func (s *SessionCheckpoint) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *SessionCheckpoint) encodeFields(e *jx.Encoder) { + { + e.FieldStart("id") + e.Str(s.ID) + } + { + e.FieldStart("source_session_id") + e.Str(s.SourceSessionID) + } + { + e.FieldStart("name") + e.Str(s.Name) + } + { + e.FieldStart("status") + s.Status.Encode(e) + } + { + if s.ErrorCode.Set { + e.FieldStart("error_code") + s.ErrorCode.Encode(e) + } + } + { + if s.ErrorMessage.Set { + e.FieldStart("error_message") + s.ErrorMessage.Encode(e) + } + } + { + if s.ExpiresAt.Set { + e.FieldStart("expires_at") + s.ExpiresAt.Encode(e) + } + } + { + if s.CompletedAt.Set { + e.FieldStart("completed_at") + s.CompletedAt.Encode(e) + } + } + { + e.FieldStart("created_at") + e.Str(s.CreatedAt) + } + { + e.FieldStart("updated_at") + e.Str(s.UpdatedAt) + } + { + if s.Snapshot.Set { + e.FieldStart("snapshot") + s.Snapshot.Encode(e) + } + } + { + if s.Components != nil { + e.FieldStart("components") + e.ArrStart() + for _, elem := range s.Components { + elem.Encode(e) + } + e.ArrEnd() + } + } +} + +var jsonFieldsNameOfSessionCheckpoint = [12]string{ + 0: "id", + 1: "source_session_id", + 2: "name", + 3: "status", + 4: "error_code", + 5: "error_message", + 6: "expires_at", + 7: "completed_at", + 8: "created_at", + 9: "updated_at", + 10: "snapshot", + 11: "components", +} + +// Decode decodes SessionCheckpoint from json. +func (s *SessionCheckpoint) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode SessionCheckpoint to nil") + } + var requiredBitSet [2]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "id": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.ID = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"id\"") + } + case "source_session_id": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.SourceSessionID = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"source_session_id\"") + } + case "name": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.Name = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + case "status": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + if err := s.Status.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"status\"") + } + case "error_code": + if err := func() error { + s.ErrorCode.Reset() + if err := s.ErrorCode.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"error_code\"") + } + case "error_message": + if err := func() error { + s.ErrorMessage.Reset() + if err := s.ErrorMessage.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"error_message\"") + } + case "expires_at": + if err := func() error { + s.ExpiresAt.Reset() + if err := s.ExpiresAt.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"expires_at\"") + } + case "completed_at": + if err := func() error { + s.CompletedAt.Reset() + if err := s.CompletedAt.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"completed_at\"") + } + case "created_at": + requiredBitSet[1] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.CreatedAt = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"created_at\"") + } + case "updated_at": + requiredBitSet[1] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.UpdatedAt = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"updated_at\"") + } + case "snapshot": + if err := func() error { + s.Snapshot.Reset() + if err := s.Snapshot.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"snapshot\"") + } + case "components": + if err := func() error { + s.Components = make([]CheckpointComponent, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem CheckpointComponent + if err := elem.Decode(d); err != nil { + return err + } + s.Components = append(s.Components, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"components\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode SessionCheckpoint") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [2]uint8{ + 0b00001111, + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfSessionCheckpoint) { + name = jsonFieldsNameOfSessionCheckpoint[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *SessionCheckpoint) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *SessionCheckpoint) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + // Encode implements json.Marshaler. func (s SessionEnvironment) Encode(e *jx.Encoder) { e.ObjStart() diff --git a/arkruntime/model/session/oas_parameters_gen.go b/arkruntime/model/session/oas_parameters_gen.go index ade9c5e..083ddb0 100644 --- a/arkruntime/model/session/oas_parameters_gen.go +++ b/arkruntime/model/session/oas_parameters_gen.go @@ -5,6 +5,34 @@ package session +// CheckpointsListParams is parameters of Checkpoints_list operation. +type CheckpointsListParams struct { + // 按来源 Session ID 精确过滤。. + SourceSessionID OptString `json:",omitempty,omitzero" query:"source_session_id"` + // 按状态过滤;多值使用**重复 query 参数**编码 + // (`status=ready&status=failed`),不要用逗号拼接。. + Status []CheckpointStatus `json:",omitempty" query:"status,repeat"` + // 单页最大条数,取值 [1, 100];省略时服务端默认 `20`。. + Limit OptInt32 `json:",omitempty,omitzero" query:"limit"` + // 分页 cursor;首页省略。. + Page OptString `json:",omitempty,omitzero" query:"page"` +} + +// CheckpointsRemoveParams is parameters of Checkpoints_remove operation. +type CheckpointsRemoveParams struct { + CheckpointId string +} + +// CheckpointsRetrieveParams is parameters of Checkpoints_retrieve operation. +type CheckpointsRetrieveParams struct { + CheckpointId string +} + +// SessionCheckpointsCreateParams is parameters of SessionCheckpoints_create operation. +type SessionCheckpointsCreateParams struct { + SessionId string +} + // SessionEventsListEventsParams is parameters of SessionEvents_listEvents operation. type SessionEventsListEventsParams struct { SessionId string diff --git a/arkruntime/model/session/oas_schemas_gen.go b/arkruntime/model/session/oas_schemas_gen.go index cad4be3..45b5214 100644 --- a/arkruntime/model/session/oas_schemas_gen.go +++ b/arkruntime/model/session/oas_schemas_gen.go @@ -551,30 +551,426 @@ func (s *CacheCreation) SetEphemeral5mInputTokens(val OptInt64) { s.Ephemeral5mInputTokens = val } +// Checkpoint 中单个资源组件的脱敏执行摘要。 +// 不暴露运行时 Snapshot ID、平台 TOS Prefix、Credential 等内部信息。. +// Ref: #/components/schemas/CheckpointComponent +type CheckpointComponent struct { + // 组件类型。. + Type string `json:"type"` + // 组件快照状态。. + Status CheckpointComponentStatus `json:"status"` + // 源资源 ID。. + SourceResourceID OptString `json:"source_resource_id"` + // 快照对象数。. + ObjectCount OptInt64 `json:"object_count"` + // 快照占用字节数。. + StorageBytes OptInt64 `json:"storage_bytes"` + // 失败错误码。. + ErrorCode OptString `json:"error_code"` + // 失败错误信息。. + ErrorMessage OptString `json:"error_message"` +} + +// GetType returns the value of Type. +func (s *CheckpointComponent) GetType() string { + return s.Type +} + +// GetStatus returns the value of Status. +func (s *CheckpointComponent) GetStatus() CheckpointComponentStatus { + return s.Status +} + +// GetSourceResourceID returns the value of SourceResourceID. +func (s *CheckpointComponent) GetSourceResourceID() OptString { + return s.SourceResourceID +} + +// GetObjectCount returns the value of ObjectCount. +func (s *CheckpointComponent) GetObjectCount() OptInt64 { + return s.ObjectCount +} + +// GetStorageBytes returns the value of StorageBytes. +func (s *CheckpointComponent) GetStorageBytes() OptInt64 { + return s.StorageBytes +} + +// GetErrorCode returns the value of ErrorCode. +func (s *CheckpointComponent) GetErrorCode() OptString { + return s.ErrorCode +} + +// GetErrorMessage returns the value of ErrorMessage. +func (s *CheckpointComponent) GetErrorMessage() OptString { + return s.ErrorMessage +} + +// SetType sets the value of Type. +func (s *CheckpointComponent) SetType(val string) { + s.Type = val +} + +// SetStatus sets the value of Status. +func (s *CheckpointComponent) SetStatus(val CheckpointComponentStatus) { + s.Status = val +} + +// SetSourceResourceID sets the value of SourceResourceID. +func (s *CheckpointComponent) SetSourceResourceID(val OptString) { + s.SourceResourceID = val +} + +// SetObjectCount sets the value of ObjectCount. +func (s *CheckpointComponent) SetObjectCount(val OptInt64) { + s.ObjectCount = val +} + +// SetStorageBytes sets the value of StorageBytes. +func (s *CheckpointComponent) SetStorageBytes(val OptInt64) { + s.StorageBytes = val +} + +// SetErrorCode sets the value of ErrorCode. +func (s *CheckpointComponent) SetErrorCode(val OptString) { + s.ErrorCode = val +} + +// SetErrorMessage sets the value of ErrorMessage. +func (s *CheckpointComponent) SetErrorMessage(val OptString) { + s.ErrorMessage = val +} + +// 单个 Checkpoint 组件(资源快照分区)的状态。. +// Ref: #/components/schemas/CheckpointComponentStatus +type CheckpointComponentStatus string + +const ( + CheckpointComponentStatusCreating CheckpointComponentStatus = "creating" + CheckpointComponentStatusReady CheckpointComponentStatus = "ready" + CheckpointComponentStatusFailed CheckpointComponentStatus = "failed" + CheckpointComponentStatusDeleted CheckpointComponentStatus = "deleted" +) + +// AllValues returns all CheckpointComponentStatus values. +func (CheckpointComponentStatus) AllValues() []CheckpointComponentStatus { + return []CheckpointComponentStatus{ + CheckpointComponentStatusCreating, + CheckpointComponentStatusReady, + CheckpointComponentStatusFailed, + CheckpointComponentStatusDeleted, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s CheckpointComponentStatus) MarshalText() ([]byte, error) { + switch s { + case CheckpointComponentStatusCreating: + return []byte(s), nil + case CheckpointComponentStatusReady: + return []byte(s), nil + case CheckpointComponentStatusFailed: + return []byte(s), nil + case CheckpointComponentStatusDeleted: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *CheckpointComponentStatus) UnmarshalText(data []byte) error { + switch CheckpointComponentStatus(data) { + case CheckpointComponentStatusCreating: + *s = CheckpointComponentStatusCreating + return nil + case CheckpointComponentStatusReady: + *s = CheckpointComponentStatusReady + return nil + case CheckpointComponentStatusFailed: + *s = CheckpointComponentStatusFailed + return nil + case CheckpointComponentStatusDeleted: + *s = CheckpointComponentStatusDeleted + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// 跨账号 Checkpoint 恢复的目标账号侧配置。 +// 是否提供分三种情况: +// - 同账号恢复:**必须省略**,携带返回 400; +// - 跨账号恢复但 Checkpoint 不含 customer TOS 数据(仅平台托管的 +// uploads/outputs/memory 等):**必须省略**,携带返回 400,错误码 +// 消息为 "checkpoint_restore_config is only allowed when the +// checkpoint contains customer TOS data"; +// - 跨账号恢复且 Checkpoint 包含 customer TOS 数据:**必填** +// `tos_bucket`,声明调用方已离线同步好快照的目标账号 TOS 桶; +// 省略返回 400。 +// 快照源 prefix、region、mount_path、access 均从 Checkpoint 继承, +// 最终 Session 目标 key 由平台生成。. +// Ref: #/components/schemas/CheckpointRestoreConfig +type CheckpointRestoreConfig struct { + // 调用方已将 customer TOS 快照同步到的目标账号 TOS 桶。. + TosBucket string `json:"tos_bucket"` +} + +// GetTosBucket returns the value of TosBucket. +func (s *CheckpointRestoreConfig) GetTosBucket() string { + return s.TosBucket +} + +// SetTosBucket sets the value of TosBucket. +func (s *CheckpointRestoreConfig) SetTosBucket(val string) { + s.TosBucket = val +} + +// 创建 Checkpoint 时冻结的用户可见 Session 配置。 +// `agent` / `environment` 反映创建瞬间的 wire 形态(分别与 Ark.Agent 的 +// Agent、Ark.Environment 的 Environment 同 shape),为保持本模块自足, +// 此处承载为 `Record`。. +// Ref: #/components/schemas/CheckpointSessionSnapshot +type CheckpointSessionSnapshot struct { + // 冻结的 Agent 快照。. + Agent OptCheckpointSessionSnapshotAgent `json:"agent"` + // 冻结的 Environment 快照。. + Environment OptCheckpointSessionSnapshotEnvironment `json:"environment"` + // 冻结的挂载资源列表。. + Resources []SessionResource `json:"resources"` + // 冻结的可访问 Vault ID 列表。. + VaultIds []string `json:"vault_ids"` + // 冻结的会话标题。. + Title OptString `json:"title"` + // 冻结的资源标签。. + Tags []Tag `json:"tags"` +} + +// GetAgent returns the value of Agent. +func (s *CheckpointSessionSnapshot) GetAgent() OptCheckpointSessionSnapshotAgent { + return s.Agent +} + +// GetEnvironment returns the value of Environment. +func (s *CheckpointSessionSnapshot) GetEnvironment() OptCheckpointSessionSnapshotEnvironment { + return s.Environment +} + +// GetResources returns the value of Resources. +func (s *CheckpointSessionSnapshot) GetResources() []SessionResource { + return s.Resources +} + +// GetVaultIds returns the value of VaultIds. +func (s *CheckpointSessionSnapshot) GetVaultIds() []string { + return s.VaultIds +} + +// GetTitle returns the value of Title. +func (s *CheckpointSessionSnapshot) GetTitle() OptString { + return s.Title +} + +// GetTags returns the value of Tags. +func (s *CheckpointSessionSnapshot) GetTags() []Tag { + return s.Tags +} + +// SetAgent sets the value of Agent. +func (s *CheckpointSessionSnapshot) SetAgent(val OptCheckpointSessionSnapshotAgent) { + s.Agent = val +} + +// SetEnvironment sets the value of Environment. +func (s *CheckpointSessionSnapshot) SetEnvironment(val OptCheckpointSessionSnapshotEnvironment) { + s.Environment = val +} + +// SetResources sets the value of Resources. +func (s *CheckpointSessionSnapshot) SetResources(val []SessionResource) { + s.Resources = val +} + +// SetVaultIds sets the value of VaultIds. +func (s *CheckpointSessionSnapshot) SetVaultIds(val []string) { + s.VaultIds = val +} + +// SetTitle sets the value of Title. +func (s *CheckpointSessionSnapshot) SetTitle(val OptString) { + s.Title = val +} + +// SetTags sets the value of Tags. +func (s *CheckpointSessionSnapshot) SetTags(val []Tag) { + s.Tags = val +} + +// 冻结的 Agent 快照。. +type CheckpointSessionSnapshotAgent map[string]jx.Raw + +func (s *CheckpointSessionSnapshotAgent) init() CheckpointSessionSnapshotAgent { + m := *s + if m == nil { + m = map[string]jx.Raw{} + *s = m + } + return m +} + +// 冻结的 Environment 快照。. +type CheckpointSessionSnapshotEnvironment map[string]jx.Raw + +func (s *CheckpointSessionSnapshotEnvironment) init() CheckpointSessionSnapshotEnvironment { + m := *s + if m == nil { + m = map[string]jx.Raw{} + *s = m + } + return m +} + +// Checkpoint 生命周期状态。. +// Ref: #/components/schemas/CheckpointStatus +type CheckpointStatus string + +const ( + CheckpointStatusCreating CheckpointStatus = "creating" + CheckpointStatusReady CheckpointStatus = "ready" + CheckpointStatusFailed CheckpointStatus = "failed" + CheckpointStatusDeleting CheckpointStatus = "deleting" + CheckpointStatusDeleted CheckpointStatus = "deleted" +) + +// AllValues returns all CheckpointStatus values. +func (CheckpointStatus) AllValues() []CheckpointStatus { + return []CheckpointStatus{ + CheckpointStatusCreating, + CheckpointStatusReady, + CheckpointStatusFailed, + CheckpointStatusDeleting, + CheckpointStatusDeleted, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s CheckpointStatus) MarshalText() ([]byte, error) { + switch s { + case CheckpointStatusCreating: + return []byte(s), nil + case CheckpointStatusReady: + return []byte(s), nil + case CheckpointStatusFailed: + return []byte(s), nil + case CheckpointStatusDeleting: + return []byte(s), nil + case CheckpointStatusDeleted: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *CheckpointStatus) UnmarshalText(data []byte) error { + switch CheckpointStatus(data) { + case CheckpointStatusCreating: + *s = CheckpointStatusCreating + return nil + case CheckpointStatusReady: + *s = CheckpointStatusReady + return nil + case CheckpointStatusFailed: + *s = CheckpointStatusFailed + return nil + case CheckpointStatusDeleting: + *s = CheckpointStatusDeleting + return nil + case CheckpointStatusDeleted: + *s = CheckpointStatusDeleted + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// 创建 Session Checkpoint 的请求体。. +// Ref: #/components/schemas/CreateSessionCheckpointRequest +type CreateSessionCheckpointRequest struct { + // Checkpoint 名称;由调用方提供,长度 1–128,仅用于展示。 + // Checkpoint ID 由平台生成并在响应的 `id` 字段返回。. + Name string `json:"name"` +} + +// GetName returns the value of Name. +func (s *CreateSessionCheckpointRequest) GetName() string { + return s.Name +} + +// SetName sets the value of Name. +func (s *CreateSessionCheckpointRequest) SetName(val string) { + s.Name = val +} + +// `POST /sessions/{session_id}/checkpoints` 响应体。. +// Ref: #/components/schemas/CreateSessionCheckpointResponse +type CreateSessionCheckpointResponse struct { + // 创建出的 Checkpoint。. + Checkpoint SessionCheckpoint `json:"checkpoint"` +} + +// GetCheckpoint returns the value of Checkpoint. +func (s *CreateSessionCheckpointResponse) GetCheckpoint() SessionCheckpoint { + return s.Checkpoint +} + +// SetCheckpoint sets the value of Checkpoint. +func (s *CreateSessionCheckpointResponse) SetCheckpoint(val SessionCheckpoint) { + s.Checkpoint = val +} + // 创建会话请求。 // `agent` 字段承载两种 wire 形态: // - 裸 `agent_id` 字符串 // - AgentRef 对象:`{"type":"agent","id":"agent_...","version":1}`. // Ref: #/components/schemas/CreateSessionRequest type CreateSessionRequest struct { - // Agent 标识。. - Agent AgentIdentifier `json:"agent"` - // 关联的 Environment ID。与 `environment` 二选一。. + // Agent 标识。普通创建必填;携带 `checkpoint_id` 恢复时可省略。 + // 注意两种恢复基线的区别: + // - **省略 `agent`**:完整继承 Checkpoint 冻结的 Agent 快照(含其 + // system / tools / model 接入配置等全部字段); + // - **显式提供 `agent`**:不是在 Checkpoint 快照上做局部修改,而是按 + // Agent 引用重新解析(指定 `version` 取该版本,省略取当前最新版; + // 源 Agent 在 Checkpoint 冻结后更新过就会拿到新配置),再在该基线 + // 上应用 `agent_with_overrides` 覆写。. + Agent OptAgentIdentifier `json:"agent"` + // 关联的 Environment ID。与 `environment` 二选一;恢复时省略则继承快照。. EnvironmentID OptString `json:"environment_id"` // 关联 Environment 的覆写引用。与 `environment_id` 二选一。. Environment OptEnvironmentWithOverrides `json:"environment"` // 资源标签。. Tags []Tag `json:"tags"` - // 挂载资源列表。. + // 挂载资源列表。普通创建可指定;基于 Checkpoint 恢复时**必须省略** + // (同账号 / 跨账号都完整继承 Checkpoint 资源,显式传空数组也返回 400)。. Resources []SessionResource `json:"resources"` // 会话人类可读标题。. Title OptString `json:"title"` - // 会话可访问的 Vault ID 列表。. + // 会话可访问的 Vault ID 列表。基于 Checkpoint 同账号恢复时必须省略并 + // 继承快照;跨账号恢复允许显式提供完整替换列表(空数组同样属于覆盖)。. VaultIds []string `json:"vault_ids"` + // Session Checkpoint ID。省略时为普通创建;传入时以 ready 状态 + // Checkpoint 的冻结配置为默认值创建新 Session,未显式提供的字段均从 + // 快照继承。Checkpoint 不存在 / 非 ready 返回对应 4xx。. + CheckpointID OptString `json:"checkpoint_id"` + // 跨账号 customer TOS 恢复配置。**不是所有跨账号恢复都需要**:仅当跨 + // 账号恢复且 Checkpoint 含 customer TOS 数据时必填;同账号恢复、以及 + // 跨账号但不含 customer TOS 时必须省略,否则返回 400。三分支细则见 + // `CheckpointRestoreConfig`。. + CheckpointRestoreConfig OptCheckpointRestoreConfig `json:"checkpoint_restore_config"` } // GetAgent returns the value of Agent. -func (s *CreateSessionRequest) GetAgent() AgentIdentifier { +func (s *CreateSessionRequest) GetAgent() OptAgentIdentifier { return s.Agent } @@ -608,8 +1004,18 @@ func (s *CreateSessionRequest) GetVaultIds() []string { return s.VaultIds } +// GetCheckpointID returns the value of CheckpointID. +func (s *CreateSessionRequest) GetCheckpointID() OptString { + return s.CheckpointID +} + +// GetCheckpointRestoreConfig returns the value of CheckpointRestoreConfig. +func (s *CreateSessionRequest) GetCheckpointRestoreConfig() OptCheckpointRestoreConfig { + return s.CheckpointRestoreConfig +} + // SetAgent sets the value of Agent. -func (s *CreateSessionRequest) SetAgent(val AgentIdentifier) { +func (s *CreateSessionRequest) SetAgent(val OptAgentIdentifier) { s.Agent = val } @@ -643,6 +1049,16 @@ func (s *CreateSessionRequest) SetVaultIds(val []string) { s.VaultIds = val } +// SetCheckpointID sets the value of CheckpointID. +func (s *CreateSessionRequest) SetCheckpointID(val OptString) { + s.CheckpointID = val +} + +// SetCheckpointRestoreConfig sets the value of CheckpointRestoreConfig. +func (s *CreateSessionRequest) SetCheckpointRestoreConfig(val OptCheckpointRestoreConfig) { + s.CheckpointRestoreConfig = val +} + // 挂载新的 SessionResource。 // 当前 CreateSessionResource 端点仅接受 `type=file` 的写入路径 // (对齐 ark-agent-console 当前实现)。. @@ -775,6 +1191,35 @@ func (s *CreateSessionUpgradeRequest) SetInitialEvents(val []ManagedAgentsEventP s.InitialEvents = val } +// `DELETE /checkpoints/{checkpoint_id}` 响应体。. +// Ref: #/components/schemas/DeleteSessionCheckpointResponse +type DeleteSessionCheckpointResponse struct { + // 被删除的 Checkpoint ID。. + ID string `json:"id"` + // 删除受理后的 Checkpoint 状态(通常为 `"deleting"`)。. + Status CheckpointStatus `json:"status"` +} + +// GetID returns the value of ID. +func (s *DeleteSessionCheckpointResponse) GetID() string { + return s.ID +} + +// GetStatus returns the value of Status. +func (s *DeleteSessionCheckpointResponse) GetStatus() CheckpointStatus { + return s.Status +} + +// SetID sets the value of ID. +func (s *DeleteSessionCheckpointResponse) SetID(val string) { + s.ID = val +} + +// SetStatus sets the value of Status. +func (s *DeleteSessionCheckpointResponse) SetStatus(val CheckpointStatus) { + s.Status = val +} + // Delete Session 响应体。. // Ref: #/components/schemas/DeleteSessionResponse type DeleteSessionResponse struct { @@ -1435,6 +1880,23 @@ func (s *FileImageSource) SetFileID(val string) { s.FileID = val } +// `GET /checkpoints/{checkpoint_id}` 响应体。. +// Ref: #/components/schemas/GetSessionCheckpointResponse +type GetSessionCheckpointResponse struct { + // Checkpoint 对象。. + Checkpoint SessionCheckpoint `json:"checkpoint"` +} + +// GetCheckpoint returns the value of Checkpoint. +func (s *GetSessionCheckpointResponse) GetCheckpoint() SessionCheckpoint { + return s.Checkpoint +} + +// SetCheckpoint sets the value of Checkpoint. +func (s *GetSessionCheckpointResponse) SetCheckpoint(val SessionCheckpoint) { + s.Checkpoint = val +} + // 图片来源 tagged union:`base64` / `url` / `file`。 // 用于 ManagedAgentsImageBlock.source。. // Ref: #/components/schemas/ImageSource @@ -1542,6 +2004,35 @@ func NewFileImageSourceImageSourceSum(v FileImageSource) ImageSourceSum { return s } +// `GET /checkpoints` 响应体。. +// Ref: #/components/schemas/ListSessionCheckpointsResponse +type ListSessionCheckpointsResponse struct { + // 本页 Checkpoint 列表。. + Data []SessionCheckpoint `json:"data"` + // 下一页 cursor;已列尽时为空或缺省。. + NextPage OptString `json:"next_page"` +} + +// GetData returns the value of Data. +func (s *ListSessionCheckpointsResponse) GetData() []SessionCheckpoint { + return s.Data +} + +// GetNextPage returns the value of NextPage. +func (s *ListSessionCheckpointsResponse) GetNextPage() OptString { + return s.NextPage +} + +// SetData sets the value of Data. +func (s *ListSessionCheckpointsResponse) SetData(val []SessionCheckpoint) { + s.Data = val +} + +// SetNextPage sets the value of NextPage. +func (s *ListSessionCheckpointsResponse) SetNextPage(val OptString) { + s.NextPage = val +} + // ListSessionEvents wire response. The `data` field carries the raw // SessionEvent union (30+ variants: agent.* / session.* / span.* / // user.* echoes); the Go SDK dispatches each item into a concrete @@ -2882,7 +3373,7 @@ func (s *ManagedAgentsUserToolResultEventParams) SetSessionThreadID(val OptStrin s.SessionThreadID = val } -// Session 创建时允许临时覆写的模型运行参数。 +// Session 创建时允许临时覆写的模型运行参数与接入配置。 // 内部字段省略表示继承 base Agent 的对应值。. // Ref: #/components/schemas/ModelOverrides type ModelOverrides struct { @@ -2898,6 +3389,28 @@ type ModelOverrides struct { ReasoningEffort OptString `json:"reasoning_effort"` // 服务档位。. ServiceTier OptString `json:"service_tier"` + // 模型提供方覆写,例如 `"ark"` 或外接 provider 名。非空才生效,显式传空 + // 串返回 400。切到非 ark provider 时,`base_url` 与 `token_limits` 为 + // 必填(可继承快照中已有的值,否则返回 400);ark provider 不允许指定 + // `token_limits`。. + Provider OptString `json:"provider"` + // 模型接入协议覆写;取值须命中服务端维护的接入协议白名单,非法值返回 + // 400。. + Protocol OptString `json:"protocol"` + // 自定义模型接入点 base URL。配合非 ark 的 `provider` 使用,把 Session + // 快照里冻结的上游替换成当前环境可达的接入点。. + BaseURL OptString `json:"base_url"` + // 自定义模型请求 header(整组覆写),例如 `Authorization` 或 + // `X-Trial-Id`;key / value 均为字符串。. + Headers OptModelOverridesHeaders `json:"headers"` + // 模型 token 限制覆写(整体替换,提供时内部三字段必填且为正数); + // 非 ark provider 可用,ark provider 指定返回 400。. + TokenLimits OptOverrideTokenLimits `json:"token_limits"` + // 底模支持的输入模态列表覆写。取值域:`text` / `image` / `audio` / + // `video`(无 `document`;文档在内部归入 image 通道)。 + // 服务端会做归一化:去空白、转小写、元素去重、拒绝空元素,元素长度 + // 上限 32,列表长度上限 16,超出返回 400。. + InputModalities []string `json:"input_modalities"` } // GetID returns the value of ID. @@ -2925,22 +3438,52 @@ func (s *ModelOverrides) GetServiceTier() OptString { return s.ServiceTier } -// SetID sets the value of ID. -func (s *ModelOverrides) SetID(val OptString) { - s.ID = val +// GetProvider returns the value of Provider. +func (s *ModelOverrides) GetProvider() OptString { + return s.Provider } -// SetSpeed sets the value of Speed. -func (s *ModelOverrides) SetSpeed(val OptString) { - s.Speed = val +// GetProtocol returns the value of Protocol. +func (s *ModelOverrides) GetProtocol() OptString { + return s.Protocol } -// SetThinking sets the value of Thinking. -func (s *ModelOverrides) SetThinking(val OptString) { - s.Thinking = val +// GetBaseURL returns the value of BaseURL. +func (s *ModelOverrides) GetBaseURL() OptString { + return s.BaseURL } -// SetReasoningEffort sets the value of ReasoningEffort. +// GetHeaders returns the value of Headers. +func (s *ModelOverrides) GetHeaders() OptModelOverridesHeaders { + return s.Headers +} + +// GetTokenLimits returns the value of TokenLimits. +func (s *ModelOverrides) GetTokenLimits() OptOverrideTokenLimits { + return s.TokenLimits +} + +// GetInputModalities returns the value of InputModalities. +func (s *ModelOverrides) GetInputModalities() []string { + return s.InputModalities +} + +// SetID sets the value of ID. +func (s *ModelOverrides) SetID(val OptString) { + s.ID = val +} + +// SetSpeed sets the value of Speed. +func (s *ModelOverrides) SetSpeed(val OptString) { + s.Speed = val +} + +// SetThinking sets the value of Thinking. +func (s *ModelOverrides) SetThinking(val OptString) { + s.Thinking = val +} + +// SetReasoningEffort sets the value of ReasoningEffort. func (s *ModelOverrides) SetReasoningEffort(val OptString) { s.ReasoningEffort = val } @@ -2950,6 +3493,49 @@ func (s *ModelOverrides) SetServiceTier(val OptString) { s.ServiceTier = val } +// SetProvider sets the value of Provider. +func (s *ModelOverrides) SetProvider(val OptString) { + s.Provider = val +} + +// SetProtocol sets the value of Protocol. +func (s *ModelOverrides) SetProtocol(val OptString) { + s.Protocol = val +} + +// SetBaseURL sets the value of BaseURL. +func (s *ModelOverrides) SetBaseURL(val OptString) { + s.BaseURL = val +} + +// SetHeaders sets the value of Headers. +func (s *ModelOverrides) SetHeaders(val OptModelOverridesHeaders) { + s.Headers = val +} + +// SetTokenLimits sets the value of TokenLimits. +func (s *ModelOverrides) SetTokenLimits(val OptOverrideTokenLimits) { + s.TokenLimits = val +} + +// SetInputModalities sets the value of InputModalities. +func (s *ModelOverrides) SetInputModalities(val []string) { + s.InputModalities = val +} + +// 自定义模型请求 header(整组覆写),例如 `Authorization` 或 +// `X-Trial-Id`;key / value 均为字符串。. +type ModelOverridesHeaders map[string]string + +func (s *ModelOverridesHeaders) init() ModelOverridesHeaders { + m := *s + if m == nil { + m = map[string]string{} + *s = m + } + return m +} + // Session upgrade 中允许调整的模型配置子集。 // 与创建期的 `ModelOverrides` 的差别在于 `id`:upgrade 允许改模型身份, // 服务端把它解析成完整 provider / protocol / endpoint 后冻结进 Session 的 @@ -3026,6 +3612,52 @@ func (s *ModelUpgrades) SetServiceTier(val OptString) { s.ServiceTier = val } +// NewOptAgentIdentifier returns new OptAgentIdentifier with value set to v. +func NewOptAgentIdentifier(v AgentIdentifier) OptAgentIdentifier { + return OptAgentIdentifier{ + Value: v, + Set: true, + } +} + +// OptAgentIdentifier is optional AgentIdentifier. +type OptAgentIdentifier struct { + Value AgentIdentifier + Set bool +} + +// IsSet returns true if OptAgentIdentifier was set. +func (o OptAgentIdentifier) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptAgentIdentifier) Reset() { + var v AgentIdentifier + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptAgentIdentifier) SetTo(v AgentIdentifier) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptAgentIdentifier) Get() (v AgentIdentifier, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptAgentIdentifier) Or(d AgentIdentifier) AgentIdentifier { + if v, ok := o.Get(); ok { + return v + } + return d +} + // NewOptAgentRefMultiagent returns new OptAgentRefMultiagent with value set to v. func NewOptAgentRefMultiagent(v AgentRefMultiagent) OptAgentRefMultiagent { return OptAgentRefMultiagent{ @@ -3256,6 +3888,190 @@ func (o OptCacheCreation) Or(d CacheCreation) CacheCreation { return d } +// NewOptCheckpointRestoreConfig returns new OptCheckpointRestoreConfig with value set to v. +func NewOptCheckpointRestoreConfig(v CheckpointRestoreConfig) OptCheckpointRestoreConfig { + return OptCheckpointRestoreConfig{ + Value: v, + Set: true, + } +} + +// OptCheckpointRestoreConfig is optional CheckpointRestoreConfig. +type OptCheckpointRestoreConfig struct { + Value CheckpointRestoreConfig + Set bool +} + +// IsSet returns true if OptCheckpointRestoreConfig was set. +func (o OptCheckpointRestoreConfig) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptCheckpointRestoreConfig) Reset() { + var v CheckpointRestoreConfig + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptCheckpointRestoreConfig) SetTo(v CheckpointRestoreConfig) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptCheckpointRestoreConfig) Get() (v CheckpointRestoreConfig, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptCheckpointRestoreConfig) Or(d CheckpointRestoreConfig) CheckpointRestoreConfig { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptCheckpointSessionSnapshot returns new OptCheckpointSessionSnapshot with value set to v. +func NewOptCheckpointSessionSnapshot(v CheckpointSessionSnapshot) OptCheckpointSessionSnapshot { + return OptCheckpointSessionSnapshot{ + Value: v, + Set: true, + } +} + +// OptCheckpointSessionSnapshot is optional CheckpointSessionSnapshot. +type OptCheckpointSessionSnapshot struct { + Value CheckpointSessionSnapshot + Set bool +} + +// IsSet returns true if OptCheckpointSessionSnapshot was set. +func (o OptCheckpointSessionSnapshot) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptCheckpointSessionSnapshot) Reset() { + var v CheckpointSessionSnapshot + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptCheckpointSessionSnapshot) SetTo(v CheckpointSessionSnapshot) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptCheckpointSessionSnapshot) Get() (v CheckpointSessionSnapshot, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptCheckpointSessionSnapshot) Or(d CheckpointSessionSnapshot) CheckpointSessionSnapshot { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptCheckpointSessionSnapshotAgent returns new OptCheckpointSessionSnapshotAgent with value set to v. +func NewOptCheckpointSessionSnapshotAgent(v CheckpointSessionSnapshotAgent) OptCheckpointSessionSnapshotAgent { + return OptCheckpointSessionSnapshotAgent{ + Value: v, + Set: true, + } +} + +// OptCheckpointSessionSnapshotAgent is optional CheckpointSessionSnapshotAgent. +type OptCheckpointSessionSnapshotAgent struct { + Value CheckpointSessionSnapshotAgent + Set bool +} + +// IsSet returns true if OptCheckpointSessionSnapshotAgent was set. +func (o OptCheckpointSessionSnapshotAgent) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptCheckpointSessionSnapshotAgent) Reset() { + var v CheckpointSessionSnapshotAgent + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptCheckpointSessionSnapshotAgent) SetTo(v CheckpointSessionSnapshotAgent) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptCheckpointSessionSnapshotAgent) Get() (v CheckpointSessionSnapshotAgent, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptCheckpointSessionSnapshotAgent) Or(d CheckpointSessionSnapshotAgent) CheckpointSessionSnapshotAgent { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptCheckpointSessionSnapshotEnvironment returns new OptCheckpointSessionSnapshotEnvironment with value set to v. +func NewOptCheckpointSessionSnapshotEnvironment(v CheckpointSessionSnapshotEnvironment) OptCheckpointSessionSnapshotEnvironment { + return OptCheckpointSessionSnapshotEnvironment{ + Value: v, + Set: true, + } +} + +// OptCheckpointSessionSnapshotEnvironment is optional CheckpointSessionSnapshotEnvironment. +type OptCheckpointSessionSnapshotEnvironment struct { + Value CheckpointSessionSnapshotEnvironment + Set bool +} + +// IsSet returns true if OptCheckpointSessionSnapshotEnvironment was set. +func (o OptCheckpointSessionSnapshotEnvironment) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptCheckpointSessionSnapshotEnvironment) Reset() { + var v CheckpointSessionSnapshotEnvironment + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptCheckpointSessionSnapshotEnvironment) SetTo(v CheckpointSessionSnapshotEnvironment) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptCheckpointSessionSnapshotEnvironment) Get() (v CheckpointSessionSnapshotEnvironment, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptCheckpointSessionSnapshotEnvironment) Or(d CheckpointSessionSnapshotEnvironment) CheckpointSessionSnapshotEnvironment { + if v, ok := o.Get(); ok { + return v + } + return d +} + // NewOptEnvironmentConfigOverride returns new OptEnvironmentConfigOverride with value set to v. func NewOptEnvironmentConfigOverride(v EnvironmentConfigOverride) OptEnvironmentConfigOverride { return OptEnvironmentConfigOverride{ @@ -3808,6 +4624,52 @@ func (o OptModelOverrides) Or(d ModelOverrides) ModelOverrides { return d } +// NewOptModelOverridesHeaders returns new OptModelOverridesHeaders with value set to v. +func NewOptModelOverridesHeaders(v ModelOverridesHeaders) OptModelOverridesHeaders { + return OptModelOverridesHeaders{ + Value: v, + Set: true, + } +} + +// OptModelOverridesHeaders is optional ModelOverridesHeaders. +type OptModelOverridesHeaders struct { + Value ModelOverridesHeaders + Set bool +} + +// IsSet returns true if OptModelOverridesHeaders was set. +func (o OptModelOverridesHeaders) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptModelOverridesHeaders) Reset() { + var v ModelOverridesHeaders + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptModelOverridesHeaders) SetTo(v ModelOverridesHeaders) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptModelOverridesHeaders) Get() (v ModelOverridesHeaders, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptModelOverridesHeaders) Or(d ModelOverridesHeaders) ModelOverridesHeaders { + if v, ok := o.Get(); ok { + return v + } + return d +} + // NewOptModelUpgrades returns new OptModelUpgrades with value set to v. func NewOptModelUpgrades(v ModelUpgrades) OptModelUpgrades { return OptModelUpgrades{ @@ -4232,6 +5094,52 @@ func (o OptNilTagArray) Or(d []Tag) []Tag { return d } +// NewOptOverrideTokenLimits returns new OptOverrideTokenLimits with value set to v. +func NewOptOverrideTokenLimits(v OverrideTokenLimits) OptOverrideTokenLimits { + return OptOverrideTokenLimits{ + Value: v, + Set: true, + } +} + +// OptOverrideTokenLimits is optional OverrideTokenLimits. +type OptOverrideTokenLimits struct { + Value OverrideTokenLimits + Set bool +} + +// IsSet returns true if OptOverrideTokenLimits was set. +func (o OptOverrideTokenLimits) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptOverrideTokenLimits) Reset() { + var v OverrideTokenLimits + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptOverrideTokenLimits) SetTo(v OverrideTokenLimits) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptOverrideTokenLimits) Get() (v OverrideTokenLimits, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptOverrideTokenLimits) Or(d OverrideTokenLimits) OverrideTokenLimits { + if v, ok := o.Get(); ok { + return v + } + return d +} + // NewOptSessionResourceAccess returns new OptSessionResourceAccess with value set to v. func NewOptSessionResourceAccess(v SessionResourceAccess) OptSessionResourceAccess { return OptSessionResourceAccess{ @@ -4324,6 +5232,51 @@ func (o OptString) Or(d string) string { return d } +// Session 创建期模型覆写使用的 token 限制。 +// **整体替换语义**:省略整个 `token_limits` 对象表示不覆写、继承快照值; +// 一旦提供对象,三个字段**全部必填**且为正整数(>= 1),服务端不会与 +// 快照中的旧 limits 按字段合并——只传部分字段返回 400 +// `model.token_limits.: required`。. +// Ref: #/components/schemas/OverrideTokenLimits +type OverrideTokenLimits struct { + // 模型上下文窗口;正整数。. + ContextWindow int64 `json:"context_window"` + // 最大输入 token 长度;正整数。. + MaxInputTokenLength int64 `json:"max_input_token_length"` + // 最大输出 token 长度;正整数。. + MaxOutputTokenLength int64 `json:"max_output_token_length"` +} + +// GetContextWindow returns the value of ContextWindow. +func (s *OverrideTokenLimits) GetContextWindow() int64 { + return s.ContextWindow +} + +// GetMaxInputTokenLength returns the value of MaxInputTokenLength. +func (s *OverrideTokenLimits) GetMaxInputTokenLength() int64 { + return s.MaxInputTokenLength +} + +// GetMaxOutputTokenLength returns the value of MaxOutputTokenLength. +func (s *OverrideTokenLimits) GetMaxOutputTokenLength() int64 { + return s.MaxOutputTokenLength +} + +// SetContextWindow sets the value of ContextWindow. +func (s *OverrideTokenLimits) SetContextWindow(val int64) { + s.ContextWindow = val +} + +// SetMaxInputTokenLength sets the value of MaxInputTokenLength. +func (s *OverrideTokenLimits) SetMaxInputTokenLength(val int64) { + s.MaxInputTokenLength = val +} + +// SetMaxOutputTokenLength sets the value of MaxOutputTokenLength. +func (s *OverrideTokenLimits) SetMaxOutputTokenLength(val int64) { + s.MaxOutputTokenLength = val +} + // 纯文本文档;`media_type` 必须为 `text/plain`;`data` 是原文。. // Ref: #/components/schemas/PlainTextDocumentSource type PlainTextDocumentSource struct { @@ -4622,6 +5575,158 @@ func (s *SessionAgent) init() SessionAgent { return m } +// Session Checkpoint:某个静止 Session 的可恢复快照。 +// 用于 `POST /sessions` 携带 `checkpoint_id` 创建一个继承冻结配置的新 +// Session。是否需要 `checkpoint_restore_config` 只取决于快照是否包含 +// customer TOS 数据且跨账号恢复,详见该字段说明。. +// Ref: #/components/schemas/SessionCheckpoint +type SessionCheckpoint struct { + // Checkpoint ID。. + ID string `json:"id"` + // 快照来源 Session ID。. + SourceSessionID string `json:"source_session_id"` + // 调用方创建时给出的 Checkpoint 名称。. + Name string `json:"name"` + // Checkpoint 状态。. + Status CheckpointStatus `json:"status"` + // 失败错误码(`status = "failed"` 时存在)。. + ErrorCode OptString `json:"error_code"` + // 失败错误信息。. + ErrorMessage OptString `json:"error_message"` + // 过期时间(RFC 3339);过期后不可用于恢复。. + ExpiresAt OptString `json:"expires_at"` + // 快照完成时间(RFC 3339)。. + CompletedAt OptString `json:"completed_at"` + // 创建时间(RFC 3339)。. + CreatedAt string `json:"created_at"` + // 最近更新时间(RFC 3339)。. + UpdatedAt string `json:"updated_at"` + // 冻结的用户可见 Session 配置。. + Snapshot OptCheckpointSessionSnapshot `json:"snapshot"` + // 各资源组件的脱敏执行摘要。. + Components []CheckpointComponent `json:"components"` +} + +// GetID returns the value of ID. +func (s *SessionCheckpoint) GetID() string { + return s.ID +} + +// GetSourceSessionID returns the value of SourceSessionID. +func (s *SessionCheckpoint) GetSourceSessionID() string { + return s.SourceSessionID +} + +// GetName returns the value of Name. +func (s *SessionCheckpoint) GetName() string { + return s.Name +} + +// GetStatus returns the value of Status. +func (s *SessionCheckpoint) GetStatus() CheckpointStatus { + return s.Status +} + +// GetErrorCode returns the value of ErrorCode. +func (s *SessionCheckpoint) GetErrorCode() OptString { + return s.ErrorCode +} + +// GetErrorMessage returns the value of ErrorMessage. +func (s *SessionCheckpoint) GetErrorMessage() OptString { + return s.ErrorMessage +} + +// GetExpiresAt returns the value of ExpiresAt. +func (s *SessionCheckpoint) GetExpiresAt() OptString { + return s.ExpiresAt +} + +// GetCompletedAt returns the value of CompletedAt. +func (s *SessionCheckpoint) GetCompletedAt() OptString { + return s.CompletedAt +} + +// GetCreatedAt returns the value of CreatedAt. +func (s *SessionCheckpoint) GetCreatedAt() string { + return s.CreatedAt +} + +// GetUpdatedAt returns the value of UpdatedAt. +func (s *SessionCheckpoint) GetUpdatedAt() string { + return s.UpdatedAt +} + +// GetSnapshot returns the value of Snapshot. +func (s *SessionCheckpoint) GetSnapshot() OptCheckpointSessionSnapshot { + return s.Snapshot +} + +// GetComponents returns the value of Components. +func (s *SessionCheckpoint) GetComponents() []CheckpointComponent { + return s.Components +} + +// SetID sets the value of ID. +func (s *SessionCheckpoint) SetID(val string) { + s.ID = val +} + +// SetSourceSessionID sets the value of SourceSessionID. +func (s *SessionCheckpoint) SetSourceSessionID(val string) { + s.SourceSessionID = val +} + +// SetName sets the value of Name. +func (s *SessionCheckpoint) SetName(val string) { + s.Name = val +} + +// SetStatus sets the value of Status. +func (s *SessionCheckpoint) SetStatus(val CheckpointStatus) { + s.Status = val +} + +// SetErrorCode sets the value of ErrorCode. +func (s *SessionCheckpoint) SetErrorCode(val OptString) { + s.ErrorCode = val +} + +// SetErrorMessage sets the value of ErrorMessage. +func (s *SessionCheckpoint) SetErrorMessage(val OptString) { + s.ErrorMessage = val +} + +// SetExpiresAt sets the value of ExpiresAt. +func (s *SessionCheckpoint) SetExpiresAt(val OptString) { + s.ExpiresAt = val +} + +// SetCompletedAt sets the value of CompletedAt. +func (s *SessionCheckpoint) SetCompletedAt(val OptString) { + s.CompletedAt = val +} + +// SetCreatedAt sets the value of CreatedAt. +func (s *SessionCheckpoint) SetCreatedAt(val string) { + s.CreatedAt = val +} + +// SetUpdatedAt sets the value of UpdatedAt. +func (s *SessionCheckpoint) SetUpdatedAt(val string) { + s.UpdatedAt = val +} + +// SetSnapshot sets the value of Snapshot. +func (s *SessionCheckpoint) SetSnapshot(val OptCheckpointSessionSnapshot) { + s.Snapshot = val +} + +// SetComponents sets the value of Components. +func (s *SessionCheckpoint) SetComponents(val []CheckpointComponent) { + s.Components = val +} + type SessionEnvironment map[string]jx.Raw func (s *SessionEnvironment) init() SessionEnvironment { diff --git a/arkruntime/model/session/oas_validators_gen.go b/arkruntime/model/session/oas_validators_gen.go index 37be2b4..a2efbd7 100644 --- a/arkruntime/model/session/oas_validators_gen.go +++ b/arkruntime/model/session/oas_validators_gen.go @@ -12,6 +12,50 @@ import ( "github.com/volcengine/ark-runtime-go/arkruntime/internal/validate" ) +func (s AgentIdentifier) Validate() error { + switch s.Type { + case StringAgentIdentifier: + return nil // no validation needed + case AgentRefAgentIdentifier: + if err := s.AgentRef.Validate(); err != nil { + return err + } + return nil + default: + return errors.Errorf("invalid type %q", s.Type) + } +} + +func (s *AgentRef) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if value, ok := s.Model.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "model", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + func (s *AgentWithUpgrades) Validate() error { if s == nil { return validate.ErrNilPointer @@ -44,12 +88,145 @@ func (s AgentWithUpgradesType) Validate() error { } } +func (s *CheckpointComponent) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Status.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "status", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s CheckpointComponentStatus) Validate() error { + switch s { + case "creating": + return nil + case "ready": + return nil + case "failed": + return nil + case "deleted": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *CheckpointSessionSnapshot) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + var failures []validate.FieldError + for i, elem := range s.Resources { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "resources", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s CheckpointStatus) Validate() error { + switch s { + case "creating": + return nil + case "ready": + return nil + case "failed": + return nil + case "deleting": + return nil + case "deleted": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *CreateSessionCheckpointResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Checkpoint.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "checkpoint", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + func (s *CreateSessionRequest) Validate() error { if s == nil { return validate.ErrNilPointer } var failures []validate.FieldError + if err := func() error { + if value, ok := s.Agent.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "agent", + Error: err, + }) + } if err := func() error { if value, ok := s.Environment.Get(); ok { if err := func() error { @@ -204,6 +381,29 @@ func (s *CreateSessionUpgradeRequest) Validate() error { return nil } +func (s *DeleteSessionCheckpointResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Status.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "status", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + func (s *EnvironmentConfigOverride) Validate() error { if s == nil { return validate.ErrNilPointer @@ -373,6 +573,69 @@ func (s EnvironmentWithUpgradesType) Validate() error { } } +func (s *GetSessionCheckpointResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Checkpoint.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "checkpoint", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *ListSessionCheckpointsResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.Data == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.Data { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "data", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + func (s *ListSessionEventsResponseWire) Validate() error { if s == nil { return validate.ErrNilPointer @@ -741,6 +1004,111 @@ func (s *ManagedAgentsUserToolResultEventParams) Validate() error { return nil } +func (s *ModelOverrides) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if value, ok := s.TokenLimits.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "token_limits", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *OverrideTokenLimits) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Int{ + MinSet: true, + Min: 1, + MaxSet: false, + Max: 0, + MinExclusive: false, + MaxExclusive: false, + MultipleOfSet: false, + MultipleOf: 0, + Pattern: nil, + }).Validate(int64(s.ContextWindow)); err != nil { + return errors.Wrap(err, "int") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "context_window", + Error: err, + }) + } + if err := func() error { + if err := (validate.Int{ + MinSet: true, + Min: 1, + MaxSet: false, + Max: 0, + MinExclusive: false, + MaxExclusive: false, + MultipleOfSet: false, + MultipleOf: 0, + Pattern: nil, + }).Validate(int64(s.MaxInputTokenLength)); err != nil { + return errors.Wrap(err, "int") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "max_input_token_length", + Error: err, + }) + } + if err := func() error { + if err := (validate.Int{ + MinSet: true, + Min: 1, + MaxSet: false, + Max: 0, + MinExclusive: false, + MaxExclusive: false, + MultipleOfSet: false, + MultipleOf: 0, + Pattern: nil, + }).Validate(int64(s.MaxOutputTokenLength)); err != nil { + return errors.Wrap(err, "int") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "max_output_token_length", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + func (s *SendSessionEventsRequest) Validate() error { if s == nil { return validate.ErrNilPointer @@ -909,6 +1277,72 @@ func (s *Session) Validate() error { return nil } +func (s *SessionCheckpoint) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Status.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "status", + Error: err, + }) + } + if err := func() error { + if value, ok := s.Snapshot.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "snapshot", + Error: err, + }) + } + if err := func() error { + var failures []validate.FieldError + for i, elem := range s.Components { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "components", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + func (s *SessionResource) Validate() error { if s == nil { return validate.ErrNilPointer