:doc:`AgreementService <../../marketplace-agreement>` / Client / get_agreement_terms

*******************
get_agreement_terms
*******************



.. py:method:: AgreementService.Client.get_agreement_terms(**kwargs)

  

  Obtains details about the terms in an agreement that you participated in as proposer or acceptor.

   

  The details include:

   

  
  * ``TermType`` – The type of term, such as ``LegalTerm``, ``RenewalTerm``, or ``ConfigurableUpfrontPricingTerm``.
   
  * ``TermID`` – The ID of the particular term, which is common between offer and agreement.
   
  * ``TermPayload`` – The key information contained in the term, such as the EULA for ``LegalTerm`` or pricing and dimensions for various pricing terms, such as ``ConfigurableUpfrontPricingTerm`` or ``UsageBasedPricingTerm``.
  

   

  
  * ``Configuration`` – The buyer/acceptor's selection at the time of agreement creation, such as the number of units purchased for a dimension or setting the ``EnableAutoRenew`` flag.
  

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/marketplace-agreement-2020-03-01/GetAgreementTerms>`_  


  **Request Syntax**
  ::

    response = client.get_agreement_terms(
        agreementId='string',
        maxResults=123,
        nextToken='string'
    )
    
  :type agreementId: string
  :param agreementId: **[REQUIRED]** 

    The unique identifier of the agreement.

    

  
  :type maxResults: integer
  :param maxResults: 

    The maximum number of agreements to return in the response.

    

  
  :type nextToken: string
  :param nextToken: 

    A token to specify where to start pagination

    

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

    
    ::

      {
          'acceptedTerms': [
              {
                  'legalTerm': {
                      'type': 'string',
                      'documents': [
                          {
                              'type': 'string',
                              'url': 'string',
                              'version': 'string'
                          },
                      ]
                  },
                  'supportTerm': {
                      'type': 'string',
                      'refundPolicy': 'string'
                  },
                  'renewalTerm': {
                      'type': 'string',
                      'configuration': {
                          'enableAutoRenew': True|False
                      }
                  },
                  'usageBasedPricingTerm': {
                      'type': 'string',
                      'currencyCode': 'string',
                      'rateCards': [
                          {
                              'rateCard': [
                                  {
                                      'dimensionKey': 'string',
                                      'price': 'string'
                                  },
                              ]
                          },
                      ]
                  },
                  'configurableUpfrontPricingTerm': {
                      'type': 'string',
                      'currencyCode': 'string',
                      'rateCards': [
                          {
                              'selector': {
                                  'type': 'string',
                                  'value': 'string'
                              },
                              'constraints': {
                                  'multipleDimensionSelection': 'string',
                                  'quantityConfiguration': 'string'
                              },
                              'rateCard': [
                                  {
                                      'dimensionKey': 'string',
                                      'price': 'string'
                                  },
                              ]
                          },
                      ],
                      'configuration': {
                          'selectorValue': 'string',
                          'dimensions': [
                              {
                                  'dimensionKey': 'string',
                                  'dimensionValue': 123
                              },
                          ]
                      }
                  },
                  'byolPricingTerm': {
                      'type': 'string'
                  },
                  'recurringPaymentTerm': {
                      'type': 'string',
                      'currencyCode': 'string',
                      'billingPeriod': 'string',
                      'price': 'string'
                  },
                  'validityTerm': {
                      'type': 'string',
                      'agreementDuration': 'string',
                      'agreementStartDate': datetime(2015, 1, 1),
                      'agreementEndDate': datetime(2015, 1, 1)
                  },
                  'paymentScheduleTerm': {
                      'type': 'string',
                      'currencyCode': 'string',
                      'schedule': [
                          {
                              'chargeDate': datetime(2015, 1, 1),
                              'chargeAmount': 'string'
                          },
                      ]
                  },
                  'freeTrialPricingTerm': {
                      'type': 'string',
                      'duration': 'string',
                      'grants': [
                          {
                              'dimensionKey': 'string',
                              'maxQuantity': 123
                          },
                      ]
                  },
                  'fixedUpfrontPricingTerm': {
                      'type': 'string',
                      'currencyCode': 'string',
                      'duration': 'string',
                      'price': 'string',
                      'grants': [
                          {
                              'dimensionKey': 'string',
                              'maxQuantity': 123
                          },
                      ]
                  },
                  'variablePaymentTerm': {
                      'type': 'string',
                      'currencyCode': 'string',
                      'maxTotalChargeAmount': 'string',
                      'configuration': {
                          'paymentRequestApprovalStrategy': 'AUTO_APPROVE_ON_EXPIRATION'|'WAIT_FOR_APPROVAL',
                          'expirationDuration': 'string'
                      }
                  }
              },
          ],
          'nextToken': 'string'
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **acceptedTerms** *(list) --* 

        A subset of terms proposed by the proposer that have been accepted by the acceptor as part of the agreement creation.

        
        

        - *(dict) --* 

          A subset of terms proposed by the proposer, which have been accepted by the acceptor as part of agreement creation.

          .. note::    This is a Tagged Union structure. Only one of the     following top level keys will be set: ``legalTerm``, ``supportTerm``, ``renewalTerm``, ``usageBasedPricingTerm``, ``configurableUpfrontPricingTerm``, ``byolPricingTerm``, ``recurringPaymentTerm``, ``validityTerm``, ``paymentScheduleTerm``, ``freeTrialPricingTerm``, ``fixedUpfrontPricingTerm``, ``variablePaymentTerm``.     If a client receives an unknown member it will     set ``SDK_UNKNOWN_MEMBER`` as the top level key,     which maps to the name or tag of the unknown     member. The structure of ``SDK_UNKNOWN_MEMBER`` is     as follows::

                    'SDK_UNKNOWN_MEMBER': {'name': 'UnknownMemberName'}


        
          

          - **legalTerm** *(dict) --* 

            Defines the list of text agreements proposed to the acceptors. An example is the end user license agreement (EULA).

            
            

            - **type** *(string) --* 

              Category of the term being updated.

              
            

            - **documents** *(list) --* 

              List of references to legal resources proposed to the buyers. An example is the EULA.

              
              

              - *(dict) --* 

                Includes the list of references to legal resources proposed by the proposer to the acceptor. Each ``DocumentItem`` refers to an individual reference.

                
                

                - **type** *(string) --* 

                  Category of the document. Document types include:

                   

                  
                  * ``CustomEula`` – A custom EULA provided by you as seller. A URL for a EULA stored in an accessible Amazon S3 bucket is required for this document type.
                   
                  * ``CustomDsa`` – A custom Data Subscription Agreement (DSA) provided by you as seller. A URL for a DSA stored in an accessible Amazon S3 bucket is required for this document type.
                   
                  * ``StandardEula`` – The Standard Contract for AWS Marketplace (SCMP). For more information about SCMP, see the AWS Marketplace Seller Guide. You don’t provide a URL for this type because it’s managed by AWS Marketplace.
                   
                  * ``StandardDsa`` – DSA for AWS Marketplace. For more information about the DSA, see the AWS Data Exchange User Guide. You don’t provide a URL for this type because it’s managed by AWS Marketplace.
                  

                  
                

                - **url** *(string) --* 

                  A URL to the legal document for buyers to read. Required when ``Type`` is ``CustomEula``.

                  
                

                - **version** *(string) --* 

                  Version of standard contracts provided by AWS Marketplace. Required when Type is ``StandardEula`` or ``StandardDsa``.

                  
            
          
        
          

          - **supportTerm** *(dict) --* 

            Defines the customer support available for the acceptors when they purchase the software.

            
            

            - **type** *(string) --* 

              Category of the term being updated.

              
            

            - **refundPolicy** *(string) --* 

              Free-text field about the refund policy description that will be shown to customers as is on the website and console.

              
        
          

          - **renewalTerm** *(dict) --* 

            Defines that on graceful expiration of the agreement (when the agreement ends on its pre-defined end date), a new agreement will be created using the accepted terms on the existing agreement. In other words, the agreement will be renewed. Presence of ``RenewalTerm`` in the offer document means that auto-renewal is allowed. Buyers will have the option to accept or decline auto-renewal at the offer acceptance/agreement creation. Buyers can also change this flag from ``True`` to ``False`` or ``False`` to ``True`` at anytime during the agreement's lifecycle.

            
            

            - **type** *(string) --* 

              Category of the term being updated.

              
            

            - **configuration** *(dict) --* 

              Additional parameters specified by the acceptor while accepting the term.

              
              

              - **enableAutoRenew** *(boolean) --* 

                Defines whether the acceptor has chosen to auto-renew the agreement at the end of its lifecycle. Can be set to ``True`` or ``False``.

                
          
        
          

          - **usageBasedPricingTerm** *(dict) --* 

            Defines a usage-based pricing model (typically, pay-as-you-go pricing), where the customers are charged based on product usage.

            
            

            - **type** *(string) --* 

              Category of the term.

              
            

            - **currencyCode** *(string) --* 

              Defines the currency for the prices mentioned in the term.

              
            

            - **rateCards** *(list) --* 

              List of rate cards.

              
              

              - *(dict) --* 

                Within the pay-as-you-go model defined under ``UsageBasedPricingTerm``, the ``UsageBasedRateCardItem`` defines an individual rate for a product dimension.

                
                

                - **rateCard** *(list) --* 

                  Defines the per unit rates for product dimensions.

                  
                  

                  - *(dict) --* 

                    Defines the per unit rates for each individual product dimension.

                    
                    

                    - **dimensionKey** *(string) --* 

                      Dimension for which the given entitlement applies. Dimensions represent categories of capacity in a product and are specified when the product is listed in AWS Marketplace.

                      
                    

                    - **price** *(string) --* 

                      Per unit price for the product dimension that’s used for calculating the amount to be charged.

                      
                
              
            
          
        
          

          - **configurableUpfrontPricingTerm** *(dict) --* 

            Defines a prepaid payment model that allows buyers to configure the entitlements they want to purchase and the duration.

            
            

            - **type** *(string) --* 

              Category of selector.

              
            

            - **currencyCode** *(string) --* 

              Defines the currency for the prices mentioned in the term.

              
            

            - **rateCards** *(list) --* 

              A rate card defines the per unit rates for product dimensions.

              
              

              - *(dict) --* 

                Within the prepaid payment model defined under ``ConfigurableUpfrontPricingTerm``, the ``RateCardItem`` defines all the various rate cards (including pricing and dimensions) that have been proposed.

                
                

                - **selector** *(dict) --* 

                  Differentiates between the mutually exclusive rate cards in the same pricing term to be selected by the buyer.

                  
                  

                  - **type** *(string) --* 

                    Category of selector.

                    
                  

                  - **value** *(string) --* 

                    Contract duration. This field supports the ISO 8601 format.

                    
              
                

                - **constraints** *(dict) --* 

                  Defines limits on how the term can be configured by acceptors.

                  
                  

                  - **multipleDimensionSelection** *(string) --* 

                    Determines if buyers are allowed to select multiple dimensions in the rate card. The possible values are ``Allowed`` and ``Disallowed``. The default value is ``Allowed``.

                    
                  

                  - **quantityConfiguration** *(string) --* 

                    Determines if acceptors are allowed to configure quantity for each dimension in rate card. The possible values are ``Allowed`` and ``Disallowed``. The default value is ``Allowed``.

                    
              
                

                - **rateCard** *(list) --* 

                  Defines the per unit rates for product dimensions.

                  
                  

                  - *(dict) --* 

                    Defines the per unit rates for each individual product dimension.

                    
                    

                    - **dimensionKey** *(string) --* 

                      Dimension for which the given entitlement applies. Dimensions represent categories of capacity in a product and are specified when the product is listed in AWS Marketplace.

                      
                    

                    - **price** *(string) --* 

                      Per unit price for the product dimension that’s used for calculating the amount to be charged.

                      
                
              
            
          
            

            - **configuration** *(dict) --* 

              Additional parameters specified by the acceptor while accepting the term.

              
              

              - **selectorValue** *(string) --* 

                Defines the length of time for which the particular pricing/dimension is being purchased by the acceptor.

                
              

              - **dimensions** *(list) --* 

                Defines the dimensions that the acceptor has purchased from the overall set of dimensions presented in the rate card.

                
                

                - *(dict) --* 

                  Defines the dimensions that the acceptor has purchased from the overall set of dimensions presented in the rate card.

                  
                  

                  - **dimensionKey** *(string) --* 

                    The name of key value of the dimension.

                    
                  

                  - **dimensionValue** *(integer) --* 

                    The number of units of the dimension the acceptor has purchased.

                     

                    .. note::

                      

                      For Agreements with ``ConfigurableUpfrontPricingTerm``, the ``RateCard`` section will define the prices and dimensions defined by the seller (proposer), whereas the ``Configuration`` section will define the actual dimensions, prices, and units the buyer has chosen to accept.

                      

                    
              
            
          
        
          

          - **byolPricingTerm** *(dict) --* 

            Enables you and your customers to move your existing agreements to AWS Marketplace. The customer won't be charged for product usage in AWS Marketplace because they already paid for the product outside of AWS Marketplace.

            
            

            - **type** *(string) --* 

              Type of the term being updated.

              
        
          

          - **recurringPaymentTerm** *(dict) --* 

            Defines a pricing model where customers are charged a fixed recurring price at the end of each billing period.

            
            

            - **type** *(string) --* 

              Type of the term being updated.

              
            

            - **currencyCode** *(string) --* 

              Defines the currency for the prices mentioned in this term.

              
            

            - **billingPeriod** *(string) --* 

              Defines the recurrence at which buyers are charged.

              
            

            - **price** *(string) --* 

              Amount charged to the buyer every billing period.

              
        
          

          - **validityTerm** *(dict) --* 

            Defines the conditions that will keep an agreement created from this offer valid.

            
            

            - **type** *(string) --* 

              Category of the term being updated.

              
            

            - **agreementDuration** *(string) --* 

              Defines the duration that the agreement remains active. If ``AgreementStartDate`` isn’t provided, the agreement duration is relative to the agreement signature time. The duration is represented in the ISO_8601 format.

              
            

            - **agreementStartDate** *(datetime) --* 

              Defines the date when agreement starts. The agreement starts at 00:00:00.000 UTC on the date provided. If ``AgreementStartDate`` isn’t provided, the agreement start date is determined based on agreement signature time.

              
            

            - **agreementEndDate** *(datetime) --* 

              Defines the date when the agreement ends. The agreement ends at 23:59:59.999 UTC on the date provided. If ``AgreementEndDate`` isn’t provided, the agreement end date is determined by the validity of individual terms.

              
        
          

          - **paymentScheduleTerm** *(dict) --* 

            Defines an installment-based pricing model where customers are charged a fixed price on different dates during the agreement validity period. This is used most commonly for flexible payment schedule pricing.

            
            

            - **type** *(string) --* 

              Type of the term.

              
            

            - **currencyCode** *(string) --* 

              Defines the currency for the prices mentioned in the term.

              
            

            - **schedule** *(list) --* 

              List of the payment schedule where each element defines one installment of payment. It contains the information necessary for calculating the price.

              
              

              - *(dict) --* 

                An individual installment of the payment that includes the date and amount of the charge.

                
                

                - **chargeDate** *(datetime) --* 

                  The date that the customer would pay the price defined in this payment schedule term. Invoices are generated on the date provided.

                  
                

                - **chargeAmount** *(string) --* 

                  The price that the customer would pay on the scheduled date (chargeDate).

                  
            
          
        
          

          - **freeTrialPricingTerm** *(dict) --* 

            Defines a short-term free pricing model where the buyers aren’t charged anything within a specified limit.

            
            

            - **type** *(string) --* 

              Category of the term.

              
            

            - **duration** *(string) --* 

              Duration of the free trial period (5–31 days).

              
            

            - **grants** *(list) --* 

              Entitlements granted to the acceptor of a free trial as part of an agreement execution.

              
              

              - *(dict) --* 

                Entitlements granted to the acceptor of fixed upfront as part of agreement execution.

                
                

                - **dimensionKey** *(string) --* 

                  Unique dimension key defined in the product document. Dimensions represent categories of capacity in a product and are specified when the product is listed in AWS Marketplace.

                  
                

                - **maxQuantity** *(integer) --* 

                  Maximum amount of capacity that the buyer can be entitled to the given dimension of the product. If ``MaxQuantity`` is not provided, the buyer will be able to use an unlimited amount of the given dimension.

                  
            
          
        
          

          - **fixedUpfrontPricingTerm** *(dict) --* 

            Defines a pre-paid pricing model where the customers are charged a fixed upfront amount.

            
            

            - **type** *(string) --* 

              Category of the term being updated.

              
            

            - **currencyCode** *(string) --* 

              Defines the currency for the prices mentioned in this term.

              
            

            - **duration** *(string) --* 

              Contract duration for the terms.

              
            

            - **price** *(string) --* 

              Fixed amount to be charged to the customer when this term is accepted.

              
            

            - **grants** *(list) --* 

              Entitlements granted to the acceptor of fixed upfront as part of agreement execution.

              
              

              - *(dict) --* 

                Entitlements granted to the acceptor of fixed upfront as part of agreement execution.

                
                

                - **dimensionKey** *(string) --* 

                  Unique dimension key defined in the product document. Dimensions represent categories of capacity in a product and are specified when the product is listed in AWS Marketplace.

                  
                

                - **maxQuantity** *(integer) --* 

                  Maximum amount of capacity that the buyer can be entitled to the given dimension of the product. If ``MaxQuantity`` is not provided, the buyer will be able to use an unlimited amount of the given dimension.

                  
            
          
        
          

          - **variablePaymentTerm** *(dict) --* 

            Defines a payment model where sellers can submit variable payment requests up to a maximum charge amount, with configurable approval strategies and expiration timelines.

            
            

            - **type** *(string) --* 

              Type of the term.

              
            

            - **currencyCode** *(string) --* 

              Defines the currency for the prices mentioned in the term.

              
            

            - **maxTotalChargeAmount** *(string) --* 

              The maximum total amount that can be charged to the customer through variable payment requests under this term.

              
            

            - **configuration** *(dict) --* 

              Additional parameters specified by the acceptor while accepting the term.

              
              

              - **paymentRequestApprovalStrategy** *(string) --* 

                Defines the strategy for approving payment requests. Values include ``AUTO_APPROVE_ON_EXPIRATION`` and ``WAIT_FOR_APPROVAL``

                
              

              - **expirationDuration** *(string) --* 

                Defines the duration after which a payment request is automatically approved if no further action is taken. This only applies when the payment request approval strategy is set to ``AUTO_APPROVE_ON_EXPIRATION``. The duration is represented in the ISO_8601 format (e.g., P10D for 10 days).

                
          
        
      
    
      

      - **nextToken** *(string) --* 

        A token to specify where to start pagination

        
  
  **Exceptions**
  
  *   :py:class:`AgreementService.Client.exceptions.ValidationException`

  
  *   :py:class:`AgreementService.Client.exceptions.AccessDeniedException`

  
  *   :py:class:`AgreementService.Client.exceptions.ResourceNotFoundException`

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

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

  