{
  "beans": {},
  "deployers": {},
  "moddas": {
    "Webda/GoogleCloudFireStore": "lib/services/firestore:default",
    "Webda/GoogleCloudKMS": "lib/services/kms:GCPKMSService",
    "Webda/GoogleCloudPubSub": "lib/services/pubsub:default",
    "Webda/GoogleCloudQueue": "lib/services/queue:default",
    "Webda/GoogleCloudStorage": "lib/services/storage:default"
  },
  "models": {
    "graph": {},
    "tree": {},
    "plurals": {},
    "list": {},
    "reflections": {}
  },
  "schemas": {
    "Webda/BinaryFile": {
      "type": "object",
      "properties": {
        "hash": {
          "type": "string",
          "description": "Will be computed by the service\n\nhash of the content"
        },
        "challenge": {
          "type": "string",
          "description": "Will be computed by the service\n\nhash of the content prefixed by 'WEBDA'"
        },
        "size": {
          "type": "number",
          "description": "Size of the binary"
        },
        "name": {
          "type": "string",
          "description": "Current name"
        },
        "mimetype": {
          "type": "string",
          "description": "Mimetype of the binary"
        },
        "metadata": {
          "description": "Metadatas stored along with the binary"
        },
        "originalname": {
          "type": "string",
          "description": "Original name"
        }
      },
      "required": [
        "mimetype",
        "name",
        "size"
      ],
      "description": "Represent a file to store",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "title": "BinaryFile"
    },
    "Webda/GoogleCloudFireStore": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "Type of the service"
        },
        "url": {
          "type": "string",
          "description": "URL on which to serve the content"
        },
        "model": {
          "type": "string",
          "description": "Webda model to use within the Store",
          "default": "Webda/CoreModel"
        },
        "additionalModels": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Additional models\n\nAllow this store to manage other models",
          "default": []
        },
        "asyncDelete": {
          "type": "boolean",
          "description": "async delete"
        },
        "expose": {
          "$ref": "#/definitions/StoreExposeParameters",
          "description": "Expose the service to an urls",
          "deprecated": "will probably be removed in 4.0 in favor of Expose annotation"
        },
        "strict": {
          "type": "boolean",
          "description": "Allow to load object that does not have the type data\n\nIf set to true, then the Store will only managed the defined _model and no model extending this one",
          "default": false
        },
        "defaultModel": {
          "type": "boolean",
          "description": "When __type model not found, use the model If strict is setup this parameter is not used",
          "default": true
        },
        "forceModel": {
          "type": "boolean",
          "description": "If set, Store will ignore the __type",
          "default": false
        },
        "slowQueryThreshold": {
          "type": "number",
          "description": "Slow query threshold",
          "default": 30000
        },
        "modelAliases": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Model Aliases to allow easier rename of Model"
        },
        "noCache": {
          "type": "boolean",
          "description": "Disable default memory cache"
        },
        "collection": {
          "type": "string",
          "description": "Collection to use"
        },
        "compoundIndexes": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/FireStoreIndex"
          },
          "description": "To allow efficient query on several fields"
        },
        "openapi": {
          "type": "object",
          "additionalProperties": true
        }
      },
      "required": [
        "asyncDelete",
        "collection",
        "compoundIndexes",
        "slowQueryThreshold",
        "type"
      ],
      "description": "Firebase parameters",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "definitions": {
        "StoreExposeParameters": {
          "type": "object",
          "properties": {
            "url": {
              "type": "string",
              "description": "URL endpoint to use to expose REST Resources API",
              "default": "service.getName().toLowerCase()"
            },
            "restrict": {
              "type": "object",
              "properties": {
                "create": {
                  "type": "boolean",
                  "description": "Do not expose the POST"
                },
                "update": {
                  "type": "boolean",
                  "description": "Do not expose the PUT and PATCH"
                },
                "get": {
                  "type": "boolean",
                  "description": "Do not expose the GET"
                },
                "delete": {
                  "type": "boolean",
                  "description": "Do not expose the DELETE"
                },
                "query": {
                  "type": "boolean",
                  "description": "Do not expose the query endpoint"
                }
              },
              "description": "You can restrict any part of the CRUD",
              "default": {}
            },
            "queryMethod": {
              "type": "string",
              "enum": [
                "PUT",
                "GET"
              ],
              "description": "For confidentiality sometimes you might prefer to expose query through PUT To avoid GET logging",
              "default": "GET"
            }
          },
          "deprecated": "Store should not be exposed directly anymore\nYou should use the DomainService instead"
        },
        "FireStoreIndex": {
          "type": "object",
          "additionalProperties": {
            "type": "string",
            "enum": [
              "asc",
              "desc"
            ]
          },
          "description": "Definition of a FireStore index"
        }
      },
      "title": "FireStore"
    },
    "Webda/GoogleCloudKMS": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "Type of the service"
        },
        "url": {
          "type": "string",
          "description": "URL on which to serve the content"
        },
        "defaultKey": {
          "type": "string",
          "description": "Encryption key to use by default",
          "default": "WEBDA_GCP_KMS_KEY env variable"
        },
        "openapi": {
          "type": "object",
          "additionalProperties": true
        }
      },
      "required": [
        "type"
      ],
      "description": "Parameters for the KMS Service",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "title": "GCPKMSService"
    },
    "Webda/GoogleCloudPubSub": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "Type of the service"
        },
        "url": {
          "type": "string",
          "description": "URL on which to serve the content"
        },
        "topic": {
          "type": "string",
          "description": "Topic to use on GCP"
        },
        "subscriptionOptions": {
          "$ref": "#/definitions/CreateSubscriptionOptions",
          "description": "Subscription options to pass to GCP"
        },
        "openapi": {
          "type": "object",
          "additionalProperties": true
        }
      },
      "required": [
        "topic",
        "type"
      ],
      "$schema": "http://json-schema.org/draft-07/schema#",
      "definitions": {
        "CreateSubscriptionOptions": {
          "type": "object",
          "properties": {
            "gaxOpts": {
              "type": "object",
              "properties": {
                "timeout": {
                  "type": "number"
                },
                "retry": {
                  "anyOf": [
                    {
                      "$ref": "#/definitions/Partial%3Cclass-657338214-822-3488-657338214-0-17392%3E"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "autoPaginate": {
                  "type": "boolean"
                },
                "maxResults": {
                  "type": "number"
                },
                "maxRetries": {
                  "type": "number"
                },
                "otherArgs": {
                  "type": "object"
                },
                "bundleOptions": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "elementCountLimit": {
                          "type": "number"
                        },
                        "requestByteLimit": {
                          "type": "number"
                        },
                        "elementCountThreshold": {
                          "type": "number"
                        },
                        "requestByteThreshold": {
                          "type": "number"
                        },
                        "delayThreshold": {
                          "type": "number"
                        }
                      }
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "isBundling": {
                  "type": "boolean"
                },
                "longrunning": {
                  "type": "object",
                  "properties": {
                    "maxRetries": {
                      "type": "number"
                    },
                    "initialRetryDelayMillis": {
                      "type": "number"
                    },
                    "retryDelayMultiplier": {
                      "type": "number"
                    },
                    "maxRetryDelayMillis": {
                      "type": "number"
                    },
                    "initialRpcTimeoutMillis": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "maxRpcTimeoutMillis": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "totalTimeoutMillis": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "rpcTimeoutMultiplier": {
                      "type": [
                        "number",
                        "null"
                      ]
                    }
                  },
                  "required": [
                    "initialRetryDelayMillis",
                    "retryDelayMultiplier",
                    "maxRetryDelayMillis"
                  ]
                },
                "apiName": {
                  "type": "string"
                },
                "retryRequestOptions": {
                  "type": "object",
                  "properties": {
                    "objectMode": {
                      "type": "boolean"
                    },
                    "request": {},
                    "retries": {
                      "type": "number"
                    },
                    "noResponseRetries": {
                      "type": "number"
                    },
                    "currentRetryAttempt": {
                      "type": "number"
                    },
                    "shouldRetryFn": {},
                    "maxRetryDelay": {
                      "type": "number"
                    },
                    "retryDelayMultiplier": {
                      "type": "number"
                    },
                    "totalTimeout": {
                      "type": "number"
                    }
                  }
                }
              }
            },
            "flowControl": {
              "type": "object",
              "properties": {
                "allowExcessMessages": {
                  "type": "boolean"
                },
                "maxBytes": {
                  "type": "number"
                },
                "maxMessages": {
                  "type": "number"
                },
                "maxExtensionMinutes": {
                  "type": "number"
                },
                "maxExtension": {
                  "type": "number",
                  "deprecated": "Use maxExtensionMinutes."
                }
              }
            },
            "name": {
              "type": [
                "string",
                "null"
              ],
              "description": "Subscription name"
            },
            "topic": {
              "type": [
                "string",
                "null"
              ],
              "description": "Subscription topic"
            },
            "pushConfig": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "pushEndpoint": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "PushConfig pushEndpoint"
                    },
                    "attributes": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": {
                            "type": "string"
                          }
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "PushConfig attributes"
                    },
                    "oidcToken": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "serviceAccountEmail": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "OidcToken serviceAccountEmail"
                            },
                            "audience": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "OidcToken audience"
                            }
                          },
                          "description": "Properties of an OidcToken."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "PushConfig oidcToken"
                    },
                    "pubsubWrapper": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Properties of a PubsubWrapper."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "PushConfig pubsubWrapper"
                    },
                    "noWrapper": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "writeMetadata": {
                              "type": [
                                "boolean",
                                "null"
                              ],
                              "description": "NoWrapper writeMetadata"
                            }
                          },
                          "description": "Properties of a NoWrapper."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "PushConfig noWrapper"
                    }
                  },
                  "description": "Properties of a PushConfig."
                },
                {
                  "type": "null"
                }
              ],
              "description": "Subscription pushConfig"
            },
            "bigqueryConfig": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "table": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "BigQueryConfig table"
                    },
                    "useTopicSchema": {
                      "type": [
                        "boolean",
                        "null"
                      ],
                      "description": "BigQueryConfig useTopicSchema"
                    },
                    "writeMetadata": {
                      "type": [
                        "boolean",
                        "null"
                      ],
                      "description": "BigQueryConfig writeMetadata"
                    },
                    "dropUnknownFields": {
                      "type": [
                        "boolean",
                        "null"
                      ],
                      "description": "BigQueryConfig dropUnknownFields"
                    },
                    "state": {
                      "anyOf": [
                        {
                          "$ref": "#/definitions/google.pubsub.v1.BigQueryConfig.State"
                        },
                        {
                          "type": "string",
                          "const": "STATE_UNSPECIFIED"
                        },
                        {
                          "type": "string",
                          "const": "ACTIVE"
                        },
                        {
                          "type": "string",
                          "const": "PERMISSION_DENIED"
                        },
                        {
                          "type": "string",
                          "const": "NOT_FOUND"
                        },
                        {
                          "type": "string",
                          "const": "SCHEMA_MISMATCH"
                        },
                        {
                          "type": "string",
                          "const": "IN_TRANSIT_LOCATION_RESTRICTION"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "BigQueryConfig state"
                    },
                    "useTableSchema": {
                      "type": [
                        "boolean",
                        "null"
                      ],
                      "description": "BigQueryConfig useTableSchema"
                    },
                    "serviceAccountEmail": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "BigQueryConfig serviceAccountEmail"
                    }
                  },
                  "description": "Properties of a BigQueryConfig."
                },
                {
                  "type": "null"
                }
              ],
              "description": "Subscription bigqueryConfig"
            },
            "cloudStorageConfig": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "bucket": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "CloudStorageConfig bucket"
                    },
                    "filenamePrefix": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "CloudStorageConfig filenamePrefix"
                    },
                    "filenameSuffix": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "CloudStorageConfig filenameSuffix"
                    },
                    "filenameDatetimeFormat": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "CloudStorageConfig filenameDatetimeFormat"
                    },
                    "textConfig": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Properties of a TextConfig."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "CloudStorageConfig textConfig"
                    },
                    "avroConfig": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "writeMetadata": {
                              "type": [
                                "boolean",
                                "null"
                              ],
                              "description": "AvroConfig writeMetadata"
                            },
                            "useTopicSchema": {
                              "type": [
                                "boolean",
                                "null"
                              ],
                              "description": "AvroConfig useTopicSchema"
                            }
                          },
                          "description": "Properties of an AvroConfig."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "CloudStorageConfig avroConfig"
                    },
                    "maxDuration": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "seconds": {
                              "anyOf": [
                                {
                                  "type": "number"
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "high": {
                                      "type": "number",
                                      "description": "The high 32 bits as a signed value."
                                    },
                                    "low": {
                                      "type": "number",
                                      "description": "The low 32 bits as a signed value."
                                    },
                                    "unsigned": {
                                      "type": "boolean",
                                      "description": "Whether unsigned or not."
                                    }
                                  },
                                  "required": [
                                    "high",
                                    "low",
                                    "unsigned"
                                  ]
                                },
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Duration seconds"
                            },
                            "nanos": {
                              "type": [
                                "number",
                                "null"
                              ],
                              "description": "Duration nanos"
                            }
                          },
                          "description": "Properties of a Duration."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "CloudStorageConfig maxDuration"
                    },
                    "maxBytes": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "high": {
                              "type": "number",
                              "description": "The high 32 bits as a signed value."
                            },
                            "low": {
                              "type": "number",
                              "description": "The low 32 bits as a signed value."
                            },
                            "unsigned": {
                              "type": "boolean",
                              "description": "Whether unsigned or not."
                            }
                          },
                          "required": [
                            "high",
                            "low",
                            "unsigned"
                          ]
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "CloudStorageConfig maxBytes"
                    },
                    "maxMessages": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "high": {
                              "type": "number",
                              "description": "The high 32 bits as a signed value."
                            },
                            "low": {
                              "type": "number",
                              "description": "The low 32 bits as a signed value."
                            },
                            "unsigned": {
                              "type": "boolean",
                              "description": "Whether unsigned or not."
                            }
                          },
                          "required": [
                            "high",
                            "low",
                            "unsigned"
                          ]
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "CloudStorageConfig maxMessages"
                    },
                    "state": {
                      "anyOf": [
                        {
                          "$ref": "#/definitions/google.pubsub.v1.CloudStorageConfig.State"
                        },
                        {
                          "type": "string",
                          "const": "STATE_UNSPECIFIED"
                        },
                        {
                          "type": "string",
                          "const": "ACTIVE"
                        },
                        {
                          "type": "string",
                          "const": "PERMISSION_DENIED"
                        },
                        {
                          "type": "string",
                          "const": "NOT_FOUND"
                        },
                        {
                          "type": "string",
                          "const": "IN_TRANSIT_LOCATION_RESTRICTION"
                        },
                        {
                          "type": "string",
                          "const": "SCHEMA_MISMATCH"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "CloudStorageConfig state"
                    },
                    "serviceAccountEmail": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "CloudStorageConfig serviceAccountEmail"
                    }
                  },
                  "description": "Properties of a CloudStorageConfig."
                },
                {
                  "type": "null"
                }
              ],
              "description": "Subscription cloudStorageConfig"
            },
            "ackDeadlineSeconds": {
              "type": [
                "number",
                "null"
              ],
              "description": "Subscription ackDeadlineSeconds"
            },
            "retainAckedMessages": {
              "type": [
                "boolean",
                "null"
              ],
              "description": "Subscription retainAckedMessages"
            },
            "labels": {
              "anyOf": [
                {
                  "type": "object",
                  "additionalProperties": {
                    "type": "string"
                  }
                },
                {
                  "type": "null"
                }
              ],
              "description": "Subscription labels"
            },
            "enableMessageOrdering": {
              "type": [
                "boolean",
                "null"
              ],
              "description": "Subscription enableMessageOrdering"
            },
            "expirationPolicy": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "ttl": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "seconds": {
                              "anyOf": [
                                {
                                  "type": "number"
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "high": {
                                      "type": "number",
                                      "description": "The high 32 bits as a signed value."
                                    },
                                    "low": {
                                      "type": "number",
                                      "description": "The low 32 bits as a signed value."
                                    },
                                    "unsigned": {
                                      "type": "boolean",
                                      "description": "Whether unsigned or not."
                                    }
                                  },
                                  "required": [
                                    "high",
                                    "low",
                                    "unsigned"
                                  ]
                                },
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Duration seconds"
                            },
                            "nanos": {
                              "type": [
                                "number",
                                "null"
                              ],
                              "description": "Duration nanos"
                            }
                          },
                          "description": "Properties of a Duration."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "ExpirationPolicy ttl"
                    }
                  },
                  "description": "Properties of an ExpirationPolicy."
                },
                {
                  "type": "null"
                }
              ],
              "description": "Subscription expirationPolicy"
            },
            "filter": {
              "type": [
                "string",
                "null"
              ],
              "description": "Subscription filter"
            },
            "deadLetterPolicy": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "deadLetterTopic": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "DeadLetterPolicy deadLetterTopic"
                    },
                    "maxDeliveryAttempts": {
                      "type": [
                        "number",
                        "null"
                      ],
                      "description": "DeadLetterPolicy maxDeliveryAttempts"
                    }
                  },
                  "description": "Properties of a DeadLetterPolicy."
                },
                {
                  "type": "null"
                }
              ],
              "description": "Subscription deadLetterPolicy"
            },
            "retryPolicy": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "minimumBackoff": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "seconds": {
                              "anyOf": [
                                {
                                  "type": "number"
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "high": {
                                      "type": "number",
                                      "description": "The high 32 bits as a signed value."
                                    },
                                    "low": {
                                      "type": "number",
                                      "description": "The low 32 bits as a signed value."
                                    },
                                    "unsigned": {
                                      "type": "boolean",
                                      "description": "Whether unsigned or not."
                                    }
                                  },
                                  "required": [
                                    "high",
                                    "low",
                                    "unsigned"
                                  ]
                                },
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Duration seconds"
                            },
                            "nanos": {
                              "type": [
                                "number",
                                "null"
                              ],
                              "description": "Duration nanos"
                            }
                          },
                          "description": "Properties of a Duration."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "RetryPolicy minimumBackoff"
                    },
                    "maximumBackoff": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "seconds": {
                              "anyOf": [
                                {
                                  "type": "number"
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "high": {
                                      "type": "number",
                                      "description": "The high 32 bits as a signed value."
                                    },
                                    "low": {
                                      "type": "number",
                                      "description": "The low 32 bits as a signed value."
                                    },
                                    "unsigned": {
                                      "type": "boolean",
                                      "description": "Whether unsigned or not."
                                    }
                                  },
                                  "required": [
                                    "high",
                                    "low",
                                    "unsigned"
                                  ]
                                },
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Duration seconds"
                            },
                            "nanos": {
                              "type": [
                                "number",
                                "null"
                              ],
                              "description": "Duration nanos"
                            }
                          },
                          "description": "Properties of a Duration."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "RetryPolicy maximumBackoff"
                    }
                  },
                  "description": "Properties of a RetryPolicy."
                },
                {
                  "type": "null"
                }
              ],
              "description": "Subscription retryPolicy"
            },
            "detached": {
              "type": [
                "boolean",
                "null"
              ],
              "description": "Subscription detached"
            },
            "enableExactlyOnceDelivery": {
              "type": [
                "boolean",
                "null"
              ],
              "description": "Subscription enableExactlyOnceDelivery"
            },
            "topicMessageRetentionDuration": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "seconds": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "high": {
                              "type": "number",
                              "description": "The high 32 bits as a signed value."
                            },
                            "low": {
                              "type": "number",
                              "description": "The low 32 bits as a signed value."
                            },
                            "unsigned": {
                              "type": "boolean",
                              "description": "Whether unsigned or not."
                            }
                          },
                          "required": [
                            "high",
                            "low",
                            "unsigned"
                          ]
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Duration seconds"
                    },
                    "nanos": {
                      "type": [
                        "number",
                        "null"
                      ],
                      "description": "Duration nanos"
                    }
                  },
                  "description": "Properties of a Duration."
                },
                {
                  "type": "null"
                }
              ],
              "description": "Subscription topicMessageRetentionDuration"
            },
            "state": {
              "anyOf": [
                {
                  "$ref": "#/definitions/google.pubsub.v1.Subscription.State"
                },
                {
                  "type": "string",
                  "const": "STATE_UNSPECIFIED"
                },
                {
                  "type": "string",
                  "const": "ACTIVE"
                },
                {
                  "type": "string",
                  "const": "RESOURCE_ERROR"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Subscription state"
            },
            "analyticsHubSubscriptionInfo": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "listing": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "AnalyticsHubSubscriptionInfo listing"
                    },
                    "subscription": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "AnalyticsHubSubscriptionInfo subscription"
                    }
                  },
                  "description": "Properties of an AnalyticsHubSubscriptionInfo."
                },
                {
                  "type": "null"
                }
              ],
              "description": "Subscription analyticsHubSubscriptionInfo"
            },
            "messageRetentionDuration": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "seconds": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "high": {
                              "type": "number",
                              "description": "The high 32 bits as a signed value."
                            },
                            "low": {
                              "type": "number",
                              "description": "The low 32 bits as a signed value."
                            },
                            "unsigned": {
                              "type": "boolean",
                              "description": "Whether unsigned or not."
                            }
                          },
                          "required": [
                            "high",
                            "low",
                            "unsigned"
                          ]
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Duration seconds"
                    },
                    "nanos": {
                      "type": [
                        "number",
                        "null"
                      ],
                      "description": "Duration nanos"
                    }
                  },
                  "description": "Properties of a Duration."
                },
                {
                  "type": "number"
                }
              ]
            },
            "pushEndpoint": {
              "type": "string"
            },
            "oidcToken": {
              "$ref": "#/definitions/OidcToken"
            }
          }
        },
        "Partial<class-657338214-822-3488-657338214-0-17392>": {
          "type": "object",
          "properties": {
            "retryCodes": {
              "type": "array",
              "items": {
                "type": "number"
              }
            },
            "backoffSettings": {
              "type": "object",
              "properties": {
                "maxRetries": {
                  "type": "number"
                },
                "initialRetryDelayMillis": {
                  "type": "number"
                },
                "retryDelayMultiplier": {
                  "type": "number"
                },
                "maxRetryDelayMillis": {
                  "type": "number"
                },
                "initialRpcTimeoutMillis": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "maxRpcTimeoutMillis": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "totalTimeoutMillis": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "rpcTimeoutMultiplier": {
                  "type": [
                    "number",
                    "null"
                  ]
                }
              },
              "required": [
                "initialRetryDelayMillis",
                "retryDelayMultiplier",
                "maxRetryDelayMillis"
              ]
            },
            "shouldRetryFn": {},
            "getResumptionRequestFn": {}
          }
        },
        "google.pubsub.v1.BigQueryConfig.State": {
          "type": "number",
          "enum": [
            0,
            1,
            2,
            3,
            4,
            5
          ],
          "description": "State enum."
        },
        "google.pubsub.v1.CloudStorageConfig.State": {
          "type": "number",
          "enum": [
            0,
            1,
            2,
            3,
            4,
            5
          ],
          "description": "State enum."
        },
        "google.pubsub.v1.Subscription.State": {
          "type": "number",
          "enum": [
            0,
            1,
            2
          ],
          "description": "State enum."
        },
        "OidcToken": {
          "type": "object",
          "properties": {
            "serviceAccountEmail": {
              "type": [
                "string",
                "null"
              ],
              "description": "OidcToken serviceAccountEmail"
            },
            "audience": {
              "type": [
                "string",
                "null"
              ],
              "description": "OidcToken audience"
            }
          },
          "description": "Properties of an OidcToken."
        }
      },
      "title": "GCPPubSubService"
    },
    "Webda/GoogleCloudQueue": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "Type of the service"
        },
        "url": {
          "type": "string",
          "description": "URL on which to serve the content"
        },
        "workerDelayer": {
          "type": "object",
          "properties": {
            "interval": {
              "type": "number",
              "description": "Interval"
            },
            "type": {
              "type": "string",
              "description": "Type of delayer registered in WaitDelayerFactoryRegistry"
            }
          },
          "required": [
            "interval",
            "type"
          ],
          "description": "Delayer between two failed attempts to process messages"
        },
        "workerParallelism": {
          "type": "boolean",
          "description": "Define if worker should process multi message received in //",
          "default": true
        },
        "maxConsumers": {
          "type": "number",
          "description": "Max number of queue consumers Queue will auto increase to this max number if queue is loaded and it will decrease to just one consumer if no messages are available",
          "default": 10
        },
        "topic": {
          "type": "string",
          "description": "Topic to use"
        },
        "subscription": {
          "type": "string",
          "description": "Subscription to use for the queue\n\nAll instances will use the same subscription to create a queue style pubsub"
        },
        "timeout": {
          "type": "number",
          "description": "Timeout when receiveMessage is used before returning empty result (in ms)\n\nIf not define then no timeout is applied and receiveMessage can hang forever"
        },
        "openapi": {
          "type": "object",
          "additionalProperties": true
        }
      },
      "required": [
        "maxConsumers",
        "subscription",
        "topic",
        "type"
      ],
      "description": "GCPQueue Parameters",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "title": "GCPQueue"
    },
    "Webda/GoogleCloudStorage": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "Type of the service"
        },
        "url": {
          "type": "string",
          "description": "URL on which to serve the content"
        },
        "map": {
          "type": "object",
          "additionalProperties": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "description": "Define the map to Object collection\n\nkey is a Store name the string[] represent all valids attributes to store files in",
          "deprecated": true
        },
        "models": {
          "type": "object",
          "additionalProperties": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "description": "Define the map of models\n* indicates all models\n\nkey is a Store name the string[] represent all valids attributes to store files in * indicates all attributes"
        },
        "expose": {
          "type": "object",
          "properties": {
            "url": {
              "type": "string",
              "description": "URL to expose the service to"
            },
            "restrict": {
              "type": "object",
              "properties": {
                "get": {
                  "type": "boolean",
                  "description": "Restrict GET"
                },
                "create": {
                  "type": "boolean",
                  "description": "Restrict POST"
                },
                "delete": {
                  "type": "boolean",
                  "description": "Restrict DELETE"
                },
                "metadata": {
                  "type": "boolean",
                  "description": "Restrict update of metadata"
                }
              },
              "description": "Restrict some APIs"
            }
          },
          "required": [
            "url"
          ],
          "description": "Expose the service to http",
          "deprecated": "will be removed in 4.0"
        },
        "prefix": {
          "type": "string"
        },
        "bucket": {
          "type": "string"
        },
        "openapi": {
          "type": "object",
          "additionalProperties": true
        }
      },
      "required": [
        "bucket",
        "map",
        "models",
        "type"
      ],
      "$schema": "http://json-schema.org/draft-07/schema#",
      "title": "Storage"
    }
  }
}