// Code generated by lexgen from lexicons/. DO NOT EDIT. package market import ( "bytes" "encoding/json" "fmt" "github.com/bluesky-social/indigo/atproto/atdata" "github.com/johnandersen777/socialweb-computer-kcp/internal/kit/b64" ) type Record interface { NSID() string } func EncodeRecord(r Record) (map[string]any, error) { b, err := json.Marshal(r) if err != nil { return nil, err } return atdata.UnmarshalJSON(b) } func decodeRecord(value map[string]any, nsid string, out any) error { if got, _ := value["$type"].(string); got != nsid { return fmt.Errorf("%w: expected $type %s, got %q", ErrInvalidRecord, nsid, got) } b, err := json.Marshal(b64.NormalizeJSON(value)) if err != nil { return fmt.Errorf("%w: %v", ErrInvalidRecord, err) } if err := json.Unmarshal(b, out); err != nil { return fmt.Errorf("%w: %v", ErrInvalidRecord, err) } if v, ok := out.(interface{ Validate() error }); ok { return v.Validate() } return nil } func marshalOpen(v any, extra, absent map[string]json.RawMessage) ([]byte, error) { b, err := json.Marshal(v) if err != nil || len(extra)+len(absent) == 0 { return b, err } fields := map[string]json.RawMessage{} if err := json.Unmarshal(b, &fields); err != nil { return nil, err } for k, raw := range absent { if bytes.Equal(fields[k], raw) { delete(fields, k) } } for k, raw := range extra { if _, ok := fields[k]; !ok { fields[k] = raw } } return json.Marshal(fields) } func unmarshalOpen(b []byte, v any) (extra, absent map[string]json.RawMessage, err error) { if err := json.Unmarshal(b, v); err != nil { return nil, nil, err } var in map[string]json.RawMessage if err := json.Unmarshal(b, &in); err != nil { return nil, nil, err } encoded, err := json.Marshal(v) if err != nil { return nil, nil, err } var kept map[string]json.RawMessage if err := json.Unmarshal(encoded, &kept); err != nil { return nil, nil, err } return missing(in, kept), missing(kept, in), nil } func missing(from, in map[string]json.RawMessage) map[string]json.RawMessage { var out map[string]json.RawMessage for k, raw := range from { if _, ok := in[k]; ok { continue } if out == nil { out = map[string]json.RawMessage{} } out[k] = raw } return out } type Accept struct { Type string `json:"$type"` Bid StrongRef `json:"bid"` CreatedAt string `json:"createdAt,omitempty"` Ingress []StrongRef `json:"ingress,omitempty"` Payload *StrongRef `json:"payload,omitempty"` RFP StrongRef `json:"rfp"` Signatures Signatures `json:"signatures,omitempty"` SubmitEvent string `json:"submitEvent,omitempty"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (Accept) NSID() string { return "com.publicdomainrelay.temp.market.accept" } func ParseAccept(value map[string]any) (*Accept, error) { var out Accept if err := decodeRecord(value, "com.publicdomainrelay.temp.market.accept", &out); err != nil { return nil, err } return &out, nil } func (v Accept) MarshalJSON() ([]byte, error) { type plain Accept if v.Type == "" { v.Type = "com.publicdomainrelay.temp.market.accept" } return marshalOpen(plain(v), v.Extra, v.absent) } func (v *Accept) UnmarshalJSON(b []byte) error { type plain Accept var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = Accept(p) v.Extra = extra v.absent = absent return nil } type AcceptsFree struct { Type string `json:"$type"` Bid StrongRef `json:"bid"` CreatedAt string `json:"createdAt,omitempty"` Payload *StrongRef `json:"payload,omitempty"` Signatures Signatures `json:"signatures,omitempty"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (AcceptsFree) NSID() string { return "com.publicdomainrelay.temp.market.accepts.free" } func ParseAcceptsFree(value map[string]any) (*AcceptsFree, error) { var out AcceptsFree if err := decodeRecord(value, "com.publicdomainrelay.temp.market.accepts.free", &out); err != nil { return nil, err } return &out, nil } func (v AcceptsFree) MarshalJSON() ([]byte, error) { type plain AcceptsFree if v.Type == "" { v.Type = "com.publicdomainrelay.temp.market.accepts.free" } return marshalOpen(plain(v), v.Extra, v.absent) } func (v *AcceptsFree) UnmarshalJSON(b []byte) error { type plain AcceptsFree var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = AcceptsFree(p) v.Extra = extra v.absent = absent return nil } type AcceptsX402 struct { Type string `json:"$type"` Bid StrongRef `json:"bid"` CreatedAt string `json:"createdAt,omitempty"` Payload *StrongRef `json:"payload,omitempty"` Signatures Signatures `json:"signatures,omitempty"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (AcceptsX402) NSID() string { return "com.publicdomainrelay.temp.market.accepts.x402" } func ParseAcceptsX402(value map[string]any) (*AcceptsX402, error) { var out AcceptsX402 if err := decodeRecord(value, "com.publicdomainrelay.temp.market.accepts.x402", &out); err != nil { return nil, err } return &out, nil } func (v AcceptsX402) MarshalJSON() ([]byte, error) { type plain AcceptsX402 if v.Type == "" { v.Type = "com.publicdomainrelay.temp.market.accepts.x402" } return marshalOpen(plain(v), v.Extra, v.absent) } func (v *AcceptsX402) UnmarshalJSON(b []byte) error { type plain AcceptsX402 var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = AcceptsX402(p) v.Extra = extra v.absent = absent return nil } type Association struct { Type string `json:"$type"` Contract *StrongRef `json:"contract,omitempty"` CreatedAt string `json:"createdAt"` ExpiresAt string `json:"expiresAt,omitempty"` Note string `json:"note,omitempty"` Parent *StrongRef `json:"parent,omitempty"` Service string `json:"service"` Subject string `json:"subject"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (Association) NSID() string { return "com.publicdomainrelay.temp.market.association" } func ParseAssociation(value map[string]any) (*Association, error) { var out Association if err := decodeRecord(value, "com.publicdomainrelay.temp.market.association", &out); err != nil { return nil, err } return &out, nil } func (v Association) MarshalJSON() ([]byte, error) { type plain Association if v.Type == "" { v.Type = "com.publicdomainrelay.temp.market.association" } return marshalOpen(plain(v), v.Extra, v.absent) } func (v *Association) UnmarshalJSON(b []byte) error { type plain Association var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = Association(p) v.Extra = extra v.absent = absent return nil } type AssociationRequest struct { Type string `json:"$type"` Authority string `json:"authority"` Contract string `json:"contract"` CreatedAt string `json:"createdAt"` Nonce string `json:"nonce"` Service string `json:"service"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (AssociationRequest) NSID() string { return "com.publicdomainrelay.temp.market.associationRequest" } func ParseAssociationRequest(value map[string]any) (*AssociationRequest, error) { var out AssociationRequest if err := decodeRecord(value, "com.publicdomainrelay.temp.market.associationRequest", &out); err != nil { return nil, err } return &out, nil } func (v AssociationRequest) MarshalJSON() ([]byte, error) { type plain AssociationRequest if v.Type == "" { v.Type = "com.publicdomainrelay.temp.market.associationRequest" } return marshalOpen(plain(v), v.Extra, v.absent) } func (v *AssociationRequest) UnmarshalJSON(b []byte) error { type plain AssociationRequest var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = AssociationRequest(p) v.Extra = extra v.absent = absent return nil } type AttestedSignature struct { Type string `json:"$type,omitempty"` CID string `json:"cid"` IssuedAt string `json:"issuedAt,omitempty"` Issuer string `json:"issuer,omitempty"` Key string `json:"key"` Role string `json:"role,omitempty"` Signature atdata.Bytes `json:"signature,omitempty"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (v AttestedSignature) MarshalJSON() ([]byte, error) { type plain AttestedSignature return marshalOpen(plain(v), v.Extra, v.absent) } func (v *AttestedSignature) UnmarshalJSON(b []byte) error { type plain AttestedSignature var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = AttestedSignature(p) v.Extra = extra v.absent = absent return nil } type BadgeBlueKeys struct { Type string `json:"$type"` Challenge string `json:"challenge"` CreatedAt string `json:"createdAt"` KeyID string `json:"keyId"` Name string `json:"name,omitempty"` Nonce string `json:"nonce,omitempty"` Proof *StrongRef `json:"proof,omitempty"` Service string `json:"service"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (BadgeBlueKeys) NSID() string { return "com.publicdomainrelay.temp.badgeBlueKeys" } func ParseBadgeBlueKeys(value map[string]any) (*BadgeBlueKeys, error) { var out BadgeBlueKeys if err := decodeRecord(value, "com.publicdomainrelay.temp.badgeBlueKeys", &out); err != nil { return nil, err } return &out, nil } func (v BadgeBlueKeys) MarshalJSON() ([]byte, error) { type plain BadgeBlueKeys if v.Type == "" { v.Type = "com.publicdomainrelay.temp.badgeBlueKeys" } return marshalOpen(plain(v), v.Extra, v.absent) } func (v *BadgeBlueKeys) UnmarshalJSON(b []byte) error { type plain BadgeBlueKeys var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = BadgeBlueKeys(p) v.Extra = extra v.absent = absent return nil } type Bid struct { Type string `json:"$type"` Config *StrongRef `json:"config,omitempty"` CreatedAt string `json:"createdAt,omitempty"` Ingress []StrongRef `json:"ingress,omitempty"` Payload StrongRef `json:"payload"` RFP StrongRef `json:"rfp"` Signatures Signatures `json:"signatures,omitempty"` SubmitAccept string `json:"submitAccept,omitempty"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (Bid) NSID() string { return "com.publicdomainrelay.temp.market.bid" } func ParseBid(value map[string]any) (*Bid, error) { var out Bid if err := decodeRecord(value, "com.publicdomainrelay.temp.market.bid", &out); err != nil { return nil, err } return &out, nil } func (v Bid) MarshalJSON() ([]byte, error) { type plain Bid if v.Type == "" { v.Type = "com.publicdomainrelay.temp.market.bid" } return marshalOpen(plain(v), v.Extra, v.absent) } func (v *Bid) UnmarshalJSON(b []byte) error { type plain Bid var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = Bid(p) v.Extra = extra v.absent = absent return nil } type BidsFree struct { Type string `json:"$type"` Cost int64 `json:"cost,omitempty"` CreatedAt string `json:"createdAt,omitempty"` Reason string `json:"reason"` Signatures Signatures `json:"signatures,omitempty"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (BidsFree) NSID() string { return "com.publicdomainrelay.temp.market.bids.free" } func ParseBidsFree(value map[string]any) (*BidsFree, error) { var out BidsFree if err := decodeRecord(value, "com.publicdomainrelay.temp.market.bids.free", &out); err != nil { return nil, err } return &out, nil } func (v BidsFree) MarshalJSON() ([]byte, error) { type plain BidsFree if v.Type == "" { v.Type = "com.publicdomainrelay.temp.market.bids.free" } return marshalOpen(plain(v), v.Extra, v.absent) } func (v *BidsFree) UnmarshalJSON(b []byte) error { type plain BidsFree var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = BidsFree(p) v.Extra = extra v.absent = absent return nil } type BidsX402 struct { Type string `json:"$type"` Cost int64 `json:"cost"` CreatedAt string `json:"createdAt,omitempty"` Currency string `json:"currency"` Frequency string `json:"frequency"` Prepay bool `json:"prepay"` Signatures Signatures `json:"signatures,omitempty"` URL string `json:"url"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (BidsX402) NSID() string { return "com.publicdomainrelay.temp.market.bids.x402" } func ParseBidsX402(value map[string]any) (*BidsX402, error) { var out BidsX402 if err := decodeRecord(value, "com.publicdomainrelay.temp.market.bids.x402", &out); err != nil { return nil, err } return &out, nil } func (v BidsX402) MarshalJSON() ([]byte, error) { type plain BidsX402 if v.Type == "" { v.Type = "com.publicdomainrelay.temp.market.bids.x402" } return marshalOpen(plain(v), v.Extra, v.absent) } func (v *BidsX402) UnmarshalJSON(b []byte) error { type plain BidsX402 var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = BidsX402(p) v.Extra = extra v.absent = absent return nil } type ComputeEventsGuestAgentStart struct { Type string `json:"$type"` CreatedAt string `json:"createdAt"` Signatures Signatures `json:"signatures,omitempty"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (ComputeEventsGuestAgentStart) NSID() string { return "com.publicdomainrelay.temp.compute.events.guest.agentStart" } func ParseComputeEventsGuestAgentStart(value map[string]any) (*ComputeEventsGuestAgentStart, error) { var out ComputeEventsGuestAgentStart if err := decodeRecord(value, "com.publicdomainrelay.temp.compute.events.guest.agentStart", &out); err != nil { return nil, err } return &out, nil } func (v ComputeEventsGuestAgentStart) MarshalJSON() ([]byte, error) { type plain ComputeEventsGuestAgentStart if v.Type == "" { v.Type = "com.publicdomainrelay.temp.compute.events.guest.agentStart" } return marshalOpen(plain(v), v.Extra, v.absent) } func (v *ComputeEventsGuestAgentStart) UnmarshalJSON(b []byte) error { type plain ComputeEventsGuestAgentStart var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = ComputeEventsGuestAgentStart(p) v.Extra = extra v.absent = absent return nil } type ComputeEventsGuestPublicKey struct { Type string `json:"$type"` CreatedAt string `json:"createdAt"` Key string `json:"key"` Kind string `json:"kind"` Signatures Signatures `json:"signatures,omitempty"` Tag string `json:"tag"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (ComputeEventsGuestPublicKey) NSID() string { return "com.publicdomainrelay.temp.compute.events.guest.publicKey" } func ParseComputeEventsGuestPublicKey(value map[string]any) (*ComputeEventsGuestPublicKey, error) { var out ComputeEventsGuestPublicKey if err := decodeRecord(value, "com.publicdomainrelay.temp.compute.events.guest.publicKey", &out); err != nil { return nil, err } return &out, nil } func (v ComputeEventsGuestPublicKey) MarshalJSON() ([]byte, error) { type plain ComputeEventsGuestPublicKey if v.Type == "" { v.Type = "com.publicdomainrelay.temp.compute.events.guest.publicKey" } return marshalOpen(plain(v), v.Extra, v.absent) } func (v *ComputeEventsGuestPublicKey) UnmarshalJSON(b []byte) error { type plain ComputeEventsGuestPublicKey var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = ComputeEventsGuestPublicKey(p) v.Extra = extra v.absent = absent return nil } type ComputeEventsGuestR2Release struct { Type string `json:"$type"` CreatedAt string `json:"createdAt"` Signatures Signatures `json:"signatures,omitempty"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (ComputeEventsGuestR2Release) NSID() string { return "com.publicdomainrelay.temp.compute.events.guest.r2Release" } func ParseComputeEventsGuestR2Release(value map[string]any) (*ComputeEventsGuestR2Release, error) { var out ComputeEventsGuestR2Release if err := decodeRecord(value, "com.publicdomainrelay.temp.compute.events.guest.r2Release", &out); err != nil { return nil, err } return &out, nil } func (v ComputeEventsGuestR2Release) MarshalJSON() ([]byte, error) { type plain ComputeEventsGuestR2Release if v.Type == "" { v.Type = "com.publicdomainrelay.temp.compute.events.guest.r2Release" } return marshalOpen(plain(v), v.Extra, v.absent) } func (v *ComputeEventsGuestR2Release) UnmarshalJSON(b []byte) error { type plain ComputeEventsGuestR2Release var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = ComputeEventsGuestR2Release(p) v.Extra = extra v.absent = absent return nil } type ComputeEventsGuestR2Released struct { Type string `json:"$type"` CreatedAt string `json:"createdAt"` Message string `json:"message,omitempty"` Ok bool `json:"ok"` Signatures Signatures `json:"signatures,omitempty"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (ComputeEventsGuestR2Released) NSID() string { return "com.publicdomainrelay.temp.compute.events.guest.r2Released" } func ParseComputeEventsGuestR2Released(value map[string]any) (*ComputeEventsGuestR2Released, error) { var out ComputeEventsGuestR2Released if err := decodeRecord(value, "com.publicdomainrelay.temp.compute.events.guest.r2Released", &out); err != nil { return nil, err } return &out, nil } func (v ComputeEventsGuestR2Released) MarshalJSON() ([]byte, error) { type plain ComputeEventsGuestR2Released if v.Type == "" { v.Type = "com.publicdomainrelay.temp.compute.events.guest.r2Released" } return marshalOpen(plain(v), v.Extra, v.absent) } func (v *ComputeEventsGuestR2Released) UnmarshalJSON(b []byte) error { type plain ComputeEventsGuestR2Released var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = ComputeEventsGuestR2Released(p) v.Extra = extra v.absent = absent return nil } type ComputeEventsGuestR2Start struct { Type string `json:"$type"` Agent bool `json:"agent,omitempty"` CreatedAt string `json:"createdAt"` Hold bool `json:"hold,omitempty"` Name string `json:"name"` Signatures Signatures `json:"signatures,omitempty"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (ComputeEventsGuestR2Start) NSID() string { return "com.publicdomainrelay.temp.compute.events.guest.r2Start" } func ParseComputeEventsGuestR2Start(value map[string]any) (*ComputeEventsGuestR2Start, error) { var out ComputeEventsGuestR2Start if err := decodeRecord(value, "com.publicdomainrelay.temp.compute.events.guest.r2Start", &out); err != nil { return nil, err } return &out, nil } func (v ComputeEventsGuestR2Start) MarshalJSON() ([]byte, error) { type plain ComputeEventsGuestR2Start if v.Type == "" { v.Type = "com.publicdomainrelay.temp.compute.events.guest.r2Start" } return marshalOpen(plain(v), v.Extra, v.absent) } func (v *ComputeEventsGuestR2Start) UnmarshalJSON(b []byte) error { type plain ComputeEventsGuestR2Start var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = ComputeEventsGuestR2Start(p) v.Extra = extra v.absent = absent return nil } type ComputeEventsGuestRequesterDID struct { Type string `json:"$type"` CreatedAt string `json:"createdAt"` DID string `json:"did"` Signatures Signatures `json:"signatures,omitempty"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (ComputeEventsGuestRequesterDID) NSID() string { return "com.publicdomainrelay.temp.compute.events.guest.requesterDid" } func ParseComputeEventsGuestRequesterDID(value map[string]any) (*ComputeEventsGuestRequesterDID, error) { var out ComputeEventsGuestRequesterDID if err := decodeRecord(value, "com.publicdomainrelay.temp.compute.events.guest.requesterDid", &out); err != nil { return nil, err } return &out, nil } func (v ComputeEventsGuestRequesterDID) MarshalJSON() ([]byte, error) { type plain ComputeEventsGuestRequesterDID if v.Type == "" { v.Type = "com.publicdomainrelay.temp.compute.events.guest.requesterDid" } return marshalOpen(plain(v), v.Extra, v.absent) } func (v *ComputeEventsGuestRequesterDID) UnmarshalJSON(b []byte) error { type plain ComputeEventsGuestRequesterDID var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = ComputeEventsGuestRequesterDID(p) v.Extra = extra v.absent = absent return nil } type ComputeEventsGuestSecrets struct { Type string `json:"$type"` Ciphertext string `json:"ciphertext"` CreatedAt string `json:"createdAt"` Signatures Signatures `json:"signatures,omitempty"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (ComputeEventsGuestSecrets) NSID() string { return "com.publicdomainrelay.temp.compute.events.guest.secrets" } func ParseComputeEventsGuestSecrets(value map[string]any) (*ComputeEventsGuestSecrets, error) { var out ComputeEventsGuestSecrets if err := decodeRecord(value, "com.publicdomainrelay.temp.compute.events.guest.secrets", &out); err != nil { return nil, err } return &out, nil } func (v ComputeEventsGuestSecrets) MarshalJSON() ([]byte, error) { type plain ComputeEventsGuestSecrets if v.Type == "" { v.Type = "com.publicdomainrelay.temp.compute.events.guest.secrets" } return marshalOpen(plain(v), v.Extra, v.absent) } func (v *ComputeEventsGuestSecrets) UnmarshalJSON(b []byte) error { type plain ComputeEventsGuestSecrets var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = ComputeEventsGuestSecrets(p) v.Extra = extra v.absent = absent return nil } type ComputeEventsGuestSecretsApplied struct { Type string `json:"$type"` Count int64 `json:"count,omitempty"` CreatedAt string `json:"createdAt"` Signatures Signatures `json:"signatures,omitempty"` Via string `json:"via"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (ComputeEventsGuestSecretsApplied) NSID() string { return "com.publicdomainrelay.temp.compute.events.guest.secretsApplied" } func ParseComputeEventsGuestSecretsApplied(value map[string]any) (*ComputeEventsGuestSecretsApplied, error) { var out ComputeEventsGuestSecretsApplied if err := decodeRecord(value, "com.publicdomainrelay.temp.compute.events.guest.secretsApplied", &out); err != nil { return nil, err } return &out, nil } func (v ComputeEventsGuestSecretsApplied) MarshalJSON() ([]byte, error) { type plain ComputeEventsGuestSecretsApplied if v.Type == "" { v.Type = "com.publicdomainrelay.temp.compute.events.guest.secretsApplied" } return marshalOpen(plain(v), v.Extra, v.absent) } func (v *ComputeEventsGuestSecretsApplied) UnmarshalJSON(b []byte) error { type plain ComputeEventsGuestSecretsApplied var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = ComputeEventsGuestSecretsApplied(p) v.Extra = extra v.absent = absent return nil } type ComputeEventsGuestSecretsRequested struct { Type string `json:"$type"` CreatedAt string `json:"createdAt"` Signatures Signatures `json:"signatures,omitempty"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (ComputeEventsGuestSecretsRequested) NSID() string { return "com.publicdomainrelay.temp.compute.events.guest.secretsRequested" } func ParseComputeEventsGuestSecretsRequested(value map[string]any) (*ComputeEventsGuestSecretsRequested, error) { var out ComputeEventsGuestSecretsRequested if err := decodeRecord(value, "com.publicdomainrelay.temp.compute.events.guest.secretsRequested", &out); err != nil { return nil, err } return &out, nil } func (v ComputeEventsGuestSecretsRequested) MarshalJSON() ([]byte, error) { type plain ComputeEventsGuestSecretsRequested if v.Type == "" { v.Type = "com.publicdomainrelay.temp.compute.events.guest.secretsRequested" } return marshalOpen(plain(v), v.Extra, v.absent) } func (v *ComputeEventsGuestSecretsRequested) UnmarshalJSON(b []byte) error { type plain ComputeEventsGuestSecretsRequested var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = ComputeEventsGuestSecretsRequested(p) v.Extra = extra v.absent = absent return nil } type ComputeEventsGuestSecretsUpdated struct { Type string `json:"$type"` CreatedAt string `json:"createdAt"` Signatures Signatures `json:"signatures,omitempty"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (ComputeEventsGuestSecretsUpdated) NSID() string { return "com.publicdomainrelay.temp.compute.events.guest.secretsUpdated" } func ParseComputeEventsGuestSecretsUpdated(value map[string]any) (*ComputeEventsGuestSecretsUpdated, error) { var out ComputeEventsGuestSecretsUpdated if err := decodeRecord(value, "com.publicdomainrelay.temp.compute.events.guest.secretsUpdated", &out); err != nil { return nil, err } return &out, nil } func (v ComputeEventsGuestSecretsUpdated) MarshalJSON() ([]byte, error) { type plain ComputeEventsGuestSecretsUpdated if v.Type == "" { v.Type = "com.publicdomainrelay.temp.compute.events.guest.secretsUpdated" } return marshalOpen(plain(v), v.Extra, v.absent) } func (v *ComputeEventsGuestSecretsUpdated) UnmarshalJSON(b []byte) error { type plain ComputeEventsGuestSecretsUpdated var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = ComputeEventsGuestSecretsUpdated(p) v.Extra = extra v.absent = absent return nil } type ComputeEventsGuestSignalWebRTC struct { Type string `json:"$type"` Ciphertext string `json:"ciphertext"` CreatedAt string `json:"createdAt"` Kind string `json:"kind"` Signatures Signatures `json:"signatures,omitempty"` Tag string `json:"tag"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (ComputeEventsGuestSignalWebRTC) NSID() string { return "com.publicdomainrelay.temp.compute.events.guest.signalWebRTC" } func ParseComputeEventsGuestSignalWebRTC(value map[string]any) (*ComputeEventsGuestSignalWebRTC, error) { var out ComputeEventsGuestSignalWebRTC if err := decodeRecord(value, "com.publicdomainrelay.temp.compute.events.guest.signalWebRTC", &out); err != nil { return nil, err } return &out, nil } func (v ComputeEventsGuestSignalWebRTC) MarshalJSON() ([]byte, error) { type plain ComputeEventsGuestSignalWebRTC if v.Type == "" { v.Type = "com.publicdomainrelay.temp.compute.events.guest.signalWebRTC" } return marshalOpen(plain(v), v.Extra, v.absent) } func (v *ComputeEventsGuestSignalWebRTC) UnmarshalJSON(b []byte) error { type plain ComputeEventsGuestSignalWebRTC var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = ComputeEventsGuestSignalWebRTC(p) v.Extra = extra v.absent = absent return nil } type ComputeEventsVMDelete struct { Type string `json:"$type"` CreatedAt string `json:"createdAt"` Reason string `json:"reason"` Signatures Signatures `json:"signatures,omitempty"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (ComputeEventsVMDelete) NSID() string { return "com.publicdomainrelay.temp.compute.events.vm.delete" } func ParseComputeEventsVMDelete(value map[string]any) (*ComputeEventsVMDelete, error) { var out ComputeEventsVMDelete if err := decodeRecord(value, "com.publicdomainrelay.temp.compute.events.vm.delete", &out); err != nil { return nil, err } return &out, nil } func (v ComputeEventsVMDelete) MarshalJSON() ([]byte, error) { type plain ComputeEventsVMDelete if v.Type == "" { v.Type = "com.publicdomainrelay.temp.compute.events.vm.delete" } return marshalOpen(plain(v), v.Extra, v.absent) } func (v *ComputeEventsVMDelete) UnmarshalJSON(b []byte) error { type plain ComputeEventsVMDelete var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = ComputeEventsVMDelete(p) v.Extra = extra v.absent = absent return nil } type ComputeEventsVMHostKeys struct { Type string `json:"$type"` CreatedAt string `json:"createdAt"` Keys []HostKey `json:"keys,omitempty"` ObservedAt string `json:"observedAt"` Signatures Signatures `json:"signatures,omitempty"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (ComputeEventsVMHostKeys) NSID() string { return "com.publicdomainrelay.temp.compute.events.vm.hostKeys" } func ParseComputeEventsVMHostKeys(value map[string]any) (*ComputeEventsVMHostKeys, error) { var out ComputeEventsVMHostKeys if err := decodeRecord(value, "com.publicdomainrelay.temp.compute.events.vm.hostKeys", &out); err != nil { return nil, err } return &out, nil } func (v ComputeEventsVMHostKeys) MarshalJSON() ([]byte, error) { type plain ComputeEventsVMHostKeys if v.Type == "" { v.Type = "com.publicdomainrelay.temp.compute.events.vm.hostKeys" } return marshalOpen(plain(v), v.Extra, v.absent) } func (v *ComputeEventsVMHostKeys) UnmarshalJSON(b []byte) error { type plain ComputeEventsVMHostKeys var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = ComputeEventsVMHostKeys(p) v.Extra = extra v.absent = absent return nil } type ComputeEventsVMOnNetwork struct { Type string `json:"$type"` Address string `json:"address,omitempty"` CreatedAt string `json:"createdAt"` Kind string `json:"kind,omitempty"` Signatures Signatures `json:"signatures,omitempty"` Tag string `json:"tag,omitempty"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (ComputeEventsVMOnNetwork) NSID() string { return "com.publicdomainrelay.temp.compute.events.vm.onNetwork" } func ParseComputeEventsVMOnNetwork(value map[string]any) (*ComputeEventsVMOnNetwork, error) { var out ComputeEventsVMOnNetwork if err := decodeRecord(value, "com.publicdomainrelay.temp.compute.events.vm.onNetwork", &out); err != nil { return nil, err } return &out, nil } func (v ComputeEventsVMOnNetwork) MarshalJSON() ([]byte, error) { type plain ComputeEventsVMOnNetwork if v.Type == "" { v.Type = "com.publicdomainrelay.temp.compute.events.vm.onNetwork" } return marshalOpen(plain(v), v.Extra, v.absent) } func (v *ComputeEventsVMOnNetwork) UnmarshalJSON(b []byte) error { type plain ComputeEventsVMOnNetwork var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = ComputeEventsVMOnNetwork(p) v.Extra = extra v.absent = absent return nil } type ComputeEventsVMRegisterIdentity struct { Type string `json:"$type"` CreatedAt string `json:"createdAt"` Signatures Signatures `json:"signatures,omitempty"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (ComputeEventsVMRegisterIdentity) NSID() string { return "com.publicdomainrelay.temp.compute.events.vm.registerIdentity" } func ParseComputeEventsVMRegisterIdentity(value map[string]any) (*ComputeEventsVMRegisterIdentity, error) { var out ComputeEventsVMRegisterIdentity if err := decodeRecord(value, "com.publicdomainrelay.temp.compute.events.vm.registerIdentity", &out); err != nil { return nil, err } return &out, nil } func (v ComputeEventsVMRegisterIdentity) MarshalJSON() ([]byte, error) { type plain ComputeEventsVMRegisterIdentity if v.Type == "" { v.Type = "com.publicdomainrelay.temp.compute.events.vm.registerIdentity" } return marshalOpen(plain(v), v.Extra, v.absent) } func (v *ComputeEventsVMRegisterIdentity) UnmarshalJSON(b []byte) error { type plain ComputeEventsVMRegisterIdentity var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = ComputeEventsVMRegisterIdentity(p) v.Extra = extra v.absent = absent return nil } type ComputeEventsVMSandbox struct { Type string `json:"$type"` CreatedAt string `json:"createdAt"` ExitCode int64 `json:"exitCode"` Signatures Signatures `json:"signatures,omitempty"` Stderr string `json:"stderr,omitempty"` Stdout string `json:"stdout,omitempty"` TimedOut bool `json:"timedOut,omitempty"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (ComputeEventsVMSandbox) NSID() string { return "com.publicdomainrelay.temp.compute.events.vm.sandbox" } func ParseComputeEventsVMSandbox(value map[string]any) (*ComputeEventsVMSandbox, error) { var out ComputeEventsVMSandbox if err := decodeRecord(value, "com.publicdomainrelay.temp.compute.events.vm.sandbox", &out); err != nil { return nil, err } return &out, nil } func (v ComputeEventsVMSandbox) MarshalJSON() ([]byte, error) { type plain ComputeEventsVMSandbox if v.Type == "" { v.Type = "com.publicdomainrelay.temp.compute.events.vm.sandbox" } return marshalOpen(plain(v), v.Extra, v.absent) } func (v *ComputeEventsVMSandbox) UnmarshalJSON(b []byte) error { type plain ComputeEventsVMSandbox var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = ComputeEventsVMSandbox(p) v.Extra = extra v.absent = absent return nil } type ComputeEventsVMStarted struct { Type string `json:"$type"` CreatedAt string `json:"createdAt"` ObservedAt string `json:"observedAt,omitempty"` Signatures Signatures `json:"signatures,omitempty"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (ComputeEventsVMStarted) NSID() string { return "com.publicdomainrelay.temp.compute.events.vm.started" } func ParseComputeEventsVMStarted(value map[string]any) (*ComputeEventsVMStarted, error) { var out ComputeEventsVMStarted if err := decodeRecord(value, "com.publicdomainrelay.temp.compute.events.vm.started", &out); err != nil { return nil, err } return &out, nil } func (v ComputeEventsVMStarted) MarshalJSON() ([]byte, error) { type plain ComputeEventsVMStarted if v.Type == "" { v.Type = "com.publicdomainrelay.temp.compute.events.vm.started" } return marshalOpen(plain(v), v.Extra, v.absent) } func (v *ComputeEventsVMStarted) UnmarshalJSON(b []byte) error { type plain ComputeEventsVMStarted var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = ComputeEventsVMStarted(p) v.Extra = extra v.absent = absent return nil } type ComputeEventsVMTerminated struct { Type string `json:"$type"` CreatedAt string `json:"createdAt"` ExitCode int64 `json:"exitCode,omitempty"` ObservedAt string `json:"observedAt"` Reason string `json:"reason"` Request *StrongRef `json:"request,omitempty"` Signatures Signatures `json:"signatures,omitempty"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (ComputeEventsVMTerminated) NSID() string { return "com.publicdomainrelay.temp.compute.events.vm.terminated" } func ParseComputeEventsVMTerminated(value map[string]any) (*ComputeEventsVMTerminated, error) { var out ComputeEventsVMTerminated if err := decodeRecord(value, "com.publicdomainrelay.temp.compute.events.vm.terminated", &out); err != nil { return nil, err } return &out, nil } func (v ComputeEventsVMTerminated) MarshalJSON() ([]byte, error) { type plain ComputeEventsVMTerminated if v.Type == "" { v.Type = "com.publicdomainrelay.temp.compute.events.vm.terminated" } return marshalOpen(plain(v), v.Extra, v.absent) } func (v *ComputeEventsVMTerminated) UnmarshalJSON(b []byte) error { type plain ComputeEventsVMTerminated var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = ComputeEventsVMTerminated(p) v.Extra = extra v.absent = absent return nil } type ComputeGuestSubscribeEventsEvent struct { CID string `json:"cid"` Record json.RawMessage `json:"record,omitempty"` Seq int64 `json:"seq"` URI string `json:"uri"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (v ComputeGuestSubscribeEventsEvent) MarshalJSON() ([]byte, error) { type plain ComputeGuestSubscribeEventsEvent return marshalOpen(plain(v), v.Extra, v.absent) } func (v *ComputeGuestSubscribeEventsEvent) UnmarshalJSON(b []byte) error { type plain ComputeGuestSubscribeEventsEvent var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = ComputeGuestSubscribeEventsEvent(p) v.Extra = extra v.absent = absent return nil } type ComputeVM struct { Type string `json:"$type"` Cpus int64 `json:"cpus,omitempty"` CreatedAt string `json:"createdAt,omitempty"` Disk string `json:"disk,omitempty"` Kind string `json:"kind,omitempty"` Location *ComputeVMLocation `json:"location,omitempty"` Mem string `json:"mem,omitempty"` Network string `json:"network,omitempty"` Role string `json:"role"` UserData string `json:"user_data,omitempty"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (ComputeVM) NSID() string { return "com.publicdomainrelay.temp.compute.vm" } func ParseComputeVM(value map[string]any) (*ComputeVM, error) { var out ComputeVM if err := decodeRecord(value, "com.publicdomainrelay.temp.compute.vm", &out); err != nil { return nil, err } return &out, nil } func (v ComputeVM) MarshalJSON() ([]byte, error) { type plain ComputeVM if v.Type == "" { v.Type = "com.publicdomainrelay.temp.compute.vm" } return marshalOpen(plain(v), v.Extra, v.absent) } func (v *ComputeVM) UnmarshalJSON(b []byte) error { type plain ComputeVM var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = ComputeVM(p) v.Extra = extra v.absent = absent return nil } type ComputeVMLocation struct { Country string `json:"country,omitempty"` Region string `json:"region,omitempty"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (v ComputeVMLocation) MarshalJSON() ([]byte, error) { type plain ComputeVMLocation return marshalOpen(plain(v), v.Extra, v.absent) } func (v *ComputeVMLocation) UnmarshalJSON(b []byte) error { type plain ComputeVMLocation var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = ComputeVMLocation(p) v.Extra = extra v.absent = absent return nil } type Event struct { Type string `json:"$type"` CreatedAt string `json:"createdAt,omitempty"` Payload StrongRef `json:"payload"` Receipt StrongRef `json:"receipt"` Signatures Signatures `json:"signatures,omitempty"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (Event) NSID() string { return "com.publicdomainrelay.temp.market.event" } func ParseEvent(value map[string]any) (*Event, error) { var out Event if err := decodeRecord(value, "com.publicdomainrelay.temp.market.event", &out); err != nil { return nil, err } return &out, nil } func (v Event) MarshalJSON() ([]byte, error) { type plain Event if v.Type == "" { v.Type = "com.publicdomainrelay.temp.market.event" } return marshalOpen(plain(v), v.Extra, v.absent) } func (v *Event) UnmarshalJSON(b []byte) error { type plain Event var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = Event(p) v.Extra = extra v.absent = absent return nil } type Heartbeat struct { Type string `json:"$type"` CreatedAt string `json:"createdAt"` Offering string `json:"offering"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (Heartbeat) NSID() string { return "com.publicdomainrelay.temp.market.heartbeat" } func ParseHeartbeat(value map[string]any) (*Heartbeat, error) { var out Heartbeat if err := decodeRecord(value, "com.publicdomainrelay.temp.market.heartbeat", &out); err != nil { return nil, err } return &out, nil } func (v Heartbeat) MarshalJSON() ([]byte, error) { type plain Heartbeat if v.Type == "" { v.Type = "com.publicdomainrelay.temp.market.heartbeat" } return marshalOpen(plain(v), v.Extra, v.absent) } func (v *Heartbeat) UnmarshalJSON(b []byte) error { type plain Heartbeat var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = Heartbeat(p) v.Extra = extra v.absent = absent return nil } type HostKey struct { Fingerprint string `json:"fingerprint"` PublicKey string `json:"publicKey"` Type string `json:"type"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (v HostKey) MarshalJSON() ([]byte, error) { type plain HostKey return marshalOpen(plain(v), v.Extra, v.absent) } func (v *HostKey) UnmarshalJSON(b []byte) error { type plain HostKey var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = HostKey(p) v.Extra = extra v.absent = absent return nil } type IngressWebRTC struct { Type string `json:"$type"` CreatedAt string `json:"createdAt"` Descriptor *StrongRef `json:"descriptor,omitempty"` ID string `json:"id"` Kind string `json:"kind"` Mode string `json:"mode"` Peer string `json:"peer,omitempty"` Sdp string `json:"sdp,omitempty"` Session string `json:"session,omitempty"` StunUrls []string `json:"stunUrls,omitempty"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (IngressWebRTC) NSID() string { return "com.publicdomainrelay.temp.ingress.webRTC" } func ParseIngressWebRTC(value map[string]any) (*IngressWebRTC, error) { var out IngressWebRTC if err := decodeRecord(value, "com.publicdomainrelay.temp.ingress.webRTC", &out); err != nil { return nil, err } return &out, nil } func (v IngressWebRTC) MarshalJSON() ([]byte, error) { type plain IngressWebRTC if v.Type == "" { v.Type = "com.publicdomainrelay.temp.ingress.webRTC" } return marshalOpen(plain(v), v.Extra, v.absent) } func (v *IngressWebRTC) UnmarshalJSON(b []byte) error { type plain IngressWebRTC var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = IngressWebRTC(p) v.Extra = extra v.absent = absent return nil } type Offering struct { Type string `json:"$type"` AppliesTo []string `json:"appliesTo,omitempty"` CreatedAt string `json:"createdAt"` EndpointURL string `json:"endpointUrl,omitempty"` Ingress []StrongRef `json:"ingress,omitempty"` RefreshedAt string `json:"refreshedAt,omitempty"` WithdrawnAt string `json:"withdrawnAt,omitempty"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (Offering) NSID() string { return "com.publicdomainrelay.temp.market.offering" } func ParseOffering(value map[string]any) (*Offering, error) { var out Offering if err := decodeRecord(value, "com.publicdomainrelay.temp.market.offering", &out); err != nil { return nil, err } return &out, nil } func (v Offering) MarshalJSON() ([]byte, error) { type plain Offering if v.Type == "" { v.Type = "com.publicdomainrelay.temp.market.offering" } return marshalOpen(plain(v), v.Extra, v.absent) } func (v *Offering) UnmarshalJSON(b []byte) error { type plain Offering var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = Offering(p) v.Extra = extra v.absent = absent return nil } type RFP struct { Type string `json:"$type"` CreatedAt string `json:"createdAt,omitempty"` Domain string `json:"domain,omitempty"` Ingress []StrongRef `json:"ingress,omitempty"` Payload StrongRef `json:"payload"` Policies []StrongRef `json:"policies,omitempty"` Signatures Signatures `json:"signatures,omitempty"` SubmitBid string `json:"submitBid,omitempty"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (RFP) NSID() string { return "com.publicdomainrelay.temp.market.rfp" } func ParseRFP(value map[string]any) (*RFP, error) { var out RFP if err := decodeRecord(value, "com.publicdomainrelay.temp.market.rfp", &out); err != nil { return nil, err } return &out, nil } func (v RFP) MarshalJSON() ([]byte, error) { type plain RFP if v.Type == "" { v.Type = "com.publicdomainrelay.temp.market.rfp" } return marshalOpen(plain(v), v.Extra, v.absent) } func (v *RFP) UnmarshalJSON(b []byte) error { type plain RFP var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = RFP(p) v.Extra = extra v.absent = absent return nil } type Receipt struct { Type string `json:"$type"` Accept StrongRef `json:"accept"` Bid StrongRef `json:"bid"` CID string `json:"cid"` CreatedAt string `json:"createdAt,omitempty"` Ingress []StrongRef `json:"ingress,omitempty"` Payload *StrongRef `json:"payload,omitempty"` RFP StrongRef `json:"rfp"` Signatures Signatures `json:"signatures,omitempty"` SubmitEvent string `json:"submitEvent,omitempty"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (Receipt) NSID() string { return "com.publicdomainrelay.temp.market.receipt" } func ParseReceipt(value map[string]any) (*Receipt, error) { var out Receipt if err := decodeRecord(value, "com.publicdomainrelay.temp.market.receipt", &out); err != nil { return nil, err } return &out, nil } func (v Receipt) MarshalJSON() ([]byte, error) { type plain Receipt if v.Type == "" { v.Type = "com.publicdomainrelay.temp.market.receipt" } return marshalOpen(plain(v), v.Extra, v.absent) } func (v *Receipt) UnmarshalJSON(b []byte) error { type plain Receipt var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = Receipt(p) v.Extra = extra v.absent = absent return nil } type ReceiptsFree struct { Type string `json:"$type"` Accept StrongRef `json:"accept"` CID string `json:"cid"` CreatedAt string `json:"createdAt,omitempty"` Signatures Signatures `json:"signatures,omitempty"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (ReceiptsFree) NSID() string { return "com.publicdomainrelay.temp.market.receipts.free" } func ParseReceiptsFree(value map[string]any) (*ReceiptsFree, error) { var out ReceiptsFree if err := decodeRecord(value, "com.publicdomainrelay.temp.market.receipts.free", &out); err != nil { return nil, err } return &out, nil } func (v ReceiptsFree) MarshalJSON() ([]byte, error) { type plain ReceiptsFree if v.Type == "" { v.Type = "com.publicdomainrelay.temp.market.receipts.free" } return marshalOpen(plain(v), v.Extra, v.absent) } func (v *ReceiptsFree) UnmarshalJSON(b []byte) error { type plain ReceiptsFree var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = ReceiptsFree(p) v.Extra = extra v.absent = absent return nil } type ReceiptsX402 struct { Type string `json:"$type"` Accept StrongRef `json:"accept"` CID string `json:"cid"` CreatedAt string `json:"createdAt,omitempty"` Signatures Signatures `json:"signatures,omitempty"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (ReceiptsX402) NSID() string { return "com.publicdomainrelay.temp.market.receipts.x402" } func ParseReceiptsX402(value map[string]any) (*ReceiptsX402, error) { var out ReceiptsX402 if err := decodeRecord(value, "com.publicdomainrelay.temp.market.receipts.x402", &out); err != nil { return nil, err } return &out, nil } func (v ReceiptsX402) MarshalJSON() ([]byte, error) { type plain ReceiptsX402 if v.Type == "" { v.Type = "com.publicdomainrelay.temp.market.receipts.x402" } return marshalOpen(plain(v), v.Extra, v.absent) } func (v *ReceiptsX402) UnmarshalJSON(b []byte) error { type plain ReceiptsX402 var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = ReceiptsX402(p) v.Extra = extra v.absent = absent return nil } type Relays struct { Type string `json:"$type"` CreatedAt string `json:"createdAt"` Relays []string `json:"relays,omitempty"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (Relays) NSID() string { return "com.publicdomainrelay.temp.market.relays" } func ParseRelays(value map[string]any) (*Relays, error) { var out Relays if err := decodeRecord(value, "com.publicdomainrelay.temp.market.relays", &out); err != nil { return nil, err } return &out, nil } func (v Relays) MarshalJSON() ([]byte, error) { type plain Relays if v.Type == "" { v.Type = "com.publicdomainrelay.temp.market.relays" } return marshalOpen(plain(v), v.Extra, v.absent) } func (v *Relays) UnmarshalJSON(b []byte) error { type plain Relays var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = Relays(p) v.Extra = extra v.absent = absent return nil } type Signature struct { AttestedSignature *AttestedSignature StrongRef *StrongRef Unknown json.RawMessage } func (u Signature) MarshalJSON() ([]byte, error) { switch { case u.AttestedSignature != nil: v := *u.AttestedSignature if v.Type == "" { v.Type = "network.attested.signature" } return json.Marshal(v) case u.StrongRef != nil: v := *u.StrongRef if v.Type == "" { v.Type = "com.atproto.repo.strongRef" } return json.Marshal(v) case u.Unknown != nil: return u.Unknown, nil } return nil, fmt.Errorf("Signature: no variant is set") } func (u *Signature) UnmarshalJSON(b []byte) error { var head struct { Type string `json:"$type"` } if err := json.Unmarshal(b, &head); err != nil { return err } *u = Signature{} switch head.Type { case "network.attested.signature": u.AttestedSignature = new(AttestedSignature) return json.Unmarshal(b, u.AttestedSignature) case "com.atproto.repo.strongRef": u.StrongRef = new(StrongRef) return json.Unmarshal(b, u.StrongRef) default: u.Unknown = append(json.RawMessage(nil), b...) return nil } } type Signatures []Signature type StrongRef struct { Type string `json:"$type,omitempty"` CID string `json:"cid"` URI string `json:"uri"` Extra map[string]json.RawMessage `json:"-"` absent map[string]json.RawMessage } func (v StrongRef) MarshalJSON() ([]byte, error) { type plain StrongRef return marshalOpen(plain(v), v.Extra, v.absent) } func (v *StrongRef) UnmarshalJSON(b []byte) error { type plain StrongRef var p plain extra, absent, err := unmarshalOpen(b, &p) if err != nil { return err } *v = StrongRef(p) v.Extra = extra v.absent = absent return nil }