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
AccountUsersInterface, AccountsInterface, BackupJobsInterface, BackupServicesInterface, BackupsInterface, CatalogItemTypesInterface, CertificateTypesInterface, CertificatesInterface, CredentialsInterface, DeploymentsInterface, IntegrationsInterface, LoadBalancerPoolsInterface, LoadBalancersInterface, NetworkDhcpRelaysInterface, NetworkDhcpServersInterface, NetworkEdgeClustersInterface, NetworkServersInterface, NetworkStaticRoutesInterface, OptionTypeFormsInterface, PluginsInterface, ScaleThresholdsInterface, SecurityPackagesInterface, SecurityScansInterface, StorageServersInterface, StorageVolumesInterface, UsersInterface, VdiAppsInterface, VdiGatewaysInterface, VdiPoolsInterface, VirtualServersInterface
Constant Summary
Constants 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, #account_users, #accounts, #activity, #appliance_settings, #approvals, #apps, #archive_buckets, #archive_files, #audit, #auth, #authorization_required?, #backup_jobs, #backup_restores, #backup_results, #backup_service_types, #backup_services, #backup_settings, #backup_types, #backups, #billing, #blueprints, #budgets, #catalog, #catalog_item_types, #certificate_types, #certificates, #client_id, #client_id=, #clients, #cloud_datastores, #cloud_folders, #cloud_policies, #cloud_resource_pools, #clouds, #clusters, #common_interface_options, #containers, #credential_types, #credentials, #cypher, #dashboard, #datastores, #default_content_type, #default_timeout, #deploy, #deployments, #dry, #dry_run, #email_templates, #environments, #execute, #execute_schedules, #execution_request, #file_copy_request, #forgot, #group_policies, #groups, #guidance, #guidance_settings, #health, #hub, #image_builder, #initialize, #inspect, #instance_types, #instances, #integration_types, #integrations, #interface, #invoice_line_items, #invoices, #jobs, #key_pairs, #library_cluster_layouts, #library_cluster_packages, #library_container_scripts, #library_container_templates, #library_container_types, #library_container_upgrades, #library_instance_types, #library_layouts, #library_operating_systems, #library_spec_template_types, #library_spec_templates, #license, #load_balancer_monitors, #load_balancer_pool_nodes, #load_balancer_pools, #load_balancer_pools_secondary, #load_balancer_profiles, #load_balancer_types, #load_balancer_virtual_servers, #load_balancers, #log_settings, #logged_in?, #login, #logout, #logs, #monitoring, #monitoring_settings, #network_dhcp_relays, #network_dhcp_servers, #network_domain_records, #network_domains, #network_edge_clusters, #network_floating_ips, #network_groups, #network_pool_ips, #network_pool_server_types, #network_pool_servers, #network_pools, #network_proxies, #network_resource_types, #network_routers, #network_security_server_types, #network_security_servers, #network_server_groups, #network_server_services, #network_server_types, #network_servers, #network_services, #network_static_routes, #network_types, #networks, #old_cypher, #option_type_forms, #option_type_lists, #option_types, #options, #packages, #ping, #plugins, #policies, #power_schedules, #price_sets, #prices, #processes, #projects, #provision_types, #provisioning_license_types, #provisioning_licenses, #provisioning_settings, #reports, #resource_pool_groups, #rest, #roles, #scale_thresholds, #search, #security_group_rules, #security_groups, #security_package_types, #security_packages, #security_scans, #server_types, #servers, #service_plans, #set_ssl_verification_enabled, #setopts, #setup, #snapshots, #ssl_verification_enabled?, #storage_providers, #storage_server_types, #storage_servers, #storage_volume_types, #storage_volumes, #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 12 |
# File 'lib/morpheus/api/rest_interface.rb', line 9 def base_path raise "#{self.class} has not defined base_path!" if @options[:base_path].nil? @options[:base_path] end |
#create(payload, params = {}, headers = {}) ⇒ Object
23 24 25 |
# File 'lib/morpheus/api/rest_interface.rb', line 23 def create(payload, params={}, headers={}) execute(method: :post, url: "#{base_path}", params: params, payload: payload, headers: headers) end |
#destroy(id, params = {}, headers = {}) ⇒ Object
32 33 34 35 |
# File 'lib/morpheus/api/rest_interface.rb', line 32 def destroy(id, params = {}, headers={}) validate_id!(id) execute(method: :delete, url: "#{base_path}/#{CGI::escape(id.to_s)}", params: params, headers: headers) end |
#get(id, params = {}, headers = {}) ⇒ Object
18 19 20 21 |
# File 'lib/morpheus/api/rest_interface.rb', line 18 def get(id, params={}, headers={}) validate_id!(id) execute(method: :get, url: "#{base_path}/#{CGI::escape(id.to_s)}", params: params, headers: headers) end |
#list(params = {}, headers = {}) ⇒ Object
14 15 16 |
# File 'lib/morpheus/api/rest_interface.rb', line 14 def list(params={}, headers={}) execute(method: :get, url: "#{base_path}", params: params, headers: headers) end |
#update(id, payload, params = {}, headers = {}) ⇒ Object
27 28 29 30 |
# File 'lib/morpheus/api/rest_interface.rb', line 27 def update(id, payload, params={}, headers={}) validate_id!(id) execute(method: :put, url: "#{base_path}/#{CGI::escape(id.to_s)}", params: params, payload: payload, headers: headers) end |