# coding=utf-8
# --------------------------------------------------------------------------
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is
# regenerated.
# --------------------------------------------------------------------------

from msrest.serialization import Model


class DistributedReportsConfiguration(Model):
    """DistributedReportsConfiguration.

    :param format: Desired format for the resulting report.
     Available options are PDF, Excel, Word, and CSV. Support for each format
     varies by report.
    :type format: str
    :param use_copy: Indicates whether or not to use a copy of the report when
     generating it.
     When set to true, a one-time copy of the requested specific report will be
     created, set with the provided filters, and then deleted afterward.
     This functionality is useful when you want to run a report with a one-time
     filter set, without touching the original report's filters.
    :type use_copy: bool
    :param filters: List of filters to use when executing this report. How
     they are handled depends upon the other configuration options used in this
     request.
    :type filters: list[~energycap.sdk.models.FilterEdit]
    :param clear_filters: Indicates whether or not to clear out stored filters
     for the requested report during execution.
     When set to true, any stored filters for this report will be removed. Only
     filters provided in the Filters property will be applied.
     When set to false, any stored filters will still apply when the report is
     executed.
    :type clear_filters: bool
    :param save_filters: Indicates whether or not to save the filters provided
     in the Filters property.
     When set to true, any filters currently stored for the requested report
     will be overwritten with those provided in the Filters property.
     When set to false, any filters provided in the Filters property will not
     be saved after execution. However, they will be used for this report
     execution.
    :type save_filters: bool
    :param only_send_if_data: Indicates whether or not to email a report if it
     contains no data.
     When set to true, if distributing the requested report to an email list
     and the report contains no data, the report will not be emailed.
     When set to false, if the requested report has no data, it will still be
     sent to the email list.
    :type only_send_if_data: bool
    :param file_name: Filename for the resulting report file. Do not provide
     file type suffix.
     Defaults to {specificReportCode}-{specificReportInfo}{fileNameExtension}
    :type file_name: str
    :param distribution:
    :type distribution: ~energycap.sdk.models.EmailProperties
    """

    _attribute_map = {
        'format': {'key': 'format', 'type': 'str'},
        'use_copy': {'key': 'useCopy', 'type': 'bool'},
        'filters': {'key': 'filters', 'type': '[FilterEdit]'},
        'clear_filters': {'key': 'clearFilters', 'type': 'bool'},
        'save_filters': {'key': 'saveFilters', 'type': 'bool'},
        'only_send_if_data': {'key': 'onlySendIfData', 'type': 'bool'},
        'file_name': {'key': 'fileName', 'type': 'str'},
        'distribution': {'key': 'distribution', 'type': 'EmailProperties'},
    }

    def __init__(self, *, format: str=None, use_copy: bool=None, filters=None, clear_filters: bool=None, save_filters: bool=None, only_send_if_data: bool=None, file_name: str=None, distribution=None, **kwargs) -> None:
        super(DistributedReportsConfiguration, self).__init__(**kwargs)
        self.format = format
        self.use_copy = use_copy
        self.filters = filters
        self.clear_filters = clear_filters
        self.save_filters = save_filters
        self.only_send_if_data = only_send_if_data
        self.file_name = file_name
        self.distribution = distribution
