openapi: 3.0.0 info: title: farmer cdn instance/{namespace} API version: v1 tags: - name: instance/{namespace} paths: /instance/{namespace}: delete: description: It deletes instance object from Firestore DB parameters: - description: Namespace name example: project-europe-west1-gcp-storefrontcloud-io in: path name: namespace required: true schema: type: string type: string responses: '204': content: application/json: {} description: Successfully deleted instance '404': description: '' schema: $ref: '#/components/schemas/InstanceErrorEnvelope' '500': description: '' schema: $ref: '#/components/schemas/InstanceErrorEnvelope' security: - FarmerApiKey: [] FarmerUserId: [] summary: It deletes instance object from Firestore DB tags: - instance/{namespace} patch: description: Updates instance, merge update data with current configuration parameters: - in: body name: body required: false schema: $ref: '#/components/schemas/Namespace' - in: path name: namespace required: true type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/Namespace' responses: '200': description: Success '400': description: '' schema: $ref: '#/components/schemas/InstanceErrorEnvelope' '500': description: Exception when patching instance security: - FarmerApiKey: [] FarmerUserId: [] summary: Update instance configuration tags: - instance/{namespace} components: schemas: BasicAuth: properties: allowed_ips: description: List containing IP addresses items: description: IP addresses as interface (eg. '1.2.3.4/24') type: array enabled: type: boolean login: description: Basic Auth login data type: string writeOnly: true pass_hash: description: Basic Auth base64 encoded hash of login/pass (`htpasswd -nb user pass | base64`) type: string password: description: Basic Auth password data type: string writeOnly: true type: object HostAliases: properties: hostname: type: string ip: type: string type: object LocalCloudJson: properties: disabled: description: Disable default local-cloud.json injecting type: boolean type: object HealthCheckAdditionalAppsWrap: properties: enabled: type: boolean path: description: relative path to use in HTTP request example: /some/path type: string timeout_seconds: description: 'number of seconds representing probe timeout,min: 1, max 30' maximum: 30 minimum: 1 nullable: true type: integer type: object DefaultDomain: properties: disabled: description: Enable or disable default project's domain type: boolean type: object Enabled: properties: enabled: type: boolean type: object Datadog: properties: api_key: type: string apm: $ref: '#/components/schemas/Enabled' env_var: items: $ref: '#/components/schemas/EnvVar' type: array logs: $ref: '#/components/schemas/Enabled' type: object App: properties: env_var: items: $ref: '#/components/schemas/EnvVar' type: array has_base_path: type: boolean health_check: $ref: '#/components/schemas/HealthCheckAdditionalAppsWrap' image: description: Additional applicatiom image name. Image should be stored in VSF docker registry in project namespace. For example foo-europe-west1-gcp-storefrontcloud-io should store its images in namespace foo-storefrontcloud-io example: registry.storefrontcloud.io/foo-storefrontcloud-io/ct-adyen-integration-extension type: string name: type: string path: type: string port: type: string tag: type: string type: object AzureLogAnalytics: properties: add_tag_field: description: Whether to add tag field to record type: boolean add_time_field: description: Whether to add field with current time to records type: boolean customer_id: description: Azure Operations Management Suite workspace ID type: string enabled: description: whether to enable Azure Log Analytics logging type: boolean endpoint: description: custom service endpoint for clients that use private azure cloud type: string local_time: description: Whether to use local time in inserted time record type: boolean log_type: description: Name of event type that is being submitted to Azure Log Analytics e.g. AccessLogs enum: - a - b - c - d - e - f - g - h - i - j - k - l - m - n - o - p - q - r - s - t - u - v - w - x - y - z - A - B - C - D - E - F - G - H - I - J - K - L - M - N - O - P - Q - R - S - T - U - V - W - X - Y - Z - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7' - '8' - '9' minLength: 1 type: string shared_key: description: primary or secondary Connected Sources client auth key type: string tag_field_name: description: Name of field with custom tag type: string time_field_name: description: Name of field with inserted time type: string type: object NewRelicInfra: properties: license_key: type: string type: object CustomDomain: properties: domains: description: Array containing list of domains to add or domain objects items: example: 'mydomain.com or {"name":"mydomain.com", "secret_name": "custom-tls"}' type: array enabled: type: boolean type: object EnvVarWithFilter: properties: is_secret: description: Flag to mark environment variable as a secret type: boolean name: description: Environment variable name, the name has to match to the patern '^[a-zA-Z_][a-zA-Z0-9_]*$'. pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ type: string only_for: description: split API deployment to exclusively set variable for (without leading slash) example: api type: string value: type: string type: object AdditionalApps: properties: apps: items: $ref: '#/components/schemas/App' type: array enabled: type: boolean ha: $ref: '#/components/schemas/Enabled' monitoring: $ref: '#/components/schemas/Enabled' type: object EnvVar: properties: is_secret: description: Flag to mark environment variable as a secret type: boolean name: description: Environment variable name, the name has to match to the patern '^[a-zA-Z_][a-zA-Z0-9_]*$'. pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ type: string value: type: string type: object Whitelist: properties: enabled: type: boolean ips: description: List containing IP addresses items: description: IP addresses as interface (eg. '1.2.3.4/24') type: array type: object Cors: properties: allow_credentials: description: Enable or disable Access-Control-Allow-Credentails in cross-origin requests type: boolean allow_headers: description: List containing headers allowed to be sent in cross-origin request items: example: X-My-Header type: string type: array allow_methods: description: List containing methods allowed to be used in CORS requests items: example: GET type: string type: array allow_origin: description: List containing headers allowed to be sent in cross-origin request items: example: http://some.origin type: string type: array cors_max_age: description: how long responses to pre-flight requests are allowed to be cached by browsers example: '600' type: integer enabled: description: Enable or disable CORS settings type: boolean expose_headers: description: List containing headers allowed to be allowed in cross-origin response items: example: X-My-Header type: string type: array type: object ResourcesRequestsLimits: properties: cpu: type: string memory: type: string type: object Loki: properties: enabled: type: boolean extra_labels: description: Grafana loki extra labels in json format type: object password: description: Grafana loki user password type: string url: description: Grafana loki endpoint for example 'https://logs-prod-us-central1.grafana.net' type: string username: description: Grafana loki username type: string type: object Resources: properties: limits: $ref: '#/components/schemas/ResourcesRequestsLimits' requests: $ref: '#/components/schemas/ResourcesRequestsLimits' type: object Newrelic: properties: api_insert_key: type: string enabled: type: boolean newrelic_infra: $ref: '#/components/schemas/NewRelicInfra' type: object CustomErrorPage: properties: body: description: Base64 encoded HTML of custom error page type: string enabled: type: boolean type: object HealthCheckVsfWrap: properties: enabled: type: boolean path: type: string timeout_seconds: description: 'number of seconds representing probe timeout,min: 1, max 30' maximum: 30 minimum: 1 nullable: true type: integer url: description: Relative path to use in HTTP request example: /some/path type: string type: object Ingress: properties: cors: $ref: '#/components/schemas/Cors' custom_domain: $ref: '#/components/schemas/CustomDomain' default_domain: $ref: '#/components/schemas/DefaultDomain' gcp_cloud_cdn: $ref: '#/components/schemas/GcpCloudCdn' legacy: description: whether ingress is legacy (nginx ingress) or not (gce ingress) - read only readOnly: true type: boolean whitelist: $ref: '#/components/schemas/Whitelist' type: object Redis: properties: enabled: type: boolean resources: $ref: '#/components/schemas/Resources' service: $ref: '#/components/schemas/Service' type: object Hpa: properties: max_replicas: type: integer min_replicas: type: integer type: object VueApiResources: properties: limits: $ref: '#/components/schemas/VueApiResourcesConfig' requests: $ref: '#/components/schemas/VueApiResourcesConfig' type: object GcpCloudCdn: properties: enabled: type: boolean query_string_allowlist: description: List containing names of query string parameters to include in cache keysAll other parameters are excluded. You can specify `query_string_denylist` or `query_string_allowlist`, but not both. items: example: someQueryString type: string type: array query_string_denylist: description: List containing names of query string parameters to exclude from cache keysAll other parameters are included. You can specify `query_string_denylist` or `query_string_allowlist`, but not both. items: example: someQueryString type: string type: array type: object Namespace: properties: additional_apps: $ref: '#/components/schemas/AdditionalApps' api_disabled: type: boolean api_version: type: string azure_log_analytics: $ref: '#/components/schemas/AzureLogAnalytics' basic_auth: $ref: '#/components/schemas/BasicAuth' created_at: readOnly: true type: string datadog: $ref: '#/components/schemas/Datadog' environment_type: type: string filebeat: $ref: '#/components/schemas/Filebeat' front_version: description: Docker image id type: string ingress: $ref: '#/components/schemas/Ingress' instance_domain: readOnly: true type: string instance_namespace: maxLength: 63 minLength: 2 type: string loki: $ref: '#/components/schemas/Loki' new_cert_manager: type: boolean newrelic: $ref: '#/components/schemas/Newrelic' nginx: $ref: '#/components/schemas/Nginx' provider: type: string redis: $ref: '#/components/schemas/Redis' region: type: string updated_at: readOnly: true type: string use_lets_encrypt: type: boolean vsf: $ref: '#/components/schemas/Vsf' vsf_api: $ref: '#/components/schemas/VsfApi' vsf_api_version: type: string vsf_version: type: string vue_api: $ref: '#/components/schemas/VueApi' www_redirect: description: Enable or disable WWW redirect example: true type: boolean x_content_type_options_tag: enum: - nosniff nullable: true type: string x_frame_options: description: Enable or disable X-Frame-Options header example: true type: boolean x_robots_tag: description: Change X-Robots-Tag header value example: none type: string type: object VueApi: properties: api_ecosystem: type: boolean health_check_url: description: Set endpoint for API healthchecks example: true type: string resources: $ref: '#/components/schemas/VueApiResources' type: object Nginx: properties: custom_error_page: allOf: - $ref: '#/components/schemas/CustomErrorPage' description: Custom error page configuration type: object VueApiResourcesConfig: properties: ephemeral_storage: type: string memory: type: string type: object VsfApi: properties: env_var: items: $ref: '#/components/schemas/EnvVarWithFilter' type: array host_aliases: items: $ref: '#/components/schemas/HostAliases' type: array hpa: $ref: '#/components/schemas/Hpa' split_to: items: description: List of relative urls to server split VSF1 API deployment example: '["/api","/img"]' type: string type: array type: object Service: properties: create: type: boolean type: object Filebeat: properties: enabled: description: Enable or disable Filebeat for logs example: true type: boolean type: object Vsf: properties: env_var: description: Extra variables injected into the deployment items: $ref: '#/components/schemas/EnvVar' type: array health_check: allOf: - $ref: '#/components/schemas/HealthCheckVsfWrap' description: Healtcheck for frontend application hpa: allOf: - $ref: '#/components/schemas/Hpa' readOnly: true local_cloud_json: $ref: '#/components/schemas/LocalCloudJson' type: object InstanceErrorEnvelope: properties: code: description: HTTP response code example: 500 type: integer error: description: Error occurs example: true type: boolean instance: type: object message: description: Error message example: Instance doesn't exists type: string type: object