Udostępnij za pośrednictwem


Boundaries.SearchAsync(RequestContent, RequestContext) Method

Definition

Search for boundaries across all parties by fields and intersecting geometry.

public virtual Azure.AsyncPageable<BinaryData> SearchAsync (Azure.Core.RequestContent content, Azure.RequestContext context = default);
abstract member SearchAsync : Azure.Core.RequestContent * Azure.RequestContext -> Azure.AsyncPageable<BinaryData>
override this.SearchAsync : Azure.Core.RequestContent * Azure.RequestContext -> Azure.AsyncPageable<BinaryData>
Public Overridable Function SearchAsync (content As RequestContent, Optional context As RequestContext = Nothing) As AsyncPageable(Of BinaryData)

Parameters

content
RequestContent

The content to send as the body of the request. Details of the request body schema are in the Remarks section below.

context
RequestContext

The request context, which can override default behaviors of the client pipeline on a per-call basis.

Returns

The AsyncPageable<T> from the service containing a list of BinaryData objects. Details of the body schema for each item in the collection are in the Remarks section below.

Exceptions

content is null.

Service returned a non-success status code.

Examples

This sample shows how to call SearchAsync and parse the result.

var credential = new DefaultAzureCredential();
var client = new FarmBeatsClient(credential).GetBoundariesClient(<2022-11-01-preview>);

var data = new {};

await foreach (var data in client.SearchAsync(RequestContent.Create(data)))
{
    JsonElement result = JsonDocument.Parse(data.ToStream()).RootElement;
    Console.WriteLine(result.ToString());
}

This sample shows how to call SearchAsync with all request content, and how to parse the result.

var credential = new DefaultAzureCredential();
var client = new FarmBeatsClient(credential).GetBoundariesClient(<2022-11-01-preview>);

var data = new {
    ids = new[] {
        "<String>"
    },
    names = new[] {
        "<String>"
    },
    propertyFilters = new[] {
        "<String>"
    },
    statuses = new[] {
        "<String>"
    },
    minCreatedDateTime = "2022-05-10T18:57:31.2311892Z",
    maxCreatedDateTime = "2022-05-10T18:57:31.2311892Z",
    minLastModifiedDateTime = "2022-05-10T18:57:31.2311892Z",
    maxLastModifiedDateTime = "2022-05-10T18:57:31.2311892Z",
    maxPageSize = 1234,
    skipToken = "<skipToken>",
    parentType = "Field",
    type = "<type>",
    parentIds = new[] {
        "<String>"
    },
    minArea = 123.45d,
    maxArea = 123.45d,
    intersectsWithGeometry = new {
        coordinates = new[] {
            new[] {
                new[] {
                    new[] {
                        123.45d
                    }
                }
            }
        },
        type = "MultiPolygon",
    },
};

await foreach (var data in client.SearchAsync(RequestContent.Create(data)))
{
    JsonElement result = JsonDocument.Parse(data.ToStream()).RootElement;
    Console.WriteLine(result.GetProperty("partyId").ToString());
    Console.WriteLine(result.GetProperty("parentId").ToString());
    Console.WriteLine(result.GetProperty("area").GetProperty("unit").ToString());
    Console.WriteLine(result.GetProperty("area").GetProperty("value").ToString());
    Console.WriteLine(result.GetProperty("parentType").ToString());
    Console.WriteLine(result.GetProperty("type").ToString());
    Console.WriteLine(result.GetProperty("id").ToString());
    Console.WriteLine(result.GetProperty("eTag").ToString());
    Console.WriteLine(result.GetProperty("status").ToString());
    Console.WriteLine(result.GetProperty("createdDateTime").ToString());
    Console.WriteLine(result.GetProperty("modifiedDateTime").ToString());
    Console.WriteLine(result.GetProperty("source").ToString());
    Console.WriteLine(result.GetProperty("name").ToString());
    Console.WriteLine(result.GetProperty("description").ToString());
    Console.WriteLine(result.GetProperty("createdBy").ToString());
    Console.WriteLine(result.GetProperty("modifiedBy").ToString());
    Console.WriteLine(result.GetProperty("properties").GetProperty("<test>").ToString());
}

Remarks

Below is the JSON schema for the request payload and one item in the pageable response.

Request Body:

Schema for SearchBoundaryQuery:

{
  ids: [string], # Optional. Ids of the resource.
  names: [string], # Optional. Names of the resource.
  propertyFilters: [string], # Optional. Filters on key-value pairs within the Properties object.
e.g. "{testKey} eq {testValue}".
  statuses: [string], # Optional. Statuses of the resource.
  minCreatedDateTime: string (ISO 8601 Format), # Optional. Minimum creation date of resource (inclusive).
  maxCreatedDateTime: string (ISO 8601 Format), # Optional. Maximum creation date of resource (inclusive).
  minLastModifiedDateTime: string (ISO 8601 Format), # Optional. Minimum last modified date of resource (inclusive).
  maxLastModifiedDateTime: string (ISO 8601 Format), # Optional. Maximum last modified date of resource (inclusive).
  maxPageSize: number, # Optional. Maximum number of items needed (inclusive).
Minimum = 10, Maximum = 1000, Default value = 50.
  skipToken: string, # Optional. Skip token for getting next set of results.
  parentType: "Field" | "SeasonalField" | "Zone" | "Prescription" | "PlantTissueAnalysis" | "ApplicationData" | "PlantingData" | "TillageData" | "HarvestData", # Optional. Type of the parent it belongs to.
  type: string, # Optional. Type it belongs to.
  parentIds: [string], # Optional. Parent Ids of the resource.
  minArea: number, # Optional. Minimum acreage of the boundary (inclusive).
  maxArea: number, # Optional. Maximum acreage of the boundary (inclusive).
  intersectsWithGeometry: {
    type: "Point" | "Polygon" | "MultiPolygon", # Required. GeoJSON object type.
  }, # Optional. GeoJSON (For more details: https://geojson.org/). Note: Coordinates are expected in [Longitude, Latitude] format.
}

Response Body:

Schema for BoundaryMetadataListResponseValue:

{
  partyId: string, # Optional. Party Id.
  parentId: string, # Optional. Id of the parent it belongs to.
  area: {
    unit: string, # Optional. Data unit.
    value: number, # Optional. Data value.
  }, # Optional. Schema for storing measurement reading and unit.
  parentType: "Field" | "SeasonalField" | "Zone" | "Prescription" | "PlantTissueAnalysis" | "ApplicationData" | "PlantingData" | "TillageData" | "HarvestData", # Optional. Type of the parent it belongs to.
  type: string, # Optional. Type it belongs to.
  id: string, # Optional. Unique resource ID.
  eTag: string, # Optional. The ETag value to implement optimistic concurrency.
  status: string, # Optional. Status of the resource.
  createdDateTime: string (ISO 8601 Format), # Optional. Date-time when resource was created, sample format: yyyy-MM-ddTHH:mm:ssZ.
  modifiedDateTime: string (ISO 8601 Format), # Optional. Date-time when resource was last modified, sample format: yyyy-MM-ddTHH:mm:ssZ.
  source: string, # Optional. Source of the resource.
  name: string, # Optional. Name to identify resource.
  description: string, # Optional. Textual description of the resource.
  createdBy: string, # Optional. Created by user/tenant id.
  modifiedBy: string, # Optional. Modified by user/tenant id.
  properties: Dictionary<string, any>, # Optional. A collection of key value pairs that belongs to the resource.
Each pair must not have a key greater than 50 characters
and must not have a value greater than 150 characters.
Note: A maximum of 25 key value pairs can be provided for a resource and only string,
numeral and datetime (yyyy-MM-ddTHH:mm:ssZ) values are supported.
}

Applies to