:doc:`ElastiCache <../../elasticache>` / Client / list_allowed_node_type_modifications

************************************
list_allowed_node_type_modifications
************************************



.. py:method:: ElastiCache.Client.list_allowed_node_type_modifications(**kwargs)

  

  Lists all available node types that you can scale with your cluster's replication group's current node type.

   

  When you use the ``ModifyCacheCluster`` or ``ModifyReplicationGroup`` operations to scale your cluster or replication group, the value of the ``CacheNodeType`` parameter must be one of the node types returned by this operation.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/ListAllowedNodeTypeModifications>`_  


  **Request Syntax**
  ::

    response = client.list_allowed_node_type_modifications(
        CacheClusterId='string',
        ReplicationGroupId='string'
    )
    
  :type CacheClusterId: string
  :param CacheClusterId: 

    The name of the cluster you want to scale up to a larger node instanced type. ElastiCache uses the cluster id to identify the current node type of this cluster and from that to create a list of node types you can scale up to.

     

    .. warning::

       

      You must provide a value for either the ``CacheClusterId`` or the ``ReplicationGroupId``.

      

    

  
  :type ReplicationGroupId: string
  :param ReplicationGroupId: 

    The name of the replication group want to scale up to a larger node type. ElastiCache uses the replication group id to identify the current node type being used by this replication group, and from that to create a list of node types you can scale up to.

     

    .. warning::

       

      You must provide a value for either the ``CacheClusterId`` or the ``ReplicationGroupId``.

      

    

  
  
  :rtype: dict
  :returns: 
    
    **Response Syntax**

    
    ::

      {
          'ScaleUpModifications': [
              'string',
          ],
          'ScaleDownModifications': [
              'string',
          ]
      }
      
    **Response Structure**

    

    - *(dict) --* 

      Represents the allowed node types you can use to modify your cluster or replication group.

      
      

      - **ScaleUpModifications** *(list) --* 

        A string list, each element of which specifies a cache node type which you can use to scale your cluster or replication group.

         

        When scaling up a Valkey or Redis OSS cluster or replication group using ``ModifyCacheCluster`` or ``ModifyReplicationGroup``, use a value from this list for the ``CacheNodeType`` parameter.

        
        

        - *(string) --* 
    
      

      - **ScaleDownModifications** *(list) --* 

        A string list, each element of which specifies a cache node type which you can use to scale your cluster or replication group. When scaling down a Valkey or Redis OSS cluster or replication group using ModifyCacheCluster or ModifyReplicationGroup, use a value from this list for the CacheNodeType parameter.

        
        

        - *(string) --* 
    
  
  **Exceptions**
  
  *   :py:class:`ElastiCache.Client.exceptions.CacheClusterNotFoundFault`

  
  *   :py:class:`ElastiCache.Client.exceptions.ReplicationGroupNotFoundFault`

  
  *   :py:class:`ElastiCache.Client.exceptions.InvalidParameterCombinationException`

  
  *   :py:class:`ElastiCache.Client.exceptions.InvalidParameterValueException`

  

  **Examples**

  Lists all available node types that you can scale your Redis cluster's or replication group's current node type up to.
  ::

    response = client.list_allowed_node_type_modifications(
        CacheClusterId='mycluster',
    )
    
    print(response)

  
  Expected Output:
  ::

    {
        'ScaleUpModifications': [
        ],
        'ResponseMetadata': {
            '...': '...',
        },
    }

  