soilsidekick 3.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/Gemfile +9 -0
- data/README.md +267 -0
- data/Rakefile +10 -0
- data/docs/AIAnalysis.md +22 -0
- data/docs/AIAnalysisRecommendationsInner.md +22 -0
- data/docs/AIServicesApi.md +327 -0
- data/docs/BeginnerGuidance.md +34 -0
- data/docs/BeginnerGuidanceDetailedExplanation.md +24 -0
- data/docs/BeginnerGuidanceMetadata.md +22 -0
- data/docs/BeginnerGuidanceRequest.md +24 -0
- data/docs/BeginnerGuidanceRequestLocation.md +20 -0
- data/docs/BeginnerGuidanceRequestPlantContext.md +20 -0
- data/docs/CalculateCarbonCreditsRequest.md +26 -0
- data/docs/CalculateEnvironmentalImpactRequest.md +26 -0
- data/docs/CalculateEnvironmentalImpactRequestProposedTreatmentsInner.md +18 -0
- data/docs/CalculateEnvironmentalImpactRequestSoilData.md +28 -0
- data/docs/CalculateEnvironmentalImpactRequestWaterBodyData.md +18 -0
- data/docs/CarbonApi.md +79 -0
- data/docs/CarbonCreditCalculation.md +22 -0
- data/docs/CarbonCreditCalculationCalculationDetails.md +28 -0
- data/docs/CarbonCreditCalculationCalculationDetailsMetadata.md +22 -0
- data/docs/CarbonCreditCalculationCreditRecord.md +26 -0
- data/docs/ConsumerPlantCareApi.md +247 -0
- data/docs/County.md +26 -0
- data/docs/CountyLookup200Response.md +18 -0
- data/docs/CountyLookupRequest.md +18 -0
- data/docs/DynamicCare.md +28 -0
- data/docs/DynamicCareCareRecommendations.md +24 -0
- data/docs/DynamicCareCareRecommendationsHumidity.md +22 -0
- data/docs/DynamicCareCareRecommendationsLight.md +22 -0
- data/docs/DynamicCareCareRecommendationsWatering.md +24 -0
- data/docs/DynamicCareCurrentConditions.md +26 -0
- data/docs/DynamicCareMetadata.md +22 -0
- data/docs/DynamicCarePlant.md +22 -0
- data/docs/DynamicCareRequest.md +28 -0
- data/docs/DynamicCareRequestContainerDetails.md +22 -0
- data/docs/DynamicCareRequestEnvironment.md +20 -0
- data/docs/DynamicCareRequestLocation.md +22 -0
- data/docs/EnvironmentalApi.md +87 -0
- data/docs/EnvironmentalImpact.md +22 -0
- data/docs/EnvironmentalImpactDetailedAnalysis.md +26 -0
- data/docs/EnvironmentalImpactDetailedAnalysisEcoAlternatives.md +18 -0
- data/docs/EnvironmentalImpactDetailedAnalysisEcoAlternativesAlternativesInner.md +26 -0
- data/docs/EnvironmentalImpactDetailedAnalysisRunoffRisk.md +22 -0
- data/docs/EnvironmentalImpactImpactAssessment.md +26 -0
- data/docs/Error.md +22 -0
- data/docs/GenerateSmartReportSummaryRequest.md +20 -0
- data/docs/GenerateVRTPrescriptionRequest.md +22 -0
- data/docs/GeographicApi.md +79 -0
- data/docs/GetAgriculturalIntelligenceRequest.md +20 -0
- data/docs/GetLiveAgriculturalDataRequest.md +24 -0
- data/docs/GetPlantingCalendarRequest.md +20 -0
- data/docs/GetSatelliteDataRequest.md +20 -0
- data/docs/GetSeasonalPlanningAssistantRequest.md +26 -0
- data/docs/GetSeasonalPlanningAssistantRequestLocation.md +22 -0
- data/docs/GetSoilDataRequest.md +18 -0
- data/docs/GetTerritorialWaterAnalyticsRequest.md +22 -0
- data/docs/GetTerritorialWaterAnalyticsRequestDateRange.md +20 -0
- data/docs/LeafEnginesApi.md +87 -0
- data/docs/LeafEnginesCompatibility.md +22 -0
- data/docs/LeafEnginesCompatibilityData.md +32 -0
- data/docs/LeafEnginesCompatibilityDataBreakdown.md +22 -0
- data/docs/LeafEnginesCompatibilityDataBreakdownSoil.md +22 -0
- data/docs/LeafEnginesCompatibilityDataMetadata.md +22 -0
- data/docs/LeafEnginesCompatibilityUsage.md +20 -0
- data/docs/LeafenginesQueryRequest.md +22 -0
- data/docs/LeafenginesQueryRequestLocation.md +24 -0
- data/docs/LeafenginesQueryRequestOptions.md +22 -0
- data/docs/LeafenginesQueryRequestPlant.md +24 -0
- data/docs/LeafenginesQueryRequestPlantCareRequirements.md +22 -0
- data/docs/LeafenginesQueryRequestPlantCareRequirementsSoilPhRange.md +20 -0
- data/docs/LiveAgriculturalData.md +30 -0
- data/docs/LiveAgriculturalDataData.md +24 -0
- data/docs/PlantingCalendar.md +26 -0
- data/docs/SafeIdentification.md +26 -0
- data/docs/SafeIdentificationConfidenceBreakdown.md +24 -0
- data/docs/SafeIdentificationIdentification.md +22 -0
- data/docs/SafeIdentificationIdentificationPrimaryMatch.md +24 -0
- data/docs/SafeIdentificationMetadata.md +22 -0
- data/docs/SafeIdentificationRequest.md +22 -0
- data/docs/SafeIdentificationRequestContext.md +22 -0
- data/docs/SafeIdentificationRequestLocation.md +22 -0
- data/docs/SafeIdentificationRequestLocationCoordinates.md +20 -0
- data/docs/SafeIdentificationSafetyAnalysis.md +24 -0
- data/docs/SafeIdentificationSafetyAnalysisLookalikesInner.md +24 -0
- data/docs/SatelliteData.md +26 -0
- data/docs/SatelliteDataApi.md +79 -0
- data/docs/SeasonalPlanningResponse.md +24 -0
- data/docs/SeasonalPlanningResponseRecommendations.md +22 -0
- data/docs/SeasonalPlanningResponseWeatherData.md +28 -0
- data/docs/SmartReportSummary.md +22 -0
- data/docs/SmartReportSummarySummary.md +24 -0
- data/docs/SoilAnalysisApi.md +231 -0
- data/docs/SoilData.md +38 -0
- data/docs/TerritorialWaterAnalytics.md +22 -0
- data/docs/TerritorialWaterAnalyticsAnalytics.md +24 -0
- data/docs/TurboQuantApi.md +87 -0
- data/docs/TurboQuantCapabilities.md +30 -0
- data/docs/TurboQuantCapabilitiesEstimatedLatencyMs.md +20 -0
- data/docs/TurboQuantCapabilitiesRequest.md +22 -0
- data/docs/VRTApi.md +79 -0
- data/docs/VRTPrescription.md +24 -0
- data/docs/VRTPrescriptionZonesInner.md +22 -0
- data/docs/VisualCropAnalysis.md +24 -0
- data/docs/VisualCropAnalysisAnalysis.md +26 -0
- data/docs/VisualCropAnalysisRequest.md +24 -0
- data/docs/VisualCropAnalysisRequestLocation.md +22 -0
- data/docs/WaterQuality.md +30 -0
- data/docs/WaterQualityApi.md +151 -0
- data/git_push.sh +57 -0
- data/lib/soilsidekick/api/ai_services_api.rb +378 -0
- data/lib/soilsidekick/api/carbon_api.rb +90 -0
- data/lib/soilsidekick/api/consumer_plant_care_api.rb +289 -0
- data/lib/soilsidekick/api/environmental_api.rb +111 -0
- data/lib/soilsidekick/api/geographic_api.rb +90 -0
- data/lib/soilsidekick/api/leaf_engines_api.rb +111 -0
- data/lib/soilsidekick/api/satellite_data_api.rb +90 -0
- data/lib/soilsidekick/api/soil_analysis_api.rb +247 -0
- data/lib/soilsidekick/api/turbo_quant_api.rb +111 -0
- data/lib/soilsidekick/api/vrt_api.rb +90 -0
- data/lib/soilsidekick/api/water_quality_api.rb +158 -0
- data/lib/soilsidekick/api_client.rb +397 -0
- data/lib/soilsidekick/api_error.rb +58 -0
- data/lib/soilsidekick/api_model_base.rb +88 -0
- data/lib/soilsidekick/configuration.rb +312 -0
- data/lib/soilsidekick/models/ai_analysis.rb +167 -0
- data/lib/soilsidekick/models/ai_analysis_recommendations_inner.rb +199 -0
- data/lib/soilsidekick/models/beginner_guidance.rb +228 -0
- data/lib/soilsidekick/models/beginner_guidance_detailed_explanation.rb +179 -0
- data/lib/soilsidekick/models/beginner_guidance_metadata.rb +165 -0
- data/lib/soilsidekick/models/beginner_guidance_request.rb +229 -0
- data/lib/soilsidekick/models/beginner_guidance_request_location.rb +156 -0
- data/lib/soilsidekick/models/beginner_guidance_request_plant_context.rb +158 -0
- data/lib/soilsidekick/models/calculate_carbon_credits_request.rb +264 -0
- data/lib/soilsidekick/models/calculate_environmental_impact_request.rb +247 -0
- data/lib/soilsidekick/models/calculate_environmental_impact_request_proposed_treatments_inner.rb +181 -0
- data/lib/soilsidekick/models/calculate_environmental_impact_request_soil_data.rb +238 -0
- data/lib/soilsidekick/models/calculate_environmental_impact_request_water_body_data.rb +147 -0
- data/lib/soilsidekick/models/carbon_credit_calculation.rb +165 -0
- data/lib/soilsidekick/models/carbon_credit_calculation_calculation_details.rb +192 -0
- data/lib/soilsidekick/models/carbon_credit_calculation_calculation_details_metadata.rb +167 -0
- data/lib/soilsidekick/models/carbon_credit_calculation_credit_record.rb +217 -0
- data/lib/soilsidekick/models/county.rb +183 -0
- data/lib/soilsidekick/models/county_lookup200_response.rb +149 -0
- data/lib/soilsidekick/models/county_lookup_request.rb +183 -0
- data/lib/soilsidekick/models/dynamic_care.rb +196 -0
- data/lib/soilsidekick/models/dynamic_care_care_recommendations.rb +175 -0
- data/lib/soilsidekick/models/dynamic_care_care_recommendations_humidity.rb +165 -0
- data/lib/soilsidekick/models/dynamic_care_care_recommendations_light.rb +165 -0
- data/lib/soilsidekick/models/dynamic_care_care_recommendations_watering.rb +208 -0
- data/lib/soilsidekick/models/dynamic_care_current_conditions.rb +183 -0
- data/lib/soilsidekick/models/dynamic_care_metadata.rb +165 -0
- data/lib/soilsidekick/models/dynamic_care_plant.rb +199 -0
- data/lib/soilsidekick/models/dynamic_care_request.rb +262 -0
- data/lib/soilsidekick/models/dynamic_care_request_container_details.rb +199 -0
- data/lib/soilsidekick/models/dynamic_care_request_environment.rb +203 -0
- data/lib/soilsidekick/models/dynamic_care_request_location.rb +194 -0
- data/lib/soilsidekick/models/environmental_impact.rb +167 -0
- data/lib/soilsidekick/models/environmental_impact_detailed_analysis.rb +183 -0
- data/lib/soilsidekick/models/environmental_impact_detailed_analysis_eco_alternatives.rb +149 -0
- data/lib/soilsidekick/models/environmental_impact_detailed_analysis_eco_alternatives_alternatives_inner.rb +183 -0
- data/lib/soilsidekick/models/environmental_impact_detailed_analysis_runoff_risk.rb +199 -0
- data/lib/soilsidekick/models/environmental_impact_impact_assessment.rb +183 -0
- data/lib/soilsidekick/models/error.rb +165 -0
- data/lib/soilsidekick/models/generate_smart_report_summary_request.rb +215 -0
- data/lib/soilsidekick/models/generate_vrt_prescription_request.rb +223 -0
- data/lib/soilsidekick/models/get_agricultural_intelligence_request.rb +225 -0
- data/lib/soilsidekick/models/get_live_agricultural_data_request.rb +277 -0
- data/lib/soilsidekick/models/get_planting_calendar_request.rb +201 -0
- data/lib/soilsidekick/models/get_satellite_data_request.rb +226 -0
- data/lib/soilsidekick/models/get_seasonal_planning_assistant_request.rb +245 -0
- data/lib/soilsidekick/models/get_seasonal_planning_assistant_request_location.rb +165 -0
- data/lib/soilsidekick/models/get_soil_data_request.rb +176 -0
- data/lib/soilsidekick/models/get_territorial_water_analytics_request.rb +201 -0
- data/lib/soilsidekick/models/get_territorial_water_analytics_request_date_range.rb +156 -0
- data/lib/soilsidekick/models/leaf_engines_compatibility.rb +165 -0
- data/lib/soilsidekick/models/leaf_engines_compatibility_data.rb +247 -0
- data/lib/soilsidekick/models/leaf_engines_compatibility_data_breakdown.rb +165 -0
- data/lib/soilsidekick/models/leaf_engines_compatibility_data_breakdown_soil.rb +169 -0
- data/lib/soilsidekick/models/leaf_engines_compatibility_data_metadata.rb +167 -0
- data/lib/soilsidekick/models/leaf_engines_compatibility_usage.rb +156 -0
- data/lib/soilsidekick/models/leafengines_query_request.rb +199 -0
- data/lib/soilsidekick/models/leafengines_query_request_location.rb +174 -0
- data/lib/soilsidekick/models/leafengines_query_request_options.rb +165 -0
- data/lib/soilsidekick/models/leafengines_query_request_plant.rb +174 -0
- data/lib/soilsidekick/models/leafengines_query_request_plant_care_requirements.rb +211 -0
- data/lib/soilsidekick/models/leafengines_query_request_plant_care_requirements_soil_ph_range.rb +156 -0
- data/lib/soilsidekick/models/live_agricultural_data.rb +237 -0
- data/lib/soilsidekick/models/live_agricultural_data_data.rb +174 -0
- data/lib/soilsidekick/models/planting_calendar.rb +185 -0
- data/lib/soilsidekick/models/safe_identification.rb +184 -0
- data/lib/soilsidekick/models/safe_identification_confidence_breakdown.rb +174 -0
- data/lib/soilsidekick/models/safe_identification_identification.rb +200 -0
- data/lib/soilsidekick/models/safe_identification_identification_primary_match.rb +175 -0
- data/lib/soilsidekick/models/safe_identification_metadata.rb +167 -0
- data/lib/soilsidekick/models/safe_identification_request.rb +183 -0
- data/lib/soilsidekick/models/safe_identification_request_context.rb +223 -0
- data/lib/soilsidekick/models/safe_identification_request_location.rb +205 -0
- data/lib/soilsidekick/models/safe_identification_request_location_coordinates.rb +156 -0
- data/lib/soilsidekick/models/safe_identification_safety_analysis.rb +215 -0
- data/lib/soilsidekick/models/safe_identification_safety_analysis_lookalikes_inner.rb +177 -0
- data/lib/soilsidekick/models/satellite_data.rb +185 -0
- data/lib/soilsidekick/models/seasonal_planning_response.rb +174 -0
- data/lib/soilsidekick/models/seasonal_planning_response_recommendations.rb +169 -0
- data/lib/soilsidekick/models/seasonal_planning_response_weather_data.rb +192 -0
- data/lib/soilsidekick/models/smart_report_summary.rb +165 -0
- data/lib/soilsidekick/models/smart_report_summary_summary.rb +178 -0
- data/lib/soilsidekick/models/soil_data.rb +239 -0
- data/lib/soilsidekick/models/territorial_water_analytics.rb +165 -0
- data/lib/soilsidekick/models/territorial_water_analytics_analytics.rb +174 -0
- data/lib/soilsidekick/models/turbo_quant_capabilities.rb +253 -0
- data/lib/soilsidekick/models/turbo_quant_capabilities_estimated_latency_ms.rb +156 -0
- data/lib/soilsidekick/models/turbo_quant_capabilities_request.rb +201 -0
- data/lib/soilsidekick/models/visual_crop_analysis.rb +174 -0
- data/lib/soilsidekick/models/visual_crop_analysis_analysis.rb +219 -0
- data/lib/soilsidekick/models/visual_crop_analysis_request.rb +234 -0
- data/lib/soilsidekick/models/visual_crop_analysis_request_location.rb +165 -0
- data/lib/soilsidekick/models/vrt_prescription.rb +176 -0
- data/lib/soilsidekick/models/vrt_prescription_zones_inner.rb +165 -0
- data/lib/soilsidekick/models/water_quality.rb +235 -0
- data/lib/soilsidekick/version.rb +15 -0
- data/lib/soilsidekick.rb +146 -0
- data/soilsidekick.gemspec +39 -0
- data/spec/api/ai_services_api_spec.rb +95 -0
- data/spec/api/carbon_api_spec.rb +47 -0
- data/spec/api/consumer_plant_care_api_spec.rb +80 -0
- data/spec/api/environmental_api_spec.rb +50 -0
- data/spec/api/geographic_api_spec.rb +47 -0
- data/spec/api/leaf_engines_api_spec.rb +50 -0
- data/spec/api/satellite_data_api_spec.rb +47 -0
- data/spec/api/soil_analysis_api_spec.rb +74 -0
- data/spec/api/turbo_quant_api_spec.rb +50 -0
- data/spec/api/vrt_api_spec.rb +47 -0
- data/spec/api/water_quality_api_spec.rb +59 -0
- data/spec/models/ai_analysis_recommendations_inner_spec.rb +52 -0
- data/spec/models/ai_analysis_spec.rb +48 -0
- data/spec/models/beginner_guidance_detailed_explanation_spec.rb +54 -0
- data/spec/models/beginner_guidance_metadata_spec.rb +48 -0
- data/spec/models/beginner_guidance_request_location_spec.rb +42 -0
- data/spec/models/beginner_guidance_request_plant_context_spec.rb +42 -0
- data/spec/models/beginner_guidance_request_spec.rb +58 -0
- data/spec/models/beginner_guidance_spec.rb +84 -0
- data/spec/models/calculate_carbon_credits_request_spec.rb +64 -0
- data/spec/models/calculate_environmental_impact_request_proposed_treatments_inner_spec.rb +40 -0
- data/spec/models/calculate_environmental_impact_request_soil_data_spec.rb +74 -0
- data/spec/models/calculate_environmental_impact_request_spec.rb +60 -0
- data/spec/models/calculate_environmental_impact_request_water_body_data_spec.rb +36 -0
- data/spec/models/carbon_credit_calculation_calculation_details_metadata_spec.rb +48 -0
- data/spec/models/carbon_credit_calculation_calculation_details_spec.rb +66 -0
- data/spec/models/carbon_credit_calculation_credit_record_spec.rb +64 -0
- data/spec/models/carbon_credit_calculation_spec.rb +48 -0
- data/spec/models/county_lookup200_response_spec.rb +36 -0
- data/spec/models/county_lookup_request_spec.rb +36 -0
- data/spec/models/county_spec.rb +60 -0
- data/spec/models/dynamic_care_care_recommendations_humidity_spec.rb +48 -0
- data/spec/models/dynamic_care_care_recommendations_light_spec.rb +48 -0
- data/spec/models/dynamic_care_care_recommendations_spec.rb +54 -0
- data/spec/models/dynamic_care_care_recommendations_watering_spec.rb +58 -0
- data/spec/models/dynamic_care_current_conditions_spec.rb +60 -0
- data/spec/models/dynamic_care_metadata_spec.rb +48 -0
- data/spec/models/dynamic_care_plant_spec.rb +52 -0
- data/spec/models/dynamic_care_request_container_details_spec.rb +52 -0
- data/spec/models/dynamic_care_request_environment_spec.rb +50 -0
- data/spec/models/dynamic_care_request_location_spec.rb +48 -0
- data/spec/models/dynamic_care_request_spec.rb +70 -0
- data/spec/models/dynamic_care_spec.rb +66 -0
- data/spec/models/environmental_impact_detailed_analysis_eco_alternatives_alternatives_inner_spec.rb +60 -0
- data/spec/models/environmental_impact_detailed_analysis_eco_alternatives_spec.rb +36 -0
- data/spec/models/environmental_impact_detailed_analysis_runoff_risk_spec.rb +52 -0
- data/spec/models/environmental_impact_detailed_analysis_spec.rb +60 -0
- data/spec/models/environmental_impact_impact_assessment_spec.rb +60 -0
- data/spec/models/environmental_impact_spec.rb +48 -0
- data/spec/models/error_spec.rb +48 -0
- data/spec/models/generate_smart_report_summary_request_spec.rb +46 -0
- data/spec/models/generate_vrt_prescription_request_spec.rb +52 -0
- data/spec/models/get_agricultural_intelligence_request_spec.rb +46 -0
- data/spec/models/get_live_agricultural_data_request_spec.rb +58 -0
- data/spec/models/get_planting_calendar_request_spec.rb +42 -0
- data/spec/models/get_satellite_data_request_spec.rb +42 -0
- data/spec/models/get_seasonal_planning_assistant_request_location_spec.rb +48 -0
- data/spec/models/get_seasonal_planning_assistant_request_spec.rb +64 -0
- data/spec/models/get_soil_data_request_spec.rb +36 -0
- data/spec/models/get_territorial_water_analytics_request_date_range_spec.rb +42 -0
- data/spec/models/get_territorial_water_analytics_request_spec.rb +52 -0
- data/spec/models/leaf_engines_compatibility_data_breakdown_soil_spec.rb +48 -0
- data/spec/models/leaf_engines_compatibility_data_breakdown_spec.rb +48 -0
- data/spec/models/leaf_engines_compatibility_data_metadata_spec.rb +48 -0
- data/spec/models/leaf_engines_compatibility_data_spec.rb +82 -0
- data/spec/models/leaf_engines_compatibility_spec.rb +48 -0
- data/spec/models/leaf_engines_compatibility_usage_spec.rb +42 -0
- data/spec/models/leafengines_query_request_location_spec.rb +54 -0
- data/spec/models/leafengines_query_request_options_spec.rb +48 -0
- data/spec/models/leafengines_query_request_plant_care_requirements_soil_ph_range_spec.rb +42 -0
- data/spec/models/leafengines_query_request_plant_care_requirements_spec.rb +56 -0
- data/spec/models/leafengines_query_request_plant_spec.rb +54 -0
- data/spec/models/leafengines_query_request_spec.rb +48 -0
- data/spec/models/live_agricultural_data_data_spec.rb +54 -0
- data/spec/models/live_agricultural_data_spec.rb +76 -0
- data/spec/models/planting_calendar_spec.rb +60 -0
- data/spec/models/safe_identification_confidence_breakdown_spec.rb +54 -0
- data/spec/models/safe_identification_identification_primary_match_spec.rb +54 -0
- data/spec/models/safe_identification_identification_spec.rb +52 -0
- data/spec/models/safe_identification_metadata_spec.rb +48 -0
- data/spec/models/safe_identification_request_context_spec.rb +60 -0
- data/spec/models/safe_identification_request_location_coordinates_spec.rb +42 -0
- data/spec/models/safe_identification_request_location_spec.rb +48 -0
- data/spec/models/safe_identification_request_spec.rb +48 -0
- data/spec/models/safe_identification_safety_analysis_lookalikes_inner_spec.rb +54 -0
- data/spec/models/safe_identification_safety_analysis_spec.rb +58 -0
- data/spec/models/safe_identification_spec.rb +60 -0
- data/spec/models/satellite_data_spec.rb +60 -0
- data/spec/models/seasonal_planning_response_recommendations_spec.rb +48 -0
- data/spec/models/seasonal_planning_response_spec.rb +54 -0
- data/spec/models/seasonal_planning_response_weather_data_spec.rb +66 -0
- data/spec/models/smart_report_summary_spec.rb +48 -0
- data/spec/models/smart_report_summary_summary_spec.rb +54 -0
- data/spec/models/soil_data_spec.rb +96 -0
- data/spec/models/territorial_water_analytics_analytics_spec.rb +54 -0
- data/spec/models/territorial_water_analytics_spec.rb +48 -0
- data/spec/models/turbo_quant_capabilities_estimated_latency_ms_spec.rb +42 -0
- data/spec/models/turbo_quant_capabilities_request_spec.rb +52 -0
- data/spec/models/turbo_quant_capabilities_spec.rb +80 -0
- data/spec/models/visual_crop_analysis_analysis_spec.rb +64 -0
- data/spec/models/visual_crop_analysis_request_location_spec.rb +48 -0
- data/spec/models/visual_crop_analysis_request_spec.rb +58 -0
- data/spec/models/visual_crop_analysis_spec.rb +54 -0
- data/spec/models/vrt_prescription_spec.rb +54 -0
- data/spec/models/vrt_prescription_zones_inner_spec.rb +48 -0
- data/spec/models/water_quality_spec.rb +76 -0
- data/spec/spec_helper.rb +111 -0
- metadata +543 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#SoilSidekick Pro API
|
|
3
|
+
|
|
4
|
+
#Agricultural intelligence and soil analysis API with tier-based access control. ## What's New in 1.2.0 - **Consumer Plant Care APIs**: Three new endpoints addressing top pain points in plant ID apps: - `/safe-identification`: Toxic lookalike warnings and environmental context - `/dynamic-care`: Hyper-localized, real-time care recommendations - `/beginner-guidance`: Judgment-free, jargon-free plant guidance ## Authentication All endpoints require an API key passed via the `x-api-key` header: ``` x-api-key: ak_your_api_key_here ``` API keys are generated through the dashboard and use the `ak_*` format. ## Rate Limiting Rate limits are enforced based on your subscription tier: - **Free**: 10 req/min, 100 req/hour, 1,000 req/day - **Starter**: 30 req/min, 500 req/hour, 5,000 req/day - **Pro**: 100 req/min, 2,000 req/hour, 25,000 req/day - **Enterprise**: 500 req/min, 10,000 req/hour, 100,000 req/day Rate limit information is returned in response headers: - `X-RateLimit-Limit`: Maximum requests in window - `X-RateLimit-Remaining`: Remaining requests in window - `X-RateLimit-Reset`: Unix timestamp when limit resets ## Response Time SLAs All endpoints return response time headers for performance monitoring: - `X-Response-Time`: Human-readable response time (e.g., \"245ms\") - `X-Response-Time-Ms`: Response time in milliseconds - `X-Response-Time-Target`: Target response time for this endpoint - `X-Response-Time-Max`: Maximum acceptable response time - `X-Response-Time-Status`: Performance status (`optimal`, `acceptable`, `exceeded`) ### Response Time Targets by Category | Category | Target | Maximum | Endpoints | |----------|--------|---------|-----------| | **Fast** | 200ms | 500ms | county-lookup, check-subscription | | **Standard** | 500ms | 1,500ms | get-soil-data, territorial-water-quality | | **Complex** | 2,000ms | 5,000ms | agricultural-intelligence, gpt5-chat, visual-crop-analysis | | **Heavy** | 5,000ms | 15,000ms | live-agricultural-data, generate-vrt-prescription |
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 3.0.0
|
|
7
|
+
Contact: support@soilsidekickpro.com
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
Generator version: 7.23.0
|
|
10
|
+
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
require 'spec_helper'
|
|
14
|
+
require 'json'
|
|
15
|
+
|
|
16
|
+
# Unit tests for SoilSidekick::AIServicesApi
|
|
17
|
+
# Automatically generated by openapi-generator (https://openapi-generator.tech)
|
|
18
|
+
# Please update as you see appropriate
|
|
19
|
+
describe 'AIServicesApi' do
|
|
20
|
+
before do
|
|
21
|
+
# run before each test
|
|
22
|
+
@api_instance = SoilSidekick::AIServicesApi.new
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
after do
|
|
26
|
+
# run after each test
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe 'test an instance of AIServicesApi' do
|
|
30
|
+
it 'should create an instance of AIServicesApi' do
|
|
31
|
+
expect(@api_instance).to be_instance_of(SoilSidekick::AIServicesApi)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# unit tests for generate_smart_report_summary
|
|
36
|
+
# Generate AI report summary
|
|
37
|
+
# Generate AI-powered summaries for soil or water quality reports
|
|
38
|
+
# @param generate_smart_report_summary_request
|
|
39
|
+
# @param [Hash] opts the optional parameters
|
|
40
|
+
# @option opts [Integer] :x_tq_context_mode TurboQuant extended context window size (tokens). With 3-bit KV cache, context windows up to 24K tokens are feasible within the same memory budget as standard 4K.
|
|
41
|
+
# @option opts [String] :x_tq_kv_cache_hint KV cache management hint. - `none`: No caching (default) - `reuse`: Reuse KV cache from previous request in same session (40-60% compute savings) - `persist`: Persist cache to disk for cross-session reuse
|
|
42
|
+
# @option opts [String] :x_tq_model_tier Preferred model tier for inference. - `auto`: Server selects optimal model based on device capabilities - `gemma-2b`: Lightweight model (~0.5GB KV with TQ) - `gemma-7b`: Full model, standard KV cache - `gemma-7b-tq`: Full model with TurboQuant 3-bit KV cache (~1.3GB)
|
|
43
|
+
# @return [SmartReportSummary]
|
|
44
|
+
describe 'generate_smart_report_summary test' do
|
|
45
|
+
it 'should work' do
|
|
46
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# unit tests for get_agricultural_intelligence
|
|
51
|
+
# Get AI-powered agricultural insights
|
|
52
|
+
# Agricultural intelligence with AI recommendations
|
|
53
|
+
# @param get_agricultural_intelligence_request
|
|
54
|
+
# @param [Hash] opts the optional parameters
|
|
55
|
+
# @option opts [Integer] :x_tq_context_mode TurboQuant extended context window size (tokens). With 3-bit KV cache, context windows up to 24K tokens are feasible within the same memory budget as standard 4K.
|
|
56
|
+
# @option opts [String] :x_tq_kv_cache_hint KV cache management hint. - `none`: No caching (default) - `reuse`: Reuse KV cache from previous request in same session (40-60% compute savings) - `persist`: Persist cache to disk for cross-session reuse
|
|
57
|
+
# @option opts [String] :x_tq_model_tier Preferred model tier for inference. - `auto`: Server selects optimal model based on device capabilities - `gemma-2b`: Lightweight model (~0.5GB KV with TQ) - `gemma-7b`: Full model, standard KV cache - `gemma-7b-tq`: Full model with TurboQuant 3-bit KV cache (~1.3GB)
|
|
58
|
+
# @return [AIAnalysis]
|
|
59
|
+
describe 'get_agricultural_intelligence test' do
|
|
60
|
+
it 'should work' do
|
|
61
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# unit tests for get_seasonal_planning_assistant
|
|
66
|
+
# Get seasonal planning recommendations
|
|
67
|
+
# AI-powered seasonal planning with weather integration
|
|
68
|
+
# @param get_seasonal_planning_assistant_request
|
|
69
|
+
# @param [Hash] opts the optional parameters
|
|
70
|
+
# @option opts [Integer] :x_tq_context_mode TurboQuant extended context window size (tokens). With 3-bit KV cache, context windows up to 24K tokens are feasible within the same memory budget as standard 4K.
|
|
71
|
+
# @option opts [String] :x_tq_kv_cache_hint KV cache management hint. - `none`: No caching (default) - `reuse`: Reuse KV cache from previous request in same session (40-60% compute savings) - `persist`: Persist cache to disk for cross-session reuse
|
|
72
|
+
# @option opts [String] :x_tq_model_tier Preferred model tier for inference. - `auto`: Server selects optimal model based on device capabilities - `gemma-2b`: Lightweight model (~0.5GB KV with TQ) - `gemma-7b`: Full model, standard KV cache - `gemma-7b-tq`: Full model with TurboQuant 3-bit KV cache (~1.3GB)
|
|
73
|
+
# @return [SeasonalPlanningResponse]
|
|
74
|
+
describe 'get_seasonal_planning_assistant test' do
|
|
75
|
+
it 'should work' do
|
|
76
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
# unit tests for visual_crop_analysis
|
|
81
|
+
# Analyze crop images
|
|
82
|
+
# AI-powered visual crop analysis for pest detection, health assessment, and disease screening
|
|
83
|
+
# @param visual_crop_analysis_request
|
|
84
|
+
# @param [Hash] opts the optional parameters
|
|
85
|
+
# @option opts [Integer] :x_tq_context_mode TurboQuant extended context window size (tokens). With 3-bit KV cache, context windows up to 24K tokens are feasible within the same memory budget as standard 4K.
|
|
86
|
+
# @option opts [String] :x_tq_kv_cache_hint KV cache management hint. - `none`: No caching (default) - `reuse`: Reuse KV cache from previous request in same session (40-60% compute savings) - `persist`: Persist cache to disk for cross-session reuse
|
|
87
|
+
# @option opts [String] :x_tq_model_tier Preferred model tier for inference. - `auto`: Server selects optimal model based on device capabilities - `gemma-2b`: Lightweight model (~0.5GB KV with TQ) - `gemma-7b`: Full model, standard KV cache - `gemma-7b-tq`: Full model with TurboQuant 3-bit KV cache (~1.3GB)
|
|
88
|
+
# @return [VisualCropAnalysis]
|
|
89
|
+
describe 'visual_crop_analysis test' do
|
|
90
|
+
it 'should work' do
|
|
91
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
end
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#SoilSidekick Pro API
|
|
3
|
+
|
|
4
|
+
#Agricultural intelligence and soil analysis API with tier-based access control. ## What's New in 1.2.0 - **Consumer Plant Care APIs**: Three new endpoints addressing top pain points in plant ID apps: - `/safe-identification`: Toxic lookalike warnings and environmental context - `/dynamic-care`: Hyper-localized, real-time care recommendations - `/beginner-guidance`: Judgment-free, jargon-free plant guidance ## Authentication All endpoints require an API key passed via the `x-api-key` header: ``` x-api-key: ak_your_api_key_here ``` API keys are generated through the dashboard and use the `ak_*` format. ## Rate Limiting Rate limits are enforced based on your subscription tier: - **Free**: 10 req/min, 100 req/hour, 1,000 req/day - **Starter**: 30 req/min, 500 req/hour, 5,000 req/day - **Pro**: 100 req/min, 2,000 req/hour, 25,000 req/day - **Enterprise**: 500 req/min, 10,000 req/hour, 100,000 req/day Rate limit information is returned in response headers: - `X-RateLimit-Limit`: Maximum requests in window - `X-RateLimit-Remaining`: Remaining requests in window - `X-RateLimit-Reset`: Unix timestamp when limit resets ## Response Time SLAs All endpoints return response time headers for performance monitoring: - `X-Response-Time`: Human-readable response time (e.g., \"245ms\") - `X-Response-Time-Ms`: Response time in milliseconds - `X-Response-Time-Target`: Target response time for this endpoint - `X-Response-Time-Max`: Maximum acceptable response time - `X-Response-Time-Status`: Performance status (`optimal`, `acceptable`, `exceeded`) ### Response Time Targets by Category | Category | Target | Maximum | Endpoints | |----------|--------|---------|-----------| | **Fast** | 200ms | 500ms | county-lookup, check-subscription | | **Standard** | 500ms | 1,500ms | get-soil-data, territorial-water-quality | | **Complex** | 2,000ms | 5,000ms | agricultural-intelligence, gpt5-chat, visual-crop-analysis | | **Heavy** | 5,000ms | 15,000ms | live-agricultural-data, generate-vrt-prescription |
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 3.0.0
|
|
7
|
+
Contact: support@soilsidekickpro.com
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
Generator version: 7.23.0
|
|
10
|
+
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
require 'spec_helper'
|
|
14
|
+
require 'json'
|
|
15
|
+
|
|
16
|
+
# Unit tests for SoilSidekick::CarbonApi
|
|
17
|
+
# Automatically generated by openapi-generator (https://openapi-generator.tech)
|
|
18
|
+
# Please update as you see appropriate
|
|
19
|
+
describe 'CarbonApi' do
|
|
20
|
+
before do
|
|
21
|
+
# run before each test
|
|
22
|
+
@api_instance = SoilSidekick::CarbonApi.new
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
after do
|
|
26
|
+
# run after each test
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe 'test an instance of CarbonApi' do
|
|
30
|
+
it 'should create an instance of CarbonApi' do
|
|
31
|
+
expect(@api_instance).to be_instance_of(SoilSidekick::CarbonApi)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# unit tests for calculate_carbon_credits
|
|
36
|
+
# Calculate carbon credits
|
|
37
|
+
# Calculate carbon credits based on field data and soil organic matter
|
|
38
|
+
# @param calculate_carbon_credits_request
|
|
39
|
+
# @param [Hash] opts the optional parameters
|
|
40
|
+
# @return [CarbonCreditCalculation]
|
|
41
|
+
describe 'calculate_carbon_credits test' do
|
|
42
|
+
it 'should work' do
|
|
43
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
end
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#SoilSidekick Pro API
|
|
3
|
+
|
|
4
|
+
#Agricultural intelligence and soil analysis API with tier-based access control. ## What's New in 1.2.0 - **Consumer Plant Care APIs**: Three new endpoints addressing top pain points in plant ID apps: - `/safe-identification`: Toxic lookalike warnings and environmental context - `/dynamic-care`: Hyper-localized, real-time care recommendations - `/beginner-guidance`: Judgment-free, jargon-free plant guidance ## Authentication All endpoints require an API key passed via the `x-api-key` header: ``` x-api-key: ak_your_api_key_here ``` API keys are generated through the dashboard and use the `ak_*` format. ## Rate Limiting Rate limits are enforced based on your subscription tier: - **Free**: 10 req/min, 100 req/hour, 1,000 req/day - **Starter**: 30 req/min, 500 req/hour, 5,000 req/day - **Pro**: 100 req/min, 2,000 req/hour, 25,000 req/day - **Enterprise**: 500 req/min, 10,000 req/hour, 100,000 req/day Rate limit information is returned in response headers: - `X-RateLimit-Limit`: Maximum requests in window - `X-RateLimit-Remaining`: Remaining requests in window - `X-RateLimit-Reset`: Unix timestamp when limit resets ## Response Time SLAs All endpoints return response time headers for performance monitoring: - `X-Response-Time`: Human-readable response time (e.g., \"245ms\") - `X-Response-Time-Ms`: Response time in milliseconds - `X-Response-Time-Target`: Target response time for this endpoint - `X-Response-Time-Max`: Maximum acceptable response time - `X-Response-Time-Status`: Performance status (`optimal`, `acceptable`, `exceeded`) ### Response Time Targets by Category | Category | Target | Maximum | Endpoints | |----------|--------|---------|-----------| | **Fast** | 200ms | 500ms | county-lookup, check-subscription | | **Standard** | 500ms | 1,500ms | get-soil-data, territorial-water-quality | | **Complex** | 2,000ms | 5,000ms | agricultural-intelligence, gpt5-chat, visual-crop-analysis | | **Heavy** | 5,000ms | 15,000ms | live-agricultural-data, generate-vrt-prescription |
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 3.0.0
|
|
7
|
+
Contact: support@soilsidekickpro.com
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
Generator version: 7.23.0
|
|
10
|
+
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
require 'spec_helper'
|
|
14
|
+
require 'json'
|
|
15
|
+
|
|
16
|
+
# Unit tests for SoilSidekick::ConsumerPlantCareApi
|
|
17
|
+
# Automatically generated by openapi-generator (https://openapi-generator.tech)
|
|
18
|
+
# Please update as you see appropriate
|
|
19
|
+
describe 'ConsumerPlantCareApi' do
|
|
20
|
+
before do
|
|
21
|
+
# run before each test
|
|
22
|
+
@api_instance = SoilSidekick::ConsumerPlantCareApi.new
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
after do
|
|
26
|
+
# run after each test
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe 'test an instance of ConsumerPlantCareApi' do
|
|
30
|
+
it 'should create an instance of ConsumerPlantCareApi' do
|
|
31
|
+
expect(@api_instance).to be_instance_of(SoilSidekick::ConsumerPlantCareApi)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# unit tests for beginner_guidance
|
|
36
|
+
# Beginner-friendly plant guidance without jargon
|
|
37
|
+
# Judgment-free, accessible plant guidance that solves community gatekeeping issues. This endpoint: - Translates scientific jargon into plain language - Never makes users feel stupid for asking about common plants - Uses progressive disclosure (simple answer first, details on request) - Provides encouraging, supportive tone - Offers practical \"what do I do right now\" guidance
|
|
38
|
+
# @param beginner_guidance_request
|
|
39
|
+
# @param [Hash] opts the optional parameters
|
|
40
|
+
# @option opts [Integer] :x_tq_context_mode TurboQuant extended context window size (tokens). With 3-bit KV cache, context windows up to 24K tokens are feasible within the same memory budget as standard 4K.
|
|
41
|
+
# @option opts [String] :x_tq_kv_cache_hint KV cache management hint. - `none`: No caching (default) - `reuse`: Reuse KV cache from previous request in same session (40-60% compute savings) - `persist`: Persist cache to disk for cross-session reuse
|
|
42
|
+
# @option opts [String] :x_tq_model_tier Preferred model tier for inference. - `auto`: Server selects optimal model based on device capabilities - `gemma-2b`: Lightweight model (~0.5GB KV with TQ) - `gemma-7b`: Full model, standard KV cache - `gemma-7b-tq`: Full model with TurboQuant 3-bit KV cache (~1.3GB)
|
|
43
|
+
# @return [BeginnerGuidance]
|
|
44
|
+
describe 'beginner_guidance test' do
|
|
45
|
+
it 'should work' do
|
|
46
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# unit tests for dynamic_care
|
|
51
|
+
# Hyper-localized dynamic plant care recommendations
|
|
52
|
+
# Real-time, environment-aware care recommendations that solve the \"generic advice\" problem. Unlike static \"water every 7 days\" recommendations, this endpoint: - Adjusts watering based on current humidity, temperature, and recent rainfall - Considers container type, soil composition, and drainage - Factors in seasonal changes and indoor environment conditions - Accounts for plant maturity and growth phase - Provides actionable guidance, not rigid schedules
|
|
53
|
+
# @param dynamic_care_request
|
|
54
|
+
# @param [Hash] opts the optional parameters
|
|
55
|
+
# @option opts [Integer] :x_tq_context_mode TurboQuant extended context window size (tokens). With 3-bit KV cache, context windows up to 24K tokens are feasible within the same memory budget as standard 4K.
|
|
56
|
+
# @option opts [String] :x_tq_kv_cache_hint KV cache management hint. - `none`: No caching (default) - `reuse`: Reuse KV cache from previous request in same session (40-60% compute savings) - `persist`: Persist cache to disk for cross-session reuse
|
|
57
|
+
# @option opts [String] :x_tq_model_tier Preferred model tier for inference. - `auto`: Server selects optimal model based on device capabilities - `gemma-2b`: Lightweight model (~0.5GB KV with TQ) - `gemma-7b`: Full model, standard KV cache - `gemma-7b-tq`: Full model with TurboQuant 3-bit KV cache (~1.3GB)
|
|
58
|
+
# @return [DynamicCare]
|
|
59
|
+
describe 'dynamic_care test' do
|
|
60
|
+
it 'should work' do
|
|
61
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# unit tests for safe_identification
|
|
66
|
+
# Safe plant identification with toxic lookalike warnings
|
|
67
|
+
# Environmentally-contextualized plant identification that addresses misidentification concerns. Unlike generic plant ID, this endpoint: - Checks against a toxic lookalike database with visual similarity scores - Uses environmental context (soil, climate, regional flora) to weight identification probability - Provides confidence breakdowns showing why alternatives were considered - Issues explicit warnings for dangerous lookalikes (Poison Hemlock vs Wild Carrot) - Accounts for plant growth stage (seedling identification challenges)
|
|
68
|
+
# @param safe_identification_request
|
|
69
|
+
# @param [Hash] opts the optional parameters
|
|
70
|
+
# @option opts [Integer] :x_tq_context_mode TurboQuant extended context window size (tokens). With 3-bit KV cache, context windows up to 24K tokens are feasible within the same memory budget as standard 4K.
|
|
71
|
+
# @option opts [String] :x_tq_kv_cache_hint KV cache management hint. - `none`: No caching (default) - `reuse`: Reuse KV cache from previous request in same session (40-60% compute savings) - `persist`: Persist cache to disk for cross-session reuse
|
|
72
|
+
# @option opts [String] :x_tq_model_tier Preferred model tier for inference. - `auto`: Server selects optimal model based on device capabilities - `gemma-2b`: Lightweight model (~0.5GB KV with TQ) - `gemma-7b`: Full model, standard KV cache - `gemma-7b-tq`: Full model with TurboQuant 3-bit KV cache (~1.3GB)
|
|
73
|
+
# @return [SafeIdentification]
|
|
74
|
+
describe 'safe_identification test' do
|
|
75
|
+
it 'should work' do
|
|
76
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
end
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#SoilSidekick Pro API
|
|
3
|
+
|
|
4
|
+
#Agricultural intelligence and soil analysis API with tier-based access control. ## What's New in 1.2.0 - **Consumer Plant Care APIs**: Three new endpoints addressing top pain points in plant ID apps: - `/safe-identification`: Toxic lookalike warnings and environmental context - `/dynamic-care`: Hyper-localized, real-time care recommendations - `/beginner-guidance`: Judgment-free, jargon-free plant guidance ## Authentication All endpoints require an API key passed via the `x-api-key` header: ``` x-api-key: ak_your_api_key_here ``` API keys are generated through the dashboard and use the `ak_*` format. ## Rate Limiting Rate limits are enforced based on your subscription tier: - **Free**: 10 req/min, 100 req/hour, 1,000 req/day - **Starter**: 30 req/min, 500 req/hour, 5,000 req/day - **Pro**: 100 req/min, 2,000 req/hour, 25,000 req/day - **Enterprise**: 500 req/min, 10,000 req/hour, 100,000 req/day Rate limit information is returned in response headers: - `X-RateLimit-Limit`: Maximum requests in window - `X-RateLimit-Remaining`: Remaining requests in window - `X-RateLimit-Reset`: Unix timestamp when limit resets ## Response Time SLAs All endpoints return response time headers for performance monitoring: - `X-Response-Time`: Human-readable response time (e.g., \"245ms\") - `X-Response-Time-Ms`: Response time in milliseconds - `X-Response-Time-Target`: Target response time for this endpoint - `X-Response-Time-Max`: Maximum acceptable response time - `X-Response-Time-Status`: Performance status (`optimal`, `acceptable`, `exceeded`) ### Response Time Targets by Category | Category | Target | Maximum | Endpoints | |----------|--------|---------|-----------| | **Fast** | 200ms | 500ms | county-lookup, check-subscription | | **Standard** | 500ms | 1,500ms | get-soil-data, territorial-water-quality | | **Complex** | 2,000ms | 5,000ms | agricultural-intelligence, gpt5-chat, visual-crop-analysis | | **Heavy** | 5,000ms | 15,000ms | live-agricultural-data, generate-vrt-prescription |
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 3.0.0
|
|
7
|
+
Contact: support@soilsidekickpro.com
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
Generator version: 7.23.0
|
|
10
|
+
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
require 'spec_helper'
|
|
14
|
+
require 'json'
|
|
15
|
+
|
|
16
|
+
# Unit tests for SoilSidekick::EnvironmentalApi
|
|
17
|
+
# Automatically generated by openapi-generator (https://openapi-generator.tech)
|
|
18
|
+
# Please update as you see appropriate
|
|
19
|
+
describe 'EnvironmentalApi' do
|
|
20
|
+
before do
|
|
21
|
+
# run before each test
|
|
22
|
+
@api_instance = SoilSidekick::EnvironmentalApi.new
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
after do
|
|
26
|
+
# run after each test
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe 'test an instance of EnvironmentalApi' do
|
|
30
|
+
it 'should create an instance of EnvironmentalApi' do
|
|
31
|
+
expect(@api_instance).to be_instance_of(SoilSidekick::EnvironmentalApi)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# unit tests for calculate_environmental_impact
|
|
36
|
+
# Calculate environmental impact
|
|
37
|
+
# Assess environmental impact including runoff risk, contamination, and eco-friendly alternatives
|
|
38
|
+
# @param calculate_environmental_impact_request
|
|
39
|
+
# @param [Hash] opts the optional parameters
|
|
40
|
+
# @option opts [Integer] :x_tq_context_mode TurboQuant extended context window size (tokens). With 3-bit KV cache, context windows up to 24K tokens are feasible within the same memory budget as standard 4K.
|
|
41
|
+
# @option opts [String] :x_tq_kv_cache_hint KV cache management hint. - `none`: No caching (default) - `reuse`: Reuse KV cache from previous request in same session (40-60% compute savings) - `persist`: Persist cache to disk for cross-session reuse
|
|
42
|
+
# @option opts [String] :x_tq_model_tier Preferred model tier for inference. - `auto`: Server selects optimal model based on device capabilities - `gemma-2b`: Lightweight model (~0.5GB KV with TQ) - `gemma-7b`: Full model, standard KV cache - `gemma-7b-tq`: Full model with TurboQuant 3-bit KV cache (~1.3GB)
|
|
43
|
+
# @return [EnvironmentalImpact]
|
|
44
|
+
describe 'calculate_environmental_impact test' do
|
|
45
|
+
it 'should work' do
|
|
46
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
end
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#SoilSidekick Pro API
|
|
3
|
+
|
|
4
|
+
#Agricultural intelligence and soil analysis API with tier-based access control. ## What's New in 1.2.0 - **Consumer Plant Care APIs**: Three new endpoints addressing top pain points in plant ID apps: - `/safe-identification`: Toxic lookalike warnings and environmental context - `/dynamic-care`: Hyper-localized, real-time care recommendations - `/beginner-guidance`: Judgment-free, jargon-free plant guidance ## Authentication All endpoints require an API key passed via the `x-api-key` header: ``` x-api-key: ak_your_api_key_here ``` API keys are generated through the dashboard and use the `ak_*` format. ## Rate Limiting Rate limits are enforced based on your subscription tier: - **Free**: 10 req/min, 100 req/hour, 1,000 req/day - **Starter**: 30 req/min, 500 req/hour, 5,000 req/day - **Pro**: 100 req/min, 2,000 req/hour, 25,000 req/day - **Enterprise**: 500 req/min, 10,000 req/hour, 100,000 req/day Rate limit information is returned in response headers: - `X-RateLimit-Limit`: Maximum requests in window - `X-RateLimit-Remaining`: Remaining requests in window - `X-RateLimit-Reset`: Unix timestamp when limit resets ## Response Time SLAs All endpoints return response time headers for performance monitoring: - `X-Response-Time`: Human-readable response time (e.g., \"245ms\") - `X-Response-Time-Ms`: Response time in milliseconds - `X-Response-Time-Target`: Target response time for this endpoint - `X-Response-Time-Max`: Maximum acceptable response time - `X-Response-Time-Status`: Performance status (`optimal`, `acceptable`, `exceeded`) ### Response Time Targets by Category | Category | Target | Maximum | Endpoints | |----------|--------|---------|-----------| | **Fast** | 200ms | 500ms | county-lookup, check-subscription | | **Standard** | 500ms | 1,500ms | get-soil-data, territorial-water-quality | | **Complex** | 2,000ms | 5,000ms | agricultural-intelligence, gpt5-chat, visual-crop-analysis | | **Heavy** | 5,000ms | 15,000ms | live-agricultural-data, generate-vrt-prescription |
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 3.0.0
|
|
7
|
+
Contact: support@soilsidekickpro.com
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
Generator version: 7.23.0
|
|
10
|
+
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
require 'spec_helper'
|
|
14
|
+
require 'json'
|
|
15
|
+
|
|
16
|
+
# Unit tests for SoilSidekick::GeographicApi
|
|
17
|
+
# Automatically generated by openapi-generator (https://openapi-generator.tech)
|
|
18
|
+
# Please update as you see appropriate
|
|
19
|
+
describe 'GeographicApi' do
|
|
20
|
+
before do
|
|
21
|
+
# run before each test
|
|
22
|
+
@api_instance = SoilSidekick::GeographicApi.new
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
after do
|
|
26
|
+
# run after each test
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe 'test an instance of GeographicApi' do
|
|
30
|
+
it 'should create an instance of GeographicApi' do
|
|
31
|
+
expect(@api_instance).to be_instance_of(SoilSidekick::GeographicApi)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# unit tests for county_lookup
|
|
36
|
+
# Search for counties
|
|
37
|
+
# Search counties by name, state, or FIPS code
|
|
38
|
+
# @param county_lookup_request
|
|
39
|
+
# @param [Hash] opts the optional parameters
|
|
40
|
+
# @return [CountyLookup200Response]
|
|
41
|
+
describe 'county_lookup test' do
|
|
42
|
+
it 'should work' do
|
|
43
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
end
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#SoilSidekick Pro API
|
|
3
|
+
|
|
4
|
+
#Agricultural intelligence and soil analysis API with tier-based access control. ## What's New in 1.2.0 - **Consumer Plant Care APIs**: Three new endpoints addressing top pain points in plant ID apps: - `/safe-identification`: Toxic lookalike warnings and environmental context - `/dynamic-care`: Hyper-localized, real-time care recommendations - `/beginner-guidance`: Judgment-free, jargon-free plant guidance ## Authentication All endpoints require an API key passed via the `x-api-key` header: ``` x-api-key: ak_your_api_key_here ``` API keys are generated through the dashboard and use the `ak_*` format. ## Rate Limiting Rate limits are enforced based on your subscription tier: - **Free**: 10 req/min, 100 req/hour, 1,000 req/day - **Starter**: 30 req/min, 500 req/hour, 5,000 req/day - **Pro**: 100 req/min, 2,000 req/hour, 25,000 req/day - **Enterprise**: 500 req/min, 10,000 req/hour, 100,000 req/day Rate limit information is returned in response headers: - `X-RateLimit-Limit`: Maximum requests in window - `X-RateLimit-Remaining`: Remaining requests in window - `X-RateLimit-Reset`: Unix timestamp when limit resets ## Response Time SLAs All endpoints return response time headers for performance monitoring: - `X-Response-Time`: Human-readable response time (e.g., \"245ms\") - `X-Response-Time-Ms`: Response time in milliseconds - `X-Response-Time-Target`: Target response time for this endpoint - `X-Response-Time-Max`: Maximum acceptable response time - `X-Response-Time-Status`: Performance status (`optimal`, `acceptable`, `exceeded`) ### Response Time Targets by Category | Category | Target | Maximum | Endpoints | |----------|--------|---------|-----------| | **Fast** | 200ms | 500ms | county-lookup, check-subscription | | **Standard** | 500ms | 1,500ms | get-soil-data, territorial-water-quality | | **Complex** | 2,000ms | 5,000ms | agricultural-intelligence, gpt5-chat, visual-crop-analysis | | **Heavy** | 5,000ms | 15,000ms | live-agricultural-data, generate-vrt-prescription |
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 3.0.0
|
|
7
|
+
Contact: support@soilsidekickpro.com
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
Generator version: 7.23.0
|
|
10
|
+
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
require 'spec_helper'
|
|
14
|
+
require 'json'
|
|
15
|
+
|
|
16
|
+
# Unit tests for SoilSidekick::LeafEnginesApi
|
|
17
|
+
# Automatically generated by openapi-generator (https://openapi-generator.tech)
|
|
18
|
+
# Please update as you see appropriate
|
|
19
|
+
describe 'LeafEnginesApi' do
|
|
20
|
+
before do
|
|
21
|
+
# run before each test
|
|
22
|
+
@api_instance = SoilSidekick::LeafEnginesApi.new
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
after do
|
|
26
|
+
# run after each test
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe 'test an instance of LeafEnginesApi' do
|
|
30
|
+
it 'should create an instance of LeafEnginesApi' do
|
|
31
|
+
expect(@api_instance).to be_instance_of(SoilSidekick::LeafEnginesApi)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# unit tests for leafengines_query
|
|
36
|
+
# Query plant-environment compatibility
|
|
37
|
+
# LeafEngines API for plant compatibility scoring with environmental factors
|
|
38
|
+
# @param leafengines_query_request
|
|
39
|
+
# @param [Hash] opts the optional parameters
|
|
40
|
+
# @option opts [Integer] :x_tq_context_mode TurboQuant extended context window size (tokens). With 3-bit KV cache, context windows up to 24K tokens are feasible within the same memory budget as standard 4K.
|
|
41
|
+
# @option opts [String] :x_tq_kv_cache_hint KV cache management hint. - `none`: No caching (default) - `reuse`: Reuse KV cache from previous request in same session (40-60% compute savings) - `persist`: Persist cache to disk for cross-session reuse
|
|
42
|
+
# @option opts [String] :x_tq_model_tier Preferred model tier for inference. - `auto`: Server selects optimal model based on device capabilities - `gemma-2b`: Lightweight model (~0.5GB KV with TQ) - `gemma-7b`: Full model, standard KV cache - `gemma-7b-tq`: Full model with TurboQuant 3-bit KV cache (~1.3GB)
|
|
43
|
+
# @return [LeafEnginesCompatibility]
|
|
44
|
+
describe 'leafengines_query test' do
|
|
45
|
+
it 'should work' do
|
|
46
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
end
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#SoilSidekick Pro API
|
|
3
|
+
|
|
4
|
+
#Agricultural intelligence and soil analysis API with tier-based access control. ## What's New in 1.2.0 - **Consumer Plant Care APIs**: Three new endpoints addressing top pain points in plant ID apps: - `/safe-identification`: Toxic lookalike warnings and environmental context - `/dynamic-care`: Hyper-localized, real-time care recommendations - `/beginner-guidance`: Judgment-free, jargon-free plant guidance ## Authentication All endpoints require an API key passed via the `x-api-key` header: ``` x-api-key: ak_your_api_key_here ``` API keys are generated through the dashboard and use the `ak_*` format. ## Rate Limiting Rate limits are enforced based on your subscription tier: - **Free**: 10 req/min, 100 req/hour, 1,000 req/day - **Starter**: 30 req/min, 500 req/hour, 5,000 req/day - **Pro**: 100 req/min, 2,000 req/hour, 25,000 req/day - **Enterprise**: 500 req/min, 10,000 req/hour, 100,000 req/day Rate limit information is returned in response headers: - `X-RateLimit-Limit`: Maximum requests in window - `X-RateLimit-Remaining`: Remaining requests in window - `X-RateLimit-Reset`: Unix timestamp when limit resets ## Response Time SLAs All endpoints return response time headers for performance monitoring: - `X-Response-Time`: Human-readable response time (e.g., \"245ms\") - `X-Response-Time-Ms`: Response time in milliseconds - `X-Response-Time-Target`: Target response time for this endpoint - `X-Response-Time-Max`: Maximum acceptable response time - `X-Response-Time-Status`: Performance status (`optimal`, `acceptable`, `exceeded`) ### Response Time Targets by Category | Category | Target | Maximum | Endpoints | |----------|--------|---------|-----------| | **Fast** | 200ms | 500ms | county-lookup, check-subscription | | **Standard** | 500ms | 1,500ms | get-soil-data, territorial-water-quality | | **Complex** | 2,000ms | 5,000ms | agricultural-intelligence, gpt5-chat, visual-crop-analysis | | **Heavy** | 5,000ms | 15,000ms | live-agricultural-data, generate-vrt-prescription |
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 3.0.0
|
|
7
|
+
Contact: support@soilsidekickpro.com
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
Generator version: 7.23.0
|
|
10
|
+
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
require 'spec_helper'
|
|
14
|
+
require 'json'
|
|
15
|
+
|
|
16
|
+
# Unit tests for SoilSidekick::SatelliteDataApi
|
|
17
|
+
# Automatically generated by openapi-generator (https://openapi-generator.tech)
|
|
18
|
+
# Please update as you see appropriate
|
|
19
|
+
describe 'SatelliteDataApi' do
|
|
20
|
+
before do
|
|
21
|
+
# run before each test
|
|
22
|
+
@api_instance = SoilSidekick::SatelliteDataApi.new
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
after do
|
|
26
|
+
# run after each test
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe 'test an instance of SatelliteDataApi' do
|
|
30
|
+
it 'should create an instance of SatelliteDataApi' do
|
|
31
|
+
expect(@api_instance).to be_instance_of(SoilSidekick::SatelliteDataApi)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# unit tests for get_satellite_data
|
|
36
|
+
# Get satellite environmental data
|
|
37
|
+
# AlphaEarth satellite intelligence integration
|
|
38
|
+
# @param get_satellite_data_request
|
|
39
|
+
# @param [Hash] opts the optional parameters
|
|
40
|
+
# @return [SatelliteData]
|
|
41
|
+
describe 'get_satellite_data test' do
|
|
42
|
+
it 'should work' do
|
|
43
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
end
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#SoilSidekick Pro API
|
|
3
|
+
|
|
4
|
+
#Agricultural intelligence and soil analysis API with tier-based access control. ## What's New in 1.2.0 - **Consumer Plant Care APIs**: Three new endpoints addressing top pain points in plant ID apps: - `/safe-identification`: Toxic lookalike warnings and environmental context - `/dynamic-care`: Hyper-localized, real-time care recommendations - `/beginner-guidance`: Judgment-free, jargon-free plant guidance ## Authentication All endpoints require an API key passed via the `x-api-key` header: ``` x-api-key: ak_your_api_key_here ``` API keys are generated through the dashboard and use the `ak_*` format. ## Rate Limiting Rate limits are enforced based on your subscription tier: - **Free**: 10 req/min, 100 req/hour, 1,000 req/day - **Starter**: 30 req/min, 500 req/hour, 5,000 req/day - **Pro**: 100 req/min, 2,000 req/hour, 25,000 req/day - **Enterprise**: 500 req/min, 10,000 req/hour, 100,000 req/day Rate limit information is returned in response headers: - `X-RateLimit-Limit`: Maximum requests in window - `X-RateLimit-Remaining`: Remaining requests in window - `X-RateLimit-Reset`: Unix timestamp when limit resets ## Response Time SLAs All endpoints return response time headers for performance monitoring: - `X-Response-Time`: Human-readable response time (e.g., \"245ms\") - `X-Response-Time-Ms`: Response time in milliseconds - `X-Response-Time-Target`: Target response time for this endpoint - `X-Response-Time-Max`: Maximum acceptable response time - `X-Response-Time-Status`: Performance status (`optimal`, `acceptable`, `exceeded`) ### Response Time Targets by Category | Category | Target | Maximum | Endpoints | |----------|--------|---------|-----------| | **Fast** | 200ms | 500ms | county-lookup, check-subscription | | **Standard** | 500ms | 1,500ms | get-soil-data, territorial-water-quality | | **Complex** | 2,000ms | 5,000ms | agricultural-intelligence, gpt5-chat, visual-crop-analysis | | **Heavy** | 5,000ms | 15,000ms | live-agricultural-data, generate-vrt-prescription |
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 3.0.0
|
|
7
|
+
Contact: support@soilsidekickpro.com
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
Generator version: 7.23.0
|
|
10
|
+
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
require 'spec_helper'
|
|
14
|
+
require 'json'
|
|
15
|
+
|
|
16
|
+
# Unit tests for SoilSidekick::SoilAnalysisApi
|
|
17
|
+
# Automatically generated by openapi-generator (https://openapi-generator.tech)
|
|
18
|
+
# Please update as you see appropriate
|
|
19
|
+
describe 'SoilAnalysisApi' do
|
|
20
|
+
before do
|
|
21
|
+
# run before each test
|
|
22
|
+
@api_instance = SoilSidekick::SoilAnalysisApi.new
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
after do
|
|
26
|
+
# run after each test
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe 'test an instance of SoilAnalysisApi' do
|
|
30
|
+
it 'should create an instance of SoilAnalysisApi' do
|
|
31
|
+
expect(@api_instance).to be_instance_of(SoilSidekick::SoilAnalysisApi)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# unit tests for get_live_agricultural_data
|
|
36
|
+
# Get live agricultural data
|
|
37
|
+
# Fetch real-time agricultural data from multiple federal sources (NOAA, USDA, EPA)
|
|
38
|
+
# @param get_live_agricultural_data_request
|
|
39
|
+
# @param [Hash] opts the optional parameters
|
|
40
|
+
# @return [LiveAgriculturalData]
|
|
41
|
+
describe 'get_live_agricultural_data test' do
|
|
42
|
+
it 'should work' do
|
|
43
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
# unit tests for get_planting_calendar
|
|
48
|
+
# Get planting calendar recommendations
|
|
49
|
+
# Multi-parameter planting calendar with climate and soil factors
|
|
50
|
+
# @param get_planting_calendar_request
|
|
51
|
+
# @param [Hash] opts the optional parameters
|
|
52
|
+
# @option opts [Integer] :x_tq_context_mode TurboQuant extended context window size (tokens). With 3-bit KV cache, context windows up to 24K tokens are feasible within the same memory budget as standard 4K.
|
|
53
|
+
# @option opts [String] :x_tq_kv_cache_hint KV cache management hint. - `none`: No caching (default) - `reuse`: Reuse KV cache from previous request in same session (40-60% compute savings) - `persist`: Persist cache to disk for cross-session reuse
|
|
54
|
+
# @option opts [String] :x_tq_model_tier Preferred model tier for inference. - `auto`: Server selects optimal model based on device capabilities - `gemma-2b`: Lightweight model (~0.5GB KV with TQ) - `gemma-7b`: Full model, standard KV cache - `gemma-7b-tq`: Full model with TurboQuant 3-bit KV cache (~1.3GB)
|
|
55
|
+
# @return [PlantingCalendar]
|
|
56
|
+
describe 'get_planting_calendar test' do
|
|
57
|
+
it 'should work' do
|
|
58
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
# unit tests for get_soil_data
|
|
63
|
+
# Get soil analysis data
|
|
64
|
+
# Retrieve comprehensive soil analysis for a specific county
|
|
65
|
+
# @param get_soil_data_request
|
|
66
|
+
# @param [Hash] opts the optional parameters
|
|
67
|
+
# @return [SoilData]
|
|
68
|
+
describe 'get_soil_data test' do
|
|
69
|
+
it 'should work' do
|
|
70
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
end
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#SoilSidekick Pro API
|
|
3
|
+
|
|
4
|
+
#Agricultural intelligence and soil analysis API with tier-based access control. ## What's New in 1.2.0 - **Consumer Plant Care APIs**: Three new endpoints addressing top pain points in plant ID apps: - `/safe-identification`: Toxic lookalike warnings and environmental context - `/dynamic-care`: Hyper-localized, real-time care recommendations - `/beginner-guidance`: Judgment-free, jargon-free plant guidance ## Authentication All endpoints require an API key passed via the `x-api-key` header: ``` x-api-key: ak_your_api_key_here ``` API keys are generated through the dashboard and use the `ak_*` format. ## Rate Limiting Rate limits are enforced based on your subscription tier: - **Free**: 10 req/min, 100 req/hour, 1,000 req/day - **Starter**: 30 req/min, 500 req/hour, 5,000 req/day - **Pro**: 100 req/min, 2,000 req/hour, 25,000 req/day - **Enterprise**: 500 req/min, 10,000 req/hour, 100,000 req/day Rate limit information is returned in response headers: - `X-RateLimit-Limit`: Maximum requests in window - `X-RateLimit-Remaining`: Remaining requests in window - `X-RateLimit-Reset`: Unix timestamp when limit resets ## Response Time SLAs All endpoints return response time headers for performance monitoring: - `X-Response-Time`: Human-readable response time (e.g., \"245ms\") - `X-Response-Time-Ms`: Response time in milliseconds - `X-Response-Time-Target`: Target response time for this endpoint - `X-Response-Time-Max`: Maximum acceptable response time - `X-Response-Time-Status`: Performance status (`optimal`, `acceptable`, `exceeded`) ### Response Time Targets by Category | Category | Target | Maximum | Endpoints | |----------|--------|---------|-----------| | **Fast** | 200ms | 500ms | county-lookup, check-subscription | | **Standard** | 500ms | 1,500ms | get-soil-data, territorial-water-quality | | **Complex** | 2,000ms | 5,000ms | agricultural-intelligence, gpt5-chat, visual-crop-analysis | | **Heavy** | 5,000ms | 15,000ms | live-agricultural-data, generate-vrt-prescription |
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 3.0.0
|
|
7
|
+
Contact: support@soilsidekickpro.com
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
Generator version: 7.23.0
|
|
10
|
+
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
require 'spec_helper'
|
|
14
|
+
require 'json'
|
|
15
|
+
|
|
16
|
+
# Unit tests for SoilSidekick::TurboQuantApi
|
|
17
|
+
# Automatically generated by openapi-generator (https://openapi-generator.tech)
|
|
18
|
+
# Please update as you see appropriate
|
|
19
|
+
describe 'TurboQuantApi' do
|
|
20
|
+
before do
|
|
21
|
+
# run before each test
|
|
22
|
+
@api_instance = SoilSidekick::TurboQuantApi.new
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
after do
|
|
26
|
+
# run after each test
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe 'test an instance of TurboQuantApi' do
|
|
30
|
+
it 'should create an instance of TurboQuantApi' do
|
|
31
|
+
expect(@api_instance).to be_instance_of(SoilSidekick::TurboQuantApi)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# unit tests for turbo_quant_capabilities
|
|
36
|
+
# Query TurboQuant device capabilities
|
|
37
|
+
# Returns hardware-specific model recommendations and estimated performance based on detected device capabilities. Use this to determine the optimal local inference configuration for the end-user's device. **Tier requirement:** Pro or Enterprise
|
|
38
|
+
# @param turbo_quant_capabilities_request
|
|
39
|
+
# @param [Hash] opts the optional parameters
|
|
40
|
+
# @option opts [Integer] :x_tq_context_mode TurboQuant extended context window size (tokens). With 3-bit KV cache, context windows up to 24K tokens are feasible within the same memory budget as standard 4K.
|
|
41
|
+
# @option opts [String] :x_tq_kv_cache_hint KV cache management hint. - `none`: No caching (default) - `reuse`: Reuse KV cache from previous request in same session (40-60% compute savings) - `persist`: Persist cache to disk for cross-session reuse
|
|
42
|
+
# @option opts [String] :x_tq_model_tier Preferred model tier for inference. - `auto`: Server selects optimal model based on device capabilities - `gemma-2b`: Lightweight model (~0.5GB KV with TQ) - `gemma-7b`: Full model, standard KV cache - `gemma-7b-tq`: Full model with TurboQuant 3-bit KV cache (~1.3GB)
|
|
43
|
+
# @return [TurboQuantCapabilities]
|
|
44
|
+
describe 'turbo_quant_capabilities test' do
|
|
45
|
+
it 'should work' do
|
|
46
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
end
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#SoilSidekick Pro API
|
|
3
|
+
|
|
4
|
+
#Agricultural intelligence and soil analysis API with tier-based access control. ## What's New in 1.2.0 - **Consumer Plant Care APIs**: Three new endpoints addressing top pain points in plant ID apps: - `/safe-identification`: Toxic lookalike warnings and environmental context - `/dynamic-care`: Hyper-localized, real-time care recommendations - `/beginner-guidance`: Judgment-free, jargon-free plant guidance ## Authentication All endpoints require an API key passed via the `x-api-key` header: ``` x-api-key: ak_your_api_key_here ``` API keys are generated through the dashboard and use the `ak_*` format. ## Rate Limiting Rate limits are enforced based on your subscription tier: - **Free**: 10 req/min, 100 req/hour, 1,000 req/day - **Starter**: 30 req/min, 500 req/hour, 5,000 req/day - **Pro**: 100 req/min, 2,000 req/hour, 25,000 req/day - **Enterprise**: 500 req/min, 10,000 req/hour, 100,000 req/day Rate limit information is returned in response headers: - `X-RateLimit-Limit`: Maximum requests in window - `X-RateLimit-Remaining`: Remaining requests in window - `X-RateLimit-Reset`: Unix timestamp when limit resets ## Response Time SLAs All endpoints return response time headers for performance monitoring: - `X-Response-Time`: Human-readable response time (e.g., \"245ms\") - `X-Response-Time-Ms`: Response time in milliseconds - `X-Response-Time-Target`: Target response time for this endpoint - `X-Response-Time-Max`: Maximum acceptable response time - `X-Response-Time-Status`: Performance status (`optimal`, `acceptable`, `exceeded`) ### Response Time Targets by Category | Category | Target | Maximum | Endpoints | |----------|--------|---------|-----------| | **Fast** | 200ms | 500ms | county-lookup, check-subscription | | **Standard** | 500ms | 1,500ms | get-soil-data, territorial-water-quality | | **Complex** | 2,000ms | 5,000ms | agricultural-intelligence, gpt5-chat, visual-crop-analysis | | **Heavy** | 5,000ms | 15,000ms | live-agricultural-data, generate-vrt-prescription |
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 3.0.0
|
|
7
|
+
Contact: support@soilsidekickpro.com
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
Generator version: 7.23.0
|
|
10
|
+
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
require 'spec_helper'
|
|
14
|
+
require 'json'
|
|
15
|
+
|
|
16
|
+
# Unit tests for SoilSidekick::VRTApi
|
|
17
|
+
# Automatically generated by openapi-generator (https://openapi-generator.tech)
|
|
18
|
+
# Please update as you see appropriate
|
|
19
|
+
describe 'VRTApi' do
|
|
20
|
+
before do
|
|
21
|
+
# run before each test
|
|
22
|
+
@api_instance = SoilSidekick::VRTApi.new
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
after do
|
|
26
|
+
# run after each test
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe 'test an instance of VRTApi' do
|
|
30
|
+
it 'should create an instance of VRTApi' do
|
|
31
|
+
expect(@api_instance).to be_instance_of(SoilSidekick::VRTApi)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# unit tests for generate_vrt_prescription
|
|
36
|
+
# Generate VRT prescription map
|
|
37
|
+
# Generate variable rate technology prescription maps
|
|
38
|
+
# @param generate_vrt_prescription_request
|
|
39
|
+
# @param [Hash] opts the optional parameters
|
|
40
|
+
# @return [VRTPrescription]
|
|
41
|
+
describe 'generate_vrt_prescription test' do
|
|
42
|
+
it 'should work' do
|
|
43
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
end
|