rankvectors 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.
Files changed (157) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +9 -0
  3. data/README.md +191 -0
  4. data/Rakefile +10 -0
  5. data/docs/AddCredits200Response.md +22 -0
  6. data/docs/AddCreditsRequest.md +20 -0
  7. data/docs/AutoRechargeSettings.md +22 -0
  8. data/docs/ChangeResult.md +24 -0
  9. data/docs/ContentVerification.md +22 -0
  10. data/docs/ContentVerificationApi.md +81 -0
  11. data/docs/Crawl.md +30 -0
  12. data/docs/CrawlingApi.md +155 -0
  13. data/docs/CreateProjectRequest.md +60 -0
  14. data/docs/CreditBalance.md +30 -0
  15. data/docs/CreditBalanceInfo.md +26 -0
  16. data/docs/CreditsApi.md +161 -0
  17. data/docs/CustomCredentials.md +20 -0
  18. data/docs/DeleteProject200Response.md +20 -0
  19. data/docs/Error.md +24 -0
  20. data/docs/GenerateSuggestions200Response.md +22 -0
  21. data/docs/GenerateSuggestionsRequest.md +18 -0
  22. data/docs/GetImplementation200Response.md +20 -0
  23. data/docs/Implementation.md +36 -0
  24. data/docs/ImplementationInstructions.md +28 -0
  25. data/docs/ImplementationRequest.md +26 -0
  26. data/docs/ImplementationResponse.md +22 -0
  27. data/docs/ImplementationResult.md +24 -0
  28. data/docs/ImplementationSummary.md +24 -0
  29. data/docs/ImplementationsApi.md +313 -0
  30. data/docs/LinkOpportunity.md +28 -0
  31. data/docs/ListImplementations200Response.md +24 -0
  32. data/docs/PageInfo.md +24 -0
  33. data/docs/PageLimitStatus.md +22 -0
  34. data/docs/PeriodCharges.md +22 -0
  35. data/docs/Project.md +70 -0
  36. data/docs/ProjectCount.md +20 -0
  37. data/docs/ProjectsApi.md +292 -0
  38. data/docs/ReportImplementationStatus200Response.md +20 -0
  39. data/docs/ReportImplementationStatusRequest.md +22 -0
  40. data/docs/Rollback.md +24 -0
  41. data/docs/RollbackImplementation200Response.md +22 -0
  42. data/docs/RollbackImplementationRequest.md +20 -0
  43. data/docs/SpendingLimitStatus.md +24 -0
  44. data/docs/StartCrawlRequest.md +18 -0
  45. data/docs/StepByStepInstructions.md +20 -0
  46. data/docs/Suggestion.md +38 -0
  47. data/docs/SuggestionsApi.md +235 -0
  48. data/docs/UpdateSuggestionRequest.md +18 -0
  49. data/docs/UsageHistoryItem.md +26 -0
  50. data/docs/VerifyContent200Response.md +20 -0
  51. data/docs/VerifyContentRequest.md +20 -0
  52. data/docs/WebhooksApi.md +151 -0
  53. data/git_push.sh +57 -0
  54. data/lib/openapi_client/api/content_verification_api.rb +96 -0
  55. data/lib/openapi_client/api/crawling_api.rb +155 -0
  56. data/lib/openapi_client/api/credits_api.rb +168 -0
  57. data/lib/openapi_client/api/implementations_api.rb +332 -0
  58. data/lib/openapi_client/api/projects_api.rb +273 -0
  59. data/lib/openapi_client/api/suggestions_api.rb +242 -0
  60. data/lib/openapi_client/api/webhooks_api.rb +154 -0
  61. data/lib/openapi_client/api_client.rb +393 -0
  62. data/lib/openapi_client/api_error.rb +58 -0
  63. data/lib/openapi_client/configuration.rb +316 -0
  64. data/lib/openapi_client/models/add_credits200_response.rb +238 -0
  65. data/lib/openapi_client/models/add_credits_request.rb +259 -0
  66. data/lib/openapi_client/models/auto_recharge_settings.rb +292 -0
  67. data/lib/openapi_client/models/change_result.rb +328 -0
  68. data/lib/openapi_client/models/content_verification.rb +274 -0
  69. data/lib/openapi_client/models/crawl.rb +373 -0
  70. data/lib/openapi_client/models/create_project_request.rb +541 -0
  71. data/lib/openapi_client/models/credit_balance.rb +379 -0
  72. data/lib/openapi_client/models/credit_balance_info.rb +329 -0
  73. data/lib/openapi_client/models/custom_credentials.rb +265 -0
  74. data/lib/openapi_client/models/delete_project200_response.rb +229 -0
  75. data/lib/openapi_client/models/error.rb +268 -0
  76. data/lib/openapi_client/models/generate_suggestions200_response.rb +261 -0
  77. data/lib/openapi_client/models/generate_suggestions_request.rb +249 -0
  78. data/lib/openapi_client/models/get_implementation200_response.rb +229 -0
  79. data/lib/openapi_client/models/implementation.rb +454 -0
  80. data/lib/openapi_client/models/implementation_instructions.rb +372 -0
  81. data/lib/openapi_client/models/implementation_request.rb +362 -0
  82. data/lib/openapi_client/models/implementation_response.rb +293 -0
  83. data/lib/openapi_client/models/implementation_result.rb +268 -0
  84. data/lib/openapi_client/models/implementation_summary.rb +319 -0
  85. data/lib/openapi_client/models/link_opportunity.rb +355 -0
  86. data/lib/openapi_client/models/list_implementations200_response.rb +251 -0
  87. data/lib/openapi_client/models/page_info.rb +285 -0
  88. data/lib/openapi_client/models/page_limit_status.rb +292 -0
  89. data/lib/openapi_client/models/period_charges.rb +292 -0
  90. data/lib/openapi_client/models/project.rb +634 -0
  91. data/lib/openapi_client/models/project_count.rb +230 -0
  92. data/lib/openapi_client/models/report_implementation_status200_response.rb +229 -0
  93. data/lib/openapi_client/models/report_implementation_status_request.rb +316 -0
  94. data/lib/openapi_client/models/rollback.rb +302 -0
  95. data/lib/openapi_client/models/rollback_implementation200_response.rb +239 -0
  96. data/lib/openapi_client/models/rollback_implementation_request.rb +247 -0
  97. data/lib/openapi_client/models/spending_limit_status.rb +319 -0
  98. data/lib/openapi_client/models/start_crawl_request.rb +249 -0
  99. data/lib/openapi_client/models/step_by_step_instructions.rb +267 -0
  100. data/lib/openapi_client/models/suggestion.rb +497 -0
  101. data/lib/openapi_client/models/update_suggestion_request.rb +262 -0
  102. data/lib/openapi_client/models/usage_history_item.rb +331 -0
  103. data/lib/openapi_client/models/verify_content200_response.rb +229 -0
  104. data/lib/openapi_client/models/verify_content_request.rb +265 -0
  105. data/lib/openapi_client/version.rb +15 -0
  106. data/lib/openapi_client.rb +87 -0
  107. data/openapi_client.gemspec +39 -0
  108. data/spec/api/content_verification_api_spec.rb +48 -0
  109. data/spec/api/crawling_api_spec.rb +60 -0
  110. data/spec/api/credits_api_spec.rb +63 -0
  111. data/spec/api/implementations_api_spec.rb +91 -0
  112. data/spec/api/projects_api_spec.rb +82 -0
  113. data/spec/api/suggestions_api_spec.rb +75 -0
  114. data/spec/api/webhooks_api_spec.rb +59 -0
  115. data/spec/models/add_credits200_response_spec.rb +48 -0
  116. data/spec/models/add_credits_request_spec.rb +42 -0
  117. data/spec/models/auto_recharge_settings_spec.rb +48 -0
  118. data/spec/models/change_result_spec.rb +62 -0
  119. data/spec/models/content_verification_spec.rb +48 -0
  120. data/spec/models/crawl_spec.rb +76 -0
  121. data/spec/models/create_project_request_spec.rb +170 -0
  122. data/spec/models/credit_balance_info_spec.rb +60 -0
  123. data/spec/models/credit_balance_spec.rb +72 -0
  124. data/spec/models/custom_credentials_spec.rb +42 -0
  125. data/spec/models/delete_project200_response_spec.rb +42 -0
  126. data/spec/models/error_spec.rb +54 -0
  127. data/spec/models/generate_suggestions200_response_spec.rb +48 -0
  128. data/spec/models/generate_suggestions_request_spec.rb +36 -0
  129. data/spec/models/get_implementation200_response_spec.rb +42 -0
  130. data/spec/models/implementation_instructions_spec.rb +66 -0
  131. data/spec/models/implementation_request_spec.rb +68 -0
  132. data/spec/models/implementation_response_spec.rb +48 -0
  133. data/spec/models/implementation_result_spec.rb +54 -0
  134. data/spec/models/implementation_spec.rb +102 -0
  135. data/spec/models/implementation_summary_spec.rb +54 -0
  136. data/spec/models/link_opportunity_spec.rb +66 -0
  137. data/spec/models/list_implementations200_response_spec.rb +54 -0
  138. data/spec/models/page_info_spec.rb +54 -0
  139. data/spec/models/page_limit_status_spec.rb +48 -0
  140. data/spec/models/period_charges_spec.rb +48 -0
  141. data/spec/models/project_count_spec.rb +42 -0
  142. data/spec/models/project_spec.rb +200 -0
  143. data/spec/models/report_implementation_status200_response_spec.rb +42 -0
  144. data/spec/models/report_implementation_status_request_spec.rb +52 -0
  145. data/spec/models/rollback_implementation200_response_spec.rb +48 -0
  146. data/spec/models/rollback_implementation_request_spec.rb +42 -0
  147. data/spec/models/rollback_spec.rb +54 -0
  148. data/spec/models/spending_limit_status_spec.rb +54 -0
  149. data/spec/models/start_crawl_request_spec.rb +36 -0
  150. data/spec/models/step_by_step_instructions_spec.rb +42 -0
  151. data/spec/models/suggestion_spec.rb +100 -0
  152. data/spec/models/update_suggestion_request_spec.rb +40 -0
  153. data/spec/models/usage_history_item_spec.rb +60 -0
  154. data/spec/models/verify_content200_response_spec.rb +42 -0
  155. data/spec/models/verify_content_request_spec.rb +42 -0
  156. data/spec/spec_helper.rb +111 -0
  157. metadata +288 -0
@@ -0,0 +1,155 @@
1
+ =begin
2
+ #RankVectors API
3
+
4
+ #Intelligent internal linking optimization API using AI. RankVectors helps you automatically discover and implement optimal internal links across your website to improve SEO performance and user experience. ## Key Features - **AI-Powered Analysis**: Uses OpenAI embeddings to find optimal linking opportunities - **Smart Crawling**: Automatically crawls and analyzes your website content - **Automated Implementation**: Implement links via webhooks or manual instructions - **Credit-Based System**: Pay-per-use model with transparent pricing - **Multi-Platform Support**: Works with any CMS or platform via REST API ## Getting Started 1. Create a project with your website URL 2. Start a crawl to analyze your content 3. Generate AI-powered link suggestions 4. Implement suggestions via API or webhook 5. Track performance and manage credits ## Authentication All API endpoints require authentication using your RankVectors API key. Include your API key in the `Authorization` header: ``` Authorization: Bearer YOUR_API_KEY ``` Get your API key from your RankVectors dashboard: Settings → API Keys
5
+
6
+ The version of the OpenAPI document: 1.2.0
7
+ Contact: support@rankvectors.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.16.0
10
+
11
+ =end
12
+
13
+ require 'cgi'
14
+
15
+ module OpenapiClient
16
+ class CrawlingApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+ # Get crawl history
23
+ # Get the crawl history for a project
24
+ # @param project_id [String] Unique identifier for the project
25
+ # @param [Hash] opts the optional parameters
26
+ # @return [Array<Crawl>]
27
+ def get_crawl_history(project_id, opts = {})
28
+ data, _status_code, _headers = get_crawl_history_with_http_info(project_id, opts)
29
+ data
30
+ end
31
+
32
+ # Get crawl history
33
+ # Get the crawl history for a project
34
+ # @param project_id [String] Unique identifier for the project
35
+ # @param [Hash] opts the optional parameters
36
+ # @return [Array<(Array<Crawl>, Integer, Hash)>] Array<Crawl> data, response status code and response headers
37
+ def get_crawl_history_with_http_info(project_id, opts = {})
38
+ if @api_client.config.debugging
39
+ @api_client.config.logger.debug 'Calling API: CrawlingApi.get_crawl_history ...'
40
+ end
41
+ # verify the required parameter 'project_id' is set
42
+ if @api_client.config.client_side_validation && project_id.nil?
43
+ fail ArgumentError, "Missing the required parameter 'project_id' when calling CrawlingApi.get_crawl_history"
44
+ end
45
+ # resource path
46
+ local_var_path = '/api/projects/{projectId}/crawl'.sub('{' + 'projectId' + '}', CGI.escape(project_id.to_s))
47
+
48
+ # query parameters
49
+ query_params = opts[:query_params] || {}
50
+
51
+ # header parameters
52
+ header_params = opts[:header_params] || {}
53
+ # HTTP header 'Accept' (if needed)
54
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
55
+
56
+ # form parameters
57
+ form_params = opts[:form_params] || {}
58
+
59
+ # http body (model)
60
+ post_body = opts[:debug_body]
61
+
62
+ # return_type
63
+ return_type = opts[:debug_return_type] || 'Array<Crawl>'
64
+
65
+ # auth_names
66
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth']
67
+
68
+ new_options = opts.merge(
69
+ :operation => :"CrawlingApi.get_crawl_history",
70
+ :header_params => header_params,
71
+ :query_params => query_params,
72
+ :form_params => form_params,
73
+ :body => post_body,
74
+ :auth_names => auth_names,
75
+ :return_type => return_type
76
+ )
77
+
78
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
79
+ if @api_client.config.debugging
80
+ @api_client.config.logger.debug "API called: CrawlingApi#get_crawl_history\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
81
+ end
82
+ return data, status_code, headers
83
+ end
84
+
85
+ # Start website crawl
86
+ # Start crawling a website to analyze content for link opportunities
87
+ # @param project_id [String] Unique identifier for the project
88
+ # @param [Hash] opts the optional parameters
89
+ # @option opts [StartCrawlRequest] :start_crawl_request
90
+ # @return [Crawl]
91
+ def start_crawl(project_id, opts = {})
92
+ data, _status_code, _headers = start_crawl_with_http_info(project_id, opts)
93
+ data
94
+ end
95
+
96
+ # Start website crawl
97
+ # Start crawling a website to analyze content for link opportunities
98
+ # @param project_id [String] Unique identifier for the project
99
+ # @param [Hash] opts the optional parameters
100
+ # @option opts [StartCrawlRequest] :start_crawl_request
101
+ # @return [Array<(Crawl, Integer, Hash)>] Crawl data, response status code and response headers
102
+ def start_crawl_with_http_info(project_id, opts = {})
103
+ if @api_client.config.debugging
104
+ @api_client.config.logger.debug 'Calling API: CrawlingApi.start_crawl ...'
105
+ end
106
+ # verify the required parameter 'project_id' is set
107
+ if @api_client.config.client_side_validation && project_id.nil?
108
+ fail ArgumentError, "Missing the required parameter 'project_id' when calling CrawlingApi.start_crawl"
109
+ end
110
+ # resource path
111
+ local_var_path = '/api/projects/{projectId}/crawl'.sub('{' + 'projectId' + '}', CGI.escape(project_id.to_s))
112
+
113
+ # query parameters
114
+ query_params = opts[:query_params] || {}
115
+
116
+ # header parameters
117
+ header_params = opts[:header_params] || {}
118
+ # HTTP header 'Accept' (if needed)
119
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
120
+ # HTTP header 'Content-Type'
121
+ content_type = @api_client.select_header_content_type(['application/json'])
122
+ if !content_type.nil?
123
+ header_params['Content-Type'] = content_type
124
+ end
125
+
126
+ # form parameters
127
+ form_params = opts[:form_params] || {}
128
+
129
+ # http body (model)
130
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(opts[:'start_crawl_request'])
131
+
132
+ # return_type
133
+ return_type = opts[:debug_return_type] || 'Crawl'
134
+
135
+ # auth_names
136
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth']
137
+
138
+ new_options = opts.merge(
139
+ :operation => :"CrawlingApi.start_crawl",
140
+ :header_params => header_params,
141
+ :query_params => query_params,
142
+ :form_params => form_params,
143
+ :body => post_body,
144
+ :auth_names => auth_names,
145
+ :return_type => return_type
146
+ )
147
+
148
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
149
+ if @api_client.config.debugging
150
+ @api_client.config.logger.debug "API called: CrawlingApi#start_crawl\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
151
+ end
152
+ return data, status_code, headers
153
+ end
154
+ end
155
+ end
@@ -0,0 +1,168 @@
1
+ =begin
2
+ #RankVectors API
3
+
4
+ #Intelligent internal linking optimization API using AI. RankVectors helps you automatically discover and implement optimal internal links across your website to improve SEO performance and user experience. ## Key Features - **AI-Powered Analysis**: Uses OpenAI embeddings to find optimal linking opportunities - **Smart Crawling**: Automatically crawls and analyzes your website content - **Automated Implementation**: Implement links via webhooks or manual instructions - **Credit-Based System**: Pay-per-use model with transparent pricing - **Multi-Platform Support**: Works with any CMS or platform via REST API ## Getting Started 1. Create a project with your website URL 2. Start a crawl to analyze your content 3. Generate AI-powered link suggestions 4. Implement suggestions via API or webhook 5. Track performance and manage credits ## Authentication All API endpoints require authentication using your RankVectors API key. Include your API key in the `Authorization` header: ``` Authorization: Bearer YOUR_API_KEY ``` Get your API key from your RankVectors dashboard: Settings → API Keys
5
+
6
+ The version of the OpenAPI document: 1.2.0
7
+ Contact: support@rankvectors.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.16.0
10
+
11
+ =end
12
+
13
+ require 'cgi'
14
+
15
+ module OpenapiClient
16
+ class CreditsApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+ # Add credits
23
+ # Add credits to a project (admin or payment webhook use)
24
+ # @param project_id [String] Unique identifier for the project
25
+ # @param add_credits_request [AddCreditsRequest]
26
+ # @param [Hash] opts the optional parameters
27
+ # @return [AddCredits200Response]
28
+ def add_credits(project_id, add_credits_request, opts = {})
29
+ data, _status_code, _headers = add_credits_with_http_info(project_id, add_credits_request, opts)
30
+ data
31
+ end
32
+
33
+ # Add credits
34
+ # Add credits to a project (admin or payment webhook use)
35
+ # @param project_id [String] Unique identifier for the project
36
+ # @param add_credits_request [AddCreditsRequest]
37
+ # @param [Hash] opts the optional parameters
38
+ # @return [Array<(AddCredits200Response, Integer, Hash)>] AddCredits200Response data, response status code and response headers
39
+ def add_credits_with_http_info(project_id, add_credits_request, opts = {})
40
+ if @api_client.config.debugging
41
+ @api_client.config.logger.debug 'Calling API: CreditsApi.add_credits ...'
42
+ end
43
+ # verify the required parameter 'project_id' is set
44
+ if @api_client.config.client_side_validation && project_id.nil?
45
+ fail ArgumentError, "Missing the required parameter 'project_id' when calling CreditsApi.add_credits"
46
+ end
47
+ # verify the required parameter 'add_credits_request' is set
48
+ if @api_client.config.client_side_validation && add_credits_request.nil?
49
+ fail ArgumentError, "Missing the required parameter 'add_credits_request' when calling CreditsApi.add_credits"
50
+ end
51
+ # resource path
52
+ local_var_path = '/api/projects/{projectId}/credits'.sub('{' + 'projectId' + '}', CGI.escape(project_id.to_s))
53
+
54
+ # query parameters
55
+ query_params = opts[:query_params] || {}
56
+
57
+ # header parameters
58
+ header_params = opts[:header_params] || {}
59
+ # HTTP header 'Accept' (if needed)
60
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
61
+ # HTTP header 'Content-Type'
62
+ content_type = @api_client.select_header_content_type(['application/json'])
63
+ if !content_type.nil?
64
+ header_params['Content-Type'] = content_type
65
+ end
66
+
67
+ # form parameters
68
+ form_params = opts[:form_params] || {}
69
+
70
+ # http body (model)
71
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(add_credits_request)
72
+
73
+ # return_type
74
+ return_type = opts[:debug_return_type] || 'AddCredits200Response'
75
+
76
+ # auth_names
77
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth']
78
+
79
+ new_options = opts.merge(
80
+ :operation => :"CreditsApi.add_credits",
81
+ :header_params => header_params,
82
+ :query_params => query_params,
83
+ :form_params => form_params,
84
+ :body => post_body,
85
+ :auth_names => auth_names,
86
+ :return_type => return_type
87
+ )
88
+
89
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
90
+ if @api_client.config.debugging
91
+ @api_client.config.logger.debug "API called: CreditsApi#add_credits\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
92
+ end
93
+ return data, status_code, headers
94
+ end
95
+
96
+ # Get credit balance
97
+ # Get credit balance and usage history for a project
98
+ # @param project_id [String] Unique identifier for the project
99
+ # @param [Hash] opts the optional parameters
100
+ # @option opts [Boolean] :include_history Include usage history (default to false)
101
+ # @option opts [Time] :start_date History start date (ISO 8601)
102
+ # @option opts [Time] :end_date History end date (ISO 8601)
103
+ # @return [CreditBalance]
104
+ def get_credits(project_id, opts = {})
105
+ data, _status_code, _headers = get_credits_with_http_info(project_id, opts)
106
+ data
107
+ end
108
+
109
+ # Get credit balance
110
+ # Get credit balance and usage history for a project
111
+ # @param project_id [String] Unique identifier for the project
112
+ # @param [Hash] opts the optional parameters
113
+ # @option opts [Boolean] :include_history Include usage history (default to false)
114
+ # @option opts [Time] :start_date History start date (ISO 8601)
115
+ # @option opts [Time] :end_date History end date (ISO 8601)
116
+ # @return [Array<(CreditBalance, Integer, Hash)>] CreditBalance data, response status code and response headers
117
+ def get_credits_with_http_info(project_id, opts = {})
118
+ if @api_client.config.debugging
119
+ @api_client.config.logger.debug 'Calling API: CreditsApi.get_credits ...'
120
+ end
121
+ # verify the required parameter 'project_id' is set
122
+ if @api_client.config.client_side_validation && project_id.nil?
123
+ fail ArgumentError, "Missing the required parameter 'project_id' when calling CreditsApi.get_credits"
124
+ end
125
+ # resource path
126
+ local_var_path = '/api/projects/{projectId}/credits'.sub('{' + 'projectId' + '}', CGI.escape(project_id.to_s))
127
+
128
+ # query parameters
129
+ query_params = opts[:query_params] || {}
130
+ query_params[:'includeHistory'] = opts[:'include_history'] if !opts[:'include_history'].nil?
131
+ query_params[:'startDate'] = opts[:'start_date'] if !opts[:'start_date'].nil?
132
+ query_params[:'endDate'] = opts[:'end_date'] if !opts[:'end_date'].nil?
133
+
134
+ # header parameters
135
+ header_params = opts[:header_params] || {}
136
+ # HTTP header 'Accept' (if needed)
137
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
138
+
139
+ # form parameters
140
+ form_params = opts[:form_params] || {}
141
+
142
+ # http body (model)
143
+ post_body = opts[:debug_body]
144
+
145
+ # return_type
146
+ return_type = opts[:debug_return_type] || 'CreditBalance'
147
+
148
+ # auth_names
149
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth']
150
+
151
+ new_options = opts.merge(
152
+ :operation => :"CreditsApi.get_credits",
153
+ :header_params => header_params,
154
+ :query_params => query_params,
155
+ :form_params => form_params,
156
+ :body => post_body,
157
+ :auth_names => auth_names,
158
+ :return_type => return_type
159
+ )
160
+
161
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
162
+ if @api_client.config.debugging
163
+ @api_client.config.logger.debug "API called: CreditsApi#get_credits\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
164
+ end
165
+ return data, status_code, headers
166
+ end
167
+ end
168
+ end
@@ -0,0 +1,332 @@
1
+ =begin
2
+ #RankVectors API
3
+
4
+ #Intelligent internal linking optimization API using AI. RankVectors helps you automatically discover and implement optimal internal links across your website to improve SEO performance and user experience. ## Key Features - **AI-Powered Analysis**: Uses OpenAI embeddings to find optimal linking opportunities - **Smart Crawling**: Automatically crawls and analyzes your website content - **Automated Implementation**: Implement links via webhooks or manual instructions - **Credit-Based System**: Pay-per-use model with transparent pricing - **Multi-Platform Support**: Works with any CMS or platform via REST API ## Getting Started 1. Create a project with your website URL 2. Start a crawl to analyze your content 3. Generate AI-powered link suggestions 4. Implement suggestions via API or webhook 5. Track performance and manage credits ## Authentication All API endpoints require authentication using your RankVectors API key. Include your API key in the `Authorization` header: ``` Authorization: Bearer YOUR_API_KEY ``` Get your API key from your RankVectors dashboard: Settings → API Keys
5
+
6
+ The version of the OpenAPI document: 1.2.0
7
+ Contact: support@rankvectors.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.16.0
10
+
11
+ =end
12
+
13
+ require 'cgi'
14
+
15
+ module OpenapiClient
16
+ class ImplementationsApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+ # Get implementation details
23
+ # Get detailed information about a specific implementation
24
+ # @param project_id [String] Unique identifier for the project
25
+ # @param implementation_id [String] Unique identifier for the implementation
26
+ # @param [Hash] opts the optional parameters
27
+ # @return [GetImplementation200Response]
28
+ def get_implementation(project_id, implementation_id, opts = {})
29
+ data, _status_code, _headers = get_implementation_with_http_info(project_id, implementation_id, opts)
30
+ data
31
+ end
32
+
33
+ # Get implementation details
34
+ # Get detailed information about a specific implementation
35
+ # @param project_id [String] Unique identifier for the project
36
+ # @param implementation_id [String] Unique identifier for the implementation
37
+ # @param [Hash] opts the optional parameters
38
+ # @return [Array<(GetImplementation200Response, Integer, Hash)>] GetImplementation200Response data, response status code and response headers
39
+ def get_implementation_with_http_info(project_id, implementation_id, opts = {})
40
+ if @api_client.config.debugging
41
+ @api_client.config.logger.debug 'Calling API: ImplementationsApi.get_implementation ...'
42
+ end
43
+ # verify the required parameter 'project_id' is set
44
+ if @api_client.config.client_side_validation && project_id.nil?
45
+ fail ArgumentError, "Missing the required parameter 'project_id' when calling ImplementationsApi.get_implementation"
46
+ end
47
+ # verify the required parameter 'implementation_id' is set
48
+ if @api_client.config.client_side_validation && implementation_id.nil?
49
+ fail ArgumentError, "Missing the required parameter 'implementation_id' when calling ImplementationsApi.get_implementation"
50
+ end
51
+ # resource path
52
+ local_var_path = '/api/projects/{projectId}/implementations/{implementationId}'.sub('{' + 'projectId' + '}', CGI.escape(project_id.to_s)).sub('{' + 'implementationId' + '}', CGI.escape(implementation_id.to_s))
53
+
54
+ # query parameters
55
+ query_params = opts[:query_params] || {}
56
+
57
+ # header parameters
58
+ header_params = opts[:header_params] || {}
59
+ # HTTP header 'Accept' (if needed)
60
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
61
+
62
+ # form parameters
63
+ form_params = opts[:form_params] || {}
64
+
65
+ # http body (model)
66
+ post_body = opts[:debug_body]
67
+
68
+ # return_type
69
+ return_type = opts[:debug_return_type] || 'GetImplementation200Response'
70
+
71
+ # auth_names
72
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth']
73
+
74
+ new_options = opts.merge(
75
+ :operation => :"ImplementationsApi.get_implementation",
76
+ :header_params => header_params,
77
+ :query_params => query_params,
78
+ :form_params => form_params,
79
+ :body => post_body,
80
+ :auth_names => auth_names,
81
+ :return_type => return_type
82
+ )
83
+
84
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
85
+ if @api_client.config.debugging
86
+ @api_client.config.logger.debug "API called: ImplementationsApi#get_implementation\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
87
+ end
88
+ return data, status_code, headers
89
+ end
90
+
91
+ # Implement link suggestions
92
+ # Implement one or more link suggestions
93
+ # @param project_id [String] Unique identifier for the project
94
+ # @param implementation_request [ImplementationRequest]
95
+ # @param [Hash] opts the optional parameters
96
+ # @return [ImplementationResponse]
97
+ def implement_links(project_id, implementation_request, opts = {})
98
+ data, _status_code, _headers = implement_links_with_http_info(project_id, implementation_request, opts)
99
+ data
100
+ end
101
+
102
+ # Implement link suggestions
103
+ # Implement one or more link suggestions
104
+ # @param project_id [String] Unique identifier for the project
105
+ # @param implementation_request [ImplementationRequest]
106
+ # @param [Hash] opts the optional parameters
107
+ # @return [Array<(ImplementationResponse, Integer, Hash)>] ImplementationResponse data, response status code and response headers
108
+ def implement_links_with_http_info(project_id, implementation_request, opts = {})
109
+ if @api_client.config.debugging
110
+ @api_client.config.logger.debug 'Calling API: ImplementationsApi.implement_links ...'
111
+ end
112
+ # verify the required parameter 'project_id' is set
113
+ if @api_client.config.client_side_validation && project_id.nil?
114
+ fail ArgumentError, "Missing the required parameter 'project_id' when calling ImplementationsApi.implement_links"
115
+ end
116
+ # verify the required parameter 'implementation_request' is set
117
+ if @api_client.config.client_side_validation && implementation_request.nil?
118
+ fail ArgumentError, "Missing the required parameter 'implementation_request' when calling ImplementationsApi.implement_links"
119
+ end
120
+ # resource path
121
+ local_var_path = '/api/projects/{projectId}/implementations'.sub('{' + 'projectId' + '}', CGI.escape(project_id.to_s))
122
+
123
+ # query parameters
124
+ query_params = opts[:query_params] || {}
125
+
126
+ # header parameters
127
+ header_params = opts[:header_params] || {}
128
+ # HTTP header 'Accept' (if needed)
129
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
130
+ # HTTP header 'Content-Type'
131
+ content_type = @api_client.select_header_content_type(['application/json'])
132
+ if !content_type.nil?
133
+ header_params['Content-Type'] = content_type
134
+ end
135
+
136
+ # form parameters
137
+ form_params = opts[:form_params] || {}
138
+
139
+ # http body (model)
140
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(implementation_request)
141
+
142
+ # return_type
143
+ return_type = opts[:debug_return_type] || 'ImplementationResponse'
144
+
145
+ # auth_names
146
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth']
147
+
148
+ new_options = opts.merge(
149
+ :operation => :"ImplementationsApi.implement_links",
150
+ :header_params => header_params,
151
+ :query_params => query_params,
152
+ :form_params => form_params,
153
+ :body => post_body,
154
+ :auth_names => auth_names,
155
+ :return_type => return_type
156
+ )
157
+
158
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
159
+ if @api_client.config.debugging
160
+ @api_client.config.logger.debug "API called: ImplementationsApi#implement_links\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
161
+ end
162
+ return data, status_code, headers
163
+ end
164
+
165
+ # List implementations
166
+ # Get implementation history for a project
167
+ # @param project_id [String] Unique identifier for the project
168
+ # @param [Hash] opts the optional parameters
169
+ # @option opts [String] :status Filter by implementation status
170
+ # @option opts [String] :platform Filter by platform
171
+ # @option opts [Integer] :limit Results per page (default to 50)
172
+ # @option opts [Integer] :offset Pagination offset (default to 0)
173
+ # @return [ListImplementations200Response]
174
+ def list_implementations(project_id, opts = {})
175
+ data, _status_code, _headers = list_implementations_with_http_info(project_id, opts)
176
+ data
177
+ end
178
+
179
+ # List implementations
180
+ # Get implementation history for a project
181
+ # @param project_id [String] Unique identifier for the project
182
+ # @param [Hash] opts the optional parameters
183
+ # @option opts [String] :status Filter by implementation status
184
+ # @option opts [String] :platform Filter by platform
185
+ # @option opts [Integer] :limit Results per page (default to 50)
186
+ # @option opts [Integer] :offset Pagination offset (default to 0)
187
+ # @return [Array<(ListImplementations200Response, Integer, Hash)>] ListImplementations200Response data, response status code and response headers
188
+ def list_implementations_with_http_info(project_id, opts = {})
189
+ if @api_client.config.debugging
190
+ @api_client.config.logger.debug 'Calling API: ImplementationsApi.list_implementations ...'
191
+ end
192
+ # verify the required parameter 'project_id' is set
193
+ if @api_client.config.client_side_validation && project_id.nil?
194
+ fail ArgumentError, "Missing the required parameter 'project_id' when calling ImplementationsApi.list_implementations"
195
+ end
196
+ allowable_values = ["pending", "in_progress", "success", "failed", "rolled_back"]
197
+ if @api_client.config.client_side_validation && opts[:'status'] && !allowable_values.include?(opts[:'status'])
198
+ fail ArgumentError, "invalid value for \"status\", must be one of #{allowable_values}"
199
+ end
200
+ allowable_values = ["custom"]
201
+ if @api_client.config.client_side_validation && opts[:'platform'] && !allowable_values.include?(opts[:'platform'])
202
+ fail ArgumentError, "invalid value for \"platform\", must be one of #{allowable_values}"
203
+ end
204
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] > 100
205
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling ImplementationsApi.list_implementations, must be smaller than or equal to 100.'
206
+ end
207
+
208
+ # resource path
209
+ local_var_path = '/api/projects/{projectId}/implementations'.sub('{' + 'projectId' + '}', CGI.escape(project_id.to_s))
210
+
211
+ # query parameters
212
+ query_params = opts[:query_params] || {}
213
+ query_params[:'status'] = opts[:'status'] if !opts[:'status'].nil?
214
+ query_params[:'platform'] = opts[:'platform'] if !opts[:'platform'].nil?
215
+ query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
216
+ query_params[:'offset'] = opts[:'offset'] if !opts[:'offset'].nil?
217
+
218
+ # header parameters
219
+ header_params = opts[:header_params] || {}
220
+ # HTTP header 'Accept' (if needed)
221
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
222
+
223
+ # form parameters
224
+ form_params = opts[:form_params] || {}
225
+
226
+ # http body (model)
227
+ post_body = opts[:debug_body]
228
+
229
+ # return_type
230
+ return_type = opts[:debug_return_type] || 'ListImplementations200Response'
231
+
232
+ # auth_names
233
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth']
234
+
235
+ new_options = opts.merge(
236
+ :operation => :"ImplementationsApi.list_implementations",
237
+ :header_params => header_params,
238
+ :query_params => query_params,
239
+ :form_params => form_params,
240
+ :body => post_body,
241
+ :auth_names => auth_names,
242
+ :return_type => return_type
243
+ )
244
+
245
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
246
+ if @api_client.config.debugging
247
+ @api_client.config.logger.debug "API called: ImplementationsApi#list_implementations\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
248
+ end
249
+ return data, status_code, headers
250
+ end
251
+
252
+ # Rollback implementation
253
+ # Undo a link implementation and restore original content
254
+ # @param project_id [String] Unique identifier for the project
255
+ # @param implementation_id [String] Unique identifier for the implementation
256
+ # @param rollback_implementation_request [RollbackImplementationRequest]
257
+ # @param [Hash] opts the optional parameters
258
+ # @return [RollbackImplementation200Response]
259
+ def rollback_implementation(project_id, implementation_id, rollback_implementation_request, opts = {})
260
+ data, _status_code, _headers = rollback_implementation_with_http_info(project_id, implementation_id, rollback_implementation_request, opts)
261
+ data
262
+ end
263
+
264
+ # Rollback implementation
265
+ # Undo a link implementation and restore original content
266
+ # @param project_id [String] Unique identifier for the project
267
+ # @param implementation_id [String] Unique identifier for the implementation
268
+ # @param rollback_implementation_request [RollbackImplementationRequest]
269
+ # @param [Hash] opts the optional parameters
270
+ # @return [Array<(RollbackImplementation200Response, Integer, Hash)>] RollbackImplementation200Response data, response status code and response headers
271
+ def rollback_implementation_with_http_info(project_id, implementation_id, rollback_implementation_request, opts = {})
272
+ if @api_client.config.debugging
273
+ @api_client.config.logger.debug 'Calling API: ImplementationsApi.rollback_implementation ...'
274
+ end
275
+ # verify the required parameter 'project_id' is set
276
+ if @api_client.config.client_side_validation && project_id.nil?
277
+ fail ArgumentError, "Missing the required parameter 'project_id' when calling ImplementationsApi.rollback_implementation"
278
+ end
279
+ # verify the required parameter 'implementation_id' is set
280
+ if @api_client.config.client_side_validation && implementation_id.nil?
281
+ fail ArgumentError, "Missing the required parameter 'implementation_id' when calling ImplementationsApi.rollback_implementation"
282
+ end
283
+ # verify the required parameter 'rollback_implementation_request' is set
284
+ if @api_client.config.client_side_validation && rollback_implementation_request.nil?
285
+ fail ArgumentError, "Missing the required parameter 'rollback_implementation_request' when calling ImplementationsApi.rollback_implementation"
286
+ end
287
+ # resource path
288
+ local_var_path = '/api/projects/{projectId}/implementations/{implementationId}/rollback'.sub('{' + 'projectId' + '}', CGI.escape(project_id.to_s)).sub('{' + 'implementationId' + '}', CGI.escape(implementation_id.to_s))
289
+
290
+ # query parameters
291
+ query_params = opts[:query_params] || {}
292
+
293
+ # header parameters
294
+ header_params = opts[:header_params] || {}
295
+ # HTTP header 'Accept' (if needed)
296
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
297
+ # HTTP header 'Content-Type'
298
+ content_type = @api_client.select_header_content_type(['application/json'])
299
+ if !content_type.nil?
300
+ header_params['Content-Type'] = content_type
301
+ end
302
+
303
+ # form parameters
304
+ form_params = opts[:form_params] || {}
305
+
306
+ # http body (model)
307
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(rollback_implementation_request)
308
+
309
+ # return_type
310
+ return_type = opts[:debug_return_type] || 'RollbackImplementation200Response'
311
+
312
+ # auth_names
313
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth']
314
+
315
+ new_options = opts.merge(
316
+ :operation => :"ImplementationsApi.rollback_implementation",
317
+ :header_params => header_params,
318
+ :query_params => query_params,
319
+ :form_params => form_params,
320
+ :body => post_body,
321
+ :auth_names => auth_names,
322
+ :return_type => return_type
323
+ )
324
+
325
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
326
+ if @api_client.config.debugging
327
+ @api_client.config.logger.debug "API called: ImplementationsApi#rollback_implementation\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
328
+ end
329
+ return data, status_code, headers
330
+ end
331
+ end
332
+ end