1# coding=utf-8 2r""" 3This code was generated by 4\ / _ _ _| _ _ 5 | (_)\/(_)(_|\/| |(/_ v1.0.0 6 / / 7""" 8 9from twilio.base import deserialize 10from twilio.base import serialize 11from twilio.base import values 12from twilio.base.instance_context import InstanceContext 13from twilio.base.instance_resource import InstanceResource 14from twilio.base.list_resource import ListResource 15from twilio.base.page import Page 16from twilio.rest.preview.hosted_numbers.authorization_document.dependent_hosted_number_order import DependentHostedNumberOrderList 17 18 19class AuthorizationDocumentList(ListResource): 20 """ PLEASE NOTE that this class contains preview products that are subject 21 to change. Use them with caution. If you currently do not have developer 22 preview access, please contact help@twilio.com. """ 23 24 def __init__(self, version): 25 """ 26 Initialize the AuthorizationDocumentList 27 28 :param Version version: Version that contains the resource 29 30 :returns: twilio.rest.preview.hosted_numbers.authorization_document.AuthorizationDocumentList 31 :rtype: twilio.rest.preview.hosted_numbers.authorization_document.AuthorizationDocumentList 32 """ 33 super(AuthorizationDocumentList, self).__init__(version) 34 35 # Path Solution 36 self._solution = {} 37 self._uri = '/AuthorizationDocuments'.format(**self._solution) 38 39 def stream(self, email=values.unset, status=values.unset, limit=None, 40 page_size=None): 41 """ 42 Streams AuthorizationDocumentInstance records from the API as a generator stream. 43 This operation lazily loads records as efficiently as possible until the limit 44 is reached. 45 The results are returned as a generator, so this operation is memory efficient. 46 47 :param unicode email: Email. 48 :param AuthorizationDocumentInstance.Status status: The Status of this AuthorizationDocument. 49 :param int limit: Upper limit for the number of records to return. stream() 50 guarantees to never return more than limit. Default is no limit 51 :param int page_size: Number of records to fetch per request, when not set will use 52 the default value of 50 records. If no page_size is defined 53 but a limit is defined, stream() will attempt to read the 54 limit with the most efficient page size, i.e. min(limit, 1000) 55 56 :returns: Generator that will yield up to limit results 57 :rtype: list[twilio.rest.preview.hosted_numbers.authorization_document.AuthorizationDocumentInstance] 58 """ 59 limits = self._version.read_limits(limit, page_size) 60 61 page = self.page(email=email, status=status, page_size=limits['page_size'], ) 62 63 return self._version.stream(page, limits['limit']) 64 65 def list(self, email=values.unset, status=values.unset, limit=None, 66 page_size=None): 67 """ 68 Lists AuthorizationDocumentInstance records from the API as a list. 69 Unlike stream(), this operation is eager and will load `limit` records into 70 memory before returning. 71 72 :param unicode email: Email. 73 :param AuthorizationDocumentInstance.Status status: The Status of this AuthorizationDocument. 74 :param int limit: Upper limit for the number of records to return. list() guarantees 75 never to return more than limit. Default is no limit 76 :param int page_size: Number of records to fetch per request, when not set will use 77 the default value of 50 records. If no page_size is defined 78 but a limit is defined, list() will attempt to read the limit 79 with the most efficient page size, i.e. min(limit, 1000) 80 81 :returns: Generator that will yield up to limit results 82 :rtype: list[twilio.rest.preview.hosted_numbers.authorization_document.AuthorizationDocumentInstance] 83 """ 84 return list(self.stream(email=email, status=status, limit=limit, page_size=page_size, )) 85 86 def page(self, email=values.unset, status=values.unset, page_token=values.unset, 87 page_number=values.unset, page_size=values.unset): 88 """ 89 Retrieve a single page of AuthorizationDocumentInstance records from the API. 90 Request is executed immediately 91 92 :param unicode email: Email. 93 :param AuthorizationDocumentInstance.Status status: The Status of this AuthorizationDocument. 94 :param str page_token: PageToken provided by the API 95 :param int page_number: Page Number, this value is simply for client state 96 :param int page_size: Number of records to return, defaults to 50 97 98 :returns: Page of AuthorizationDocumentInstance 99 :rtype: twilio.rest.preview.hosted_numbers.authorization_document.AuthorizationDocumentPage 100 """ 101 data = values.of({ 102 'Email': email, 103 'Status': status, 104 'PageToken': page_token, 105 'Page': page_number, 106 'PageSize': page_size, 107 }) 108 109 response = self._version.page(method='GET', uri=self._uri, params=data, ) 110 111 return AuthorizationDocumentPage(self._version, response, self._solution) 112 113 def get_page(self, target_url): 114 """ 115 Retrieve a specific page of AuthorizationDocumentInstance records from the API. 116 Request is executed immediately 117 118 :param str target_url: API-generated URL for the requested results page 119 120 :returns: Page of AuthorizationDocumentInstance 121 :rtype: twilio.rest.preview.hosted_numbers.authorization_document.AuthorizationDocumentPage 122 """ 123 response = self._version.domain.twilio.request( 124 'GET', 125 target_url, 126 ) 127 128 return AuthorizationDocumentPage(self._version, response, self._solution) 129 130 def create(self, hosted_number_order_sids, address_sid, email, contact_title, 131 contact_phone_number, cc_emails=values.unset): 132 """ 133 Create the AuthorizationDocumentInstance 134 135 :param list[unicode] hosted_number_order_sids: A list of HostedNumberOrder sids. 136 :param unicode address_sid: Address sid. 137 :param unicode email: Email. 138 :param unicode contact_title: Title of signee of this Authorization Document. 139 :param unicode contact_phone_number: Authorization Document's signee's phone number. 140 :param list[unicode] cc_emails: A list of emails. 141 142 :returns: The created AuthorizationDocumentInstance 143 :rtype: twilio.rest.preview.hosted_numbers.authorization_document.AuthorizationDocumentInstance 144 """ 145 data = values.of({ 146 'HostedNumberOrderSids': serialize.map(hosted_number_order_sids, lambda e: e), 147 'AddressSid': address_sid, 148 'Email': email, 149 'ContactTitle': contact_title, 150 'ContactPhoneNumber': contact_phone_number, 151 'CcEmails': serialize.map(cc_emails, lambda e: e), 152 }) 153 154 payload = self._version.create(method='POST', uri=self._uri, data=data, ) 155 156 return AuthorizationDocumentInstance(self._version, payload, ) 157 158 def get(self, sid): 159 """ 160 Constructs a AuthorizationDocumentContext 161 162 :param sid: AuthorizationDocument sid. 163 164 :returns: twilio.rest.preview.hosted_numbers.authorization_document.AuthorizationDocumentContext 165 :rtype: twilio.rest.preview.hosted_numbers.authorization_document.AuthorizationDocumentContext 166 """ 167 return AuthorizationDocumentContext(self._version, sid=sid, ) 168 169 def __call__(self, sid): 170 """ 171 Constructs a AuthorizationDocumentContext 172 173 :param sid: AuthorizationDocument sid. 174 175 :returns: twilio.rest.preview.hosted_numbers.authorization_document.AuthorizationDocumentContext 176 :rtype: twilio.rest.preview.hosted_numbers.authorization_document.AuthorizationDocumentContext 177 """ 178 return AuthorizationDocumentContext(self._version, sid=sid, ) 179 180 def __repr__(self): 181 """ 182 Provide a friendly representation 183 184 :returns: Machine friendly representation 185 :rtype: str 186 """ 187 return '<Twilio.Preview.HostedNumbers.AuthorizationDocumentList>' 188 189 190class AuthorizationDocumentPage(Page): 191 """ PLEASE NOTE that this class contains preview products that are subject 192 to change. Use them with caution. If you currently do not have developer 193 preview access, please contact help@twilio.com. """ 194 195 def __init__(self, version, response, solution): 196 """ 197 Initialize the AuthorizationDocumentPage 198 199 :param Version version: Version that contains the resource 200 :param Response response: Response from the API 201 202 :returns: twilio.rest.preview.hosted_numbers.authorization_document.AuthorizationDocumentPage 203 :rtype: twilio.rest.preview.hosted_numbers.authorization_document.AuthorizationDocumentPage 204 """ 205 super(AuthorizationDocumentPage, self).__init__(version, response) 206 207 # Path Solution 208 self._solution = solution 209 210 def get_instance(self, payload): 211 """ 212 Build an instance of AuthorizationDocumentInstance 213 214 :param dict payload: Payload response from the API 215 216 :returns: twilio.rest.preview.hosted_numbers.authorization_document.AuthorizationDocumentInstance 217 :rtype: twilio.rest.preview.hosted_numbers.authorization_document.AuthorizationDocumentInstance 218 """ 219 return AuthorizationDocumentInstance(self._version, payload, ) 220 221 def __repr__(self): 222 """ 223 Provide a friendly representation 224 225 :returns: Machine friendly representation 226 :rtype: str 227 """ 228 return '<Twilio.Preview.HostedNumbers.AuthorizationDocumentPage>' 229 230 231class AuthorizationDocumentContext(InstanceContext): 232 """ PLEASE NOTE that this class contains preview products that are subject 233 to change. Use them with caution. If you currently do not have developer 234 preview access, please contact help@twilio.com. """ 235 236 def __init__(self, version, sid): 237 """ 238 Initialize the AuthorizationDocumentContext 239 240 :param Version version: Version that contains the resource 241 :param sid: AuthorizationDocument sid. 242 243 :returns: twilio.rest.preview.hosted_numbers.authorization_document.AuthorizationDocumentContext 244 :rtype: twilio.rest.preview.hosted_numbers.authorization_document.AuthorizationDocumentContext 245 """ 246 super(AuthorizationDocumentContext, self).__init__(version) 247 248 # Path Solution 249 self._solution = {'sid': sid, } 250 self._uri = '/AuthorizationDocuments/{sid}'.format(**self._solution) 251 252 # Dependents 253 self._dependent_hosted_number_orders = None 254 255 def fetch(self): 256 """ 257 Fetch the AuthorizationDocumentInstance 258 259 :returns: The fetched AuthorizationDocumentInstance 260 :rtype: twilio.rest.preview.hosted_numbers.authorization_document.AuthorizationDocumentInstance 261 """ 262 payload = self._version.fetch(method='GET', uri=self._uri, ) 263 264 return AuthorizationDocumentInstance(self._version, payload, sid=self._solution['sid'], ) 265 266 def update(self, hosted_number_order_sids=values.unset, 267 address_sid=values.unset, email=values.unset, cc_emails=values.unset, 268 status=values.unset, contact_title=values.unset, 269 contact_phone_number=values.unset): 270 """ 271 Update the AuthorizationDocumentInstance 272 273 :param list[unicode] hosted_number_order_sids: A list of HostedNumberOrder sids. 274 :param unicode address_sid: Address sid. 275 :param unicode email: Email. 276 :param list[unicode] cc_emails: A list of emails. 277 :param AuthorizationDocumentInstance.Status status: The Status of this AuthorizationDocument. 278 :param unicode contact_title: Title of signee of this Authorization Document. 279 :param unicode contact_phone_number: Authorization Document's signee's phone number. 280 281 :returns: The updated AuthorizationDocumentInstance 282 :rtype: twilio.rest.preview.hosted_numbers.authorization_document.AuthorizationDocumentInstance 283 """ 284 data = values.of({ 285 'HostedNumberOrderSids': serialize.map(hosted_number_order_sids, lambda e: e), 286 'AddressSid': address_sid, 287 'Email': email, 288 'CcEmails': serialize.map(cc_emails, lambda e: e), 289 'Status': status, 290 'ContactTitle': contact_title, 291 'ContactPhoneNumber': contact_phone_number, 292 }) 293 294 payload = self._version.update(method='POST', uri=self._uri, data=data, ) 295 296 return AuthorizationDocumentInstance(self._version, payload, sid=self._solution['sid'], ) 297 298 @property 299 def dependent_hosted_number_orders(self): 300 """ 301 Access the dependent_hosted_number_orders 302 303 :returns: twilio.rest.preview.hosted_numbers.authorization_document.dependent_hosted_number_order.DependentHostedNumberOrderList 304 :rtype: twilio.rest.preview.hosted_numbers.authorization_document.dependent_hosted_number_order.DependentHostedNumberOrderList 305 """ 306 if self._dependent_hosted_number_orders is None: 307 self._dependent_hosted_number_orders = DependentHostedNumberOrderList( 308 self._version, 309 signing_document_sid=self._solution['sid'], 310 ) 311 return self._dependent_hosted_number_orders 312 313 def __repr__(self): 314 """ 315 Provide a friendly representation 316 317 :returns: Machine friendly representation 318 :rtype: str 319 """ 320 context = ' '.join('{}={}'.format(k, v) for k, v in self._solution.items()) 321 return '<Twilio.Preview.HostedNumbers.AuthorizationDocumentContext {}>'.format(context) 322 323 324class AuthorizationDocumentInstance(InstanceResource): 325 """ PLEASE NOTE that this class contains preview products that are subject 326 to change. Use them with caution. If you currently do not have developer 327 preview access, please contact help@twilio.com. """ 328 329 class Status(object): 330 OPENED = "opened" 331 SIGNING = "signing" 332 SIGNED = "signed" 333 CANCELED = "canceled" 334 FAILED = "failed" 335 336 def __init__(self, version, payload, sid=None): 337 """ 338 Initialize the AuthorizationDocumentInstance 339 340 :returns: twilio.rest.preview.hosted_numbers.authorization_document.AuthorizationDocumentInstance 341 :rtype: twilio.rest.preview.hosted_numbers.authorization_document.AuthorizationDocumentInstance 342 """ 343 super(AuthorizationDocumentInstance, self).__init__(version) 344 345 # Marshaled Properties 346 self._properties = { 347 'sid': payload.get('sid'), 348 'address_sid': payload.get('address_sid'), 349 'status': payload.get('status'), 350 'email': payload.get('email'), 351 'cc_emails': payload.get('cc_emails'), 352 'date_created': deserialize.iso8601_datetime(payload.get('date_created')), 353 'date_updated': deserialize.iso8601_datetime(payload.get('date_updated')), 354 'url': payload.get('url'), 355 'links': payload.get('links'), 356 } 357 358 # Context 359 self._context = None 360 self._solution = {'sid': sid or self._properties['sid'], } 361 362 @property 363 def _proxy(self): 364 """ 365 Generate an instance context for the instance, the context is capable of 366 performing various actions. All instance actions are proxied to the context 367 368 :returns: AuthorizationDocumentContext for this AuthorizationDocumentInstance 369 :rtype: twilio.rest.preview.hosted_numbers.authorization_document.AuthorizationDocumentContext 370 """ 371 if self._context is None: 372 self._context = AuthorizationDocumentContext(self._version, sid=self._solution['sid'], ) 373 return self._context 374 375 @property 376 def sid(self): 377 """ 378 :returns: AuthorizationDocument sid. 379 :rtype: unicode 380 """ 381 return self._properties['sid'] 382 383 @property 384 def address_sid(self): 385 """ 386 :returns: Address sid. 387 :rtype: unicode 388 """ 389 return self._properties['address_sid'] 390 391 @property 392 def status(self): 393 """ 394 :returns: The Status of this AuthorizationDocument. 395 :rtype: AuthorizationDocumentInstance.Status 396 """ 397 return self._properties['status'] 398 399 @property 400 def email(self): 401 """ 402 :returns: Email. 403 :rtype: unicode 404 """ 405 return self._properties['email'] 406 407 @property 408 def cc_emails(self): 409 """ 410 :returns: A list of emails. 411 :rtype: list[unicode] 412 """ 413 return self._properties['cc_emails'] 414 415 @property 416 def date_created(self): 417 """ 418 :returns: The date this AuthorizationDocument was created. 419 :rtype: datetime 420 """ 421 return self._properties['date_created'] 422 423 @property 424 def date_updated(self): 425 """ 426 :returns: The date this AuthorizationDocument was updated. 427 :rtype: datetime 428 """ 429 return self._properties['date_updated'] 430 431 @property 432 def url(self): 433 """ 434 :returns: The url 435 :rtype: unicode 436 """ 437 return self._properties['url'] 438 439 @property 440 def links(self): 441 """ 442 :returns: The links 443 :rtype: unicode 444 """ 445 return self._properties['links'] 446 447 def fetch(self): 448 """ 449 Fetch the AuthorizationDocumentInstance 450 451 :returns: The fetched AuthorizationDocumentInstance 452 :rtype: twilio.rest.preview.hosted_numbers.authorization_document.AuthorizationDocumentInstance 453 """ 454 return self._proxy.fetch() 455 456 def update(self, hosted_number_order_sids=values.unset, 457 address_sid=values.unset, email=values.unset, cc_emails=values.unset, 458 status=values.unset, contact_title=values.unset, 459 contact_phone_number=values.unset): 460 """ 461 Update the AuthorizationDocumentInstance 462 463 :param list[unicode] hosted_number_order_sids: A list of HostedNumberOrder sids. 464 :param unicode address_sid: Address sid. 465 :param unicode email: Email. 466 :param list[unicode] cc_emails: A list of emails. 467 :param AuthorizationDocumentInstance.Status status: The Status of this AuthorizationDocument. 468 :param unicode contact_title: Title of signee of this Authorization Document. 469 :param unicode contact_phone_number: Authorization Document's signee's phone number. 470 471 :returns: The updated AuthorizationDocumentInstance 472 :rtype: twilio.rest.preview.hosted_numbers.authorization_document.AuthorizationDocumentInstance 473 """ 474 return self._proxy.update( 475 hosted_number_order_sids=hosted_number_order_sids, 476 address_sid=address_sid, 477 email=email, 478 cc_emails=cc_emails, 479 status=status, 480 contact_title=contact_title, 481 contact_phone_number=contact_phone_number, 482 ) 483 484 @property 485 def dependent_hosted_number_orders(self): 486 """ 487 Access the dependent_hosted_number_orders 488 489 :returns: twilio.rest.preview.hosted_numbers.authorization_document.dependent_hosted_number_order.DependentHostedNumberOrderList 490 :rtype: twilio.rest.preview.hosted_numbers.authorization_document.dependent_hosted_number_order.DependentHostedNumberOrderList 491 """ 492 return self._proxy.dependent_hosted_number_orders 493 494 def __repr__(self): 495 """ 496 Provide a friendly representation 497 498 :returns: Machine friendly representation 499 :rtype: str 500 """ 501 context = ' '.join('{}={}'.format(k, v) for k, v in self._solution.items()) 502 return '<Twilio.Preview.HostedNumbers.AuthorizationDocumentInstance {}>'.format(context) 503