'Describes the available option groups.
:type option_group_name: string
:param option_group_name: The name of the option group to describe.
Cannot be supplied together with EngineName or MajorEngineVersion.
:type filters: list
:param filters:
:type marker: string
:param marker: An optional pagination token provided by a previous
DescribeOptionGroups request. If this parameter is specified, the
response includes only records beyond the marker, up to the value
specified by `MaxRecords`.
:type max_records: integer
:param max_records: The maximum number of records to include in the
response. If more records exist than the specified `MaxRecords`
value, a pagination token called a marker is included in the
response so that the remaining results can be retrieved.
Default: 100
Constraints: minimum 20, maximum 100
:type engine_name: string
:param engine_name: Filters the list of option groups to only include
groups associated with a specific database engine.
:type major_engine_version: string
:param major_engine_version: Filters the list of option groups to only
include groups associated with a specific database engine version.
If specified, then EngineName must also be specified.'

def describe_option_groups(self, option_group_name=None, filters=None, marker=None, max_records=None, engine_name=None, major_engine_version=None):

    params = {}
    if (option_group_name is not None):
        params['OptionGroupName'] = option_group_name
    if (filters is not None):
        self.build_complex_list_params(params, filters, 'Filters.member', ('FilterName', 'FilterValue'))
    if (marker is not None):
        params['Marker'] = marker
    if (max_records is not None):
        params['MaxRecords'] = max_records
    if (engine_name is not None):
        params['EngineName'] = engine_name
    if (major_engine_version is not None):
        params['MajorEngineVersion'] = major_engine_version
    return self._make_request(action='DescribeOptionGroups', verb='POST', path='/', params=params)
