:doc:`Backup <../../backup>` / Client / create_report_plan

******************
create_report_plan
******************



.. py:method:: Backup.Client.create_report_plan(**kwargs)

  

  Creates a report plan. A report plan is a document that contains information about the contents of the report and where Backup will deliver it.

   

  If you call ``CreateReportPlan`` with a plan that already exists, you receive an ``AlreadyExistsException`` exception.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/CreateReportPlan>`_  


  **Request Syntax**
  ::

    response = client.create_report_plan(
        ReportPlanName='string',
        ReportPlanDescription='string',
        ReportDeliveryChannel={
            'S3BucketName': 'string',
            'S3KeyPrefix': 'string',
            'Formats': [
                'string',
            ]
        },
        ReportSetting={
            'ReportTemplate': 'string',
            'FrameworkArns': [
                'string',
            ],
            'NumberOfFrameworks': 123,
            'Accounts': [
                'string',
            ],
            'OrganizationUnits': [
                'string',
            ],
            'Regions': [
                'string',
            ]
        },
        ReportPlanTags={
            'string': 'string'
        },
        IdempotencyToken='string'
    )
    
  :type ReportPlanName: string
  :param ReportPlanName: **[REQUIRED]** 

    The unique name of the report plan. The name must be between 1 and 256 characters, starting with a letter, and consisting of letters (a-z, A-Z), numbers (0-9), and underscores (_).

    

  
  :type ReportPlanDescription: string
  :param ReportPlanDescription: 

    An optional description of the report plan with a maximum of 1,024 characters.

    

  
  :type ReportDeliveryChannel: dict
  :param ReportDeliveryChannel: **[REQUIRED]** 

    A structure that contains information about where and how to deliver your reports, specifically your Amazon S3 bucket name, S3 key prefix, and the formats of your reports.

    

  
    - **S3BucketName** *(string) --* **[REQUIRED]** 

      The unique name of the S3 bucket that receives your reports.

      

    
    - **S3KeyPrefix** *(string) --* 

      The prefix for where Backup Audit Manager delivers your reports to Amazon S3. The prefix is this part of the following path: s3://your-bucket-name/ ``prefix``/Backup/us-west-2/year/month/day/report-name. If not specified, there is no prefix.

      

    
    - **Formats** *(list) --* 

      The format of your reports: ``CSV``, ``JSON``, or both. If not specified, the default format is ``CSV``.

      

    
      - *(string) --* 

      
  
  
  :type ReportSetting: dict
  :param ReportSetting: **[REQUIRED]** 

    Identifies the report template for the report. Reports are built using a report template. The report templates are:

     

    ``RESOURCE_COMPLIANCE_REPORT | CONTROL_COMPLIANCE_REPORT | BACKUP_JOB_REPORT | COPY_JOB_REPORT | RESTORE_JOB_REPORT | SCAN_JOB_REPORT``

     

    If the report template is ``RESOURCE_COMPLIANCE_REPORT`` or ``CONTROL_COMPLIANCE_REPORT``, this API resource also describes the report coverage by Amazon Web Services Regions and frameworks.

    

  
    - **ReportTemplate** *(string) --* **[REQUIRED]** 

      Identifies the report template for the report. Reports are built using a report template. The report templates are:

       

      ``RESOURCE_COMPLIANCE_REPORT | CONTROL_COMPLIANCE_REPORT | BACKUP_JOB_REPORT | COPY_JOB_REPORT | RESTORE_JOB_REPORT | SCAN_JOB_REPORT``

      

    
    - **FrameworkArns** *(list) --* 

      The Amazon Resource Names (ARNs) of the frameworks a report covers.

      

    
      - *(string) --* 

      
  
    - **NumberOfFrameworks** *(integer) --* 

      The number of frameworks a report covers.

      

    
    - **Accounts** *(list) --* 

      These are the accounts to be included in the report.

       

      Use string value of ``ROOT`` to include all organizational units.

      

    
      - *(string) --* 

      
  
    - **OrganizationUnits** *(list) --* 

      These are the Organizational Units to be included in the report.

      

    
      - *(string) --* 

      
  
    - **Regions** *(list) --* 

      These are the Regions to be included in the report.

       

      Use the wildcard as the string value to include all Regions.

      

    
      - *(string) --* 

      
  
  
  :type ReportPlanTags: dict
  :param ReportPlanTags: 

    The tags to assign to the report plan.

    

  
    - *(string) --* 

    
      - *(string) --* 

      


  :type IdempotencyToken: string
  :param IdempotencyToken: 

    A customer-chosen string that you can use to distinguish between otherwise identical calls to ``CreateReportPlanInput``. Retrying a successful request with the same idempotency token results in a success message with no action taken.

    This field is autopopulated if not provided.

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

    
    ::

      {
          'ReportPlanName': 'string',
          'ReportPlanArn': 'string',
          'CreationTime': datetime(2015, 1, 1)
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **ReportPlanName** *(string) --* 

        The unique name of the report plan.

        
      

      - **ReportPlanArn** *(string) --* 

        An Amazon Resource Name (ARN) that uniquely identifies a resource. The format of the ARN depends on the resource type.

        
      

      - **CreationTime** *(datetime) --* 

        The date and time a backup vault is created, in Unix format and Coordinated Universal Time (UTC). The value of ``CreationTime`` is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.

        
  
  **Exceptions**
  
  *   :py:class:`Backup.Client.exceptions.AlreadyExistsException`

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

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

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

  
  *   :py:class:`Backup.Client.exceptions.MissingParameterValueException`

  