petstroepack 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/LICENSE +28 -0
- data/README.md +86 -0
- data/lib/ctd_documentation/api_helper.rb +10 -0
- data/lib/ctd_documentation/client.rb +140 -0
- data/lib/ctd_documentation/configuration.rb +103 -0
- data/lib/ctd_documentation/controllers/activities_controller.rb +69 -0
- data/lib/ctd_documentation/controllers/alerts_controller.rb +170 -0
- data/lib/ctd_documentation/controllers/assets_controller.rb +409 -0
- data/lib/ctd_documentation/controllers/base_controller.rb +65 -0
- data/lib/ctd_documentation/controllers/custom_attributes_categories_controller.rb +50 -0
- data/lib/ctd_documentation/controllers/events_controller.rb +67 -0
- data/lib/ctd_documentation/controllers/groups_controller.rb +28 -0
- data/lib/ctd_documentation/controllers/insights_controller.rb +111 -0
- data/lib/ctd_documentation/controllers/license_controller.rb +73 -0
- data/lib/ctd_documentation/controllers/login_controller.rb +31 -0
- data/lib/ctd_documentation/controllers/queries_controller.rb +128 -0
- data/lib/ctd_documentation/controllers/sensors_controller.rb +26 -0
- data/lib/ctd_documentation/controllers/sites_controller.rb +39 -0
- data/lib/ctd_documentation/controllers/tasks_controller.rb +148 -0
- data/lib/ctd_documentation/controllers/tasks_queries_controller.rb +29 -0
- data/lib/ctd_documentation/controllers/users_controller.rb +28 -0
- data/lib/ctd_documentation/exceptions/api_exception.rb +10 -0
- data/lib/ctd_documentation/exceptions/auth_authenticate401_error_exception.rb +48 -0
- data/lib/ctd_documentation/http/auth/custom_header_auth.rb +25 -0
- data/lib/ctd_documentation/http/http_call_back.rb +10 -0
- data/lib/ctd_documentation/http/http_method_enum.rb +10 -0
- data/lib/ctd_documentation/http/http_request.rb +10 -0
- data/lib/ctd_documentation/http/http_response.rb +10 -0
- data/lib/ctd_documentation/models/actionable.rb +70 -0
- data/lib/ctd_documentation/models/actionable_asset.rb +80 -0
- data/lib/ctd_documentation/models/actionable_cap.rb +80 -0
- data/lib/ctd_documentation/models/actionable_information.rb +80 -0
- data/lib/ctd_documentation/models/actionable_policy.rb +361 -0
- data/lib/ctd_documentation/models/actionable_related_asset.rb +142 -0
- data/lib/ctd_documentation/models/active_history.rb +311 -0
- data/lib/ctd_documentation/models/activities_object.rb +150 -0
- data/lib/ctd_documentation/models/activities_response.rb +100 -0
- data/lib/ctd_documentation/models/activity.rb +150 -0
- data/lib/ctd_documentation/models/add_license_response.rb +79 -0
- data/lib/ctd_documentation/models/alert.rb +455 -0
- data/lib/ctd_documentation/models/alert_severity_enum.rb +23 -0
- data/lib/ctd_documentation/models/asset.rb +527 -0
- data/lib/ctd_documentation/models/assets_with_insights.rb +252 -0
- data/lib/ctd_documentation/models/assets_with_insights_response.rb +90 -0
- data/lib/ctd_documentation/models/authenticate.rb +57 -0
- data/lib/ctd_documentation/models/base_model.rb +58 -0
- data/lib/ctd_documentation/models/base_task.rb +198 -0
- data/lib/ctd_documentation/models/cap.rb +90 -0
- data/lib/ctd_documentation/models/code_sections.rb +70 -0
- data/lib/ctd_documentation/models/content_type_enum.rb +14 -0
- data/lib/ctd_documentation/models/create_a_new_query.rb +57 -0
- data/lib/ctd_documentation/models/create_a_new_query_response.rb +57 -0
- data/lib/ctd_documentation/models/create_group_response.rb +48 -0
- data/lib/ctd_documentation/models/create_user_response.rb +48 -0
- data/lib/ctd_documentation/models/createanewtask.rb +57 -0
- data/lib/ctd_documentation/models/createanewtask_response.rb +57 -0
- data/lib/ctd_documentation/models/ctd_login_exception.rb +81 -0
- data/lib/ctd_documentation/models/ctd_login_response.rb +101 -0
- data/lib/ctd_documentation/models/custom_attribute_category.rb +90 -0
- data/lib/ctd_documentation/models/db_statistics.rb +50 -0
- data/lib/ctd_documentation/models/delete_a_query_response.rb +48 -0
- data/lib/ctd_documentation/models/delete_a_task_response.rb +48 -0
- data/lib/ctd_documentation/models/destination_virtual_zone.rb +60 -0
- data/lib/ctd_documentation/models/detail.rb +60 -0
- data/lib/ctd_documentation/models/discovery_params.rb +82 -0
- data/lib/ctd_documentation/models/entity.rb +70 -0
- data/lib/ctd_documentation/models/event.rb +175 -0
- data/lib/ctd_documentation/models/find_asset_by_id_response.rb +547 -0
- data/lib/ctd_documentation/models/format1_enum.rb +22 -0
- data/lib/ctd_documentation/models/format_enum.rb +20 -0
- data/lib/ctd_documentation/models/get_active_detection_history_response.rb +90 -0
- data/lib/ctd_documentation/models/get_alerts_response.rb +90 -0
- data/lib/ctd_documentation/models/get_all_sites_response.rb +90 -0
- data/lib/ctd_documentation/models/get_assets_response.rb +90 -0
- data/lib/ctd_documentation/models/get_custom_attribute_categories_response.rb +90 -0
- data/lib/ctd_documentation/models/get_events_response.rb +90 -0
- data/lib/ctd_documentation/models/get_license_details_response.rb +81 -0
- data/lib/ctd_documentation/models/get_queries_ids_and_assigned_task_response.rb +70 -0
- data/lib/ctd_documentation/models/get_queries_response.rb +90 -0
- data/lib/ctd_documentation/models/get_tasks_response.rb +90 -0
- data/lib/ctd_documentation/models/get_types_response.rb +57 -0
- data/lib/ctd_documentation/models/group.rb +73 -0
- data/lib/ctd_documentation/models/identifiable.rb +70 -0
- data/lib/ctd_documentation/models/indicator_info.rb +90 -0
- data/lib/ctd_documentation/models/indicators.rb +122 -0
- data/lib/ctd_documentation/models/information.rb +183 -0
- data/lib/ctd_documentation/models/insight_status_enum.rb +20 -0
- data/lib/ctd_documentation/models/insight_status_exact1_enum.rb +21 -0
- data/lib/ctd_documentation/models/insight_status_exact_enum.rb +20 -0
- data/lib/ctd_documentation/models/license_request.rb +48 -0
- data/lib/ctd_documentation/models/network.rb +80 -0
- data/lib/ctd_documentation/models/new_queryobject.rb +199 -0
- data/lib/ctd_documentation/models/new_taskobject.rb +199 -0
- data/lib/ctd_documentation/models/object.rb +70 -0
- data/lib/ctd_documentation/models/paginated_response.rb +71 -0
- data/lib/ctd_documentation/models/policy.rb +331 -0
- data/lib/ctd_documentation/models/queryextraparams.rb +60 -0
- data/lib/ctd_documentation/models/ranger_system_check_response.rb +57 -0
- data/lib/ctd_documentation/models/risk_vector.rb +89 -0
- data/lib/ctd_documentation/models/selection_params.rb +58 -0
- data/lib/ctd_documentation/models/selection_params1.rb +80 -0
- data/lib/ctd_documentation/models/site.rb +256 -0
- data/lib/ctd_documentation/models/site_list_slim_enum.rb +14 -0
- data/lib/ctd_documentation/models/slim_insight.rb +139 -0
- data/lib/ctd_documentation/models/sort1_enum.rb +65 -0
- data/lib/ctd_documentation/models/sort31_enum.rb +59 -0
- data/lib/ctd_documentation/models/sort3_enum.rb +59 -0
- data/lib/ctd_documentation/models/sort41_enum.rb +41 -0
- data/lib/ctd_documentation/models/sort4_enum.rb +41 -0
- data/lib/ctd_documentation/models/sort5_enum.rb +35 -0
- data/lib/ctd_documentation/models/sort6_enum.rb +41 -0
- data/lib/ctd_documentation/models/sort_enum.rb +125 -0
- data/lib/ctd_documentation/models/source_virtual_zone.rb +60 -0
- data/lib/ctd_documentation/models/special_hint_enum.rb +26 -0
- data/lib/ctd_documentation/models/special_hint_exact_enum.rb +26 -0
- data/lib/ctd_documentation/models/status_enum.rb +17 -0
- data/lib/ctd_documentation/models/status_exact_enum.rb +23 -0
- data/lib/ctd_documentation/models/subnet.rb +50 -0
- data/lib/ctd_documentation/models/task.rb +281 -0
- data/lib/ctd_documentation/models/taskextraparams.rb +71 -0
- data/lib/ctd_documentation/models/update_a_single_query_response.rb +57 -0
- data/lib/ctd_documentation/models/update_a_single_task_response.rb +57 -0
- data/lib/ctd_documentation/models/update_license_response.rb +79 -0
- data/lib/ctd_documentation/models/user.rb +88 -0
- data/lib/ctd_documentation/models/virtual_zones.rb +118 -0
- data/lib/ctd_documentation/utilities/date_time_helper.rb +11 -0
- data/lib/ctd_documentation/utilities/file_wrapper.rb +16 -0
- data/lib/ctd_documentation.rb +155 -0
- data/test/controllers/controller_test_base.rb +29 -0
- data/test/controllers/test_activities_controller.rb +64 -0
- data/test/controllers/test_alerts_controller.rb +16 -0
- data/test/controllers/test_assets_controller.rb +79 -0
- data/test/controllers/test_custom_attributes_categories_controller.rb +52 -0
- data/test/controllers/test_events_controller.rb +55 -0
- data/test/controllers/test_login_controller.rb +45 -0
- data/test/controllers/test_queries_controller.rb +292 -0
- data/test/controllers/test_sites_controller.rb +53 -0
- data/test/controllers/test_tasks_controller.rb +250 -0
- data/test/http_response_catcher.rb +19 -0
- metadata +259 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 105ac697134f4526a5c84c7f9e6e2468094409e47322bb7565df6a6b6d66f113
|
|
4
|
+
data.tar.gz: a4dfa7bdbc8668a5dfc4454ca1bb99666c325bf0a90ada030fc5937f528b0ecc
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 0f220bbef825602fd490256ec8e713a334718cf1b468f68222d6bfcb9fc5689a8d829bb0563c0a9ff3eda26f11ce05669d09df7cdfb1a4384f1d56051d3c395f
|
|
7
|
+
data.tar.gz: '059030aee21bc5d365b556c4862154a004e7dff39df2f396c7478004ed1daa28130e639ce473c3f74f052c3114ae3fb59075e6c8500b6829b3a534959eccd5b9'
|
data/LICENSE
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
License:
|
|
2
|
+
========
|
|
3
|
+
The MIT License (MIT)
|
|
4
|
+
http://opensource.org/licenses/MIT
|
|
5
|
+
|
|
6
|
+
Copyright (c) 2014 - 2023 APIMATIC Limited
|
|
7
|
+
|
|
8
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
9
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
10
|
+
in the Software without restriction, including without limitation the rights
|
|
11
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
12
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
13
|
+
furnished to do so, subject to the following conditions:
|
|
14
|
+
|
|
15
|
+
The above copyright notice and this permission notice shall be included in
|
|
16
|
+
all copies or substantial portions of the Software.
|
|
17
|
+
|
|
18
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
19
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
20
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
21
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
22
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
23
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
24
|
+
THE SOFTWARE.
|
|
25
|
+
|
|
26
|
+
Trade Mark:
|
|
27
|
+
==========
|
|
28
|
+
APIMATIC is a trade mark for APIMATIC Limited
|
data/README.md
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
|
|
2
|
+
# Getting Started with CTD - Documentation
|
|
3
|
+
|
|
4
|
+
## Install the Package
|
|
5
|
+
|
|
6
|
+
Install the gem from the command line:
|
|
7
|
+
|
|
8
|
+
```ruby
|
|
9
|
+
gem install petstroepack -v 1.0.0
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
Or add the gem to your Gemfile and run `bundle`:
|
|
13
|
+
|
|
14
|
+
```ruby
|
|
15
|
+
gem 'petstroepack', '1.0.0'
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
For additional gem details, see the [RubyGems page for the petstroepack gem](https://rubygems.org/gems/petstroepack/versions/1.0.0).
|
|
19
|
+
|
|
20
|
+
## Test the SDK
|
|
21
|
+
|
|
22
|
+
To run the tests, navigate to the root directory of the SDK in your terminal and execute the following command:
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
rake
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Initialize the API Client
|
|
29
|
+
|
|
30
|
+
**_Note:_** Documentation for the client can be found [here.](doc/client.md)
|
|
31
|
+
|
|
32
|
+
The following parameters are configurable for the API Client:
|
|
33
|
+
|
|
34
|
+
| Parameter | Type | Description |
|
|
35
|
+
| --- | --- | --- |
|
|
36
|
+
| `host` | `String` | *Default*: `'HostValue'` |
|
|
37
|
+
| `environment` | Environment | The API environment. <br> **Default: `Environment.PRODUCTION`** |
|
|
38
|
+
| `connection` | `Faraday::Connection` | The Faraday connection object passed by the SDK user for making requests |
|
|
39
|
+
| `adapter` | `Faraday::Adapter` | The Faraday adapter object passed by the SDK user for performing http requests |
|
|
40
|
+
| `timeout` | `Float` | The value to use for connection timeout. <br> **Default: 60** |
|
|
41
|
+
| `max_retries` | `Integer` | The number of times to retry an endpoint call if it fails. <br> **Default: 0** |
|
|
42
|
+
| `retry_interval` | `Float` | Pause in seconds between retries. <br> **Default: 1** |
|
|
43
|
+
| `backoff_factor` | `Float` | The amount to multiply each successive retry's interval amount by in order to provide backoff. <br> **Default: 2** |
|
|
44
|
+
| `retry_statuses` | `Array` | A list of HTTP statuses to retry. <br> **Default: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524]** |
|
|
45
|
+
| `retry_methods` | `Array` | A list of HTTP methods to retry. <br> **Default: %i[get put]** |
|
|
46
|
+
| `http_callback` | `HttpCallBack` | The Http CallBack allows defining callables for pre and post API calls. |
|
|
47
|
+
| `authorization` | `String` | |
|
|
48
|
+
|
|
49
|
+
The API client can be initialized as follows:
|
|
50
|
+
|
|
51
|
+
```ruby
|
|
52
|
+
client = CtdDocumentation::Client.new(
|
|
53
|
+
authorization: 'Authorization',
|
|
54
|
+
environment: Environment::PRODUCTION,
|
|
55
|
+
host: 'HostValue'
|
|
56
|
+
)
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Authorization
|
|
60
|
+
|
|
61
|
+
This API uses `Custom Header Signature`.
|
|
62
|
+
|
|
63
|
+
## List of APIs
|
|
64
|
+
|
|
65
|
+
* [Tasks Queries](doc/controllers/tasks-queries.md)
|
|
66
|
+
* [Custom Attributes Categories](doc/controllers/custom-attributes-categories.md)
|
|
67
|
+
* [Login](doc/controllers/login.md)
|
|
68
|
+
* [Assets](doc/controllers/assets.md)
|
|
69
|
+
* [Alerts](doc/controllers/alerts.md)
|
|
70
|
+
* [Tasks](doc/controllers/tasks.md)
|
|
71
|
+
* [Queries](doc/controllers/queries.md)
|
|
72
|
+
* [Insights](doc/controllers/insights.md)
|
|
73
|
+
* [Sites](doc/controllers/sites.md)
|
|
74
|
+
* [Activities](doc/controllers/activities.md)
|
|
75
|
+
* [License](doc/controllers/license.md)
|
|
76
|
+
* [Users](doc/controllers/users.md)
|
|
77
|
+
* [Groups](doc/controllers/groups.md)
|
|
78
|
+
* [Sensors](doc/controllers/sensors.md)
|
|
79
|
+
* [Events](doc/controllers/events.md)
|
|
80
|
+
|
|
81
|
+
## Classes Documentation
|
|
82
|
+
|
|
83
|
+
* [Utility Classes](doc/utility-classes.md)
|
|
84
|
+
* [HttpResponse](doc/http-response.md)
|
|
85
|
+
* [HttpRequest](doc/http-request.md)
|
|
86
|
+
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
# ctd_documentation
|
|
2
|
+
#
|
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
|
4
|
+
# ( https://apimatic.io ).
|
|
5
|
+
|
|
6
|
+
module CtdDocumentation
|
|
7
|
+
# ctd_documentation client class.
|
|
8
|
+
class Client
|
|
9
|
+
attr_reader :config, :auth_managers
|
|
10
|
+
|
|
11
|
+
# Access to login controller.
|
|
12
|
+
# @return [LoginController] Returns the controller instance.
|
|
13
|
+
def login
|
|
14
|
+
@login ||= LoginController.new @global_configuration
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# Access to assets controller.
|
|
18
|
+
# @return [AssetsController] Returns the controller instance.
|
|
19
|
+
def assets
|
|
20
|
+
@assets ||= AssetsController.new @global_configuration
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# Access to alerts controller.
|
|
24
|
+
# @return [AlertsController] Returns the controller instance.
|
|
25
|
+
def alerts
|
|
26
|
+
@alerts ||= AlertsController.new @global_configuration
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# Access to tasks controller.
|
|
30
|
+
# @return [TasksController] Returns the controller instance.
|
|
31
|
+
def tasks
|
|
32
|
+
@tasks ||= TasksController.new @global_configuration
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# Access to tasks_queries controller.
|
|
36
|
+
# @return [TasksQueriesController] Returns the controller instance.
|
|
37
|
+
def tasks_queries
|
|
38
|
+
@tasks_queries ||= TasksQueriesController.new @global_configuration
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# Access to queries controller.
|
|
42
|
+
# @return [QueriesController] Returns the controller instance.
|
|
43
|
+
def queries
|
|
44
|
+
@queries ||= QueriesController.new @global_configuration
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
# Access to insights controller.
|
|
48
|
+
# @return [InsightsController] Returns the controller instance.
|
|
49
|
+
def insights
|
|
50
|
+
@insights ||= InsightsController.new @global_configuration
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
# Access to sites controller.
|
|
54
|
+
# @return [SitesController] Returns the controller instance.
|
|
55
|
+
def sites
|
|
56
|
+
@sites ||= SitesController.new @global_configuration
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# Access to activities controller.
|
|
60
|
+
# @return [ActivitiesController] Returns the controller instance.
|
|
61
|
+
def activities
|
|
62
|
+
@activities ||= ActivitiesController.new @global_configuration
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# Access to license controller.
|
|
66
|
+
# @return [LicenseController] Returns the controller instance.
|
|
67
|
+
def license
|
|
68
|
+
@license ||= LicenseController.new @global_configuration
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
# Access to users controller.
|
|
72
|
+
# @return [UsersController] Returns the controller instance.
|
|
73
|
+
def users
|
|
74
|
+
@users ||= UsersController.new @global_configuration
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
# Access to groups controller.
|
|
78
|
+
# @return [GroupsController] Returns the controller instance.
|
|
79
|
+
def groups
|
|
80
|
+
@groups ||= GroupsController.new @global_configuration
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
# Access to sensors controller.
|
|
84
|
+
# @return [SensorsController] Returns the controller instance.
|
|
85
|
+
def sensors
|
|
86
|
+
@sensors ||= SensorsController.new @global_configuration
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
# Access to custom_attributes_categories controller.
|
|
90
|
+
# @return [CustomAttributesCategoriesController] Returns the controller instance.
|
|
91
|
+
def custom_attributes_categories
|
|
92
|
+
@custom_attributes_categories ||= CustomAttributesCategoriesController.new @global_configuration
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
# Access to events controller.
|
|
96
|
+
# @return [EventsController] Returns the controller instance.
|
|
97
|
+
def events
|
|
98
|
+
@events ||= EventsController.new @global_configuration
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
def initialize(connection: nil, adapter: :net_http_persistent, timeout: 60,
|
|
102
|
+
max_retries: 0, retry_interval: 1, backoff_factor: 2,
|
|
103
|
+
retry_statuses: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524],
|
|
104
|
+
retry_methods: %i[get put], http_callback: nil,
|
|
105
|
+
environment: Environment::PRODUCTION, host: 'HostValue',
|
|
106
|
+
authorization: 'TODO: Replace', config: nil)
|
|
107
|
+
@config = if config.nil?
|
|
108
|
+
Configuration.new(connection: connection, adapter: adapter,
|
|
109
|
+
timeout: timeout, max_retries: max_retries,
|
|
110
|
+
retry_interval: retry_interval,
|
|
111
|
+
backoff_factor: backoff_factor,
|
|
112
|
+
retry_statuses: retry_statuses,
|
|
113
|
+
retry_methods: retry_methods,
|
|
114
|
+
http_callback: http_callback,
|
|
115
|
+
environment: environment, host: host,
|
|
116
|
+
authorization: authorization)
|
|
117
|
+
else
|
|
118
|
+
config
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
@global_configuration = GlobalConfiguration.new(client_configuration: @config)
|
|
122
|
+
.base_uri_executor(@config.method(:get_base_uri))
|
|
123
|
+
.global_errors(BaseController::GLOBAL_ERRORS)
|
|
124
|
+
.user_agent(BaseController.user_agent)
|
|
125
|
+
.sdk_module(CtdDocumentation)
|
|
126
|
+
|
|
127
|
+
initialize_auth_managers(@global_configuration)
|
|
128
|
+
@global_configuration = @global_configuration.auth_managers(@auth_managers)
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
# Initializes the auth managers hash used for authenticating API calls.
|
|
132
|
+
# @param [GlobalConfiguration] global_config The global configuration of the SDK)
|
|
133
|
+
def initialize_auth_managers(global_config)
|
|
134
|
+
@auth_managers = {}
|
|
135
|
+
http_client_config = global_config.client_configuration
|
|
136
|
+
['global'].each { |auth| @auth_managers[auth] = nil }
|
|
137
|
+
@auth_managers['global'] = CustomHeaderAuth.new(http_client_config.authorization)
|
|
138
|
+
end
|
|
139
|
+
end
|
|
140
|
+
end
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# ctd_documentation
|
|
2
|
+
#
|
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
|
4
|
+
# ( https://apimatic.io ).
|
|
5
|
+
|
|
6
|
+
module CtdDocumentation
|
|
7
|
+
# An enum for SDK environments.
|
|
8
|
+
class Environment
|
|
9
|
+
ENVIRONMENT = [
|
|
10
|
+
PRODUCTION = 'production'.freeze
|
|
11
|
+
].freeze
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# An enum for API servers.
|
|
15
|
+
class Server
|
|
16
|
+
SERVER = [
|
|
17
|
+
DEFAULT = 'default'.freeze
|
|
18
|
+
].freeze
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# All configuration including auth info and base URI for the API access
|
|
22
|
+
# are configured in this class.
|
|
23
|
+
class Configuration < CoreLibrary::HttpClientConfiguration
|
|
24
|
+
# The attribute readers for properties.
|
|
25
|
+
attr_reader :environment, :host, :authorization
|
|
26
|
+
|
|
27
|
+
class << self
|
|
28
|
+
attr_reader :environments
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def initialize(connection: nil, adapter: :net_http_persistent, timeout: 60,
|
|
32
|
+
max_retries: 0, retry_interval: 1, backoff_factor: 2,
|
|
33
|
+
retry_statuses: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524],
|
|
34
|
+
retry_methods: %i[get put], http_callback: nil,
|
|
35
|
+
environment: Environment::PRODUCTION, host: 'HostValue',
|
|
36
|
+
authorization: 'TODO: Replace')
|
|
37
|
+
|
|
38
|
+
super connection: connection, adapter: adapter, timeout: timeout,
|
|
39
|
+
max_retries: max_retries, retry_interval: retry_interval,
|
|
40
|
+
backoff_factor: backoff_factor, retry_statuses: retry_statuses,
|
|
41
|
+
retry_methods: retry_methods, http_callback: http_callback
|
|
42
|
+
|
|
43
|
+
# Current API environment
|
|
44
|
+
@environment = String(environment)
|
|
45
|
+
|
|
46
|
+
# host value
|
|
47
|
+
@host = host
|
|
48
|
+
|
|
49
|
+
# TODO: Replace
|
|
50
|
+
@authorization = authorization
|
|
51
|
+
|
|
52
|
+
# The Http Client to use for making requests.
|
|
53
|
+
set_http_client CoreLibrary::FaradayClient.new(self)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def clone_with(connection: nil, adapter: nil, timeout: nil,
|
|
57
|
+
max_retries: nil, retry_interval: nil, backoff_factor: nil,
|
|
58
|
+
retry_statuses: nil, retry_methods: nil, http_callback: nil,
|
|
59
|
+
environment: nil, host: nil, authorization: nil)
|
|
60
|
+
connection ||= self.connection
|
|
61
|
+
adapter ||= self.adapter
|
|
62
|
+
timeout ||= self.timeout
|
|
63
|
+
max_retries ||= self.max_retries
|
|
64
|
+
retry_interval ||= self.retry_interval
|
|
65
|
+
backoff_factor ||= self.backoff_factor
|
|
66
|
+
retry_statuses ||= self.retry_statuses
|
|
67
|
+
retry_methods ||= self.retry_methods
|
|
68
|
+
http_callback ||= self.http_callback
|
|
69
|
+
environment ||= self.environment
|
|
70
|
+
host ||= self.host
|
|
71
|
+
authorization ||= self.authorization
|
|
72
|
+
|
|
73
|
+
Configuration.new(connection: connection, adapter: adapter,
|
|
74
|
+
timeout: timeout, max_retries: max_retries,
|
|
75
|
+
retry_interval: retry_interval,
|
|
76
|
+
backoff_factor: backoff_factor,
|
|
77
|
+
retry_statuses: retry_statuses,
|
|
78
|
+
retry_methods: retry_methods,
|
|
79
|
+
http_callback: http_callback, environment: environment,
|
|
80
|
+
host: host, authorization: authorization)
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
# All the environments the SDK can run in.
|
|
84
|
+
ENVIRONMENTS = {
|
|
85
|
+
Environment::PRODUCTION => {
|
|
86
|
+
Server::DEFAULT => 'https://{Host}'
|
|
87
|
+
}
|
|
88
|
+
}.freeze
|
|
89
|
+
|
|
90
|
+
# Generates the appropriate base URI for the environment and the server.
|
|
91
|
+
# @param [Configuration::Server] server The server enum for which the base URI is
|
|
92
|
+
# required.
|
|
93
|
+
# @return [String] The base URI.
|
|
94
|
+
def get_base_uri(server = Server::DEFAULT)
|
|
95
|
+
parameters = {
|
|
96
|
+
'Host' => { 'value' => host, 'encode' => false }
|
|
97
|
+
}
|
|
98
|
+
APIHelper.append_url_with_template_parameters(
|
|
99
|
+
ENVIRONMENTS[environment][server], parameters
|
|
100
|
+
)
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
end
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# ctd_documentation
|
|
2
|
+
#
|
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
|
4
|
+
# ( https://apimatic.io ).
|
|
5
|
+
|
|
6
|
+
module CtdDocumentation
|
|
7
|
+
# ActivitiesController
|
|
8
|
+
class ActivitiesController < BaseController
|
|
9
|
+
# Get Activities
|
|
10
|
+
# @param [Integer] page Optional parameter: Example:
|
|
11
|
+
# @param [Integer] per_page Optional parameter: Example:
|
|
12
|
+
# @param [String] alert_id__exact Optional parameter: Example:
|
|
13
|
+
# @param [String] asset_reference__exact Optional parameter: Example:
|
|
14
|
+
# @param [String] baseline__exact Optional parameter: Example:
|
|
15
|
+
# @param [String] site__exact Optional parameter: Example:
|
|
16
|
+
# @param [String] asset__exact Optional parameter: Example:
|
|
17
|
+
# @param [String] message__exact Optional parameter: Example:
|
|
18
|
+
# @param [String] comment__exact Optional parameter: Example:
|
|
19
|
+
# @param [Integer] id__exact Optional parameter: Example:
|
|
20
|
+
# @param [Integer] site_id__exact Optional parameter: Example:
|
|
21
|
+
# @param [Integer] type__exact Optional parameter: Example:
|
|
22
|
+
# @param [String] timestamp__exact Optional parameter: Example:
|
|
23
|
+
# @param [Integer] user_id__exact Optional parameter: Example:
|
|
24
|
+
# @param [Sort41Enum] sort Optional parameter: Sort order: add - for
|
|
25
|
+
# descending order
|
|
26
|
+
# @return [ActivitiesResponse] response from the API call
|
|
27
|
+
def get_activities(page: nil,
|
|
28
|
+
per_page: nil,
|
|
29
|
+
alert_id__exact: nil,
|
|
30
|
+
asset_reference__exact: nil,
|
|
31
|
+
baseline__exact: nil,
|
|
32
|
+
site__exact: nil,
|
|
33
|
+
asset__exact: nil,
|
|
34
|
+
message__exact: nil,
|
|
35
|
+
comment__exact: nil,
|
|
36
|
+
id__exact: nil,
|
|
37
|
+
site_id__exact: nil,
|
|
38
|
+
type__exact: nil,
|
|
39
|
+
timestamp__exact: nil,
|
|
40
|
+
user_id__exact: nil,
|
|
41
|
+
sort: nil)
|
|
42
|
+
new_api_call_builder
|
|
43
|
+
.request(new_request_builder(HttpMethodEnum::GET,
|
|
44
|
+
'/ranger/activities',
|
|
45
|
+
Server::DEFAULT)
|
|
46
|
+
.query_param(new_parameter(page, key: 'page'))
|
|
47
|
+
.query_param(new_parameter(per_page, key: 'per_page'))
|
|
48
|
+
.query_param(new_parameter(alert_id__exact, key: 'alert_id__exact'))
|
|
49
|
+
.query_param(new_parameter(asset_reference__exact, key: 'asset_reference__exact'))
|
|
50
|
+
.query_param(new_parameter(baseline__exact, key: 'baseline__exact'))
|
|
51
|
+
.query_param(new_parameter(site__exact, key: 'site__exact'))
|
|
52
|
+
.query_param(new_parameter(asset__exact, key: 'asset__exact'))
|
|
53
|
+
.query_param(new_parameter(message__exact, key: 'message__exact'))
|
|
54
|
+
.query_param(new_parameter(comment__exact, key: 'comment__exact'))
|
|
55
|
+
.query_param(new_parameter(id__exact, key: 'id__exact'))
|
|
56
|
+
.query_param(new_parameter(site_id__exact, key: 'site_id__exact'))
|
|
57
|
+
.query_param(new_parameter(type__exact, key: 'type__exact'))
|
|
58
|
+
.query_param(new_parameter(timestamp__exact, key: 'timestamp__exact'))
|
|
59
|
+
.query_param(new_parameter(user_id__exact, key: 'user_id__exact'))
|
|
60
|
+
.query_param(new_parameter(sort, key: 'sort'))
|
|
61
|
+
.header_param(new_parameter('application/json', key: 'accept'))
|
|
62
|
+
.auth(Single.new('global')))
|
|
63
|
+
.response(new_response_handler
|
|
64
|
+
.deserializer(APIHelper.method(:custom_type_deserializer))
|
|
65
|
+
.deserialize_into(ActivitiesResponse.method(:from_hash)))
|
|
66
|
+
.execute
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
# ctd_documentation
|
|
2
|
+
#
|
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
|
4
|
+
# ( https://apimatic.io ).
|
|
5
|
+
|
|
6
|
+
module CtdDocumentation
|
|
7
|
+
# AlertsController
|
|
8
|
+
class AlertsController < BaseController
|
|
9
|
+
# Retrieves a list of Alerts in CTD, with optional filters.
|
|
10
|
+
# Note - All filters are optional.
|
|
11
|
+
# @param [Integer] page Optional parameter: Page offset
|
|
12
|
+
# @param [Integer] per_page Optional parameter: Number of Alerts to pull on
|
|
13
|
+
# each page. (The maximum is 500).
|
|
14
|
+
# @param [String] asset_id__exact Optional parameter: Resource ID of the
|
|
15
|
+
# Asset
|
|
16
|
+
# @param [String] asset__exact Optional parameter: Example:
|
|
17
|
+
# @param [String] for_asset__exact Optional parameter: Example:
|
|
18
|
+
# @param [String] q__exact Optional parameter: Example:
|
|
19
|
+
# @param [String] primary_asset__exact Optional parameter: The resource ID
|
|
20
|
+
# of the primary asset that triggered the alert
|
|
21
|
+
# @param [String] non_primary_assets__exact Optional parameter: Resource IDs
|
|
22
|
+
# of the non-primary assets involved in the alert
|
|
23
|
+
# @param [String] virtual_zone__exact Optional parameter: The resource ID of
|
|
24
|
+
# the Zone that triggered the alert
|
|
25
|
+
# @param [String] alert_id__exact Optional parameter: The resource ID of the
|
|
26
|
+
# Alert. You can add multiple IDs.
|
|
27
|
+
# @param [String] ot_alerts__exact Optional parameter: Example:
|
|
28
|
+
# @param [String] family__exact Optional parameter: Model family of the
|
|
29
|
+
# Asset involved in the Alert, for example Policy Violation. Alert Families
|
|
30
|
+
# appear in the Advanced Options filter of Alerts.
|
|
31
|
+
# @param [String] story_severity__exact Optional parameter: Example:
|
|
32
|
+
# @param [Integer] id__exact Optional parameter: Example:
|
|
33
|
+
# @param [Integer] site_id__exact Optional parameter: ID of the Site on
|
|
34
|
+
# which the Alert occurred
|
|
35
|
+
# @param [String] data__exact Optional parameter: Example:
|
|
36
|
+
# @param [String] description__exact Optional parameter: Description of the
|
|
37
|
+
# alert
|
|
38
|
+
# @param [Integer] type__exact Optional parameter: Alert Type, such as Known
|
|
39
|
+
# Threat, New Conflict Asset, etc.
|
|
40
|
+
# @param [Integer] category__exact Optional parameter: Alert Category: 0 =
|
|
41
|
+
# Integrity, 1 = Security
|
|
42
|
+
# @param [Integer] severity__exact Optional parameter: Alert Severity: 0 =
|
|
43
|
+
# Low, 1 = Medium, 2 = High, 3 = Critical
|
|
44
|
+
# @param [String] timestamp__exact Optional parameter: Timestamp on which
|
|
45
|
+
# the Alert occured. **Format:** YYYY-MM-DD**T**HH:MM:SS (in UTC)
|
|
46
|
+
# **Example:** 2022-11-01T16:22:05
|
|
47
|
+
# @param [String] last_updated__gte Optional parameter: The timestamp when
|
|
48
|
+
# the latest change on the Alert was made in the EMC. **Format:**
|
|
49
|
+
# YYYY-MM-DD**T**HH:MM:SS (in UTC) **Example:** 2022-11-01T16:22:05
|
|
50
|
+
# @param [TrueClass|FalseClass] relevant__exact Optional parameter:
|
|
51
|
+
# Example:
|
|
52
|
+
# @param [TrueClass|FalseClass] resolved__exact Optional parameter: Whether
|
|
53
|
+
# or not an Alert was resolved: True = resolved, False = not resolved
|
|
54
|
+
# @param [Integer] resolution__exact Optional parameter: Type of
|
|
55
|
+
# resolution.
|
|
56
|
+
# @param [String] protocol__exact Optional parameter: Protocol used in the
|
|
57
|
+
# alert, for example: S7Comm
|
|
58
|
+
# @param [Integer] score__exact Optional parameter: Alert Score calculated
|
|
59
|
+
# for this alert, on a score of 1-100
|
|
60
|
+
# @param [TrueClass|FalseClass] is_qualified__exact Optional parameter:
|
|
61
|
+
# Example:
|
|
62
|
+
# @param [Integer] network_id__exact Optional parameter: Example:
|
|
63
|
+
# @param [Integer] resolved_id__exact Optional parameter: Example:
|
|
64
|
+
# @param [Integer] assigned_id__exact Optional parameter: ID of the User to
|
|
65
|
+
# which the Alert was assigned
|
|
66
|
+
# @param [Integer] story_id__exact Optional parameter: ID of the Alert Story
|
|
67
|
+
# to which the Alert belongs - can be viewed in the UI by selecting "Group
|
|
68
|
+
# By Story"
|
|
69
|
+
# @param [SortEnum] sort Optional parameter: By default, results are sorted
|
|
70
|
+
# in ascending order of the sort attribute. The sorting prefix "-" sorts the
|
|
71
|
+
# results in descending order of the sort attribute.
|
|
72
|
+
# @return [GetAlertsResponse] response from the API call
|
|
73
|
+
def get_alerts(page: nil,
|
|
74
|
+
per_page: nil,
|
|
75
|
+
asset_id__exact: nil,
|
|
76
|
+
asset__exact: nil,
|
|
77
|
+
for_asset__exact: nil,
|
|
78
|
+
q__exact: nil,
|
|
79
|
+
primary_asset__exact: nil,
|
|
80
|
+
non_primary_assets__exact: nil,
|
|
81
|
+
virtual_zone__exact: nil,
|
|
82
|
+
alert_id__exact: nil,
|
|
83
|
+
ot_alerts__exact: nil,
|
|
84
|
+
family__exact: nil,
|
|
85
|
+
story_severity__exact: nil,
|
|
86
|
+
id__exact: nil,
|
|
87
|
+
site_id__exact: nil,
|
|
88
|
+
data__exact: nil,
|
|
89
|
+
description__exact: nil,
|
|
90
|
+
type__exact: nil,
|
|
91
|
+
category__exact: nil,
|
|
92
|
+
severity__exact: nil,
|
|
93
|
+
timestamp__exact: nil,
|
|
94
|
+
last_updated__gte: nil,
|
|
95
|
+
relevant__exact: nil,
|
|
96
|
+
resolved__exact: nil,
|
|
97
|
+
resolution__exact: nil,
|
|
98
|
+
protocol__exact: nil,
|
|
99
|
+
score__exact: nil,
|
|
100
|
+
is_qualified__exact: nil,
|
|
101
|
+
network_id__exact: nil,
|
|
102
|
+
resolved_id__exact: nil,
|
|
103
|
+
assigned_id__exact: nil,
|
|
104
|
+
story_id__exact: nil,
|
|
105
|
+
sort: nil)
|
|
106
|
+
new_api_call_builder
|
|
107
|
+
.request(new_request_builder(HttpMethodEnum::GET,
|
|
108
|
+
'/ranger/alerts',
|
|
109
|
+
Server::DEFAULT)
|
|
110
|
+
.query_param(new_parameter(page, key: 'page'))
|
|
111
|
+
.query_param(new_parameter(per_page, key: 'per_page'))
|
|
112
|
+
.query_param(new_parameter(asset_id__exact, key: 'asset_id__exact'))
|
|
113
|
+
.query_param(new_parameter(asset__exact, key: 'asset__exact'))
|
|
114
|
+
.query_param(new_parameter(for_asset__exact, key: 'for_asset__exact'))
|
|
115
|
+
.query_param(new_parameter(q__exact, key: 'q__exact'))
|
|
116
|
+
.query_param(new_parameter(primary_asset__exact, key: 'primary_asset__exact'))
|
|
117
|
+
.query_param(new_parameter(non_primary_assets__exact, key: 'non_primary_assets__exact'))
|
|
118
|
+
.query_param(new_parameter(virtual_zone__exact, key: 'virtual_zone__exact'))
|
|
119
|
+
.query_param(new_parameter(alert_id__exact, key: 'alert_id__exact'))
|
|
120
|
+
.query_param(new_parameter(ot_alerts__exact, key: 'ot_alerts__exact'))
|
|
121
|
+
.query_param(new_parameter(family__exact, key: 'family__exact'))
|
|
122
|
+
.query_param(new_parameter(story_severity__exact, key: 'story_severity__exact'))
|
|
123
|
+
.query_param(new_parameter(id__exact, key: 'id__exact'))
|
|
124
|
+
.query_param(new_parameter(site_id__exact, key: 'site_id__exact'))
|
|
125
|
+
.query_param(new_parameter(data__exact, key: 'data__exact'))
|
|
126
|
+
.query_param(new_parameter(description__exact, key: 'description__exact'))
|
|
127
|
+
.query_param(new_parameter(type__exact, key: 'type__exact'))
|
|
128
|
+
.query_param(new_parameter(category__exact, key: 'category__exact'))
|
|
129
|
+
.query_param(new_parameter(severity__exact, key: 'severity__exact'))
|
|
130
|
+
.query_param(new_parameter(timestamp__exact, key: 'timestamp__exact'))
|
|
131
|
+
.query_param(new_parameter(last_updated__gte, key: 'last_updated__gte'))
|
|
132
|
+
.query_param(new_parameter(relevant__exact, key: 'relevant__exact'))
|
|
133
|
+
.query_param(new_parameter(resolved__exact, key: 'resolved__exact'))
|
|
134
|
+
.query_param(new_parameter(resolution__exact, key: 'resolution__exact'))
|
|
135
|
+
.query_param(new_parameter(protocol__exact, key: 'protocol__exact'))
|
|
136
|
+
.query_param(new_parameter(score__exact, key: 'score__exact'))
|
|
137
|
+
.query_param(new_parameter(is_qualified__exact, key: 'is_qualified__exact'))
|
|
138
|
+
.query_param(new_parameter(network_id__exact, key: 'network_id__exact'))
|
|
139
|
+
.query_param(new_parameter(resolved_id__exact, key: 'resolved_id__exact'))
|
|
140
|
+
.query_param(new_parameter(assigned_id__exact, key: 'assigned_id__exact'))
|
|
141
|
+
.query_param(new_parameter(story_id__exact, key: 'story_id__exact'))
|
|
142
|
+
.query_param(new_parameter(sort, key: 'sort'))
|
|
143
|
+
.header_param(new_parameter('application/json', key: 'accept'))
|
|
144
|
+
.auth(Single.new('global')))
|
|
145
|
+
.response(new_response_handler
|
|
146
|
+
.deserializer(APIHelper.method(:custom_type_deserializer))
|
|
147
|
+
.deserialize_into(GetAlertsResponse.method(:from_hash)))
|
|
148
|
+
.execute
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
# Get a single alert.
|
|
152
|
+
# @param [String] resource_id Required parameter: Resource ID of the Alert
|
|
153
|
+
# to return
|
|
154
|
+
# @return [Alert] response from the API call
|
|
155
|
+
def find_alert_by_id(resource_id)
|
|
156
|
+
new_api_call_builder
|
|
157
|
+
.request(new_request_builder(HttpMethodEnum::GET,
|
|
158
|
+
'/ranger/alerts/{resource_id}',
|
|
159
|
+
Server::DEFAULT)
|
|
160
|
+
.template_param(new_parameter(resource_id, key: 'resource_id')
|
|
161
|
+
.should_encode(true))
|
|
162
|
+
.header_param(new_parameter('application/json', key: 'accept'))
|
|
163
|
+
.auth(Single.new('global')))
|
|
164
|
+
.response(new_response_handler
|
|
165
|
+
.deserializer(APIHelper.method(:custom_type_deserializer))
|
|
166
|
+
.deserialize_into(Alert.method(:from_hash)))
|
|
167
|
+
.execute
|
|
168
|
+
end
|
|
169
|
+
end
|
|
170
|
+
end
|