docstr: ivy.Container instance method variant of ivy.roll. This method
  simply wraps the function, and so the docstring for ivy.roll also
  applies to this method with minimal changes.
  
  Parameters
  ----------
  self
      input container.
  shift
      number of places by which the elements are shifted. If ``shift`` is a tuple,
      then ``axis`` must be a tuple of the same size, and each of the given axes
      must be shifted by the corresponding element in ``shift``. If ``shift`` is
      an ``int`` and ``axis`` a tuple, then the same ``shift`` must be used for
      all specified axes. If a shift is positive, then array elements must be
      shifted positively (toward larger indices) along the dimension of ``axis``.
      If a shift is negative, then array elements must be shifted negatively
      (toward smaller indices) along the dimension of ``axis``.
  axis
      axis (or axes) along which elements to shift. If ``axis`` is ``None``, the
      array must be flattened, shifted, and then restored to its original shape.
      Default ``None``.
  key_chains
      The key-chains to apply or not apply the method to. Default is ``None``.
  to_apply
      If True, the method will be applied to key_chains, otherwise key_chains
      will be skipped. Default is ``True``.
  prune_unapplied
      Whether to prune key_chains for which the function was not applied.
      Default is ``False``.
  map_sequences
      Whether to also map method to sequences (lists, tuples).
      Default is ``False``.
  out
      optional output container, for writing the result to. It must have a shape
      that the inputs broadcast to.
  
  Returns
  -------
  ret
      an output container having the same data type as ``self`` and whose
      elements, relative to ``self``, are shifted.
  
  Examples
  --------
  >>> x = ivy.Container(a=ivy.array([0., 1., 2.]), b=ivy.array([3., 4., 5.]))
  >>> y = x.roll(1)
  >>> print(y)
  {
      a: ivy.array([2., 0., 1.]),
      b: ivy.array([5., 3., 4.])
  }
code: def roll(
      self: ivy.Container,
      /,
      shift: Union[int, Sequence[int], ivy.Container],
      *,
      axis: Optional[Union[int, Sequence[int], ivy.Container]] = None,
      key_chains: Optional[
          Union[List[str], Dict[str, str], ivy.Container]
      ] = None,
      to_apply: Union[bool, ivy.Container] = True,
      prune_unapplied: Union[bool, ivy.Container] = False,
      map_sequences: Union[bool, ivy.Container] = False,
      out: Optional[ivy.Container] = None,
  ) -> ivy.Container:
      """ivy.Container instance method variant of ivy.roll. This method
      simply wraps the function, and so the docstring for ivy.roll also
      applies to this method with minimal changes.
  
      Parameters
      ----------
      self
          input container.
      shift
          number of places by which the elements are shifted. If ``shift`` is a tuple,
          then ``axis`` must be a tuple of the same size, and each of the given axes
          must be shifted by the corresponding element in ``shift``. If ``shift`` is
          an ``int`` and ``axis`` a tuple, then the same ``shift`` must be used for
          all specified axes. If a shift is positive, then array elements must be
          shifted positively (toward larger indices) along the dimension of ``axis``.
          If a shift is negative, then array elements must be shifted negatively
          (toward smaller indices) along the dimension of ``axis``.
      axis
          axis (or axes) along which elements to shift. If ``axis`` is ``None``, the
          array must be flattened, shifted, and then restored to its original shape.
          Default ``None``.
      key_chains
          The key-chains to apply or not apply the method to. Default is ``None``.
      to_apply
          If True, the method will be applied to key_chains, otherwise key_chains
          will be skipped. Default is ``True``.
      prune_unapplied
          Whether to prune key_chains for which the function was not applied.
          Default is ``False``.
      map_sequences
          Whether to also map method to sequences (lists, tuples).
          Default is ``False``.
      out
          optional output container, for writing the result to. It must have a shape
          that the inputs broadcast to.
  
      Returns
      -------
      ret
          an output container having the same data type as ``self`` and whose
          elements, relative to ``self``, are shifted.
  
      Examples
      --------
      >>> x = ivy.Container(a=ivy.array([0., 1., 2.]), b=ivy.array([3., 4., 5.]))
      >>> y = x.roll(1)
      >>> print(y)
      {
          a: ivy.array([2., 0., 1.]),
          b: ivy.array([5., 3., 4.])
      }
      """
      return self._static_roll(
          self,
          shift,
          axis=axis,
          key_chains=key_chains,
          to_apply=to_apply,
          prune_unapplied=prune_unapplied,
          map_sequences=map_sequences,
          out=out,
      )
  
imports: from typing import Optional, Union, List, Tuple, Dict, Iterable, Sequence
  from numbers import Number
  import ivy
  from ivy.data_classes.container.base import ContainerBase
label_desc: Use image node_id 14 for calling the _ContainerWithManipulation obj's underlying member method code with example usage: obj.roll(shift) and returns: self