common:
  product: media

context:
  PackageMetaDataContext: &PackageMetaDataContext
    packageName:
      type: string
      description: name of the package the event was fired from
    packageVersion:
      type: string
      description: version of the package the event was fired from
  CommonContext: &CommonContext
    extensionKey:
      type: string
      required: false
      description: The provider identifier of the resolver that was used to resolve the link
    destinationObjectType:
      type: string
      required: false
      description: |
        The type of object of the linked resource.
        Typically maps to `resourceType` as defined by resolvers.
    destinationSubproduct:
      type: string
      required: false
      description: |
        Which subproduct will the link take you to when clicked.
    destinationProduct:
      type: string
      required: false
      description: |
        Which product the linked resource will navigate to when clicked.
    location:
      required: false
      type: string
      description: Where the Smart Link is currently rendered
    statusDetails:
      type: string
      description:
        Provides further information of the resolved status. May be different for different status
        values
      required: false
  ResolvedContext: &ResolvedContext
    status:
      type:
        [
          'pending',
          'resolving',
          'resolved',
          'errored',
          'fallback',
          'unauthorized',
          'forbidden',
          'not_found',
        ]
      description: The status of the link resolution at the time of the event.
      required: false
    statusDetails:
      type: string
      description:
        Provides further information of the resolved status. May be different for different status
        values
      required: false
    displayCategory:
      type: ['smartLink', 'link']
      description: |
        The overarching category of what the link is shown as.
        `smartLink` : we are able to resolve the link and is displayed as a smart link
        `link` : we are unable to resolve the link and it is displayed as linked text or a linked URL
    extensionKey:
      type: string
      required: false
      description: The provider identifier of the resolver that was used to resolve the link
    destinationProduct:
      type: string
      required: false
      description: |
        Which product the linked resource will navigate to when clicked.
    destinationSubproduct:
      type: string
      required: false
      description: |
        Which subproduct will the link take you to when clicked.
    destinationCategory:
      type: string
      required: false
      description: |
        The category of the linked object.
        Typically value is either `object` or `comment`
    destinationObjectId:
      type: string
      required: false
      description: |
        The `objectId` of the linked resource.
    destinationObjectType:
      type: string
      required: false
      description: |
        The type of object of the linked resource.
        Typically maps to `resourceType` as defined by resolvers.
    destinationContainerId:
      type: string
      required: false
      description: |
        The `containerId` of the linked resource.
        Eg. if the object is a Confluence page or blog post, then this value would be the ID of the "containing" space
    destinationTenantId:
      type: string
      required: false
      description: |
        The `tenantId` of the linked resource if relevant.
    canBeDatasource:
      type: boolean
      required: false
      description: An indicator that a link can be converted to datasource view
    location:
      required: false
      type: string
      description: Where the Smart Link is currently rendered

attributes:
  AiInteractionAttributes: &AiInteractionAttributes
    aiFeatureName:
      type: string
      description: The name of the AI feature as shared with AI team
    proactiveAIGenerated:
      type: number
      description:
        Attribute that captures the fact that an AI generated result was proactively served to a
        user.
    userGeneratedAI:
      type: number
      description:
        Attribute that captures the fact that a user interaction with a feature lead to generation
        of an AI result.
  CommonAttributes: &CommonAttributes
    definitionId:
      required: false
      type: string
      description: The definitionId of the Smart Link resolver invoked.
  smartLinkActionTypeAttribute: &smartLinkActionTypeAttribute
    smartLinkActionType:
      required: true
      type:
        [
          'FollowEntityAction',
          'GetStatusTransitionsAction',
          'StatusUpdateAction',
          'UnfollowEntityAction',
          'StatusUpdate',
        ]
      description: The type of action being invoked
  ClientActionAttributes: &ClientActionAttributes
    actionType:
      required: false
      type: string
      description: The type of action being invoked.
    id:
      required: false
      type: string
      description: The unique ID for this Smart Link.
    definitionId:
      type: string
      required: false
      description: The definitionId of the Smart Link resolver invoked.
    display:
      required: false
      type: ['inline', 'block', 'embed', 'embedPreview', 'flexible', 'hoverCardPreview', 'url']
      description: Whether the card was an Inline, Block, Embed or Flexible UI.
    resourceType:
      required: false
      type: string
      description: Type of resource the link is pointing to
events:
  - oneClickChatSpotlight clicked (oneClickChatSpotlightV2):
      type: ui
      description:
        Fired once when the spotlight CTA or highlighted inline action is clicked while the
        spotlight is open
      attributes:
        provider:
          type: ['google-drive', 'github']
          description: Provider of the highlighted Smart Link
        product:
          type: ['confluence_web', 'jira_web']
          description: Host product showing the spotlight
        appearance:
          type: ['inline']
          description: Smart Link appearance
        cohort:
          type: ['treatment']
          description: Experiment cohort showing the spotlight
        variant:
          type: ['v2']
          description: Spotlight version
        interactionSource:
          type: ['spotlightCta', 'inlineAction']
          required: false
          description:
            spotlightCta identifies the spotlight CTA (currently See takeaways); inlineAction
            identifies the highlighted inline action. Absent on older clients.
  - button clicked (copyLink):
      type: ui
      description: Fired when an copy link is clicked
      attributes:
        <<: [*PackageMetaDataContext, *ResolvedContext, *ClientActionAttributes]
  - button clicked (downloadDocument):
      type: ui
      description: Fired when an download is clicked
      attributes:
        <<: [*PackageMetaDataContext, *ResolvedContext, *ClientActionAttributes]
  - button clicked (invokePreviewScreen):
      type: ui
      description: Fired when an preview is clicked
      attributes:
        <<: [*PackageMetaDataContext, *ResolvedContext, *ClientActionAttributes]
  - button clicked (shortcutGoToLink):
      type: ui
      description: Fired when an view link is clicked
      attributes:
        <<: [*PackageMetaDataContext, *ResolvedContext, *ClientActionAttributes]
  - button clicked (issueStatusUpdate):
      type: ui
      description: fires an event that represents a user clicking on the preview action button
      attributes:
        <<: [*PackageMetaDataContext, *CommonContext, *ClientActionAttributes]
  - button clicked (aiSummary):
      type: ui
      description: fired when an ai summary is clicked
      attributes:
        <<: [*PackageMetaDataContext, *ResolvedContext]
  - button clicked (rovoChatPrompt):
      type: ui
      description: Fired when sending prompt to RovoChat via click
      attributes:
        <<: [*PackageMetaDataContext, *ResolvedContext, *ClientActionAttributes]
        prompt:
          required: false
          type: string
          description: Key for RovoChat prompts
        interactionSource:
          required: false
          type: ['spotlightCta', 'inlineAction']
          description:
            Origin of the gated inline Rovo invocation. spotlightCta identifies the spotlight CTA
            (currently See takeaways); inlineAction identifies Summarize or Explain, whether or not
            a spotlight is visible. Absent for older clients, gate-off and other surfaces.

  - button clicked (copySummary):
      type: ui
      description: fired when the copy ai summary button is clicked
      attributes:
        <<: [*PackageMetaDataContext, *ResolvedContext]

  - summary viewed:
      type: ui
      description: fired when a summary is viewed
      attributes:
        <<: [*PackageMetaDataContext, *ResolvedContext]
        fromCache:
          required: false
          type: boolean
          description: if the summary is from a cache

  - error viewed (aiSummary):
      type: ui
      description: fired when a summary error is viewed
      attributes:
        <<: [*PackageMetaDataContext, *ResolvedContext]

  - summary success:
      type: operational
      description: fired when a summary request finishes with a successful response
      attributes:
        <<: [*PackageMetaDataContext, *ResolvedContext]

  - summary failed:
      type: operational
      description: fired when a summary request finishes with a failed response
      attributes:
        <<: [*PackageMetaDataContext, *ResolvedContext]
        reason:
          required: false
          type: string
          description: failure reason
        isSloError:
          required: true
          type: boolean
          description: True if the error should be counted towards the SLO.

  - aiInteraction initiated:
      type: track
      description: fired when an explicit request is made to use an AI-powered feature
      attributes:
        <<: [*PackageMetaDataContext, *AiInteractionAttributes]

  - button clicked (automationAction):
      type: ui
      description: fired when the automation action button is clicked
      attributes:
        <<: [*PackageMetaDataContext, *ResolvedContext]

  - button clicked (relatedLinks):
      type: ui
      description: fired when the related links action button is clicked
      attributes:
        <<: [*PackageMetaDataContext, *ResolvedContext]

  - modal opened (relatedLinks):
      type: ui
      description: fired when related links modal is opened
      attributes:
        <<: [*PackageMetaDataContext, *ResolvedContext]

  - modal closed (relatedLinks):
      type: ui
      description: fired when related links modal is closed
      attributes:
        <<: [*PackageMetaDataContext, *ResolvedContext]
        dwellTime:
          required: true
          type: number
          description: total time spent over the related links modal

  - modal opened (preAuthValueProposition):
      type: ui
      description: >
        Fired when the pre-auth value proposition modal is shown after an eligible
        unauthorized Smart Link is created or converted.
      attributes:
        <<: [*PackageMetaDataContext, *CommonContext]

  - modal closed (preAuthValueProposition):
      type: ui
      description: >
        Fired when the user dismisses the pre-auth value proposition modal without connecting.
      attributes:
        <<: [*PackageMetaDataContext, *CommonContext]
        closeMethod:
          required: true
          type: ['button', 'escape', 'overlay']
          description: How the user dismissed the modal.
        dwellTime:
          required: true
          type: number
          description: Time in milliseconds from modal open complete to dismiss.

  - relatedLinks success:
      type: operational
      description: fired when related links are retrieved successfully
      attributes:
        <<: [*PackageMetaDataContext, *ResolvedContext]
        incomingCount:
          type: number
          required: true
          description: number of resources where this link is found in
        outgoingCount:
          type: number
          required: true
          description: number of links included in this resource

  - relatedLinks failed:
      type: operational
      description: fired when related links retrieval fails
      attributes:
        <<: [*PackageMetaDataContext, *ResolvedContext]
        reason:
          required: true
          type: string
          description: failure reason
  - smartLinkIframe dwelled:
      type: ui
      description: fired when a user dwells their cursor on a Smart Link's iframe
      attributes:
        <<: [*PackageMetaDataContext, *ResolvedContext]
        id:
          required: true
          type: string
          description: The unique ID for this Smart Link
        display:
          required: true
          type: ['inline', 'block', 'embed', 'embedPreview', 'flexible', 'hoverCardPreview', 'url']
          description: Whether the card was an Inline, Block, Embed or Flexible UI
        definitionId:
          required: false
          type: string
          description: The definitionId of the Smart Link resolver invoked.
        dwellTime:
          required: true
          type: number
          description: Total seconds that the user has dwelled on this iframe
        dwellPercentVisible:
          required: true
          type: number
          description: Percentage element was visible at end of dwell
  - smartLinkIframe focused:
      type: ui
      description: fires when a user clicks or tabs into a Smart Link's iframe.
      attributes:
        id:
          required: true
          type: string
          description: The unique ID for this Smart Link.
        display:
          required: true
          type: ['inline', 'block', 'embed', 'embedPreview', 'flexible', 'hoverCardPreview', 'url']
          description: Whether the card was an Inline, Block, Embed or Flexible UI.
        definitionId:
          required: false
          type: string
          description: The definitionId of the Smart Link resolver invoked.
        interactionType:
          required: false
          type: ['mouseenter', 'mouseleave', 'focus']
          description:
            The type of interaction that triggered this event - mouse enter, mouse leave, or focus.
  - applicationAccount connected:
      type: track
      description: user connecting their account to view a Smart Link.
      attributes:
        <<: [*PackageMetaDataContext, *CommonAttributes, *CommonContext]
  - applicationAccount authStarted:
      type: track
      description: user starting the Smart Link connect account process.
      attributes:
        <<: [*PackageMetaDataContext, *CommonContext]
  - smartLinkQuickAction started:
      type: track
      description: fires event before an action invoke api call is made
      attributes:
        <<: [*PackageMetaDataContext, *CommonContext, *smartLinkActionTypeAttribute]
  - smartLinkQuickAction success:
      type: track
      description: fires a tracking event after an action invoke api call is successful
      attributes:
        <<: [*PackageMetaDataContext, *CommonContext, *smartLinkActionTypeAttribute]
  - smartLinkQuickAction failed:
      type: track
      description: fires a tracking event after an action invoke api call has failed
      attributes:
        <<: [*PackageMetaDataContext, *CommonContext, *smartLinkActionTypeAttribute]
        reason:
          required: false
          description: The reason for the failure
          type: ['PermissionError', 'ValidationError', 'UnknownError']
  - consentModal viewed:
      type: screen
      description: fires an event which represents the connect account page being opened.
      attributes:
        <<: [*PackageMetaDataContext, *CommonContext]
        definitionId:
          required: false
          type: string
          description: The definitionId of the Smart Link resolver invoked.
  - embedPreviewModal viewed:
      type: screen
      description: Fires an event that represents when a user view a modal.
      attributes:
        <<: [*PackageMetaDataContext, *CommonContext]
        origin:
          required: false
          type: ['smartLinkCard', 'smartLinkEmbed', 'smartLinkInline', 'smartLinkPreviewHoverCard']
          description: The origin of the event
        size:
          required: false
          type: ['large', 'small']
          description: The size of the modal
  - smartLink connectSucceeded:
      type: operational
      description:
        fires an event that represents an account successfully being connected via a Smart Link.
      attributes:
        <<: [*PackageMetaDataContext, *CommonContext]
        definitionId:
          required: false
          type: string
          description: The definitionId of the Smart Link resolver invoked.
  - smartLink connectFailed:
      type: operational
      description: fires an event that represents an account unsuccessfully being connected.
      attributes:
        <<: [*PackageMetaDataContext, *CommonContext]
        reason:
          required: false
          description: The reason why the Smart Link connect account failed.
          type: string
        definitionId:
          required: false
          type: string
          description: The definitionId of the Smart Link resolver invoked.
  - smartLink resolved:
      type: operational
      description: fires an event which represents a Smart Link request succeeding.
      attributes:
        <<: [*PackageMetaDataContext, *CommonContext]
        status:
          type:
            [
              'pending',
              'resolving',
              'resolved',
              'errored',
              'fallback',
              'unauthorized',
              'forbidden',
              'not_found',
            ]
          description: The status of the link resolution at the time of the event.
          required: false
        definitionId:
          required: false
          type: string
          description: The definitionId of the Smart Link resolver invoked.
        duration:
          required: false
          type: number
  - smartLink unresolved:
      type: operational
      description: fires an event which represents a Smart Link request failing.
      attributes:
        <<: [*PackageMetaDataContext, *CommonContext]
        status:
          type:
            [
              'pending',
              'resolving',
              'resolved',
              'errored',
              'fallback',
              'unauthorized',
              'forbidden',
              'not_found',
            ]
          description: The status of the link resolution at the time of the event.
          required: false
        definitionId:
          required: false
          type: string
          description: The definitionId of the Smart Link resolver invoked.
        error:
          required: false
          description: The reason why the Smart Link connect account failed.
          type: object
        reason:
          required: true
          type: string
  - smartLink chunkLoadFailed:
      type: operational
      description: fires an event that represents when a Smart Link renders unsuccessfully.
      attributes:
        <<: [*PackageMetaDataContext, *CommonContext]
        display:
          required: true
          type: ['inline', 'block', 'embed', 'embedPreview', 'flexible', 'hoverCardPreview', 'url']
          description: Whether the card was an Inline, Block, Embed or Flexible UI.
        definitionId:
          required: false
          type: string
          description: The definitionId of the Smart Link resolver invoked.
        error:
          required: true
          description: An error representing why the Smart Link render failed.
          type: object
        errorInfo:
          required: true
          description: Additional details about the error including the stack trace.
          type: object
  - smartLinkAction resolved:
      type: operational
      description: Fires an event when a Smart Link action is successfully resolved.
      attributes:
        <<: [*PackageMetaDataContext, *ResolvedContext, *ClientActionAttributes]
        duration:
          required: false
          type: number
          description: Total time the action take to complete its invocation
  - smartLinkAction unresolved:
      type: operational
      description: Fires an event when a Smart Link action is failed to resolved.
      attributes:
        <<: [*PackageMetaDataContext, *ResolvedContext, *ClientActionAttributes]
        duration:
          required: false
          type: number
          description: Total time the action take to complete its invocation
        reason:
          required: false
          type: string
          description: Failure reason
  - hyperlink resolved:
      type: operational
      description: Fires an event when a hyperlink is successfully resolved.
      attributes:
        packageName:
          type: string
          description: name of the package the event was fired from
        packageVersion:
          type: string
          description: version of the package the event was fired from
        extensionKey:
          type: string
          required: false
          description: The provider identifier of the resolver that was used to resolve the link
        definitionId:
          required: false
          type: string
          description: The definitionId of the Smart Link resolver invoked.
        resourceType:
          required: false
          type: string
          description: Type of resource the link is pointing to
        duration:
          required: false
          type: number
          description: Total time the hyperlink resolution took to complete
  - hyperlink unresolved:
      type: operational
      description: Fires an event when a hyperlink fails to resolve.
      attributes:
        packageName:
          type: string
          description: name of the package the event was fired from
        packageVersion:
          type: string
          description: version of the package the event was fired from
        extensionKey:
          type: string
          required: false
          description: The provider identifier of the resolver that was used to resolve the link
        definitionId:
          required: false
          type: string
          description: The definitionId of the Smart Link resolver invoked.
        resourceType:
          required: false
          type: string
          description: Type of resource the link is pointing to
        reason:
          required: false
          type: string
          description: The status/reason why the hyperlink failed to resolve
        error:
          required: false
          type: object
          description: Error object providing more details about the failure
  - smartLink clicked:
      type: ui
      description: fires an event that represents when a user clicks on a Smart Link.
      attributes:
        <<: [*PackageMetaDataContext, *CommonContext, *ResolvedContext]
        id:
          required: true
          type: string
          description: The unique ID for this Smart Link.
        display:
          required: true
          type: ['inline', 'block', 'embed', 'embedPreview', 'flexible', 'hoverCardPreview']
          description: Whether the card was an Inline, Block, Embed or Flexible UI
        definitionId:
          required: false
          type: string
          description: The definitionId of the Smart Link resolver invoked.
        isModifierKeyPressed:
          required: false
          type: boolean
          description: Whether a modifier key was pressed when clicking the Smart Link.
  - smartLink visited:
      type: track
      description: fires a tracking event that represents when a user visits a Smart Link target.
      attributes:
        <<: [*PackageMetaDataContext, *CommonContext]
        id:
          required: true
          type: string
          description: The unique ID for this Smart Link.
        display:
          required: true
          type: ['inline', 'block', 'embed', 'embedPreview', 'flexible', 'hoverCardPreview']
          description: Whether the card was an Inline, Block, Embed or Flexible UI
        definitionId:
          required: false
          type: string
          description: The definitionId of the Smart Link resolver invoked.
  - smartLink clicked (titleGoToLink):
      type: ui
      description: fires an event that represents when a user clicks on a Smart Link.
      attributes:
        <<: [*PackageMetaDataContext, *CommonContext, *ResolvedContext]
        id:
          required: true
          type: string
          description: The unique ID for this Smart Link.
        display:
          required: true
          type: ['inline', 'block', 'embed', 'embedPreview', 'flexible', 'hoverCardPreview']
          description: Whether the card was an Inline, Block, Embed or Flexible UI
        definitionId:
          required: false
          type: string
          description: The definitionId of the Smart Link resolver invoked.
        isModifierKeyPressed:
          required: false
          type: boolean
          description: Whether a modifier key was pressed when clicking the Smart Link.
  - smartLink clicked (previewHoverCard):
      type: ui
      description:
        fires an event that represents when a user clicks on a Smart Link to open a preview panel.
      attributes:
        <<: [*PackageMetaDataContext, *CommonContext, *ResolvedContext]
        id:
          required: true
          type: string
          description: The unique ID for this Smart Link.
        display:
          required: true
          type: ['inline', 'block', 'embed', 'embedPreview', 'flexible', 'hoverCardPreview']
          description: Whether the card was an Inline, Block, Embed or Flexible UI
        previewType:
          required: true
          type: ['modal', 'panel']
          description: What format the preview is in.
  - hoverCard viewed:
      type: ui
      description: fires an event that represents a hover preview being opened.
      attributes:
        <<: [*PackageMetaDataContext, *CommonContext, *ResolvedContext]
        previewDisplay:
          type: ['card', 'embed']
          required: true
          description: What format the preview is in.
        previewInvokeMethod:
          type: ['keyboard', 'mouse_hover', 'mouse_click']
          required: false
          description: How the preview was triggered.
        definitionId:
          required: false
          type: string
          description: The definitionId of the Smart Link resolver invoked.
        rovoActionsCtaShown:
          required: false
          type: boolean
          description: Whether the Rovo Actions CTA icon was shown for this Smart Link
  - hoverCard dismissed:
      type: ui
      description: fires an event that represents a hover preview being dismissed.
      attributes:
        <<: [*PackageMetaDataContext, *CommonContext, *ResolvedContext]
        previewDisplay:
          type: ['card', 'embed']
          required: true
          description: What format the preview is in.
        hoverTime:
          type: number
          required: true
          description:
            The duration that the user hovered over a Smart Link before the preview was dismissed.
        previewInvokeMethod:
          type: ['keyboard', 'mouse_hover', 'mouse_click']
          required: false
          description: How the preview was triggered.
        definitionId:
          required: false
          type: string
          description: The definitionId of the Smart Link resolver invoked.
        rovoActionsCtaShown:
          required: false
          type: boolean
          description: Whether the Rovo Actions CTA (inline nudge) was shown for this Smart Link
  - button clicked (connectAccount):
      type: ui
      description:
        fires an event that represents when a user clicks on the authentication call to action with
        no current authenticated account. (i.e. Connect to Preview).
      attributes:
        <<: [*PackageMetaDataContext, *CommonContext]
        display:
          required: true
          type: ['inline', 'block', 'embed', 'embedPreview', 'flexible', 'hoverCardPreview', 'url']
          description: Whether the card was an Inline, Block, Embed or Flexible UI.
        definitionId:
          required: false
          type: string
          description: The definitionId of the Smart Link resolver invoked.
  - button clicked (carouselNext):
      type: ui
      description: >
        Fires when a user clicks the "See next" button in a smart link carousel view. Used to
        measure engagement depth — how many users navigate past the first benefit slide.
      attributes:
        <<: [*PackageMetaDataContext, *CommonContext]
        display:
          required: true
          type: ['inline', 'block', 'embed', 'embedPreview', 'flexible', 'hoverCardPreview', 'url']
          description: The card display type from which the carousel is rendered.
        slideId:
          required: true
          type: string
          description: >
            Stable semantic identifier for the slide (e.g. 'smart-link-benefit',
            'rovo-search-benefit'). Used instead of slideIndex so analytics remain accurate if slide
            order changes.
  - button clicked (carouselConnect):
      type: ui
      description: >
        Fires when a user clicks the connect account button from within a smart link carousel view.
        Captures which benefit slide the user was viewing when they decided to connect, enabling
        measurement of which slide is most persuasive.
      attributes:
        <<: [*PackageMetaDataContext, *CommonContext]
        display:
          required: true
          type: ['inline', 'block', 'embed', 'embedPreview', 'flexible', 'hoverCardPreview', 'url']
          description: The card display type from which the carousel is rendered.
        slideId:
          required: true
          type: string
          description: >
            Stable semantic identifier for the slide (e.g. 'smart-link-benefit',
            'rovo-search-benefit'). Used instead of slideIndex so analytics remain accurate if slide
            order changes.
  - smartLink clicked (tryAnotherAccount):
      type: ui
      description:
        fires an event that represents when a user clicks on the authentication call to action with
        a forbidden authenticated account. (i.e. Try another account).
      attributes:
        <<: [*PackageMetaDataContext, *CommonContext]
        display:
          required: true
          type: ['inline', 'block', 'embed', 'embedPreview', 'flexible', 'hoverCardPreview', 'url']
          description: Whether the card was an Inline, Block, Embed or Flexible UI.
        definitionId:
          required: false
          type: string
          description: The definitionId of the Smart Link resolver invoked.
  - consentModal closed:
      type: ui
      description:
        fires an event that represents when a user closed the authentication window without
        authenticating after opening it.
      attributes:
        <<: [*PackageMetaDataContext, *CommonContext]
        display:
          required: true
          type: ['inline', 'block', 'embed', 'embedPreview', 'flexible', 'hoverCardPreview', 'url']
          description: Whether the card was an Inline, Block, Embed or Flexible UI.
        definitionId:
          required: false
          type: string
          description: The definitionId of the Smart Link resolver invoked.
  - modal closed (embedPreview):
      type: ui
      description: Fires an event that represents when a user close a modal.
      attributes:
        <<: [*PackageMetaDataContext, *CommonContext]
        origin:
          required: false
          type: ['smartLinkCard', 'smartLinkEmbed', 'smartLinkInline', 'smartLinkPreviewHoverCard']
          description: The origin of the event
        previewTime:
          required: false
          type: number
          description: Duration that user spent on the preview.
        size:
          required: false
          type: ['large', 'small']
          description: The size of the modal
  - button clicked (dismiss):
      type: ui
      description: fires when a user dismisses a dismissible Smart Link or hover card control.
      attributes:
        <<: [*PackageMetaDataContext, *CommonContext]
  - button clicked (learnMore):
      type: ui
      description:
        fires an event that signifies that a "Learn More" link was clicked on an unauthenticated
        card
      attributes:
        <<: [*PackageMetaDataContext, *CommonContext]
  - button clicked (smartLinkStatusLozenge):
      type: ui
      description: fires an event that represent a click was performed on a Status Lozenge
      attributes:
        <<: [*PackageMetaDataContext, *CommonContext]
  - button clicked (smartLinkStatusListItem):
      type: ui
      description:
        fires an event that represent a click was performed on a Status Lozenge's dropdown item
      attributes:
        <<: [*PackageMetaDataContext, *CommonContext]
  - button clicked (smartLinkStatusOpenPreview):
      type: ui
      description:
        fires an event that represent a click was performed on a Status Lozenge open preview button
      attributes:
        <<: [*PackageMetaDataContext, *CommonContext]
  - button clicked (smartLinkFollowButton):
      type: ui
      description: fires an event that represents a click was performed on the follow button.
      attributes:
        <<: [*PackageMetaDataContext, *CommonContext]
  - button clicked (StatusUpdateAction):
      type: ui
      attributes:
        <<: [*PackageMetaDataContext, *CommonContext]
  - button clicked (GetStatusTransitionsAction):
      type: ui
      attributes:
        <<: [*PackageMetaDataContext, *CommonContext]
  - button clicked (embedPreviewResize):
      type: ui
      description:
        fires an event that represents a user clicking on the resize button in the embed preview
      attributes:
        <<: [*PackageMetaDataContext, *CommonContext]
        newSize:
          required: true
          type: ['large', 'small']
          description: The new size of the embed preview
        origin:
          required: false
          type: ['smartLinkCard', 'smartLinkEmbed', 'smartLinkInline', 'smartLinkPreviewHoverCard']
          description: The origin of the resize event
        previousSize:
          required: true
          type: ['large', 'small']
          description: The previous size of the embed preview
  - smartLink renderSuccess:
      type: ui
      description:
        fires an event that represents when a Smart Link was rendered successfully (even if the
        Smart Link errors out)
      attributes:
        <<: [*PackageMetaDataContext, *CommonContext]
        display:
          required: true
          type: ['inline', 'block', 'embed', 'embedPreview', 'flexible', 'hoverCardPreview']
          description: Whether the card was an Inline, Block, Embed or Flexible UI
        rovoActionsCtaShown:
          required: false
          type: boolean
          description: Whether the Rovo Actions CTA (inline nudge) was shown for this Smart Link
        experimentMeta:
          required: false
          type: object
          description: |
            Optional experiment metadata attached to the Smart Link render success event. Root keys
            should be Statsig experiment keys. Each experiment entry can contain metadata specific
            to that experiment, derived from no-exposure eligibility data only unless explicitly
            documented otherwise.
  - smartLink renderFailed:
      type: ui
      description: fires an event that represents when a Smart Link renders unsuccessfully.
      attributes:
        <<: [*PackageMetaDataContext, *CommonContext]
        display:
          required: true
          type: ['inline', 'block', 'embed', 'embedPreview', 'flexible', 'hoverCardPreview']
          description: Whether the card was an Inline, Block, Embed or Flexible UI
        error:
          required: true
          description: An error object representing why the Smart Link render failed.
          type: object
        errorInfo:
          required: true
          description: Additional details about the error including the stack trace.
          type: object
        id:
          required: false
          type: string
          description: The unique ID for this Smart Link
  - smartLink seen:
      type: ui
      description:
        fires an event that represents when a rendered Smart Link is visible in the viewport for the
        first time
      attributes:
        <<: [*PackageMetaDataContext, *CommonContext, *ResolvedContext]
        display:
          required: true
          type: ['inline', 'block', 'embed', 'flexible']
          description: Whether the card was an Inline, Block, Embed or Flexible UI
  - smartLink clicked (smartlinkClickAnalyticsWorkflows):
      type: ui
      description:
        fires an event that represents when a user clicks on a Smart Link to track analytics for the
        3P Workflows team
      attributes:
        <<: [*PackageMetaDataContext, *CommonContext, *ResolvedContext]
        thirdPartyARI:
          required: true
          type: string
          description: The third-party ARI for this Smart Link
        eventName:
          required: true
          type: string
          description:
            The name of the event being tracked - for this event will always be
            smartLinkClickAnalyticsThirdPartyWorkflows since there are multiple event types in the
            same SQS pipeline
        firstPartyIdentifier:
          required: false
          type: string
          description:
            A null-capable field representing the Confluence content ID, Confluence page ID, or Jira
            issue key. This can be null if it is a value for an unsupported 1P provider (eg,
            Bitbucket, Loom), and will be prefixed by an identifier based on the source product.
        clickedAt:
          required: true
          type: string
          description: The timestamp when the event was clicked
        isAuxClick:
          required: false
          type: boolean
          description:
            True when the click was a middle-click (button === 1) captured via `onAuxClick`.
        isContextMenu:
          required: false
          type: boolean
          description: True when the event was a right-click captured via `onContextMenu`.
