You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Splunk_Deploiement/apps/trackme/bin/trackme_rh_emails.py

127 lines
2.8 KiB

import import_declare_test
from splunktaucclib.rest_handler.endpoint import (
field,
validator,
RestModel,
SingleModel,
)
from splunktaucclib.rest_handler import admin_external, util
from splunktaucclib.rest_handler.admin_external import AdminExternalHandler
import logging
util.remove_http_proxy_env_vars()
special_fields = [
field.RestField(
'name',
required=True,
encrypted=False,
default=None,
validator=validator.AllOf(
validator.String(
max_len=50,
min_len=1,
),
validator.Pattern(
regex=r"""^[a-z][0-9a-z_]*$""",
)
)
)
]
fields = [
field.RestField(
'email_server',
required=True,
encrypted=False,
default=None,
validator=validator.Pattern(
regex=r"""^(?!localhost|127\.0\.0\.1)[^\:]+:\d+$""",
)
),
field.RestField(
'email_username',
required=False,
encrypted=False,
default=None,
validator=validator.Pattern(
regex=r"""^.*$""",
)
),
field.RestField(
'email_password',
required=False,
encrypted=True,
default=None,
validator=validator.Pattern(
regex=r"""^.*$""",
)
),
field.RestField(
'email_security',
required=True,
encrypted=False,
default='tls',
validator=validator.Pattern(
regex=r"""^(ssl|tls)$""",
)
),
field.RestField(
'allowed_email_domains',
required=False,
encrypted=False,
default=None,
validator=validator.Pattern(
regex=r"""^.+$""",
)
),
field.RestField(
'sender_email',
required=True,
encrypted=False,
default='splunk',
validator=validator.Pattern(
regex=r"""^.+$""",
)
),
field.RestField(
'email_format',
required=False,
encrypted=False,
default='html',
validator=validator.Pattern(
regex=r"""^(html|text)$""",
)
),
field.RestField(
'email_footer',
required=True,
encrypted=False,
default='This is an automated email, please do not reply directly to this email.',
validator=validator.Pattern(
regex=r"""^.+$""",
)
)
]
model = RestModel(fields, name=None, special_fields=special_fields)
endpoint = SingleModel(
'trackme_emails',
model,
config_name='emails',
need_reload=False,
)
if __name__ == '__main__':
logging.getLogger().addHandler(logging.NullHandler())
admin_external.handle(
endpoint,
handler=AdminExternalHandler,
)