aioimmich.albums API documentation
Description: aioimmich albums api.

# Module `aioimmich.albums`

aioimmich albums api.

## Sub-modules

`aioimmich.albums.models`

  aioimmich albums models.

## Classes

`class ImmichAlbums (api: ImmichApi)`
  Expand source code

      class ImmichAlbums(ImmichSubApi):
          """Immich albums api."""

          async def async_get_all_albums(self) -> list[ImmichAlbum]:
              """Get all albums.

              Returns:
                  list of all albums as `list[ImmichAlbum]`
              """
              if self.api.version.major < 3:
                  result = await self.api.async_do_request("albums", {"shared": "false"})
                  assert isinstance(result, list)
                  result_shared = await self.api.async_do_request(
                      "albums", {"shared": "true"}
                  )
                  assert isinstance(result_shared, list)
                  return [ImmichAlbum.from_dict(album) for album in result + result_shared]

              result = await self.api.async_do_request("albums")
              assert isinstance(result, list)
              return [ImmichAlbum.from_dict(album) for album in result]

          async def async_get_album_info(self, album_id: str) -> ImmichAlbum:
              """Get album information.

              Args:
                  album_id (str): id of the album to be fetched

              Returns:
                  album as `ImmichAlbum`
              """
              result = await self.api.async_do_request(f"albums/{album_id}")
              assert isinstance(result, dict)
              return ImmichAlbum.from_dict(result)

          async def async_filter_albums_by_name(self, name: str) -> list[ImmichAlbum]:
              """Filter albums by name.

              Args:
                  name (str): Album name to filter by (case-insensitive)

              Returns:
                  a list of `ImmichAlbum`
              """
              return [
                  album
                  for album in await self.async_get_all_albums()
                  if name.lower() in album.album_name.lower()
              ]

          async def async_add_assets_to_album(
              self, album_id: str, asset_ids: list[str]
          ) -> list[ImmichAddAssetsToAlbumResponse]:
              """Add given assets to the given album.

              Args:
                  album_id (str): id of the album to add the assets
                  asset_ids (list): list of asset ids to add to the album

              Returns:
                  result of adding as list of `ImmichAddAssetsToAlbumResponse`
              """
              result = await self.api.async_do_request(
                  f"albums/{album_id}/assets", data={"ids": asset_ids}, method="PUT"
              )
              assert isinstance(result, list)
              return [ImmichAddAssetsToAlbumResponse.from_dict(item) for item in result]

  Immich albums api.

  Immich sub api init.

  ### Ancestors

  - ImmichSubApi

  ### Methods

  `async def async_add_assets_to_album(self, album_id: str, asset_ids: list[str]) ‑> list[ImmichAddAssetsToAlbumResponse]`
    Expand source code

        async def async_add_assets_to_album(
            self, album_id: str, asset_ids: list[str]
        ) -> list[ImmichAddAssetsToAlbumResponse]:
            """Add given assets to the given album.

            Args:
                album_id (str): id of the album to add the assets
                asset_ids (list): list of asset ids to add to the album

            Returns:
                result of adding as list of `ImmichAddAssetsToAlbumResponse`
            """
            result = await self.api.async_do_request(
                f"albums/{album_id}/assets", data={"ids": asset_ids}, method="PUT"
            )
            assert isinstance(result, list)
            return [ImmichAddAssetsToAlbumResponse.from_dict(item) for item in result]

    Add given assets to the given album.

    Args
    -----=
    `album_id` :`str`
      id of the album to add the assets
    `asset_ids` :`list`
      list of asset ids to add to the album

    Returns -----= result of adding as list of `ImmichAddAssetsToAlbumResponse`

  `async def async_filter_albums_by_name(self, name: str) ‑> list[ImmichAlbum]`
    Expand source code

        async def async_filter_albums_by_name(self, name: str) -> list[ImmichAlbum]:
            """Filter albums by name.

            Args:
                name (str): Album name to filter by (case-insensitive)

            Returns:
                a list of `ImmichAlbum`
            """
            return [
                album
                for album in await self.async_get_all_albums()
                if name.lower() in album.album_name.lower()
            ]

    Filter albums by name.

    Args
    -----=
    `name` :`str`
      Album name to filter by (case-insensitive)

    Returns -----= a list of `ImmichAlbum`

  `async def async_get_album_info(self, album_id: str) ‑> ImmichAlbum`
    Expand source code

        async def async_get_album_info(self, album_id: str) -> ImmichAlbum:
            """Get album information.

            Args:
                album_id (str): id of the album to be fetched

            Returns:
                album as `ImmichAlbum`
            """
            result = await self.api.async_do_request(f"albums/{album_id}")
            assert isinstance(result, dict)
            return ImmichAlbum.from_dict(result)

    Get album information.

    Args
    -----=
    `album_id` :`str`
      id of the album to be fetched

    Returns -----= album as `ImmichAlbum`

  `async def async_get_all_albums(self) ‑> list[ImmichAlbum]`
    Expand source code

        async def async_get_all_albums(self) -> list[ImmichAlbum]:
            """Get all albums.

            Returns:
                list of all albums as `list[ImmichAlbum]`
            """
            if self.api.version.major < 3:
                result = await self.api.async_do_request("albums", {"shared": "false"})
                assert isinstance(result, list)
                result_shared = await self.api.async_do_request(
                    "albums", {"shared": "true"}
                )
                assert isinstance(result_shared, list)
                return [ImmichAlbum.from_dict(album) for album in result + result_shared]

            result = await self.api.async_do_request("albums")
            assert isinstance(result, list)
            return [ImmichAlbum.from_dict(album) for album in result]

    Get all albums.

    Returns -----= list of all albums as `list[ImmichAlbum]`