def get_notification_ids(self, channels=None):
res = requests.get(self.url + '<STR_LIT>', headers=self.hdrs, verify=self.ssl_verify)<EOL>if not self._checkResponse(res):<EOL><INDENT>return False, self.lasterr<EOL><DEDENT>ids = []<EOL>if channels is None:<EOL><INDENT>for ch in res.json()["<STR_LIT>"]:<EOL><INDENT>ids.append(ch['<STR_LIT:id>'])<EOL><DEDENT>return [True, ids]<EOL><DEDENT>for c in channels:<EOL><INDENT>found = False<EOL>for ch in res.json()["<STR_LIT>"]:<EOL><INDENT>if c['<STR_LIT:type>'] == ch['<STR_LIT:type>']:<EOL><INDENT>if c['<STR_LIT:type>'] == '<STR_LIT>':<EOL><INDENT>opt = ch['<STR_LIT>']<EOL>if set(opt['<STR_LIT>']) == set(c['<STR_LIT>']):<EOL><INDENT>found = True<EOL>ids.append(ch['<STR_LIT:id>'])<EOL><DEDENT><DEDENT>elif c['<STR_LIT:type>'] == '<STR_LIT>':<EOL><INDENT>opt = ch['<STR_LIT>']<EOL>if '<STR_LIT>' in c:<EOL><INDENT>if set(c['<STR_LIT>']) == set(opt['<STR_LIT>']):<EOL><INDENT>found = True<EOL>ids.append(ch['<STR_LIT:id>'])<EOL><DEDENT><DEDENT>elif '<STR_LIT:name>' in c:<EOL><INDENT>if c['<STR_LIT:name>'] == ch.get('<STR_LIT:name>'):<EOL><INDENT>found = True<EOL>ids.append(ch['<STR_LIT:id>'])<EOL><DEDENT><DEDENT><DEDENT>elif c['<STR_LIT:type>'] == '<STR_LIT>':<EOL><INDENT>opt = ch['<STR_LIT>']<EOL>if opt['<STR_LIT>'] == c['<STR_LIT>'] and opt['<STR_LIT>'] == c['<STR_LIT>']:<EOL><INDENT>found = True<EOL>ids.append(ch['<STR_LIT:id>'])<EOL><DEDENT><DEDENT>elif c['<STR_LIT:type>'] == '<STR_LIT>':<EOL><INDENT>opt = ch['<STR_LIT>']<EOL>if '<STR_LIT>' in opt and opt['<STR_LIT>'] == c['<STR_LIT>']:<EOL><INDENT>found = True<EOL>ids.append(ch['<STR_LIT:id>'])<EOL><DEDENT><DEDENT>elif c['<STR_LIT:type>'] == '<STR_LIT>':<EOL><INDENT>if '<STR_LIT:name>' in c:<EOL><INDENT>if c['<STR_LIT:name>'] == ch.get('<STR_LIT:name>'):<EOL><INDENT>found = True<EOL>ids.append(ch['<STR_LIT:id>'])<EOL><DEDENT><DEDENT><DEDENT>elif c['<STR_LIT:type>'] == '<STR_LIT>':<EOL><INDENT>if '<STR_LIT:name>' in c:<EOL><INDENT>if c['<STR_LIT:name>'] == ch.get('<STR_LIT:name>'):<EOL><INDENT>found = True<EOL>ids.append(ch['<STR_LIT:id>'])<EOL><DEDENT><DEDENT><DEDENT>elif c['<STR_LIT:type>'] == '<STR_LIT>':<EOL><INDENT>if '<STR_LIT:name>' in c:<EOL><INDENT>if c['<STR_LIT:name>'] == ch.get('<STR_LIT:name>'):<EOL><INDENT>found = True<EOL>ids.append(ch['<STR_LIT:id>'])<EOL><DEDENT><DEDENT><DEDENT><DEDENT><DEDENT>if not found:<EOL><INDENT>return False, "<STR_LIT>" + str(c)<EOL><DEDENT><DEDENT>return True, ids<EOL>
**Description**
            Get an array of all configured Notification Channel IDs, or a filtered subset of them.

        **Arguments**
            - **channels**: an optional array of dictionaries to limit the set of Notification Channel IDs returned. If not specified, IDs for all configured Notification Channels are returned. Each dictionary contains a ``type`` field that can be one of the available types of Notification Channel (``EMAIL``, ``SNS``, ``PAGER_DUTY``, ``SLACK``, ``OPSGENIE``, ``VICTOROPS``, ``WEBHOOK``) as well as additional elements specific to each channel type.

        **Success Return Value**
            An array of Notification Channel IDs (integers).

        **Examples**
            - `examples/create_alert.py <https://github.com/draios/python-sdc-client/blob/master/examples/create_alert.py>`_
            - `examples/restore_alerts.py <https://github.com/draios/python-sdc-client/blob/master/examples/restore_alerts.py>`_