# AUTO-GENERATED FILE - DO NOT EDIT
# This file was automatically generated by the XDK build tool.
# Any manual changes will be overwritten on the next generation.
"""
Auto-generated users models for the X API.

This module provides Pydantic models for request and response data structures
for the users endpoints of the X API. All models are generated
from the OpenAPI specification and provide type safety and validation.

Generated automatically - do not edit manually.
"""

from typing import Dict, List, Optional, Any, Union, Literal
from pydantic import BaseModel, Field, ConfigDict
from datetime import datetime


# Models for unrepost_post


class UnrepostPostResponse(BaseModel):
    """Response model for unrepost_post"""

    model_config = ConfigDict(populate_by_name=True, extra="allow")


# Models for unpin_list


class UnpinListResponse(BaseModel):
    """Response model for unpin_list"""

    model_config = ConfigDict(populate_by_name=True, extra="allow")


# Models for block_dms


class BlockDmsResponse(BaseModel):
    """Response model for block_dms"""

    model_config = ConfigDict(populate_by_name=True, extra="allow")


# Models for unmute_user


class UnmuteUserResponse(BaseModel):
    """Response model for unmute_user"""

    model_config = ConfigDict(populate_by_name=True, extra="allow")


# Models for get_by_username


class GetByUsernameResponse(BaseModel):
    """Response model for get_by_username"""

    model_config = ConfigDict(populate_by_name=True, extra="allow")


# Models for get_me


class GetMeResponse(BaseModel):
    """Response model for get_me"""

    model_config = ConfigDict(populate_by_name=True, extra="allow")


# Models for repost_post


class RepostPostRequest(BaseModel):
    """Request model for repost_post"""

    model_config = ConfigDict(populate_by_name=True)


class RepostPostResponse(BaseModel):
    """Response model for repost_post"""

    model_config = ConfigDict(populate_by_name=True, extra="allow")


# Models for get_reposts_of_me


class GetRepostsOfMeResponse(BaseModel):
    """Response model for get_reposts_of_me"""

    model_config = ConfigDict(populate_by_name=True, extra="allow")


# Models for get_liked_posts


class GetLikedPostsResponse(BaseModel):
    """Response model for get_liked_posts"""

    model_config = ConfigDict(populate_by_name=True, extra="allow")


# Models for get_pinned_lists


class GetPinnedListsResponse(BaseModel):
    """Response model for get_pinned_lists"""

    model_config = ConfigDict(populate_by_name=True, extra="allow")


# Models for pin_list


class PinListRequest(BaseModel):
    """Request model for pin_list"""

    model_config = ConfigDict(populate_by_name=True)


class PinListResponse(BaseModel):
    """Response model for pin_list"""

    model_config = ConfigDict(populate_by_name=True, extra="allow")


# Models for get_by_ids


class GetByIdsResponse(BaseModel):
    """Response model for get_by_ids"""

    model_config = ConfigDict(populate_by_name=True, extra="allow")


# Models for unlike_post


class UnlikePostResponse(BaseModel):
    """Response model for unlike_post"""

    model_config = ConfigDict(populate_by_name=True, extra="allow")


# Models for search


class SearchResponse(BaseModel):
    """Response model for search"""

    model_config = ConfigDict(populate_by_name=True, extra="allow")


# Models for get_bookmarks


class GetBookmarksResponse(BaseModel):
    """Response model for get_bookmarks"""

    model_config = ConfigDict(populate_by_name=True, extra="allow")


# Models for create_bookmark


class CreateBookmarkRequest(BaseModel):
    """Request model for create_bookmark"""

    model_config = ConfigDict(populate_by_name=True)


class CreateBookmarkResponse(BaseModel):
    """Response model for create_bookmark"""

    model_config = ConfigDict(populate_by_name=True, extra="allow")


# Models for get_timeline


class GetTimelineResponse(BaseModel):
    """Response model for get_timeline"""

    model_config = ConfigDict(populate_by_name=True, extra="allow")


# Models for get_posts


class GetPostsResponse(BaseModel):
    """Response model for get_posts"""

    model_config = ConfigDict(populate_by_name=True, extra="allow")


# Models for get_by_usernames


class GetByUsernamesResponse(BaseModel):
    """Response model for get_by_usernames"""

    model_config = ConfigDict(populate_by_name=True, extra="allow")


# Models for get_mentions


class GetMentionsResponse(BaseModel):
    """Response model for get_mentions"""

    model_config = ConfigDict(populate_by_name=True, extra="allow")


# Models for get_following


class GetFollowingResponse(BaseModel):
    """Response model for get_following"""

    model_config = ConfigDict(populate_by_name=True, extra="allow")


# Models for follow_user


class FollowUserRequest(BaseModel):
    """Request model for follow_user"""

    model_config = ConfigDict(populate_by_name=True)


class FollowUserResponse(BaseModel):
    """Response model for follow_user"""

    model_config = ConfigDict(populate_by_name=True, extra="allow")


# Models for get_owned_lists


class GetOwnedListsResponse(BaseModel):
    """Response model for get_owned_lists"""

    model_config = ConfigDict(populate_by_name=True, extra="allow")


# Models for get_bookmark_folders


class GetBookmarkFoldersResponse(BaseModel):
    """Response model for get_bookmark_folders"""

    model_config = ConfigDict(populate_by_name=True, extra="allow")


# Models for unfollow_list


class UnfollowListResponse(BaseModel):
    """Response model for unfollow_list"""

    model_config = ConfigDict(populate_by_name=True, extra="allow")


# Models for get_by_id


class GetByIdResponse(BaseModel):
    """Response model for get_by_id"""

    model_config = ConfigDict(populate_by_name=True, extra="allow")


# Models for get_blocking


class GetBlockingResponse(BaseModel):
    """Response model for get_blocking"""

    model_config = ConfigDict(populate_by_name=True, extra="allow")


# Models for unblock_dms


class UnblockDmsResponse(BaseModel):
    """Response model for unblock_dms"""

    model_config = ConfigDict(populate_by_name=True, extra="allow")


# Models for get_followers


class GetFollowersResponse(BaseModel):
    """Response model for get_followers"""

    model_config = ConfigDict(populate_by_name=True, extra="allow")


# Models for delete_bookmark


class DeleteBookmarkResponse(BaseModel):
    """Response model for delete_bookmark"""

    model_config = ConfigDict(populate_by_name=True, extra="allow")


# Models for unfollow_user


class UnfollowUserResponse(BaseModel):
    """Response model for unfollow_user"""

    model_config = ConfigDict(populate_by_name=True, extra="allow")


# Models for get_bookmarks_by_folder_id


class GetBookmarksByFolderIdResponse(BaseModel):
    """Response model for get_bookmarks_by_folder_id"""

    model_config = ConfigDict(populate_by_name=True, extra="allow")


# Models for get_followed_lists


class GetFollowedListsResponse(BaseModel):
    """Response model for get_followed_lists"""

    model_config = ConfigDict(populate_by_name=True, extra="allow")


# Models for follow_list


class FollowListRequest(BaseModel):
    """Request model for follow_list"""

    model_config = ConfigDict(populate_by_name=True)


class FollowListResponse(BaseModel):
    """Response model for follow_list"""

    model_config = ConfigDict(populate_by_name=True, extra="allow")


# Models for get_muting


class GetMutingResponse(BaseModel):
    """Response model for get_muting"""

    model_config = ConfigDict(populate_by_name=True, extra="allow")


# Models for mute_user


class MuteUserRequest(BaseModel):
    """Request model for mute_user"""

    model_config = ConfigDict(populate_by_name=True)


class MuteUserResponse(BaseModel):
    """Response model for mute_user"""

    model_config = ConfigDict(populate_by_name=True, extra="allow")


# Models for like_post


class LikePostRequest(BaseModel):
    """Request model for like_post"""

    model_config = ConfigDict(populate_by_name=True)


class LikePostResponse(BaseModel):
    """Response model for like_post"""

    model_config = ConfigDict(populate_by_name=True, extra="allow")


# Models for get_list_memberships


class GetListMembershipsResponse(BaseModel):
    """Response model for get_list_memberships"""

    model_config = ConfigDict(populate_by_name=True, extra="allow")
