# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.

# typed: true
# frozen_string_literal: true


module OpenApiSDK
  module Operations
  

    class GetLinksCountRequest < ::OpenApiSDK::Utils::FieldAugmented
      extend T::Sig

      # The domain to filter the links by. E.g. `ac.me`. If not provided, all links for the workspace will be returned.
      field :domain, T.nilable(::String), { 'query_param': { 'field_name': 'domain', 'style': 'form', 'explode': true } }
      # The field to group the links by.
      field :group_by, T.nilable(::Object), { 'query_param': { 'field_name': 'groupBy', 'style': 'form', 'explode': true } }
      # The search term to filter the links by. The search term will be matched against the short link slug and the destination url.
      field :search, T.nilable(::String), { 'query_param': { 'field_name': 'search', 'style': 'form', 'explode': true } }
      # Whether to include archived links in the response. Defaults to `false` if not provided.
      field :show_archived, T.nilable(T::Boolean), { 'query_param': { 'field_name': 'showArchived', 'style': 'form', 'explode': true } }
      # Deprecated. Use `tagIds` instead. The tag ID to filter the links by.
      field :tag_id, T.nilable(::String), { 'query_param': { 'field_name': 'tagId', 'style': 'form', 'explode': true } }
      # The tag IDs to filter the links by.
      field :tag_ids, T.nilable(::Object), { 'query_param': { 'field_name': 'tagIds', 'style': 'form', 'explode': true } }
      # The unique name of the tags assigned to the short link (case insensitive).
      field :tag_names, T.nilable(::Object), { 'query_param': { 'field_name': 'tagNames', 'style': 'form', 'explode': true } }
      # The user ID to filter the links by.
      field :user_id, T.nilable(::String), { 'query_param': { 'field_name': 'userId', 'style': 'form', 'explode': true } }
      # DEPRECATED. Filter for links that have at least one tag assigned to them.
      field :with_tags, T.nilable(T::Boolean), { 'query_param': { 'field_name': 'withTags', 'style': 'form', 'explode': true } }


      sig { params(domain: T.nilable(::String), group_by: T.nilable(::Object), search: T.nilable(::String), show_archived: T.nilable(T::Boolean), tag_id: T.nilable(::String), tag_ids: T.nilable(::Object), tag_names: T.nilable(::Object), user_id: T.nilable(::String), with_tags: T.nilable(T::Boolean)).void }
      def initialize(domain: nil, group_by: nil, search: nil, show_archived: nil, tag_id: nil, tag_ids: nil, tag_names: nil, user_id: nil, with_tags: nil)
        @domain = domain
        @group_by = group_by
        @search = search
        @show_archived = show_archived
        @tag_id = tag_id
        @tag_ids = tag_ids
        @tag_names = tag_names
        @user_id = user_id
        @with_tags = with_tags
      end
    end
  end
end