Приложение N 6

к требованиям к вычислительной

мощности, используемой провайдером

хостинга, для проведения уполномоченными

государственными органами, осуществляющими

оперативно-разыскную деятельность

или обеспечение безопасности

Российской Федерации, в случаях,

установленных федеральными законами,

мероприятий в целях реализации

возложенных на них задач, утвержденным

приказом Министерства цифрового

развития, связи и массовых

коммуникаций Российской Федерации

от 1 ноября 2023 г. N 935

ПЕРЕЧЕНЬ ВХОДНЫХ ОБЪЕКТОВ ДЛЯ ЗАДАНИЯ ПАРАМЕТРОВ ПОИСКА

1. В схеме данных для задания параметров поиска должны быть описаны входные объекты Input Objects на языке GraphQL для каждого пользовательского типа, имеющего не менее одного поля базового типа, или связанного с другим пользовательским типом, имеющего не менее одного поля базового типа.

2. Для описания входных объектов, соответствующих пользовательским типам, должны использоваться входные объекты для базовых типов, приведенные в настоящем приложении.

3. Каждый входной объект для базового типа должен содержать поля "and", "or" и "not" (соответствуют логическим функциям "И", "ИЛИ", "НЕ"), а также может содержать поля для функций, приведенных в таблице N 1 настоящего приложения. В случае применения числовой функций к множеству строк используется лексикографический порядок.

Таблица N 1.

N п/п

Функция

Использование

Описание

1

Операции сравнения

lt

Для целочисленных значений:

lt: 999

Меньше, чем

Для дробный значений:

lt: 999.99

Для строковых значений:

lt: "999"

2

le

le: 999

Меньше либо равно

3

eq

eq: 999

Равно

4

in

in: [0, 999]

В [списке]

5

between

between: {

min: 0,

max: 999

}

Между значениями min и max

6

ge

ge: 999

Больше либо равно

7

gt

gt: 999

Больше

8

Регулярные выражения

regexp

regexp:

"\\d\\d/\\d\\d/\\d{4}"

Регулярное выражение в формате POSIX Basic Regular Expression

9

Поиск по тексту

allofterms

allofterms: "Москва, Тверская"

Соответствие строкам, содержащим все указанные термы в произвольном порядке, без учета регистра

10

anyofterms

anyofterms: "Москва, Тверская"

Соответствие строкам, содержащим любой из указанных термов в произвольном порядке, без учета регистра

11

alloftext

alloftext: "Москва, Тверская"

Полнотекстовый поиск по всему полю

12

anyoftext

anyoftext: "Москва, Тверская"

Полнотекстовый поиск по любой части поля

13

Геопоиск

near

near: {

distance: 1000.0,

point: {

longitude: 55.7506539,

latitude: 37.6195138

}

}

Соответствие объектам, в которых предикат находится не более, чем на расстоянии "distance" метров от точки "point"

14

within

within: {

polygon: {

lines: [

{

points: [

{

longitude: 55.0,

latitude: 37.0

},

{

longitude: 56.0,

latitude: 37.0

},

{

longitude: 56.0,

latitude: 33.0

},

{

longitude: 55.0,

latitude: 38.0

}

]

}

]

}

}

Соответствие объектам, предикат которых находится в пределах полигона, заданного в качестве аргумента

15

contains

contains: {

polygon: {

lines: [

{

points: [

{

longitude: 55.0,

latitude: 37.0

},

{

longitude: 56.0,

latitude: 37.0

},

{

longitude: 56.0,

latitude: 33.0

},

{

longitude: 55.0,

latitude: 38.0

}

]

}

]

}

}

Соответствует объектам, предикат которых содержит указанные точку или полигон

16

intersects

intersects: {

polygon: {

lines: [

{

points: [

{

longitude: 55.0,

latitude: 37.0

},

{

longitude: 56.0,

latitude: 37.0

},

{

longitude: 56.0,

latitude: 33.0

},

{

longitude: 55.0,

latitude: 38.0

}

]

}

]

}

}

Соответствует объектам, предикат которых имеет непустое пересечение с указанным полигоном или мультиполигоном

17

Геопоиск с учетом времени события, используется для геотрека.

nearTime

nearTime: {

distance: 1000.0,

point: {

longitude: 55.7506539,

latitude: 37.6195138

},

time: {

utc: {

between: {

min: {

utc: "2020-12-

19T16:30:00+03:00"

}

max: {

utc: "2020-12-

19T16:40:00+03:00"

}

}

}

}

}

Соответствие объектам, в которых предикат находится не более, чем на расстоянии "distance" от точки "point", при этом время, в которое предикат находился в данной области, ограничено соответствующим фильтром по времени

18

withinTime

withinTime: {

polygon: {

lines: [

{

points: [

{

longitude: 55.0,

latitude: 37.0

},

{

longitude: 56.0,

latitude: 37.0

},

{

longitude: 56.0,

latitude: 33.0

},

{

longitude: 55.0,

latitude: 38.0

}

]

}

]

},

time: {

utc: {

between: {

min: {

utc: "2020-12-

19T16:30:00+03:00"

}

max: {

utc: "2020-12-

19T16:40:00+03:00"

}

}

}

}

}

Соответствие объектам, предикат которых находится в пределах полигона, заданного в качестве аргумента, при этом время, в которое предикат находился в данной области, ограничено соответствующим фильтром по времени

19

intersectsTime

intersectsTime: {

polygon: {

lines: [

{

points: [

{

longitude: 55.0,

latitude: 37.0

},

{

longitude: 56.0,

latitude: 37.0

},

{

longitude: 56.0,

latitude: 33.0

},

{

longitude: 55.0,

latitude: 38.0

}

]

}

]

},

time: {

utc: {

between: {

min: {

utc: "2020-12-

19T16:30:00+03:00"

}

max: {

utc: "2020-12-

19T16:40:00+03:00"

}

}

}

}

}

Соответствует объектам, предикат которых имеет непустое пересечение с заданным полигоном или мультиполигоном, при этом время, в которое предикат находился в данной области, ограничено соответствующим фильтром по времени

20

intersectsTrack

intersectsTrack: {

geotrack: {

pointsInTime: [

{

point: {

longitude:55.7506539,

latitude:

37.6195138

},

time: {

utc: "2020-12-

19T16:50:00+03:00"

}

},

{

point: {

longitude:55.8224554,

latitude:

37.7201284

},

time: {

utc: "2020-12-

19T16:40:00+03:00"

}

}

]

},

deltaTime: {

second: 600

},

distance: 1000.0

}

Соответствует объектам, предикат которых имеет непустое пересечение с заданным геотреком с точностью по времени "deltatime" секунд и точностью по расстоянию "distance" метров

4. Перечень входных объектов для базовых типов и доступные для них функции приведены в таблице N 2 настоящего приложения.

Таблица N 2.

N п/п

Базовый тип и (или) скалярный тип

Входные объекты для задания параметров поиска

1

type ImsiBase

"""

Входной объект для базового типа идентификатора мобильного абонента

"""

input ImsiBaseFilter {

"""

Фильтр для идентификатора мобильного абонента

"""

imsi: StringRegExpExactFilter

and: [ImsiBaseFilter]

or: [ImsiBaseFilter]

not: ImsiBaseFilter

}

2

type ImeiBase

"""

Входной объект для базового типа идентификатора мобильной станции

"""

input ImeiBaseFilter {

"""

Фильтр для идентификатора мобильной станции

"""

imei: StringRegExpExactFilter

and: [ImeiBaseFilter]

or: [ImeiBaseFilter]

not: ImeiBaseFilter

}

3

type MsisdnBase

"""

Входной объект для базового типа номера абонента сети сотовой связи

"""

input MsisdnBaseFilter {

"""

Фильтр для номера абонента сети сотовой связи

"""

msisdn: StringRegExpExactFilter

and: [MsisdnBaseFilter]

or: [MsisdnBaseFilter]

not: MsisdnBaseFilter

}

4

type MccBase

"""

Входной объект для базового типа кода страны, в которой находится оператор связи

"""

input MccBaseFilter {

"""

Фильтр для кода страны, в которой находится оператор связи

"""

mcc: IntFilter

and: [MccBaseFilter]

or: [MccBaseFilter]

not: MccBaseFilter

}

5

type MncBase

"""

Входной объект для базового типа кода оператора связи

"""

input MncBaseFilter {

"""

Фильтр для кода оператора связи

"""

mnc: IntFilter

and: [MncBaseFilter]

or: [MncBaseFilter]

not: MncBaseFilter

}

6

type LacBase

"""

Входной объект для базового типа кода географической зоны, обслуживаемой одним контроллером базовых станций

"""

input LacBaseFilter {

"""

Фильтр для кода географической зоны, обслуживаемой одним контроллером базовых станций

"""

lac: IntFilter

and: [LacBaseFilter]

or: [LacBaseFilter]

not: LacBaseFilter

}

7

type CellBase

"""

Входной объект для базового типа идентификатора сектора базовой станции

"""

input CellBaseFilter {

"""

Фильтр для идентификатора сектора базовой станции

"""

cell: IntFilter

and: [CellBaseFilter]

or: [CellBaseFilter]

not: CellBaseFilter

}

8

type EmailBase

"""

Входной объект для базового типа адреса электронной почты

"""

input EmailBaseFilter {

"""

Фильтр для адреса электронной почты

"""

email: StringRegExpExactFilter

and: [EmailBaseFilter]

or: [EmailBaseFilter]

not: EmailBaseFilter

}

9

type AddressBase

"""

Входной объект для базового типа структурированных адресных данных

"""

input AddressBaseFilter {

"""

Фильтр для неструктурированного адреса

"""

address: StringRegExpFullTextFilter

"""

Фильтр для почтового индекса, zip-кода

"""

zip: StringExactFilter

"""

Фильтр для страны

"""

county: StringExactFilter

"""

Фильтр для области

"""

region: StringExactFilter

"""

Фильтр для района, муниципального округа

"""

zone: StringExactFilter

"""

Фильтр для города, поселка, деревни

"""

city: StringExactFilter

"""

Фильтр для улицы

"""

street: StringExactFilter

"""

Фильтр для дома, строения

"""

building: StringExactFilter

"""

Фильтр для корпуса

"""

buildsect: StringExactFilter

"""

Фильтр для квартиры, офиса

"""

apartment: StringExactFilter

and: [AddressBaseFilter]

or: [AddressBaseFilter]

not: AddressBaseFilter

}

10

type PassportBase

"""

Входной объект для базового типа паспортных данных

"""

input PassportBaseFilter {

"""

Фильтр для номера паспорта

"""

number: StringRegExpExactFilter

"""

Фильтр для серии паспорта

"""

series: StringRegExpExactFilter

and: [PassportBaseFilter]

or: [PassportBaseFilter]

not: PassportBaseFilter

}

11

type PersonBase

"""

Входной объект для базового типа фамилия, имя, отчество

"""

input PersonBaseFilter {

"""

Фильтр для неструктурированной информации о фамилия, имя, отчество

"""

fullName: StringTermFullTextFilter

"""

Фильтр для имени

"""

name: StringTermExactFilter

"""

Фильтр для отчества (при наличии)

"""

middleName: StringTermExactFilter

"""

Фильтр для фамилии

"""

lastName: StringTermExactFilter

and: [PersonBaseFilter]

or: [PersonBaseFilter]

not: PersonBaseFilter

}

12

type DrivingLicenseNumberBase

"""

Входной объект для базового типа номера удостоверения водителя транспортного средства

"""

input DrivingLicenseNumberBaseFilter {

"""

Фильтр для номера удостоверения водителя транспортного средства

"""

drivingLicenseNumber: StringTermExactFilter

and: [DrivingLicenseNumberBaseFilter]

or: [DrivingLicenseNumberBaseFilter]

not: DrivingLicenseNumberBaseFilter

}

13

type VehicleGosNumberBase

"""

Входной объект для базового типа государственного регистрационного номера транспортного средства

"""

input VehicleGosNumberBaseFilter {

"""

Фильтр для государственного регистрационного номера транспортного средства

"""

vehicleGosNumber: StringTermExactFilter

and: [VehicleGosNumberBaseFilter]

or: [VehicleGosNumberBaseFilter]

not: VehicleGosNumberBaseFilter

}

14

type InnBase

"""

Входной объект для базового типа идентификационного номера налогоплательщика

"""

input InnBaseFilter {

"""

Фильтр для значения идентификационного номера налогоплательщика

"""

inn: StringTermExactFilter

and: [InnBaseFilter]

or: [InnBaseFilter]

not: InnBaseFilter

}

15

type DateTimeBase

"""

Входной объект для базового типа информации о дате и времени

"""

input DateTimeBaseFilter {

"""

Фильтр для информации о дате и времени в расширенном формате местного времени с разницей со Всемирным координированным временем (UTC) YYYY-MM-DDThh:mm:ss+/-hh:mm

"""

utc: DateTimeStringFilter

and: [DateTimeBaseFilter]

or: [DateTimeBaseFilter]

not: DateTimeBaseFilter

}

"""

Входной объект: используемые операции сравнения для информации о дате и времени

"""

input DateTimeStringFilter {

eq: String

in: [String]

le: String

It: String

ge: String

gt: String

between: DateTimeRange

}

"""

Входной объект: информация о временном промежутке для использования в операциях сравнения

"""

input DateTimeRange {

min: String!

max: String!

}

16

type PointBase

"""

Входной объект для базового типа пространственной информации: точки

"""

input PointBaseFilter {

"""

Фильтр для точек в пространстве: нахождение около аргумента фильтра в заданных пределах

"""

near: NearFilter

"""

Фильтр для точек в пространстве: нахождение внутри заданного полигона

"""

within: WithinFilter

and: [PointBaseFilter]

or: [PointBaseFilter]

not: PointBaseFilter

}

"""

Входной объект: пространственный фильтр нахождения около заданной точки в указанных пределах

"""

input NearFilter {

"""

Дистанция в метрах до используемой точки в пространстве в фильтре

"""

distance: Float!

"""

Точка в пространстве, по дистанции до которой происходит фильтрация

"""

point: PointRef!

}

"""

Входной объект: пространственный фильтр нахождения внутри заданного полигона

"""

input WithinFilter {

"""

Полигон в пространстве, по нахождению в котором происходит фильтрация

"""

polygon: PolygonRef!

}

"""

Входной объект: точка в пространстве для использования в фильтрах.

"""

input PointRef {

"""

Долгота в градусах

"""

longitude: Float!

"""

Широта в градусах

"""

latitude: Float!}

17

type LineBase

"""

Входной объект для базового типа пространственной информации: последовательности точек (линии)

"""

input LineBaseFilter {

"""

Фильтр для последовательности точек в пространстве: нахождение около аргумента фильтра в заданных пределах

"""

near: NearFilter

"""

Фильтр для последовательности точек в пространстве: нахождение внутри заданного полигона

"""

within: WithinFilter

"""

Фильтр для последовательности точек в пространстве: пересечение с заданным полигоном

"""

intersects: IntersectsFilter

and: [LineBaseFilter]

or: [LineBaseFilter]

not: LineBaseFilter

}

"""

Входной объект: пространственный фильтр пересечения с заданным полигоном

"""

input IntersectsFilter {

"""

Полигон в пространстве, по пересечению с которым происходит фильтрация

"""

polygon: PolygonRef

}

"""

Входной объект: последовательность точек в пространстве для использования в фильтрах

"""

input LineRef {

points: [PointRef!]!

}

18

type PointTimeBase

"""

Входной объект для базового типа пространственно-временной информации: точки в пространстве с привязкой к дате и времени

"""

input PointTimeBaseFilter {

"""

Фильтр для пространственной информации

"""

point: PointBaseFilter

"""

Фильтр для временной информации

"""

time: DateTimeBaseFilter

and: [PointTimeBaseFilter]

or: [PointTimeBaseFilter]

not: PointTimeBaseFilter

}

"""

Входной объект: точки в пространстве с привязкой к дате и времени для использования в фильтрах

"""

input PointTimeRef {

point: PointRef!

time: String!

}

19

type PolygonBase

"""

Входной объект для базового типа пространственной информации: полигона

"""

input PolygonBaseFilter {

"""

Фильтр для полигона: нахождение около аргумента фильтра в заданных пределах

"""

near: NearFilter

"""

Фильтр для полигона: нахождение внутри заданного полигона

"""

within: WithinFilter

"""

Фильтр для полигона: содержание заданных точки или полигона

"""

contains: ContainsFilter

"""

Фильтр для полигона: пересечение с заданным полигоном

"""

intersects: IntersectsFilter

and: [PolygonBaseFilter]

or: [PolygonBaseFilter]

not: PolygonBaseFilter

}

"""

Входной объект: пространственный фильтр включения заданной точки или полигона

"""

input ContainsFilter {

"""

Точка в пространстве, по включению которой в исходный полигон происходит фильтрация

"""

point: PointRef

"""

Полигон в пространстве, по включению которого в исходный полигон происходит фильтрация

"""

polygon: PolygonRef

}

"""

Входной объект: полигон в пространстве для использования в фильтрах

"""

input PolygonRef {

lines: [LineRef!]!

}

20

type MultiPolygonBase

"""

Входной объект для базового типа пространственной информации: мультиполигона

"""

input MultiPolygonBaseFilter {

"""

Фильтр для мультиполигона: нахождение около аргумента фильтра в заданных пределах

"""

near: NearFilter

"""

Фильтр для мультиполигона: нахождение внутри заданного полигона

"""

within: WithinFilter

"""

Фильтр для мультиполигона: содержание заданных точки или полигона

"""

contains: ContainsFilter

"""

Фильтр для мультиполигона: пересечение с заданным полигоном

"""

intersects: IntersectsFilter

and: [MultiPolygonBaseFilter]

or: [MultiPolygonBaseFilter]

not: MultiPolygonBaseFilter

}

"""

Входной объект для базового типа пространственно-временной информации: трек

"""

input GeoTrackBaseFilter {

"""

Фильтр для временной информации: прохождение маршрута в указанное время

"""

time: DateTimeBaseFilter

"""

Фильтр для пространственной информации: нахождение около аргумента фильтра в заданных пределах

"""

near: NearFilter!

"""

Фильтр для пространственно-временной информации: нахождение около аргумента фильтра в заданных пределах в указанное время

"""

nearTime: NearTimeFilter!

"""

Фильтр для пространственной информации: нахождение внутри заданного полигона

"""

within: WithinFilter!

"""

Фильтр для пространственно-временной информации: нахождение внутри заданного полигона в указанное время

"""

withinTime: WithinTimeFilter!

"""

Фильтр для пространственной информации: пересечение с заданным полигоном

"""

intersects: IntersectsFilter!

"""

Фильтр для пространственно-временной информации: пересечение с заданным полигоном в указанное время

"""

intersectsTime: IntersectsTimeFilter!

"""

21

type GeoTrackBase

Фильтр для пространственно-временной информации: пересечение с заданным треком в указанных промежутках времени и расстояния

"""

intersectsTrack: IntersectsTrackFilter!

and: [GeoTrackBaseFilter]

or: [GeoTrackBaseFilter]

not: GeoTrackBaseFilter

}

"""

Входной объект: пространственно-временной фильтр нахождения около заданной точки в указанных пределах в заданное время

"""

input NearTimeFilter {

distance: Float!

point: PointRef!

time: DateTimeBaseFilter!

}

"""

Входной объект: пространственно-временной фильтр нахождения внутри заданного полигона в указанное время

"""

input WithinTimeFilter {

polygon: PolygonRef!

time: DateTimeBaseFilter!

}

"""

Входной объект: пространственно-временной фильтр пересечения с заданным полигоном в указанное время

"""

input IntersectsTimeFilter {

polygon: PolygonRef

time: DateTimeBaseFilter!

}

"""

Входной объект: пространственно-временной фильтр пересечения с заданным треком в указанных интервалах расстояния и времени

"""

input IntersectsTrackFilter {

geotrack: GeoTrackRef!

deltaTime: DeltaTimeRef!

distance: Float!

}

"""

Входной объект: период времени в секундах

"""

input DeltaTimeRef {

second: Int!

}

"""

Входной объект: трек для использования в фильтрах

"""

input GeoTrackRef {

pointsInTime: [PointTimeRef]!

}

22

type BankAccountInfoBase

"""

Входной объект для базового типа банковских данных

"""

input BankAccountInfoBaseFilter {

"""

Фильтр для имени банка

"""

bankName: StringRegExpExactFilter

"""

Фильтр для номера счета

"""

account: StringRegExpExactFilter

"""

Фильтр для номера корреспондентского счета

"""

corrAccount: StringRegExpExactFilter

"""

Фильтр для номера карты

"""

cardNumber: StringRegExpExactFilter

"""

Фильтр для банковского идентификационного кода

"""

rcbic: StringRegExpExactFilter

"""

Фильтр для КПП

"""

kpp: StringRegExpExactFilter

and: [BankAccountInfoBaseFilter]

or: [BankAccountInfoBaseFilter]

not: BankAccountInfoBaseFilter

}

23

type BankTransferInfoBase

"""

Входной объект для базового типа банковских переводов

"""

input BankTransferInfoBaseFilter {

"""

Фильтр для отправителя

"""

from: BankAccountInfoBaseFilter

"""

Фильтр для получателя

"""

to: BankAccountInfoBaseFilter

"""

Фильтр для суммы перевода

"""

amount: StringRegExpExactFilter

"""

Фильтр для даты и времени перевода

"""

data: DateTimeBaseFilter

and: [BankTransferInfoBaseFilter]

or: [BankTransferInfoBaseFilter]

not: BankTransferInfoBaseFilter

}

24

type OrganizationInfoBase

"""

Входной объект для базового типа сведений о юридических лицах и индивидуальных предпринимателях

"""

input OrganizationInfoBaseFilter {

"""

Фильтр для полного наименования организации

"""

nameFull: StringRegExpExactFilter

"""

Фильтр для сокращенного наименования организации

"""

nameSmall: StringRegExpExactFilter

"""

Фильтр для ОГРН организации

"""

grn: GRNBaseFilter

"""

Фильтр для ОГРН организации

"""

inn: InnBaseFilter

"""

Фильтр для банковских данных организации

"""

bankInfo: BankAccountInfoBaseFilter

"""

Фильтр для номера телефона организации

"""

msisdn: MsisdnBaseFilter

"""

Фильтр для web-сайта организации

"""

webSite: URLBaseFilter

"""

Фильтр для электронной почты организации

"""

email: EmailBaseFilter

"""

Фильтр для даты регистрации организации

"""

dataRegistration: DateTimeBaseFilter

"""

Фильтр для неструктурированного адреса организации

"""

address: AddressBaseFilter

"""

Фильтр для представителя организации

"""

representative: OrganizationRepresentativeBaseFilter

"""

Фильтр для ОКВЭД организации

"""

okved: StringRegExpExactFilter

"""

Фильтр для ЕГРЮЛ

"""

egrul: StringRegExpExactFilter

"""

Полный текст документа вы можете просмотреть в коммерческой версии КонсультантПлюс.