···14141515// ModerationCreateReport_Input is the input argument to a com.atproto.moderation.createReport call.
1616type ModerationCreateReport_Input struct {
1717+ ModTool *ModerationCreateReport_ModTool `json:"modTool,omitempty" cborgen:"modTool,omitempty"`
1718 // reason: Additional context about the content and violation.
1819 Reason *string `json:"reason,omitempty" cborgen:"reason,omitempty"`
1920 // reasonType: Indicates the broad category of violation the report is for.
···5455 default:
5556 return nil
5657 }
5858+}
5959+6060+// ModerationCreateReport_ModTool is a "modTool" in the com.atproto.moderation.createReport schema.
6161+//
6262+// Moderation tool information for tracing the source of the action
6363+type ModerationCreateReport_ModTool struct {
6464+ // meta: Additional arbitrary metadata about the source
6565+ Meta *interface{} `json:"meta,omitempty" cborgen:"meta,omitempty"`
6666+ // name: Name/identifier of the source (e.g., 'bsky-app/android', 'bsky-web/chrome')
6767+ Name string `json:"name" cborgen:"name"`
5768}
58695970// ModerationCreateReport_Output is the output of a com.atproto.moderation.createReport call.
+23-2
api/ozone/moderationdefs.go
···323323 CreatorHandle *string `json:"creatorHandle,omitempty" cborgen:"creatorHandle,omitempty"`
324324 Event *ModerationDefs_ModEventView_Event `json:"event" cborgen:"event"`
325325 Id int64 `json:"id" cborgen:"id"`
326326+ ModTool *ModerationDefs_ModTool `json:"modTool,omitempty" cborgen:"modTool,omitempty"`
326327 Subject *ModerationDefs_ModEventView_Subject `json:"subject" cborgen:"subject"`
327328 SubjectBlobCids []string `json:"subjectBlobCids" cborgen:"subjectBlobCids"`
328329 SubjectHandle *string `json:"subjectHandle,omitempty" cborgen:"subjectHandle,omitempty"`
···334335 CreatedBy string `json:"createdBy" cborgen:"createdBy"`
335336 Event *ModerationDefs_ModEventViewDetail_Event `json:"event" cborgen:"event"`
336337 Id int64 `json:"id" cborgen:"id"`
338338+ ModTool *ModerationDefs_ModTool `json:"modTool,omitempty" cborgen:"modTool,omitempty"`
337339 Subject *ModerationDefs_ModEventViewDetail_Subject `json:"subject" cborgen:"subject"`
338340 SubjectBlobs []*ModerationDefs_BlobView `json:"subjectBlobs" cborgen:"subjectBlobs"`
339341}
···774776 }
775777}
776778779779+// ModerationDefs_ModTool is a "modTool" in the tools.ozone.moderation.defs schema.
780780+//
781781+// Moderation tool information for tracing the source of the action
782782+type ModerationDefs_ModTool struct {
783783+ // meta: Additional arbitrary metadata about the source
784784+ Meta *interface{} `json:"meta,omitempty" cborgen:"meta,omitempty"`
785785+ // name: Name/identifier of the source (e.g., 'automod', 'ozone/workspace')
786786+ Name string `json:"name" cborgen:"name"`
787787+}
788788+777789// ModerationDefs_Moderation is a "moderation" in the tools.ozone.moderation.defs schema.
778790type ModerationDefs_Moderation struct {
779791 SubjectStatus *ModerationDefs_SubjectStatusView `json:"subjectStatus,omitempty" cborgen:"subjectStatus,omitempty"`
···10051017}
1006101810071019type ModerationDefs_SubjectStatusView_Subject struct {
10081008- AdminDefs_RepoRef *comatprototypes.AdminDefs_RepoRef
10091009- RepoStrongRef *comatprototypes.RepoStrongRef
10201020+ AdminDefs_RepoRef *comatprototypes.AdminDefs_RepoRef
10211021+ RepoStrongRef *comatprototypes.RepoStrongRef
10221022+ ConvoDefs_MessageRef *chatbskytypes.ConvoDefs_MessageRef
10101023}
1011102410121025func (t *ModerationDefs_SubjectStatusView_Subject) MarshalJSON() ([]byte, error) {
···10181031 t.RepoStrongRef.LexiconTypeID = "com.atproto.repo.strongRef"
10191032 return json.Marshal(t.RepoStrongRef)
10201033 }
10341034+ if t.ConvoDefs_MessageRef != nil {
10351035+ t.ConvoDefs_MessageRef.LexiconTypeID = "chat.bsky.convo.defs#messageRef"
10361036+ return json.Marshal(t.ConvoDefs_MessageRef)
10371037+ }
10211038 return nil, fmt.Errorf("cannot marshal empty enum")
10221039}
10231040func (t *ModerationDefs_SubjectStatusView_Subject) UnmarshalJSON(b []byte) error {
···10331050 case "com.atproto.repo.strongRef":
10341051 t.RepoStrongRef = new(comatprototypes.RepoStrongRef)
10351052 return json.Unmarshal(b, t.RepoStrongRef)
10531053+ case "chat.bsky.convo.defs#messageRef":
10541054+ t.ConvoDefs_MessageRef = new(chatbskytypes.ConvoDefs_MessageRef)
10551055+ return json.Unmarshal(b, t.ConvoDefs_MessageRef)
1036105610371057 default:
10381058 return nil
···10431063//
10441064// Detailed view of a subject. For record subjects, the author's repo and profile will be returned.
10451065type ModerationDefs_SubjectView struct {
10661066+ Profile *util.LexiconTypeDecoder `json:"profile,omitempty" cborgen:"profile,omitempty"`
10461067 Record *ModerationDefs_RecordViewDetail `json:"record,omitempty" cborgen:"record,omitempty"`
10471068 Repo *ModerationDefs_RepoViewDetail `json:"repo,omitempty" cborgen:"repo,omitempty"`
10481069 Status *ModerationDefs_SubjectStatusView `json:"status,omitempty" cborgen:"status,omitempty"`
···2626// createdBefore: Retrieve events created before a given timestamp
2727// hasComment: If true, only events with comments are returned
2828// includeAllUserRecords: If true, events on all record types (posts, lists, profile etc.) or records from given 'collections' param, owned by the did are returned.
2929+// modTool: If specified, only events where the modTool name matches any of the given values are returned
2930// removedLabels: If specified, only events where all of these labels were removed are returned
3031// removedTags: If specified, only events where all of these tags were removed are returned
3132// sortDirection: Sort direction for the events. Defaults to descending order of created at timestamp.
3233// subjectType: If specified, only events where the subject is of the given type (account or record) will be returned. When this is set to 'account' the 'collections' parameter will be ignored. When includeAllUserRecords or subject is set, this will be ignored.
3334// types: The types of events (fully qualified string in the format of tools.ozone.moderation.defs#modEvent<name>) to filter by. If not specified, all events are returned.
3434-func ModerationQueryEvents(ctx context.Context, c util.LexClient, addedLabels []string, addedTags []string, collections []string, comment string, createdAfter string, createdBefore string, createdBy string, cursor string, hasComment bool, includeAllUserRecords bool, limit int64, policies []string, removedLabels []string, removedTags []string, reportTypes []string, sortDirection string, subject string, subjectType string, types []string) (*ModerationQueryEvents_Output, error) {
3535+func ModerationQueryEvents(ctx context.Context, c util.LexClient, addedLabels []string, addedTags []string, collections []string, comment string, createdAfter string, createdBefore string, createdBy string, cursor string, hasComment bool, includeAllUserRecords bool, limit int64, modTool []string, policies []string, removedLabels []string, removedTags []string, reportTypes []string, sortDirection string, subject string, subjectType string, types []string) (*ModerationQueryEvents_Output, error) {
3536 var out ModerationQueryEvents_Output
36373738 params := map[string]interface{}{}
···6768 }
6869 if limit != 0 {
6970 params["limit"] = limit
7171+ }
7272+ if len(modTool) != 0 {
7373+ params["modTool"] = modTool
7074 }
7175 if len(policies) != 0 {
7276 params["policies"] = policies
+34
api/ozone/safelinkaddRule.go
···11+// Code generated by cmd/lexgen (see Makefile's lexgen); DO NOT EDIT.
22+33+package ozone
44+55+// schema: tools.ozone.safelink.addRule
66+77+import (
88+ "context"
99+1010+ "github.com/bluesky-social/indigo/lex/util"
1111+)
1212+1313+// SafelinkAddRule_Input is the input argument to a tools.ozone.safelink.addRule call.
1414+type SafelinkAddRule_Input struct {
1515+ Action *string `json:"action" cborgen:"action"`
1616+ // comment: Optional comment about the decision
1717+ Comment *string `json:"comment,omitempty" cborgen:"comment,omitempty"`
1818+ // createdBy: Author DID. Only respected when using admin auth
1919+ CreatedBy *string `json:"createdBy,omitempty" cborgen:"createdBy,omitempty"`
2020+ Pattern *string `json:"pattern" cborgen:"pattern"`
2121+ Reason *string `json:"reason" cborgen:"reason"`
2222+ // url: The URL or domain to apply the rule to
2323+ Url string `json:"url" cborgen:"url"`
2424+}
2525+2626+// SafelinkAddRule calls the XRPC method "tools.ozone.safelink.addRule".
2727+func SafelinkAddRule(ctx context.Context, c util.LexClient, input *SafelinkAddRule_Input) (*SafelinkDefs_Event, error) {
2828+ var out SafelinkDefs_Event
2929+ if err := c.LexDo(ctx, util.Procedure, "application/json", "tools.ozone.safelink.addRule", nil, input, &out); err != nil {
3030+ return nil, err
3131+ }
3232+3333+ return &out, nil
3434+}
+43
api/ozone/safelinkdefs.go
···11+// Code generated by cmd/lexgen (see Makefile's lexgen); DO NOT EDIT.
22+33+package ozone
44+55+// schema: tools.ozone.safelink.defs
66+77+// SafelinkDefs_Event is a "event" in the tools.ozone.safelink.defs schema.
88+//
99+// An event for URL safety decisions
1010+type SafelinkDefs_Event struct {
1111+ Action *string `json:"action" cborgen:"action"`
1212+ // comment: Optional comment about the decision
1313+ Comment *string `json:"comment,omitempty" cborgen:"comment,omitempty"`
1414+ CreatedAt string `json:"createdAt" cborgen:"createdAt"`
1515+ // createdBy: DID of the user who created this rule
1616+ CreatedBy string `json:"createdBy" cborgen:"createdBy"`
1717+ EventType *string `json:"eventType" cborgen:"eventType"`
1818+ // id: Auto-incrementing row ID
1919+ Id int64 `json:"id" cborgen:"id"`
2020+ Pattern *string `json:"pattern" cborgen:"pattern"`
2121+ Reason *string `json:"reason" cborgen:"reason"`
2222+ // url: The URL that this rule applies to
2323+ Url string `json:"url" cborgen:"url"`
2424+}
2525+2626+// SafelinkDefs_UrlRule is a "urlRule" in the tools.ozone.safelink.defs schema.
2727+//
2828+// Input for creating a URL safety rule
2929+type SafelinkDefs_UrlRule struct {
3030+ Action *string `json:"action" cborgen:"action"`
3131+ // comment: Optional comment about the decision
3232+ Comment *string `json:"comment,omitempty" cborgen:"comment,omitempty"`
3333+ // createdAt: Timestamp when the rule was created
3434+ CreatedAt string `json:"createdAt" cborgen:"createdAt"`
3535+ // createdBy: DID of the user added the rule.
3636+ CreatedBy string `json:"createdBy" cborgen:"createdBy"`
3737+ Pattern *string `json:"pattern" cborgen:"pattern"`
3838+ Reason *string `json:"reason" cborgen:"reason"`
3939+ // updatedAt: Timestamp when the rule was last updated
4040+ UpdatedAt string `json:"updatedAt" cborgen:"updatedAt"`
4141+ // url: The URL or domain to apply the rule to
4242+ Url string `json:"url" cborgen:"url"`
4343+}
+42
api/ozone/safelinkqueryEvents.go
···11+// Code generated by cmd/lexgen (see Makefile's lexgen); DO NOT EDIT.
22+33+package ozone
44+55+// schema: tools.ozone.safelink.queryEvents
66+77+import (
88+ "context"
99+1010+ "github.com/bluesky-social/indigo/lex/util"
1111+)
1212+1313+// SafelinkQueryEvents_Input is the input argument to a tools.ozone.safelink.queryEvents call.
1414+type SafelinkQueryEvents_Input struct {
1515+ // cursor: Cursor for pagination
1616+ Cursor *string `json:"cursor,omitempty" cborgen:"cursor,omitempty"`
1717+ // limit: Maximum number of results to return
1818+ Limit *int64 `json:"limit,omitempty" cborgen:"limit,omitempty"`
1919+ // patternType: Filter by pattern type
2020+ PatternType *string `json:"patternType,omitempty" cborgen:"patternType,omitempty"`
2121+ // sortDirection: Sort direction
2222+ SortDirection *string `json:"sortDirection,omitempty" cborgen:"sortDirection,omitempty"`
2323+ // urls: Filter by specific URLs or domains
2424+ Urls []string `json:"urls,omitempty" cborgen:"urls,omitempty"`
2525+}
2626+2727+// SafelinkQueryEvents_Output is the output of a tools.ozone.safelink.queryEvents call.
2828+type SafelinkQueryEvents_Output struct {
2929+ // cursor: Next cursor for pagination. Only present if there are more results.
3030+ Cursor *string `json:"cursor,omitempty" cborgen:"cursor,omitempty"`
3131+ Events []*SafelinkDefs_Event `json:"events" cborgen:"events"`
3232+}
3333+3434+// SafelinkQueryEvents calls the XRPC method "tools.ozone.safelink.queryEvents".
3535+func SafelinkQueryEvents(ctx context.Context, c util.LexClient, input *SafelinkQueryEvents_Input) (*SafelinkQueryEvents_Output, error) {
3636+ var out SafelinkQueryEvents_Output
3737+ if err := c.LexDo(ctx, util.Procedure, "application/json", "tools.ozone.safelink.queryEvents", nil, input, &out); err != nil {
3838+ return nil, err
3939+ }
4040+4141+ return &out, nil
4242+}
+48
api/ozone/safelinkqueryRules.go
···11+// Code generated by cmd/lexgen (see Makefile's lexgen); DO NOT EDIT.
22+33+package ozone
44+55+// schema: tools.ozone.safelink.queryRules
66+77+import (
88+ "context"
99+1010+ "github.com/bluesky-social/indigo/lex/util"
1111+)
1212+1313+// SafelinkQueryRules_Input is the input argument to a tools.ozone.safelink.queryRules call.
1414+type SafelinkQueryRules_Input struct {
1515+ // actions: Filter by action types
1616+ Actions []string `json:"actions,omitempty" cborgen:"actions,omitempty"`
1717+ // createdBy: Filter by rule creator
1818+ CreatedBy *string `json:"createdBy,omitempty" cborgen:"createdBy,omitempty"`
1919+ // cursor: Cursor for pagination
2020+ Cursor *string `json:"cursor,omitempty" cborgen:"cursor,omitempty"`
2121+ // limit: Maximum number of results to return
2222+ Limit *int64 `json:"limit,omitempty" cborgen:"limit,omitempty"`
2323+ // patternType: Filter by pattern type
2424+ PatternType *string `json:"patternType,omitempty" cborgen:"patternType,omitempty"`
2525+ // reason: Filter by reason type
2626+ Reason *string `json:"reason,omitempty" cborgen:"reason,omitempty"`
2727+ // sortDirection: Sort direction
2828+ SortDirection *string `json:"sortDirection,omitempty" cborgen:"sortDirection,omitempty"`
2929+ // urls: Filter by specific URLs or domains
3030+ Urls []string `json:"urls,omitempty" cborgen:"urls,omitempty"`
3131+}
3232+3333+// SafelinkQueryRules_Output is the output of a tools.ozone.safelink.queryRules call.
3434+type SafelinkQueryRules_Output struct {
3535+ // cursor: Next cursor for pagination. Only present if there are more results.
3636+ Cursor *string `json:"cursor,omitempty" cborgen:"cursor,omitempty"`
3737+ Rules []*SafelinkDefs_UrlRule `json:"rules" cborgen:"rules"`
3838+}
3939+4040+// SafelinkQueryRules calls the XRPC method "tools.ozone.safelink.queryRules".
4141+func SafelinkQueryRules(ctx context.Context, c util.LexClient, input *SafelinkQueryRules_Input) (*SafelinkQueryRules_Output, error) {
4242+ var out SafelinkQueryRules_Output
4343+ if err := c.LexDo(ctx, util.Procedure, "application/json", "tools.ozone.safelink.queryRules", nil, input, &out); err != nil {
4444+ return nil, err
4545+ }
4646+4747+ return &out, nil
4848+}
+32
api/ozone/safelinkremoveRule.go
···11+// Code generated by cmd/lexgen (see Makefile's lexgen); DO NOT EDIT.
22+33+package ozone
44+55+// schema: tools.ozone.safelink.removeRule
66+77+import (
88+ "context"
99+1010+ "github.com/bluesky-social/indigo/lex/util"
1111+)
1212+1313+// SafelinkRemoveRule_Input is the input argument to a tools.ozone.safelink.removeRule call.
1414+type SafelinkRemoveRule_Input struct {
1515+ // comment: Optional comment about why the rule is being removed
1616+ Comment *string `json:"comment,omitempty" cborgen:"comment,omitempty"`
1717+ // createdBy: Optional DID of the user. Only respected when using admin auth.
1818+ CreatedBy *string `json:"createdBy,omitempty" cborgen:"createdBy,omitempty"`
1919+ Pattern *string `json:"pattern" cborgen:"pattern"`
2020+ // url: The URL or domain to remove the rule for
2121+ Url string `json:"url" cborgen:"url"`
2222+}
2323+2424+// SafelinkRemoveRule calls the XRPC method "tools.ozone.safelink.removeRule".
2525+func SafelinkRemoveRule(ctx context.Context, c util.LexClient, input *SafelinkRemoveRule_Input) (*SafelinkDefs_Event, error) {
2626+ var out SafelinkDefs_Event
2727+ if err := c.LexDo(ctx, util.Procedure, "application/json", "tools.ozone.safelink.removeRule", nil, input, &out); err != nil {
2828+ return nil, err
2929+ }
3030+3131+ return &out, nil
3232+}
+34
api/ozone/safelinkupdateRule.go
···11+// Code generated by cmd/lexgen (see Makefile's lexgen); DO NOT EDIT.
22+33+package ozone
44+55+// schema: tools.ozone.safelink.updateRule
66+77+import (
88+ "context"
99+1010+ "github.com/bluesky-social/indigo/lex/util"
1111+)
1212+1313+// SafelinkUpdateRule_Input is the input argument to a tools.ozone.safelink.updateRule call.
1414+type SafelinkUpdateRule_Input struct {
1515+ Action *string `json:"action" cborgen:"action"`
1616+ // comment: Optional comment about the update
1717+ Comment *string `json:"comment,omitempty" cborgen:"comment,omitempty"`
1818+ // createdBy: Optional DID to credit as the creator. Only respected for admin_token authentication.
1919+ CreatedBy *string `json:"createdBy,omitempty" cborgen:"createdBy,omitempty"`
2020+ Pattern *string `json:"pattern" cborgen:"pattern"`
2121+ Reason *string `json:"reason" cborgen:"reason"`
2222+ // url: The URL or domain to update the rule for
2323+ Url string `json:"url" cborgen:"url"`
2424+}
2525+2626+// SafelinkUpdateRule calls the XRPC method "tools.ozone.safelink.updateRule".
2727+func SafelinkUpdateRule(ctx context.Context, c util.LexClient, input *SafelinkUpdateRule_Input) (*SafelinkDefs_Event, error) {
2828+ var out SafelinkDefs_Event
2929+ if err := c.LexDo(ctx, util.Procedure, "application/json", "tools.ozone.safelink.updateRule", nil, input, &out); err != nil {
3030+ return nil, err
3131+ }
3232+3333+ return &out, nil
3434+}
+6-4
api/ozone/verificationdefs.go
···2222 // handle: Handle of the subject the verification applies to at the moment of verifying, which might not be the same at the time of viewing. The verification is only valid if the current handle matches the one at the time of verifying.
2323 Handle string `json:"handle" cborgen:"handle"`
2424 // issuer: The user who issued this verification.
2525- Issuer string `json:"issuer" cborgen:"issuer"`
2626- IssuerRepo *VerificationDefs_VerificationView_IssuerRepo `json:"issuerRepo,omitempty" cborgen:"issuerRepo,omitempty"`
2525+ Issuer string `json:"issuer" cborgen:"issuer"`
2626+ IssuerProfile *util.LexiconTypeDecoder `json:"issuerProfile,omitempty" cborgen:"issuerProfile,omitempty"`
2727+ IssuerRepo *VerificationDefs_VerificationView_IssuerRepo `json:"issuerRepo,omitempty" cborgen:"issuerRepo,omitempty"`
2728 // revokeReason: Describes the reason for revocation, also indicating that the verification is no longer valid.
2829 RevokeReason *string `json:"revokeReason,omitempty" cborgen:"revokeReason,omitempty"`
2930 // revokedAt: Timestamp when the verification was revoked.
···3132 // revokedBy: The user who revoked this verification.
3233 RevokedBy *string `json:"revokedBy,omitempty" cborgen:"revokedBy,omitempty"`
3334 // subject: The subject of the verification.
3434- Subject string `json:"subject" cborgen:"subject"`
3535- SubjectRepo *VerificationDefs_VerificationView_SubjectRepo `json:"subjectRepo,omitempty" cborgen:"subjectRepo,omitempty"`
3535+ Subject string `json:"subject" cborgen:"subject"`
3636+ SubjectProfile *util.LexiconTypeDecoder `json:"subjectProfile,omitempty" cborgen:"subjectProfile,omitempty"`
3737+ SubjectRepo *VerificationDefs_VerificationView_SubjectRepo `json:"subjectRepo,omitempty" cborgen:"subjectRepo,omitempty"`
3638 // uri: The AT-URI of the verification record.
3739 Uri string `json:"uri" cborgen:"uri"`
3840}