Asterisk - The Open Source Telephony Project GIT-master-754dea3
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Macros Modules Pages
Public Member Functions | Data Fields | Static Public Attributes
Operation Class Reference
Inheritance diagram for Operation:
Inheritance graph
[legend]
Collaboration diagram for Operation:
Collaboration graph
[legend]

Public Member Functions

def __init__ (self)
 
def load (self, op_json, processor, context)
 
- Public Member Functions inherited from Stringify
def __repr__ (self)
 

Data Fields

 body_parameter
 
 error_responses
 
 has_body_parameter
 
 has_error_responses
 
 has_header_parameters
 
 has_parameters
 
 has_path_parameters
 
 has_query_parameters
 
 header_parameters
 
 http_method
 
 is_binary_response
 
 is_req
 
 is_websocket
 
 nickname
 
 nickname_lc
 
 notes
 
 parameters
 
 path_parameters
 
 query_parameters
 
 response_class
 
 since
 
 summary
 
 websocket_protocol
 

Static Public Attributes

list required_fields = ['httpMethod', 'nickname', 'responseClass', 'summary']
 

Detailed Description

Model of an operation on an API

See https://github.com/wordnik/swagger-core/wiki/API-Declaration#apis

Definition at line 359 of file swagger_model.py.

Constructor & Destructor Documentation

◆ __init__()

def __init__ (   self)

Definition at line 367 of file swagger_model.py.

367 def __init__(self):
368 self.http_method = None
369 self.nickname = None
370 self.nickname_lc = None
371 self.response_class = None
372 self.parameters = []
373 self.summary = None
374 self.notes = None
375 self.error_responses = []
376 self.since = []
377

Member Function Documentation

◆ load()

def load (   self,
  op_json,
  processor,
  context 
)

Definition at line 378 of file swagger_model.py.

378 def load(self, op_json, processor, context):
379 context = context.next_stack(op_json, 'nickname')
380 validate_required_fields(op_json, self.required_fields, context)
381 self.http_method = op_json.get('httpMethod')
382 self.nickname = op_json.get('nickname')
383 self.nickname_lc = self.nickname.lower()
384 response_class = op_json.get('responseClass')
385 self.response_class = response_class and SwaggerType().load(
386 response_class, processor, context)
387 since = op_json.get('since') or []
388 self.since = ", ".join(since)
389
390 # Specifying WebSocket URL's is our own extension
391 self.is_websocket = op_json.get('upgrade') == 'websocket'
392 self.is_req = not self.is_websocket
393
394 if self.is_websocket:
395 self.websocket_protocol = op_json.get('websocketProtocol')
396 if self.http_method != 'GET':
397 raise SwaggerError(
398 "upgrade: websocket is only valid on GET operations",
399 context)
400
401 params_json = op_json.get('parameters') or []
402 self.parameters = [
403 Parameter().load(j, processor, context) for j in params_json]
404 self.query_parameters = [
405 p for p in self.parameters if p.is_type('query')]
406 self.has_query_parameters = self.query_parameters and True
407 self.path_parameters = [
408 p for p in self.parameters if p.is_type('path')]
409 self.has_path_parameters = self.path_parameters and True
410 self.header_parameters = [
411 p for p in self.parameters if p.is_type('header')]
412 self.has_header_parameters = self.header_parameters and True
413 self.has_parameters = self.has_query_parameters or \
414 self.has_path_parameters or self.has_header_parameters
415 self.is_binary_response = self.response_class.is_binary
416
417 # Body param is different, since there's at most one
418 self.body_parameter = [
419 p for p in self.parameters if p.is_type('body')]
420 if len(self.body_parameter) > 1:
421 raise SwaggerError("Cannot have more than one body param", context)
422 self.body_parameter = self.body_parameter and self.body_parameter[0]
423 self.has_body_parameter = self.body_parameter and True
424
425 self.summary = op_json.get('summary')
426 self.notes = op_json.get('notes')
427 err_json = op_json.get('errorResponses') or []
428 self.error_responses = [
429 ErrorResponse().load(j, processor, context) for j in err_json]
430 self.has_error_responses = self.error_responses != []
431 processor.process_operation(self, context)
432 return self
433
434
static int len(struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t buflen)
def validate_required_fields(json, required_fields, context)

References Operation.http_method, Operation.load(), Operation.nickname, Operation.nickname_lc, Parameter.required_fields, ErrorResponse.required_fields, Operation.required_fields, Api.required_fields, Property.required_fields, Model.required_fields, ApiDeclaration.required_fields, ResourceApi.required_fields, ResourceListing.required_fields, Operation.response_class, agi_command.since, ast_xml_doc_item.since, ast_app.since, Operation.since, ApiDeclaration.since, and swagger_model.validate_required_fields().

Referenced by Operation.load(), ApiDeclaration.load_file(), and ResourceListing.load_file().

Field Documentation

◆ body_parameter

body_parameter

Definition at line 418 of file swagger_model.py.

◆ error_responses

error_responses

Definition at line 375 of file swagger_model.py.

◆ has_body_parameter

has_body_parameter

Definition at line 423 of file swagger_model.py.

◆ has_error_responses

has_error_responses

Definition at line 430 of file swagger_model.py.

◆ has_header_parameters

has_header_parameters

Definition at line 412 of file swagger_model.py.

◆ has_parameters

has_parameters

Definition at line 413 of file swagger_model.py.

◆ has_path_parameters

has_path_parameters

Definition at line 409 of file swagger_model.py.

◆ has_query_parameters

has_query_parameters

Definition at line 406 of file swagger_model.py.

◆ header_parameters

header_parameters

Definition at line 410 of file swagger_model.py.

◆ http_method

http_method

Definition at line 368 of file swagger_model.py.

Referenced by Operation.load().

◆ is_binary_response

is_binary_response

Definition at line 415 of file swagger_model.py.

◆ is_req

is_req

Definition at line 392 of file swagger_model.py.

◆ is_websocket

is_websocket

Definition at line 391 of file swagger_model.py.

◆ nickname

nickname

Definition at line 369 of file swagger_model.py.

Referenced by Operation.load().

◆ nickname_lc

nickname_lc

Definition at line 370 of file swagger_model.py.

Referenced by Operation.load().

◆ notes

notes

Definition at line 374 of file swagger_model.py.

◆ parameters

parameters

Definition at line 372 of file swagger_model.py.

◆ path_parameters

path_parameters

Definition at line 407 of file swagger_model.py.

◆ query_parameters

query_parameters

Definition at line 404 of file swagger_model.py.

◆ required_fields

list required_fields = ['httpMethod', 'nickname', 'responseClass', 'summary']
static

◆ response_class

response_class

Definition at line 371 of file swagger_model.py.

Referenced by Operation.load().

◆ since

since

Definition at line 376 of file swagger_model.py.

Referenced by Operation.load().

◆ summary

summary

Definition at line 373 of file swagger_model.py.

◆ websocket_protocol

websocket_protocol

Definition at line 395 of file swagger_model.py.


The documentation for this class was generated from the following file: