:doc:`MediaConnect <../../mediaconnect>` / Client / purchase_offering

*****************
purchase_offering
*****************



.. py:method:: MediaConnect.Client.purchase_offering(**kwargs)

  

  Submits a request to purchase an offering. If you already have an active reservation, you can't purchase another offering.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/PurchaseOffering>`_  


  **Request Syntax**
  ::

    response = client.purchase_offering(
        OfferingArn='string',
        ReservationName='string',
        Start='string'
    )
    
  :type OfferingArn: string
  :param OfferingArn: **[REQUIRED]** 

    The Amazon Resource Name (ARN) of the offering.

    

  
  :type ReservationName: string
  :param ReservationName: **[REQUIRED]** 

    The name that you want to use for the reservation.

    

  
  :type Start: string
  :param Start: **[REQUIRED]** 

    The date and time that you want the reservation to begin, in Coordinated Universal Time (UTC).

     

    You can specify any date and time between 12:00am on the first day of the current month to the current time on today's date, inclusive. Specify the start in a 24-hour notation. Use the following format: ``YYYY-MM-DDTHH:mm:SSZ``, where ``T`` and ``Z`` are literal characters. For example, to specify 11:30pm on March 5, 2020, enter ``2020-03-05T23:30:00Z``.

    

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

    
    ::

      {
          'Reservation': {
              'CurrencyCode': 'string',
              'Duration': 123,
              'DurationUnits': 'MONTHS',
              'End': 'string',
              'OfferingArn': 'string',
              'OfferingDescription': 'string',
              'PricePerUnit': 'string',
              'PriceUnits': 'HOURLY',
              'ReservationArn': 'string',
              'ReservationName': 'string',
              'ReservationState': 'ACTIVE'|'EXPIRED'|'PROCESSING'|'CANCELED',
              'ResourceSpecification': {
                  'ReservedBitrate': 123,
                  'ResourceType': 'Mbps_Outbound_Bandwidth'
              },
              'Start': 'string'
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **Reservation** *(dict) --* 

        The details of the reservation that you just created when you purchased the offering.

        
        

        - **CurrencyCode** *(string) --* 

          The type of currency that is used for billing. The currencyCode used for your reservation is US dollars.

          
        

        - **Duration** *(integer) --* 

          The length of time that this reservation is active. MediaConnect defines this value in the offering.

          
        

        - **DurationUnits** *(string) --* 

          The unit of measurement for the duration of the reservation. MediaConnect defines this value in the offering.

          
        

        - **End** *(string) --* 

          The day and time that this reservation expires. This value is calculated based on the start date and time that you set and the offering's duration.

          
        

        - **OfferingArn** *(string) --* 

          The Amazon Resource Name (ARN) that MediaConnect assigns to the offering.

          
        

        - **OfferingDescription** *(string) --* 

          A description of the offering. MediaConnect defines this value in the offering.

          
        

        - **PricePerUnit** *(string) --* 

          The cost of a single unit. This value, in combination with priceUnits, makes up the rate. MediaConnect defines this value in the offering.

          
        

        - **PriceUnits** *(string) --* 

          The unit of measurement that is used for billing. This value, in combination with pricePerUnit, makes up the rate. MediaConnect defines this value in the offering.

          
        

        - **ReservationArn** *(string) --* 

          The Amazon Resource Name (ARN) that MediaConnect assigns to the reservation when you purchase an offering.

          
        

        - **ReservationName** *(string) --* 

          The name that you assigned to the reservation when you purchased the offering.

          
        

        - **ReservationState** *(string) --* 

          The status of your reservation.

          
        

        - **ResourceSpecification** *(dict) --* 

          A definition of the amount of outbound bandwidth that you would be reserving if you purchase the offering. MediaConnect defines the values that make up the resourceSpecification in the offering.

          
          

          - **ReservedBitrate** *(integer) --* 

            The amount of outbound bandwidth that is discounted in the offering.

            
          

          - **ResourceType** *(string) --* 

            The type of resource and the unit that is being billed for.

            
      
        

        - **Start** *(string) --* 

          The day and time that the reservation becomes active. You set this value when you purchase the offering.

          
    
  
  **Exceptions**
  
  *   :py:class:`MediaConnect.Client.exceptions.BadRequestException`

  
  *   :py:class:`MediaConnect.Client.exceptions.TooManyRequestsException`

  
  *   :py:class:`MediaConnect.Client.exceptions.ForbiddenException`

  
  *   :py:class:`MediaConnect.Client.exceptions.InternalServerErrorException`

  
  *   :py:class:`MediaConnect.Client.exceptions.NotFoundException`

  
  *   :py:class:`MediaConnect.Client.exceptions.ServiceUnavailableException`

  