:doc:`MigrationHubStrategyRecommendations <../../migrationhubstrategy>` / Client / put_portfolio_preferences

*************************
put_portfolio_preferences
*************************



.. py:method:: MigrationHubStrategyRecommendations.Client.put_portfolio_preferences(**kwargs)

  

  Saves the specified migration and modernization preferences.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/migrationhubstrategy-2020-02-19/PutPortfolioPreferences>`_  


  **Request Syntax**
  ::

    response = client.put_portfolio_preferences(
        applicationMode='ALL'|'KNOWN'|'UNKNOWN',
        applicationPreferences={
            'managementPreference': {
                'awsManagedResources': {
                    'targetDestination': [
                        'None specified'|'AWS Elastic BeanStalk'|'AWS Fargate',
                    ]
                },
                'noPreference': {
                    'targetDestination': [
                        'None specified'|'AWS Elastic BeanStalk'|'AWS Fargate'|'Amazon Elastic Cloud Compute (EC2)'|'Amazon Elastic Container Service (ECS)'|'Amazon Elastic Kubernetes Service (EKS)',
                    ]
                },
                'selfManageResources': {
                    'targetDestination': [
                        'None specified'|'Amazon Elastic Cloud Compute (EC2)'|'Amazon Elastic Container Service (ECS)'|'Amazon Elastic Kubernetes Service (EKS)',
                    ]
                }
            }
        },
        databasePreferences={
            'databaseManagementPreference': 'AWS-managed'|'Self-manage'|'No preference',
            'databaseMigrationPreference': {
                'heterogeneous': {
                    'targetDatabaseEngine': [
                        'None specified'|'Amazon Aurora'|'AWS PostgreSQL'|'MySQL'|'Microsoft SQL Server'|'Oracle Database'|'MariaDB'|'SAP'|'Db2 LUW'|'MongoDB',
                    ]
                },
                'homogeneous': {
                    'targetDatabaseEngine': [
                        'None specified',
                    ]
                },
                'noPreference': {
                    'targetDatabaseEngine': [
                        'None specified'|'Amazon Aurora'|'AWS PostgreSQL'|'MySQL'|'Microsoft SQL Server'|'Oracle Database'|'MariaDB'|'SAP'|'Db2 LUW'|'MongoDB',
                    ]
                }
            }
        },
        prioritizeBusinessGoals={
            'businessGoals': {
                'licenseCostReduction': 123,
                'modernizeInfrastructureWithCloudNativeTechnologies': 123,
                'reduceOperationalOverheadWithManagedServices': 123,
                'speedOfMigration': 123
            }
        }
    )
    
  :type applicationMode: string
  :param applicationMode: 

    The classification for application component types.

    

  
  :type applicationPreferences: dict
  :param applicationPreferences: 

    The transformation preferences for non-database applications.

    

  
    - **managementPreference** *(dict) --* 

      Application preferences that you specify to prefer managed environment.

      .. note::    This is a Tagged Union structure. Only one of the     following top level keys can be set: ``awsManagedResources``, ``noPreference``, ``selfManageResources``. 

    
      - **awsManagedResources** *(dict) --* 

        Indicates interest in solutions that are managed by AWS.

        

      
        - **targetDestination** *(list) --* **[REQUIRED]** 

          The choice of application destination that you specify.

          

        
          - *(string) --* 

          
      
      
      - **noPreference** *(dict) --* 

        No specific preference.

        

      
        - **targetDestination** *(list) --* **[REQUIRED]** 

          The choice of application destination that you specify.

          

        
          - *(string) --* 

          
      
      
      - **selfManageResources** *(dict) --* 

        Indicates interest in managing your own resources on AWS.

        

      
        - **targetDestination** *(list) --* **[REQUIRED]** 

          Self-managed resources target destination.

          

        
          - *(string) --* 

          
      
      
    
  
  :type databasePreferences: dict
  :param databasePreferences: 

    The transformation preferences for database applications.

    

  
    - **databaseManagementPreference** *(string) --* 

      Specifies whether you're interested in self-managed databases or databases managed by AWS.

      

    
    - **databaseMigrationPreference** *(dict) --* 

      Specifies your preferred migration path.

      .. note::    This is a Tagged Union structure. Only one of the     following top level keys can be set: ``heterogeneous``, ``homogeneous``, ``noPreference``. 

    
      - **heterogeneous** *(dict) --* 

        Indicates whether you are interested in moving from one type of database to another. For example, from SQL Server to Amazon Aurora MySQL-Compatible Edition.

        

      
        - **targetDatabaseEngine** *(list) --* **[REQUIRED]** 

          The target database engine for heterogeneous database migration preference.

          

        
          - *(string) --* 

          
      
      
      - **homogeneous** *(dict) --* 

        Indicates whether you are interested in moving to the same type of database into AWS. For example, from SQL Server in your environment to SQL Server on AWS.

        

      
        - **targetDatabaseEngine** *(list) --* 

          The target database engine for homogeneous database migration preferences.

          

        
          - *(string) --* 

          
      
      
      - **noPreference** *(dict) --* 

        Indicated that you do not prefer heterogeneous or homogeneous.

        

      
        - **targetDatabaseEngine** *(list) --* **[REQUIRED]** 

          The target database engine for database migration preference that you specify.

          

        
          - *(string) --* 

          
      
      
    
  
  :type prioritizeBusinessGoals: dict
  :param prioritizeBusinessGoals: 

    The rank of the business goals based on priority.

    

  
    - **businessGoals** *(dict) --* 

      Rank of business goals based on priority.

      

    
      - **licenseCostReduction** *(integer) --* 

        Business goal to reduce license costs.

        

      
      - **modernizeInfrastructureWithCloudNativeTechnologies** *(integer) --* 

        Business goal to modernize infrastructure by moving to cloud native technologies.

        

      
      - **reduceOperationalOverheadWithManagedServices** *(integer) --* 

        Business goal to reduce the operational overhead on the team by moving into managed services.

        

      
      - **speedOfMigration** *(integer) --* 

        Business goal to achieve migration at a fast pace.

        

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

    
    ::

      {}
      
    **Response Structure**

    

    - *(dict) --* 
  
  **Exceptions**
  
  *   :py:class:`MigrationHubStrategyRecommendations.Client.exceptions.AccessDeniedException`

  
  *   :py:class:`MigrationHubStrategyRecommendations.Client.exceptions.ThrottlingException`

  
  *   :py:class:`MigrationHubStrategyRecommendations.Client.exceptions.ValidationException`

  
  *   :py:class:`MigrationHubStrategyRecommendations.Client.exceptions.ConflictException`

  
  *   :py:class:`MigrationHubStrategyRecommendations.Client.exceptions.InternalServerException`

  