# (C) Copyright 2014 Riverbed Technology, Inc. # All rights reserved. name: cmc.web-proxy version: "1.0" title: Web proxy service description: REST API for Web proxy service. $schema: 'http://support.riverbed.com/apis/service_def/2.2' id: 'http://support.riverbed.com/apis/cmc.web-proxy/1.0' provider: 'riverbed' types: identifier: description: "Generic numeric identifier" type: integer minimum: 1 readOnly: true hostname: description: "Hostname" type: string pattern: '^((([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9]))?$' maxLength: 255 domain_name: description: 'Domain name' type: string pattern: '^(\*\.)?[0-9A-Za-z](([0-9A-Za-z]|-){0,61}[0-9A-Za-z])?(\.[0-9A-Za-z](([0-9A-Za-z]|-){0,61}[0-9A-Za-z])?)*\.?$' minLength: 3 maxLength: 253 domain_state: type: string description: 'Optimization state of the domain' enum: ['white', 'black', 'grey'] poller_response: type: object properties: poll_req_id: type: integer description: Request ID registered with poller serial: type: string description: Appliance from which response is received. poll_time: type: integer description: Time when resource was polled, in seconds since the UNIX epoch. resp_data: type: string description: Response from the polled request. resources: global_config: description: "Global Web proxy configuration" type: object additionalProperties: False required: [enabled, https_enabled, audit_log] properties: enabled: type: boolean description: "Enable Web proxy." https_enabled: type: boolean description: "Enable HTTPS optimization for Web proxy." audit_log: description: 'Audit log (syslog) settings' type: object additionalProperties: false required: [audit_log_enabled] properties: audit_log_enabled: description: 'Enable/disable remote logging for the HTTP/S traffic.' type: boolean default: False format: description: 'The log format for HTTP/S traffic' type: string enum: ["CLF"] remote_address: $ref: '#/types/hostname' remote_port: description: 'Remote port' type: integer minimum: 0 maximum: 65535 default: 514 links: self: path: "$/global_config" get: method: GET response: $ref: '#/resources/global_config' set: method: PUT request: $ref: '#/resources/global_config' response: $ref: '#/resources/global_config' ssl_domain: description: "Domain in ssl_domains " type: object additionalProperties: false required: [name, state] properties: id: $merge: source: { $ref: '#/types/identifier' } with: { readOnly: true } name: $ref: '#/types/domain_name' state: $ref: '#/types/domain_state' relations: instances: resource: '#/resources/ssl_domains' links: self: path: "$/ssl_domains/items/{id}" get: method: GET response: $ref: '#/resources/ssl_domain' set: method: PUT request: $ref: '#/resources/ssl_domain' response: $ref: '#/resources/ssl_domain' delete: method: DELETE ssl_domains: description: "List of domains associated with SSL optimization" type: array items: $merge: source: { $ref: '#/resources/ssl_domain'} with: relations: full: resource: '#/resources/ssl_domain' vars: {id: "0/id"} links: self: path: "$/ssl_domains" params: name: $ref: '#/types/domain_name' state: $ref: '#/types/domain_state' get: method: GET response: $ref: '#/resources/ssl_domains' create: method: POST request: $ref: '#/resources/ssl_domain' response: $ref: '#/resources/ssl_domain' set: method: PUT request: $ref: '#/resources/ssl_domains' response: $ref: '#/resources/ssl_domains' site_configs: description: "List of site_configs" type: array items: $merge: source: { $ref: '#/resources/site_config'} with: relations: full: resource: '#/resources/site_config' vars: {id: "0/id"} links: self: path: "$/site_configs" params: site_id: $ref: '#/types/identifier' site_type_id: $ref: '#/types/identifier' create: method: POST request: $ref: '#/resources/site_config' response: $ref: '#/resources/site_config' get: method: GET response: $ref: '#/resources/site_configs' site_config: description: "Site specific Web proxy configuration" type: object additionalProperties: false required: [enabled, https_enabled] properties: id: $merge: source: { $ref: '#/types/identifier' } with: { readOnly: true } site_id: type: integer description: "Site ID" site_type_id: type: integer description: "Site type ID" enabled: type: boolean description: "Enable Web proxy." https_enabled: type: boolean description: "Enable HTTPS Web proxy." oneOf: - type: object required: [site_id] - type: object required: [site_type_id] relations: instances: resource: '#/resources/site_configs' links: self: path: "$/site_configs/items/{id}" get: method: GET response: $ref: '#/resources/site_config' set: method: PUT request: $ref: '#/resources/site_config' response: $ref: '#/resources/site_config' delete: method: DELETE poller: type: object description: Temporary callback for statistics poll requests. required: [ poll_req_id, serial, poll_time, resp_data ] links: self: path: "$/poller_callback" callback: method: POST description: Callback to get polled response. request: $ref: '#/types/poller_response'