| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207 |
- # Copyright 2014 Baidu, Inc.
- #
- # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
- # except in compliance with the License. You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software distributed under the
- # License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
- # either express or implied. See the License for the specific language governing permissions
- # and limitations under the License.
- """
- This module provides models for CFC-SDK.
- """
- import json
- DUEDGE_TRIGGER = 'duedge'
- DUEROS_TRIGGER = 'dueros'
- CRONTAB_TRIGGER = 'cfc-crontab-trigger/v1/'
- HTTP_TRIGGER = 'cfc-http-trigger/v1/CFCAPI'
- CDN_TRIGGER = 'cdn'
- BOS_TRIGGER = 'bos'
- class AbstractTriggerDataModel(object):
- """Base class for all trigger data."""
- def serialize(self):
- """
- serialize
- :return
- :rtype dict
- """
- d = vars(self)
- ret = {}
- for k in d:
- if d[k] is not None:
- ret[k] = d[k]
- return ret
- def get_trigger_source(self):
- """
- trigger source
- :return
- :rtype string
- """
- return ''
- def __repr__(self):
- return '%s' % json.dumps(self.serialize())
- class CrontabTriggerData(AbstractTriggerDataModel):
- """
- Crontab Trigger Data
- :param brn (required) The url path.
- :type brn string
- :param name (required) The trigger name. 1-30 length.Pattern: ^[a-zA-Z0-9-_]+$
- :type name string.The name of the trigger that you are creating or updating
- :param schedule_expression (required) Schedule expression.The details see
- https://cloud.baidu.com/doc/CFC/s/Zjxl9lbed.
- For example, "cron(0 * * * *)" or "rate(10 minutes)".
- :type schedule_expression string.
- :param enabled.
- :type enabled bool. Enables the trigger.
- :param custom_input.
- :type custom_input json.
- """
- def __init__(self, brn=None, name=None, schedule_expression=None, enabled=False, custom_input=None):
- self.Input = custom_input
- self.Brn = brn
- self.Name = name
- self.ScheduleExpression = schedule_expression
- self.UUID = None
- if enabled:
- self.Enabled = 'Enabled'
- else:
- self.Enabled = 'Disabled'
- def set_status(self, enabled=False):
- """
- set crontab status
- :param enabled.
- :type enabled bool. Enables the trigger.
- :return
- :rtype string
- """
- if enabled:
- self.Enabled = 'Enabled'
- else:
- self.Enabled = 'Disabled'
- def get_trigger_source(self):
- return CRONTAB_TRIGGER
- class HttpTriggerData(AbstractTriggerDataModel):
- """
- Http Trigger Data
- :param resource_path (required) The url path.
- :type resource_path string
- :param method (required) The http method. eg "GET,HEAD"
- :type method string
- :param auth_type (required) Authentication type.
- :type auth_type string. eg anonymous | iam
- """
- def __init__(self, resource_path=None, method=None, auth_type=None):
- self.ResourcePath = resource_path
- self.Method = method
- self.AuthType = auth_type
- def get_trigger_source(self):
- return HTTP_TRIGGER
- class CdnTriggerData(AbstractTriggerDataModel):
- """
- Cdn Trigger Data
- :param event_type (required) Cdn event type. The details see
- https://cloud.baidu.com/doc/CFC/s/Kjwvz47o9/#relationconfiguration.
- :type event_type string
- :param domains. Domain list.
- :type domains list of string
- :param remark.
- :type remark string.
- :param status. Enables the trigger.
- :type status bool.
- """
- def __init__(self, event_type=None, domains=None, remark=None, status=False):
- self.EventType = event_type
- self.Domains = domains
- self.Remark = remark
- if status:
- self.Status = 'enabled'
- else:
- self.Status = 'disabled'
- def set_status(self, enabled=False):
- """
- set cdn trigger status
- :param enabled.
- :type enabled bool. Enables the trigger.
- :return
- :rtype string
- """
- if enabled:
- self.Status = 'enabled'
- else:
- self.Status = 'disabled'
- def get_trigger_source(self):
- return CDN_TRIGGER
- class BOSTriggerData(AbstractTriggerDataModel):
- """
- BOS Trigger Data
- :param event_type (required) BOS event type. The details see
- https://cloud.baidu.com/doc/CFC/s/Kjwvz47o9/#relationconfiguration.
- :type event_type list of string
- :param resource. For example, /prefix*suffix /my.img /my*img
- :type resource string
- :param name. The name of the trigger that you are creating or updating
- :type name string
- :param status. Enables the trigger.
- :type status bool.
- """
- def __init__(self, bucket=None, event_type=None, resource=None, name=None, status=False):
- self.Resource = resource
- self.EventType = event_type
- self.Name = name
- self.Bucket = bucket
- if status:
- self.Status = 'enabled'
- else:
- self.Status = 'disabled'
- def set_status(self, enabled=False):
- """
- set bos trigger status
- :param enabled.
- :type enabled bool. Enables the trigger.
- :return
- :rtype string
- """
- if enabled:
- self.Status = 'enabled'
- else:
- self.Status = 'disabled'
- def get_trigger_source(self):
- return BOS_TRIGGER + '/' + self.Bucket
|