Class: Morpheus::RestInterface
- Defined in:
- lib/morpheus/api/rest_interface.rb
Overview
Interface class to be subclassed by interfaces that provide CRUD endpoints Subclasses must override the base_path method
Direct Known Subclasses
BackupJobsInterface, BackupsInterface, CatalogItemTypesInterface, CertificateTypesInterface, CertificatesInterface, DeploymentsInterface, IntegrationsInterface, VdiAppsInterface, VdiGatewaysInterface, VdiPoolsInterface
Constant Summary
Constants inherited from APIClient
Instance Attribute Summary
Attributes inherited from APIClient
Instance Method Summary collapse
-
#base_path ⇒ Object
subclasses should override in your interface Example: “/api/things”.
- #create(payload, params = {}, headers = {}) ⇒ Object
- #destroy(id, params = {}, headers = {}) ⇒ Object
- #get(id, params = {}, headers = {}) ⇒ Object
- #list(params = {}, headers = {}) ⇒ Object
- #update(id, payload, params = {}, headers = {}) ⇒ Object
Methods inherited from APIClient
#account_groups, #accounts, #activity, #appliance_settings, #approvals, #apps, #archive_buckets, #archive_files, #auth, #authorization_required?, #backup_jobs, #backup_settings, #backups, #billing, #blueprints, #budgets, #catalog, #catalog_item_types, #certificate_types, #certificates, #cloud_datastores, #cloud_folders, #cloud_policies, #cloud_resource_pools, #clouds, #clusters, #common_interface_options, #containers, #cypher, #dashboard, #datastores, #default_content_type, #default_timeout, #deploy, #deployments, #doc, #dry, #dry_run, #environments, #execute, #execute_schedules, #execution_request, #file_copy_request, #forgot, #group_policies, #groups, #guidance, #health, #image_builder, #initialize, #inspect, #instance_types, #instances, #integration_types, #integrations, #invoice_line_items, #invoices, #jobs, #key_pairs, #library_cluster_layouts, #library_container_scripts, #library_container_templates, #library_container_types, #library_container_upgrades, #library_instance_types, #library_layouts, #library_spec_template_types, #library_spec_templates, #license, #load_balancers, #log_settings, #logged_in?, #login, #logout, #logs, #monitoring, #network_domain_records, #network_domains, #network_groups, #network_pool_ips, #network_pool_servers, #network_pools, #network_proxies, #network_routers, #network_security_servers, #network_services, #network_types, #networks, #old_cypher, #option_type_lists, #option_types, #options, #packages, #ping, #policies, #power_schedules, #price_sets, #prices, #processes, #projects, #provision_types, #provisioning_license_types, #provisioning_licenses, #provisioning_settings, #reports, #roles, #search, #security_group_rules, #security_groups, #server_types, #servers, #service_plans, #set_ssl_verification_enabled, #setopts, #setup, #ssl_verification_enabled?, #storage_providers, #subnet_types, #subnets, #task_sets, #tasks, #to_s, #url, #usage, #use_refresh_token, #user_groups, #user_settings, #user_sources, #users, #vdi, #vdi_allocations, #vdi_apps, #vdi_gateways, #vdi_pools, #virtual_images, #whitelabel_settings, #whoami, #wiki, #withopts
Constructor Details
This class inherits a constructor from Morpheus::APIClient
Instance Method Details
#base_path ⇒ Object
subclasses should override in your interface Example: “/api/things”
9 10 11 |
# File 'lib/morpheus/api/rest_interface.rb', line 9 def base_path raise "#{self.class} has not defined base_path!" end |
#create(payload, params = {}, headers = {}) ⇒ Object
22 23 24 |
# File 'lib/morpheus/api/rest_interface.rb', line 22 def create(payload, params={}, headers={}) execute(method: :post, url: "#{base_path}", params: params, payload: payload, headers: headers) end |
#destroy(id, params = {}, headers = {}) ⇒ Object
31 32 33 34 |
# File 'lib/morpheus/api/rest_interface.rb', line 31 def destroy(id, params = {}, headers={}) validate_id!(id) execute(method: :delete, url: "#{base_path}/#{id}", params: params, headers: headers) end |
#get(id, params = {}, headers = {}) ⇒ Object
17 18 19 20 |
# File 'lib/morpheus/api/rest_interface.rb', line 17 def get(id, params={}, headers={}) validate_id!(id) execute(method: :get, url: "#{base_path}/#{id}", params: params, headers: headers) end |
#list(params = {}, headers = {}) ⇒ Object
13 14 15 |
# File 'lib/morpheus/api/rest_interface.rb', line 13 def list(params={}, headers={}) execute(method: :get, url: "#{base_path}", params: params, headers: headers) end |
#update(id, payload, params = {}, headers = {}) ⇒ Object
26 27 28 29 |
# File 'lib/morpheus/api/rest_interface.rb', line 26 def update(id, payload, params={}, headers={}) validate_id!(id) execute(method: :put, url: "#{base_path}/#{id}", params: params, payload: payload, headers: headers) end |