:doc:`Kinesis <../../kinesis>` / Client / put_resource_policy

*******************
put_resource_policy
*******************



.. py:method:: Kinesis.Client.put_resource_policy(**kwargs)

  

  Attaches a resource-based policy to a data stream or registered consumer. If you are using an identity other than the root user of the Amazon Web Services account that owns the resource, the calling identity must have the ``PutResourcePolicy`` permissions on the specified Kinesis Data Streams resource and belong to the owner's account in order to use this operation. If you don't have ``PutResourcePolicy`` permissions, Amazon Kinesis Data Streams returns a ``403 Access Denied error``. If you receive a ``ResourceNotFoundException``, check to see if you passed a valid stream or consumer resource.

   

  Request patterns can be one of the following:

   

  
  * Data stream pattern: ``arn:aws.*:kinesis:.*:\d{12}:.*stream/\S+``
   
  * Consumer pattern: ``^(arn):aws.*:kinesis:.*:\d{12}:.*stream\/[a-zA-Z0-9_.-]+\/consumer\/[a-zA-Z0-9_.-]+:[0-9]+``
  

   

  For more information, see `Controlling Access to Amazon Kinesis Data Streams Resources Using IAM <https://docs.aws.amazon.com/streams/latest/dev/controlling-access.html>`__.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/PutResourcePolicy>`_  


  **Request Syntax**
  ::

    response = client.put_resource_policy(
        ResourceARN='string',
        StreamId='string',
        Policy='string'
    )
    
  :type ResourceARN: string
  :param ResourceARN: **[REQUIRED]** 

    The Amazon Resource Name (ARN) of the data stream or consumer.

    

  
  :type StreamId: string
  :param StreamId: 

    Not Implemented. Reserved for future use.

    

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

    Details of the resource policy. It must include the identity of the principal and the actions allowed on this resource. This is formatted as a JSON string.

    

  
  
  :returns: None
  **Exceptions**
  
  *   :py:class:`Kinesis.Client.exceptions.AccessDeniedException`

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

  
  *   :py:class:`Kinesis.Client.exceptions.LimitExceededException`

  
  *   :py:class:`Kinesis.Client.exceptions.InvalidArgumentException`

  
  *   :py:class:`Kinesis.Client.exceptions.ResourceInUseException`

  