From ff66b0e0c31dfb2263a2c74ff4f4ee6be5a98da9 Mon Sep 17 00:00:00 2001 From: Jaka Hudoklin Date: Mon, 11 Feb 2019 21:21:07 +0100 Subject: [PATCH] feat: initial istio support --- default.nix | 1 + istio/default.nix | 4765 +++++++++++++++++++++++++++++++++++++++ istio/generator.nix | 323 +++ istio/istio-schema.json | 4314 +++++++++++++++++++++++++++++++++++ release.nix | 27 + 5 files changed, 9430 insertions(+) create mode 100644 istio/default.nix create mode 100644 istio/generator.nix create mode 100644 istio/istio-schema.json diff --git a/default.nix b/default.nix index 3f7a2bd..9a9ad2a 100644 --- a/default.nix +++ b/default.nix @@ -27,5 +27,6 @@ let lib = lib'; submodules = ./submodules.nix; k8s = ./k8s; + istio = ./istio; }; in kubenix diff --git a/istio/default.nix b/istio/default.nix new file mode 100644 index 0000000..1eabef9 --- /dev/null +++ b/istio/default.nix @@ -0,0 +1,4765 @@ +# This file was generated with kubenix k8s generator, do not edit +{lib, config, ... }: + +with lib; + +let + types = lib.types // rec { + str = mkOptionType { + name = "str"; + description = "string"; + check = isString; + merge = mergeEqualOption; + }; + + # Either value of type `finalType` or `coercedType`, the latter is + # converted to `finalType` using `coerceFunc`. + coercedTo = coercedType: coerceFunc: finalType: + mkOptionType rec { + name = "coercedTo"; + description = "${finalType.description} or ${coercedType.description}"; + check = x: finalType.check x || coercedType.check x; + merge = loc: defs: + let + coerceVal = val: + if finalType.check val then val + else let + coerced = coerceFunc val; + in assert finalType.check coerced; coerced; + + in finalType.merge loc (map (def: def // { value = coerceVal def.value; }) defs); + getSubOptions = finalType.getSubOptions; + getSubModules = finalType.getSubModules; + substSubModules = m: coercedTo coercedType coerceFunc (finalType.substSubModules m); + typeMerge = t1: t2: null; + functor = (defaultFunctor name) // { wrapped = finalType; }; + }; + }; + + mkOptionDefault = mkOverride 1001; + + extraOptions = { + kubenix = {}; + }; + + mergeValuesByKey = mergeKey: values: + listToAttrs (map + (value: nameValuePair ( + if isAttrs value.${mergeKey} + then toString value.${mergeKey}.content + else (toString value.${mergeKey}) + ) value) + values); + + submoduleOf = ref: types.submodule ({name, ...}: { + options = definitions."${ref}".options; + config = definitions."${ref}".config; + }); + + submoduleWithMergeOf = ref: mergeKey: types.submodule ({name, ...}: let + convertName = name: + if definitions."${ref}".options.${mergeKey}.type == types.int + then toInt name + else name; + in { + options = definitions."${ref}".options; + config = definitions."${ref}".config // { + ${mergeKey} = mkOverride 1002 (convertName name); + }; + }); + + submoduleForDefinition = ref: resource: kind: group: version: + types.submodule ({name, ...}: { + options = definitions."${ref}".options // extraOptions; + config = mkMerge ([ + definitions."${ref}".config + { + kind = mkOptionDefault kind; + apiVersion = mkOptionDefault version; + + # metdata.name cannot use option default, due deep config + metadata.name = mkOptionDefault name; + } + ] ++ (config.defaults.${resource} or []) + ++ (config.defaults.all or [])); + }); + + coerceAttrsOfSubmodulesToListByKey = ref: mergeKey: (types.coercedTo + (types.listOf (submoduleOf ref)) + (mergeValuesByKey mergeKey) + (types.attrsOf (submoduleWithMergeOf ref mergeKey)) + ); + + definitions = { + + "google_rpc_Status" = { + options = { + "code" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "details" = mkOption { + description = ""; + type = (types.nullOr (types.listOf (submoduleOf "protobuf_types_Any"))); + }; + + "message" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "code" = mkOverride 1002 null; + + "details" = mkOverride 1002 null; + + "message" = mkOverride 1002 null; + }; + }; + + "istio_adapter_bypass_Params" = { + options = { + "backendAddress" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "params" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "protobuf_types_Any")); + }; + + "sessionBased" = mkOption { + description = ""; + type = (types.nullOr types.bool); + }; + }; + + config = { + "backendAddress" = mkOverride 1002 null; + + "params" = mkOverride 1002 null; + + "sessionBased" = mkOverride 1002 null; + }; + }; + + "istio_adapter_circonus_Params" = { + options = { + "metrics" = mkOption { + description = ""; + type = (types.nullOr (types.listOf (submoduleOf "istio_adapter_circonus_Params_MetricInfo"))); + }; + + "submissionInterval" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "submissionUrl" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "metrics" = mkOverride 1002 null; + + "submissionInterval" = mkOverride 1002 null; + + "submissionUrl" = mkOverride 1002 null; + }; + }; + + "istio_adapter_circonus_Params_MetricInfo" = { + options = { + "name" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "type" = mkOption { + description = ""; + type = types.unspecified; + }; + }; + + config = { + "name" = mkOverride 1002 null; + + "type" = mkOverride 1002 null; + }; + }; + + "istio_adapter_denier_Params" = { + options = { + "status" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "google_rpc_Status")); + }; + + "validDuration" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "validUseCount" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + }; + + config = { + "status" = mkOverride 1002 null; + + "validDuration" = mkOverride 1002 null; + + "validUseCount" = mkOverride 1002 null; + }; + }; + + "istio_adapter_dogstatsd_Params" = { + options = { + "address" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "bufferLength" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "globalTags" = mkOption { + description = ""; + type = (types.nullOr (types.attrsOf types.str)); + }; + + "metrics" = mkOption { + description = ""; + type = (types.nullOr types.attrs); + }; + + "prefix" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "sampleRate" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + }; + + config = { + "address" = mkOverride 1002 null; + + "bufferLength" = mkOverride 1002 null; + + "globalTags" = mkOverride 1002 null; + + "metrics" = mkOverride 1002 null; + + "prefix" = mkOverride 1002 null; + + "sampleRate" = mkOverride 1002 null; + }; + }; + + "istio_adapter_dogstatsd_Params_MetricInfo" = { + options = { + "name" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "tags" = mkOption { + description = ""; + type = (types.nullOr (types.attrsOf types.str)); + }; + + "type" = mkOption { + description = ""; + type = types.unspecified; + }; + }; + + config = { + "name" = mkOverride 1002 null; + + "tags" = mkOverride 1002 null; + + "type" = mkOverride 1002 null; + }; + }; + + "istio_adapter_fluentd_Params" = { + options = { + "address" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "integerDuration" = mkOption { + description = ""; + type = (types.nullOr types.bool); + }; + }; + + config = { + "address" = mkOverride 1002 null; + + "integerDuration" = mkOverride 1002 null; + }; + }; + + "istio_adapter_kubernetesenv_Params" = { + options = { + "cacheRefreshDuration" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "kubeconfigPath" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "cacheRefreshDuration" = mkOverride 1002 null; + + "kubeconfigPath" = mkOverride 1002 null; + }; + }; + + "istio_adapter_list_Params" = { + options = { + "blacklist" = mkOption { + description = ""; + type = (types.nullOr types.bool); + }; + + "cachingInterval" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "cachingUseCount" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "entryType" = mkOption { + description = ""; + type = types.unspecified; + }; + + "overrides" = mkOption { + description = ""; + type = (types.nullOr (types.listOf types.str)); + }; + + "providerUrl" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "refreshInterval" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "ttl" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + }; + + config = { + "blacklist" = mkOverride 1002 null; + + "cachingInterval" = mkOverride 1002 null; + + "cachingUseCount" = mkOverride 1002 null; + + "entryType" = mkOverride 1002 null; + + "overrides" = mkOverride 1002 null; + + "providerUrl" = mkOverride 1002 null; + + "refreshInterval" = mkOverride 1002 null; + + "ttl" = mkOverride 1002 null; + }; + }; + + "istio_adapter_memquota_Params" = { + options = { + "minDeduplicationDuration" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "quotas" = mkOption { + description = ""; + type = (types.nullOr (types.listOf (submoduleOf "istio_adapter_memquota_Params_Quota"))); + }; + }; + + config = { + "minDeduplicationDuration" = mkOverride 1002 null; + + "quotas" = mkOverride 1002 null; + }; + }; + + "istio_adapter_memquota_Params_Override" = { + options = { + "dimensions" = mkOption { + description = ""; + type = (types.nullOr (types.attrsOf types.str)); + }; + + "maxAmount" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "validDuration" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + }; + + config = { + "dimensions" = mkOverride 1002 null; + + "maxAmount" = mkOverride 1002 null; + + "validDuration" = mkOverride 1002 null; + }; + }; + + "istio_adapter_memquota_Params_Quota" = { + options = { + "maxAmount" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "name" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "overrides" = mkOption { + description = ""; + type = (types.nullOr (types.listOf (submoduleOf "istio_adapter_memquota_Params_Override"))); + }; + + "validDuration" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + }; + + config = { + "maxAmount" = mkOverride 1002 null; + + "name" = mkOverride 1002 null; + + "overrides" = mkOverride 1002 null; + + "validDuration" = mkOverride 1002 null; + }; + }; + + "istio_adapter_opa_Params" = { + options = { + "checkMethod" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "failClose" = mkOption { + description = ""; + type = (types.nullOr types.bool); + }; + + "policy" = mkOption { + description = ""; + type = (types.nullOr (types.listOf types.str)); + }; + }; + + config = { + "checkMethod" = mkOverride 1002 null; + + "failClose" = mkOverride 1002 null; + + "policy" = mkOverride 1002 null; + }; + }; + + "istio_adapter_prometheus_Params" = { + options = { + "metrics" = mkOption { + description = ""; + type = (types.nullOr (types.listOf (submoduleOf "istio_adapter_prometheus_Params_MetricInfo"))); + }; + + "metricsExpirationPolicy" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_adapter_prometheus_Params_MetricsExpirationPolicy")); + }; + }; + + config = { + "metrics" = mkOverride 1002 null; + + "metricsExpirationPolicy" = mkOverride 1002 null; + }; + }; + + "istio_adapter_prometheus_Params_MetricInfo" = { + options = { + "buckets" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_adapter_prometheus_Params_MetricInfo_BucketsDefinition")); + }; + + "description" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "instanceName" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "kind" = mkOption { + description = ""; + type = types.unspecified; + }; + + "labelNames" = mkOption { + description = ""; + type = (types.nullOr (types.listOf types.str)); + }; + + "name" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "namespace" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "buckets" = mkOverride 1002 null; + + "description" = mkOverride 1002 null; + + "instanceName" = mkOverride 1002 null; + + "kind" = mkOverride 1002 null; + + "labelNames" = mkOverride 1002 null; + + "name" = mkOverride 1002 null; + + "namespace" = mkOverride 1002 null; + }; + }; + + "istio_adapter_prometheus_Params_MetricInfo_BucketsDefinition" = { + options = { + "definition" = mkOption { + description = ""; + type = types.unspecified; + }; + }; + + config = { + "definition" = mkOverride 1002 null; + }; + }; + + "istio_adapter_prometheus_Params_MetricInfo_BucketsDefinition_Explicit" = { + options = { + "bounds" = mkOption { + description = ""; + type = (types.nullOr (types.listOf types.int)); + }; + }; + + config = { + "bounds" = mkOverride 1002 null; + }; + }; + + "istio_adapter_prometheus_Params_MetricInfo_BucketsDefinition_ExplicitBuckets" = { + options = { + "explicitBuckets" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_adapter_prometheus_Params_MetricInfo_BucketsDefinition_Explicit")); + }; + }; + + config = { + "explicitBuckets" = mkOverride 1002 null; + }; + }; + + "istio_adapter_prometheus_Params_MetricInfo_BucketsDefinition_Exponential" = { + options = { + "growthFactor" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "numFiniteBuckets" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "scale" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + }; + + config = { + "growthFactor" = mkOverride 1002 null; + + "numFiniteBuckets" = mkOverride 1002 null; + + "scale" = mkOverride 1002 null; + }; + }; + + "istio_adapter_prometheus_Params_MetricInfo_BucketsDefinition_ExponentialBuckets" = { + options = { + "exponentialBuckets" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_adapter_prometheus_Params_MetricInfo_BucketsDefinition_Exponential")); + }; + }; + + config = { + "exponentialBuckets" = mkOverride 1002 null; + }; + }; + + "istio_adapter_prometheus_Params_MetricInfo_BucketsDefinition_Linear" = { + options = { + "numFiniteBuckets" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "offset" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "width" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + }; + + config = { + "numFiniteBuckets" = mkOverride 1002 null; + + "offset" = mkOverride 1002 null; + + "width" = mkOverride 1002 null; + }; + }; + + "istio_adapter_prometheus_Params_MetricInfo_BucketsDefinition_LinearBuckets" = { + options = { + "linearBuckets" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_adapter_prometheus_Params_MetricInfo_BucketsDefinition_Linear")); + }; + }; + + config = { + "linearBuckets" = mkOverride 1002 null; + }; + }; + + "istio_adapter_prometheus_Params_MetricsExpirationPolicy" = { + options = { + "expiryCheckIntervalDuration" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "metricsExpiryDuration" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + }; + + config = { + "expiryCheckIntervalDuration" = mkOverride 1002 null; + + "metricsExpiryDuration" = mkOverride 1002 null; + }; + }; + + "istio_adapter_rbac_Params" = { + options = { + "cacheDuration" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "configStoreUrl" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "cacheDuration" = mkOverride 1002 null; + + "configStoreUrl" = mkOverride 1002 null; + }; + }; + + "istio_adapter_redisquota_Params" = { + options = { + "connectionPoolSize" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "quotas" = mkOption { + description = ""; + type = (types.nullOr (types.listOf (submoduleOf "istio_adapter_redisquota_Params_Quota"))); + }; + + "redisServerUrl" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "connectionPoolSize" = mkOverride 1002 null; + + "quotas" = mkOverride 1002 null; + + "redisServerUrl" = mkOverride 1002 null; + }; + }; + + "istio_adapter_redisquota_Params_Override" = { + options = { + "dimensions" = mkOption { + description = ""; + type = (types.nullOr (types.attrsOf types.str)); + }; + + "maxAmount" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + }; + + config = { + "dimensions" = mkOverride 1002 null; + + "maxAmount" = mkOverride 1002 null; + }; + }; + + "istio_adapter_redisquota_Params_Quota" = { + options = { + "bucketDuration" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "maxAmount" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "name" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "overrides" = mkOption { + description = ""; + type = (types.nullOr (types.listOf (submoduleOf "istio_adapter_redisquota_Params_Override"))); + }; + + "rateLimitAlgorithm" = mkOption { + description = ""; + type = types.unspecified; + }; + + "validDuration" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + }; + + config = { + "bucketDuration" = mkOverride 1002 null; + + "maxAmount" = mkOverride 1002 null; + + "name" = mkOverride 1002 null; + + "overrides" = mkOverride 1002 null; + + "rateLimitAlgorithm" = mkOverride 1002 null; + + "validDuration" = mkOverride 1002 null; + }; + }; + + "istio_adapter_servicecontrol_GcpServiceSetting" = { + options = { + "googleServiceName" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "meshServiceName" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "quotas" = mkOption { + description = ""; + type = (types.nullOr (types.listOf (submoduleOf "istio_adapter_servicecontrol_Quota"))); + }; + }; + + config = { + "googleServiceName" = mkOverride 1002 null; + + "meshServiceName" = mkOverride 1002 null; + + "quotas" = mkOverride 1002 null; + }; + }; + + "istio_adapter_servicecontrol_Params" = { + options = { + "credentialPath" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "runtimeConfig" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_adapter_servicecontrol_RuntimeConfig")); + }; + + "serviceConfigs" = mkOption { + description = ""; + type = (types.nullOr (types.listOf (submoduleOf "istio_adapter_servicecontrol_GcpServiceSetting"))); + }; + }; + + config = { + "credentialPath" = mkOverride 1002 null; + + "runtimeConfig" = mkOverride 1002 null; + + "serviceConfigs" = mkOverride 1002 null; + }; + }; + + "istio_adapter_servicecontrol_Quota" = { + options = { + "expiration" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "protobuf_types_Duration")); + }; + + "googleQuotaMetricName" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "name" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "expiration" = mkOverride 1002 null; + + "googleQuotaMetricName" = mkOverride 1002 null; + + "name" = mkOverride 1002 null; + }; + }; + + "istio_adapter_servicecontrol_RuntimeConfig" = { + options = { + "checkCacheSize" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "checkResultExpiration" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "protobuf_types_Duration")); + }; + }; + + config = { + "checkCacheSize" = mkOverride 1002 null; + + "checkResultExpiration" = mkOverride 1002 null; + }; + }; + + "istio_adapter_signalfx_Params" = { + options = { + "accessToken" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "datapointInterval" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "ingestUrl" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "metrics" = mkOption { + description = ""; + type = (types.nullOr (types.listOf (submoduleOf "istio_adapter_signalfx_Params_MetricConfig"))); + }; + }; + + config = { + "accessToken" = mkOverride 1002 null; + + "datapointInterval" = mkOverride 1002 null; + + "ingestUrl" = mkOverride 1002 null; + + "metrics" = mkOverride 1002 null; + }; + }; + + "istio_adapter_signalfx_Params_MetricConfig" = { + options = { + "name" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "type" = mkOption { + description = ""; + type = types.unspecified; + }; + }; + + config = { + "name" = mkOverride 1002 null; + + "type" = mkOverride 1002 null; + }; + }; + + "istio_adapter_solarwinds_Params" = { + options = { + "appopticsAccessToken" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "appopticsBatchSize" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "logs" = mkOption { + description = ""; + type = (types.nullOr types.attrs); + }; + + "metrics" = mkOption { + description = ""; + type = (types.nullOr types.attrs); + }; + + "papertrailLocalRetentionDuration" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "papertrailUrl" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "appopticsAccessToken" = mkOverride 1002 null; + + "appopticsBatchSize" = mkOverride 1002 null; + + "logs" = mkOverride 1002 null; + + "metrics" = mkOverride 1002 null; + + "papertrailLocalRetentionDuration" = mkOverride 1002 null; + + "papertrailUrl" = mkOverride 1002 null; + }; + }; + + "istio_adapter_solarwinds_Params_LogInfo" = { + options = { + "payloadTemplate" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "payloadTemplate" = mkOverride 1002 null; + }; + }; + + "istio_adapter_solarwinds_Params_MetricInfo" = { + options = { + "labelNames" = mkOption { + description = ""; + type = (types.nullOr (types.listOf types.str)); + }; + }; + + config = { + "labelNames" = mkOverride 1002 null; + }; + }; + + "istio_adapter_stackdriver_Params" = { + options = { + "creds" = mkOption { + description = ""; + type = types.unspecified; + }; + + "endpoint" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "logInfo" = mkOption { + description = ""; + type = (types.nullOr types.attrs); + }; + + "metricInfo" = mkOption { + description = ""; + type = (types.nullOr types.attrs); + }; + + "projectId" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "pushInterval" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "trace" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_adapter_stackdriver_Params_Trace")); + }; + }; + + config = { + "creds" = mkOverride 1002 null; + + "endpoint" = mkOverride 1002 null; + + "logInfo" = mkOverride 1002 null; + + "metricInfo" = mkOverride 1002 null; + + "projectId" = mkOverride 1002 null; + + "pushInterval" = mkOverride 1002 null; + + "trace" = mkOverride 1002 null; + }; + }; + + "istio_adapter_stackdriver_Params_ApiKey" = { + options = { + "apiKey" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "apiKey" = mkOverride 1002 null; + }; + }; + + "istio_adapter_stackdriver_Params_AppCredentials" = { + options = { + "appCredentials" = mkOption { + description = ""; + type = (types.nullOr types.bool); + }; + }; + + config = { + "appCredentials" = mkOverride 1002 null; + }; + }; + + "istio_adapter_stackdriver_Params_LogInfo" = { + options = { + "httpMapping" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_adapter_stackdriver_Params_LogInfo_HttpRequestMapping")); + }; + + "labelNames" = mkOption { + description = ""; + type = (types.nullOr (types.listOf types.str)); + }; + + "payloadTemplate" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "sinkInfo" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_adapter_stackdriver_Params_LogInfo_SinkInfo")); + }; + }; + + config = { + "httpMapping" = mkOverride 1002 null; + + "labelNames" = mkOverride 1002 null; + + "payloadTemplate" = mkOverride 1002 null; + + "sinkInfo" = mkOverride 1002 null; + }; + }; + + "istio_adapter_stackdriver_Params_LogInfo_HttpRequestMapping" = { + options = { + "latency" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "localIp" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "method" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "referer" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "remoteIp" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "requestSize" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "responseSize" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "status" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "url" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "userAgent" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "latency" = mkOverride 1002 null; + + "localIp" = mkOverride 1002 null; + + "method" = mkOverride 1002 null; + + "referer" = mkOverride 1002 null; + + "remoteIp" = mkOverride 1002 null; + + "requestSize" = mkOverride 1002 null; + + "responseSize" = mkOverride 1002 null; + + "status" = mkOverride 1002 null; + + "url" = mkOverride 1002 null; + + "userAgent" = mkOverride 1002 null; + }; + }; + + "istio_adapter_stackdriver_Params_LogInfo_SinkInfo" = { + options = { + "UniqueWriterIdentity" = mkOption { + description = ""; + type = (types.nullOr types.bool); + }; + + "UpdateDestination" = mkOption { + description = ""; + type = (types.nullOr types.bool); + }; + + "UpdateFilter" = mkOption { + description = ""; + type = (types.nullOr types.bool); + }; + + "UpdateIncludeChildren" = mkOption { + description = ""; + type = (types.nullOr types.bool); + }; + + "destination" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "filter" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "id" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "UniqueWriterIdentity" = mkOverride 1002 null; + + "UpdateDestination" = mkOverride 1002 null; + + "UpdateFilter" = mkOverride 1002 null; + + "UpdateIncludeChildren" = mkOverride 1002 null; + + "destination" = mkOverride 1002 null; + + "filter" = mkOverride 1002 null; + + "id" = mkOverride 1002 null; + }; + }; + + "istio_adapter_stackdriver_Params_MetricInfo" = { + options = { + "buckets" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_adapter_stackdriver_Params_MetricInfo_BucketsDefinition")); + }; + + "kind" = mkOption { + description = ""; + type = types.unspecified; + }; + + "metricType" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "value" = mkOption { + description = ""; + type = types.unspecified; + }; + }; + + config = { + "buckets" = mkOverride 1002 null; + + "kind" = mkOverride 1002 null; + + "metricType" = mkOverride 1002 null; + + "value" = mkOverride 1002 null; + }; + }; + + "istio_adapter_stackdriver_Params_MetricInfo_BucketsDefinition" = { + options = { + "definition" = mkOption { + description = ""; + type = types.unspecified; + }; + }; + + config = { + "definition" = mkOverride 1002 null; + }; + }; + + "istio_adapter_stackdriver_Params_ServiceAccountPath" = { + options = { + "serviceAccountPath" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "serviceAccountPath" = mkOverride 1002 null; + }; + }; + + "istio_adapter_stackdriver_Params_Trace" = { + options = { + "sampleProbability" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + }; + + config = { + "sampleProbability" = mkOverride 1002 null; + }; + }; + + "istio_adapter_statsd_Params" = { + options = { + "address" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "flushBytes" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "flushDuration" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "metrics" = mkOption { + description = ""; + type = (types.nullOr types.attrs); + }; + + "prefix" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "samplingRate" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + }; + + config = { + "address" = mkOverride 1002 null; + + "flushBytes" = mkOverride 1002 null; + + "flushDuration" = mkOverride 1002 null; + + "metrics" = mkOverride 1002 null; + + "prefix" = mkOverride 1002 null; + + "samplingRate" = mkOverride 1002 null; + }; + }; + + "istio_adapter_statsd_Params_MetricInfo" = { + options = { + "nameTemplate" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "type" = mkOption { + description = ""; + type = types.unspecified; + }; + }; + + config = { + "nameTemplate" = mkOverride 1002 null; + + "type" = mkOverride 1002 null; + }; + }; + + "istio_adapter_stdio_Params" = { + options = { + "logStream" = mkOption { + description = ""; + type = types.unspecified; + }; + + "maxDaysBeforeRotation" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "maxMegabytesBeforeRotation" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "maxRotatedFiles" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "metricLevel" = mkOption { + description = ""; + type = types.unspecified; + }; + + "outputAsJson" = mkOption { + description = ""; + type = (types.nullOr types.bool); + }; + + "outputLevel" = mkOption { + description = ""; + type = types.unspecified; + }; + + "outputPath" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "severityLevels" = mkOption { + description = ""; + type = (types.nullOr (types.attrsOf types.int)); + }; + }; + + config = { + "logStream" = mkOverride 1002 null; + + "maxDaysBeforeRotation" = mkOverride 1002 null; + + "maxMegabytesBeforeRotation" = mkOverride 1002 null; + + "maxRotatedFiles" = mkOverride 1002 null; + + "metricLevel" = mkOverride 1002 null; + + "outputAsJson" = mkOverride 1002 null; + + "outputLevel" = mkOverride 1002 null; + + "outputPath" = mkOverride 1002 null; + + "severityLevels" = mkOverride 1002 null; + }; + }; + + "istio_authentication_v1alpha1_Jwt" = { + options = { + "audiences" = mkOption { + description = ""; + type = (types.nullOr (types.listOf types.str)); + }; + + "issuer" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "jwksUri" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "jwtHeaders" = mkOption { + description = ""; + type = (types.nullOr (types.listOf types.str)); + }; + + "jwtParams" = mkOption { + description = ""; + type = (types.nullOr (types.listOf types.str)); + }; + }; + + config = { + "audiences" = mkOverride 1002 null; + + "issuer" = mkOverride 1002 null; + + "jwksUri" = mkOverride 1002 null; + + "jwtHeaders" = mkOverride 1002 null; + + "jwtParams" = mkOverride 1002 null; + }; + }; + + "istio_authentication_v1alpha1_MutualTls" = { + options = { + "allowTls" = mkOption { + description = ""; + type = (types.nullOr types.bool); + }; + + "mode" = mkOption { + description = ""; + type = types.unspecified; + }; + }; + + config = { + "allowTls" = mkOverride 1002 null; + + "mode" = mkOverride 1002 null; + }; + }; + + "istio_authentication_v1alpha1_OriginAuthenticationMethod" = { + options = { + "jwt" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_authentication_v1alpha1_Jwt")); + }; + }; + + config = { + "jwt" = mkOverride 1002 null; + }; + }; + + "istio_authentication_v1alpha1_PeerAuthenticationMethod" = { + options = { + "params" = mkOption { + description = ""; + type = types.unspecified; + }; + }; + + config = { + "params" = mkOverride 1002 null; + }; + }; + + "istio_authentication_v1alpha1_PeerAuthenticationMethod_Jwt" = { + options = { + "jwt" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_authentication_v1alpha1_Jwt")); + }; + }; + + config = { + "jwt" = mkOverride 1002 null; + }; + }; + + "istio_authentication_v1alpha1_PeerAuthenticationMethod_Mtls" = { + options = { + "mtls" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_authentication_v1alpha1_MutualTls")); + }; + }; + + config = { + "mtls" = mkOverride 1002 null; + }; + }; + + "istio_authentication_v1alpha1_Policy" = { + options = { + "originIsOptional" = mkOption { + description = ""; + type = (types.nullOr types.bool); + }; + + "origins" = mkOption { + description = ""; + type = (types.nullOr (types.listOf (submoduleOf "istio_authentication_v1alpha1_OriginAuthenticationMethod"))); + }; + + "peerIsOptional" = mkOption { + description = ""; + type = (types.nullOr types.bool); + }; + + "peers" = mkOption { + description = ""; + type = (types.nullOr (types.listOf (submoduleOf "istio_authentication_v1alpha1_PeerAuthenticationMethod"))); + }; + + "principalBinding" = mkOption { + description = ""; + type = types.unspecified; + }; + + "targets" = mkOption { + description = ""; + type = (types.nullOr (types.listOf (submoduleOf "istio_authentication_v1alpha1_TargetSelector"))); + }; + }; + + config = { + "originIsOptional" = mkOverride 1002 null; + + "origins" = mkOverride 1002 null; + + "peerIsOptional" = mkOverride 1002 null; + + "peers" = mkOverride 1002 null; + + "principalBinding" = mkOverride 1002 null; + + "targets" = mkOverride 1002 null; + }; + }; + + "istio_authentication_v1alpha1_PortSelector" = { + options = { + "port" = mkOption { + description = ""; + type = types.unspecified; + }; + }; + + config = { + "port" = mkOverride 1002 null; + }; + }; + + "istio_authentication_v1alpha1_PortSelector_Name" = { + options = { + "name" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "name" = mkOverride 1002 null; + }; + }; + + "istio_authentication_v1alpha1_PortSelector_Number" = { + options = { + "number" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + }; + + config = { + "number" = mkOverride 1002 null; + }; + }; + + "istio_authentication_v1alpha1_TargetSelector" = { + options = { + "name" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "ports" = mkOption { + description = ""; + type = (types.nullOr (types.listOf (submoduleOf "istio_authentication_v1alpha1_PortSelector"))); + }; + }; + + config = { + "name" = mkOverride 1002 null; + + "ports" = mkOverride 1002 null; + }; + }; + + "istio_mesh_v1alpha1_MeshConfig" = { + options = { + "accessLogFile" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "authPolicy" = mkOption { + description = ""; + type = types.unspecified; + }; + + "connectTimeout" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "protobuf_duration_Duration")); + }; + + "defaultConfig" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_mesh_v1alpha1_ProxyConfig")); + }; + + "disablePolicyChecks" = mkOption { + description = ""; + type = (types.nullOr types.bool); + }; + + "enableClientSidePolicyCheck" = mkOption { + description = ""; + type = (types.nullOr types.bool); + }; + + "enableTracing" = mkOption { + description = ""; + type = (types.nullOr types.bool); + }; + + "ingressClass" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "ingressControllerMode" = mkOption { + description = ""; + type = types.unspecified; + }; + + "ingressService" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "mixerAddress" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "mixerCheckServer" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "mixerReportServer" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "outboundTrafficPolicy" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_mesh_v1alpha1_MeshConfig_OutboundTrafficPolicy")); + }; + + "policyCheckFailOpen" = mkOption { + description = ""; + type = (types.nullOr types.bool); + }; + + "proxyHttpPort" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "proxyListenPort" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "rdsRefreshDelay" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "protobuf_duration_Duration")); + }; + + "sdsRefreshDelay" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "protobuf_duration_Duration")); + }; + + "sdsUdsPath" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "accessLogFile" = mkOverride 1002 null; + + "authPolicy" = mkOverride 1002 null; + + "connectTimeout" = mkOverride 1002 null; + + "defaultConfig" = mkOverride 1002 null; + + "disablePolicyChecks" = mkOverride 1002 null; + + "enableClientSidePolicyCheck" = mkOverride 1002 null; + + "enableTracing" = mkOverride 1002 null; + + "ingressClass" = mkOverride 1002 null; + + "ingressControllerMode" = mkOverride 1002 null; + + "ingressService" = mkOverride 1002 null; + + "mixerAddress" = mkOverride 1002 null; + + "mixerCheckServer" = mkOverride 1002 null; + + "mixerReportServer" = mkOverride 1002 null; + + "outboundTrafficPolicy" = mkOverride 1002 null; + + "policyCheckFailOpen" = mkOverride 1002 null; + + "proxyHttpPort" = mkOverride 1002 null; + + "proxyListenPort" = mkOverride 1002 null; + + "rdsRefreshDelay" = mkOverride 1002 null; + + "sdsRefreshDelay" = mkOverride 1002 null; + + "sdsUdsPath" = mkOverride 1002 null; + }; + }; + + "istio_mesh_v1alpha1_MeshConfig_OutboundTrafficPolicy" = { + options = { + "mode" = mkOption { + description = ""; + type = types.unspecified; + }; + }; + + config = { + "mode" = mkOverride 1002 null; + }; + }; + + "istio_mesh_v1alpha1_ProxyConfig" = { + options = { + "availabilityZone" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "binaryPath" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "concurrency" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "configPath" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "connectTimeout" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "protobuf_duration_Duration")); + }; + + "controlPlaneAuthPolicy" = mkOption { + description = ""; + type = types.unspecified; + }; + + "customConfigFile" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "discoveryAddress" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "discoveryRefreshDelay" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "protobuf_duration_Duration")); + }; + + "drainDuration" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "protobuf_duration_Duration")); + }; + + "interceptionMode" = mkOption { + description = ""; + type = types.unspecified; + }; + + "parentShutdownDuration" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "protobuf_duration_Duration")); + }; + + "proxyAdminPort" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "proxyBootstrapTemplatePath" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "serviceCluster" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "statNameLength" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "statsdUdpAddress" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "zipkinAddress" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "availabilityZone" = mkOverride 1002 null; + + "binaryPath" = mkOverride 1002 null; + + "concurrency" = mkOverride 1002 null; + + "configPath" = mkOverride 1002 null; + + "connectTimeout" = mkOverride 1002 null; + + "controlPlaneAuthPolicy" = mkOverride 1002 null; + + "customConfigFile" = mkOverride 1002 null; + + "discoveryAddress" = mkOverride 1002 null; + + "discoveryRefreshDelay" = mkOverride 1002 null; + + "drainDuration" = mkOverride 1002 null; + + "interceptionMode" = mkOverride 1002 null; + + "parentShutdownDuration" = mkOverride 1002 null; + + "proxyAdminPort" = mkOverride 1002 null; + + "proxyBootstrapTemplatePath" = mkOverride 1002 null; + + "serviceCluster" = mkOverride 1002 null; + + "statNameLength" = mkOverride 1002 null; + + "statsdUdpAddress" = mkOverride 1002 null; + + "zipkinAddress" = mkOverride 1002 null; + }; + }; + + "istio_mixer_apikey_InstanceMsg" = { + options = { + "api" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "apiKey" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "apiOperation" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "apiVersion" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "name" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "timestamp" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_policy_v1beta1_TimeStamp")); + }; + }; + + config = { + "api" = mkOverride 1002 null; + + "apiKey" = mkOverride 1002 null; + + "apiOperation" = mkOverride 1002 null; + + "apiVersion" = mkOverride 1002 null; + + "name" = mkOverride 1002 null; + + "timestamp" = mkOverride 1002 null; + }; + }; + + "istio_mixer_authorization_ActionMsg" = { + options = { + "method" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "namespace" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "path" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "properties" = mkOption { + description = ""; + type = (types.nullOr types.attrs); + }; + + "service" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "method" = mkOverride 1002 null; + + "namespace" = mkOverride 1002 null; + + "path" = mkOverride 1002 null; + + "properties" = mkOverride 1002 null; + + "service" = mkOverride 1002 null; + }; + }; + + "istio_mixer_authorization_InstanceMsg" = { + options = { + "action" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_mixer_authorization_ActionMsg")); + }; + + "name" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "subject" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_mixer_authorization_SubjectMsg")); + }; + }; + + config = { + "action" = mkOverride 1002 null; + + "name" = mkOverride 1002 null; + + "subject" = mkOverride 1002 null; + }; + }; + + "istio_mixer_authorization_SubjectMsg" = { + options = { + "groups" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "properties" = mkOption { + description = ""; + type = (types.nullOr types.attrs); + }; + + "user" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "groups" = mkOverride 1002 null; + + "properties" = mkOverride 1002 null; + + "user" = mkOverride 1002 null; + }; + }; + + "istio_mixer_checknothing_InstanceMsg" = { + options = { + "name" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "name" = mkOverride 1002 null; + }; + }; + + "istio_mixer_edge_InstanceMsg" = { + options = { + "apiProtocol" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "contextProtocol" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "destinationOwner" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "destinationUid" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "destinationWorkloadName" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "destinationWorkloadNamespace" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "name" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "sourceOwner" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "sourceUid" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "sourceWorkloadName" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "sourceWorkloadNamespace" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "timestamp" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_policy_v1beta1_TimeStamp")); + }; + }; + + config = { + "apiProtocol" = mkOverride 1002 null; + + "contextProtocol" = mkOverride 1002 null; + + "destinationOwner" = mkOverride 1002 null; + + "destinationUid" = mkOverride 1002 null; + + "destinationWorkloadName" = mkOverride 1002 null; + + "destinationWorkloadNamespace" = mkOverride 1002 null; + + "name" = mkOverride 1002 null; + + "sourceOwner" = mkOverride 1002 null; + + "sourceUid" = mkOverride 1002 null; + + "sourceWorkloadName" = mkOverride 1002 null; + + "sourceWorkloadNamespace" = mkOverride 1002 null; + + "timestamp" = mkOverride 1002 null; + }; + }; + + "istio_mixer_listentry_InstanceMsg" = { + options = { + "name" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "value" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "name" = mkOverride 1002 null; + + "value" = mkOverride 1002 null; + }; + }; + + "istio_mixer_logentry_InstanceMsg" = { + options = { + "monitoredResourceDimensions" = mkOption { + description = ""; + type = (types.nullOr types.attrs); + }; + + "monitoredResourceType" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "name" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "severity" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "timestamp" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_policy_v1beta1_TimeStamp")); + }; + + "variables" = mkOption { + description = ""; + type = (types.nullOr types.attrs); + }; + }; + + config = { + "monitoredResourceDimensions" = mkOverride 1002 null; + + "monitoredResourceType" = mkOverride 1002 null; + + "name" = mkOverride 1002 null; + + "severity" = mkOverride 1002 null; + + "timestamp" = mkOverride 1002 null; + + "variables" = mkOverride 1002 null; + }; + }; + + "istio_mixer_metric_InstanceMsg" = { + options = { + "dimensions" = mkOption { + description = ""; + type = (types.nullOr types.attrs); + }; + + "monitoredResourceDimensions" = mkOption { + description = ""; + type = (types.nullOr types.attrs); + }; + + "monitoredResourceType" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "name" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "value" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_policy_v1beta1_Value")); + }; + }; + + config = { + "dimensions" = mkOverride 1002 null; + + "monitoredResourceDimensions" = mkOverride 1002 null; + + "monitoredResourceType" = mkOverride 1002 null; + + "name" = mkOverride 1002 null; + + "value" = mkOverride 1002 null; + }; + }; + + "istio_mixer_quota_InstanceMsg" = { + options = { + "dimensions" = mkOption { + description = ""; + type = (types.nullOr types.attrs); + }; + + "name" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "dimensions" = mkOverride 1002 null; + + "name" = mkOverride 1002 null; + }; + }; + + "istio_mixer_reportnothing_InstanceMsg" = { + options = { + "name" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "name" = mkOverride 1002 null; + }; + }; + + "istio_mixer_tracespan_InstanceMsg" = { + options = { + "clientSpan" = mkOption { + description = ""; + type = (types.nullOr types.bool); + }; + + "endTime" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_policy_v1beta1_TimeStamp")); + }; + + "httpStatusCode" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "name" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "parentSpanId" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "rewriteClientSpanId" = mkOption { + description = ""; + type = (types.nullOr types.bool); + }; + + "spanId" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "spanName" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "spanTags" = mkOption { + description = ""; + type = (types.nullOr types.attrs); + }; + + "startTime" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_policy_v1beta1_TimeStamp")); + }; + + "traceId" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "clientSpan" = mkOverride 1002 null; + + "endTime" = mkOverride 1002 null; + + "httpStatusCode" = mkOverride 1002 null; + + "name" = mkOverride 1002 null; + + "parentSpanId" = mkOverride 1002 null; + + "rewriteClientSpanId" = mkOverride 1002 null; + + "spanId" = mkOverride 1002 null; + + "spanName" = mkOverride 1002 null; + + "spanTags" = mkOverride 1002 null; + + "startTime" = mkOverride 1002 null; + + "traceId" = mkOverride 1002 null; + }; + }; + + "istio_mixer_v1_Attributes" = { + options = { + "attributes" = mkOption { + description = ""; + type = (types.nullOr types.attrs); + }; + }; + + config = { + "attributes" = mkOverride 1002 null; + }; + }; + + "istio_mixer_v1_Attributes_AttributeValue" = { + options = { + "value" = mkOption { + description = ""; + type = types.unspecified; + }; + }; + + config = { + "value" = mkOverride 1002 null; + }; + }; + + "istio_mixer_v1_CheckRequest" = { + options = { + "attributes" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_mixer_v1_CompressedAttributes")); + }; + + "deduplicationId" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "globalWordCount" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "quotas" = mkOption { + description = ""; + type = (types.nullOr types.attrs); + }; + }; + + config = { + "attributes" = mkOverride 1002 null; + + "deduplicationId" = mkOverride 1002 null; + + "globalWordCount" = mkOverride 1002 null; + + "quotas" = mkOverride 1002 null; + }; + }; + + "istio_mixer_v1_CheckRequest_QuotaParams" = { + options = { + "amount" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "bestEffort" = mkOption { + description = ""; + type = (types.nullOr types.bool); + }; + }; + + config = { + "amount" = mkOverride 1002 null; + + "bestEffort" = mkOverride 1002 null; + }; + }; + + "istio_mixer_v1_CheckResponse" = { + options = { + "precondition" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_mixer_v1_CheckResponse_PreconditionResult")); + }; + + "quotas" = mkOption { + description = ""; + type = (types.nullOr types.attrs); + }; + }; + + config = { + "precondition" = mkOverride 1002 null; + + "quotas" = mkOverride 1002 null; + }; + }; + + "istio_mixer_v1_CheckResponse_PreconditionResult" = { + options = { + "referencedAttributes" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_mixer_v1_ReferencedAttributes")); + }; + + "routeDirective" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_mixer_v1_RouteDirective")); + }; + + "status" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "google_rpc_Status")); + }; + + "validDuration" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "validUseCount" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + }; + + config = { + "referencedAttributes" = mkOverride 1002 null; + + "routeDirective" = mkOverride 1002 null; + + "status" = mkOverride 1002 null; + + "validDuration" = mkOverride 1002 null; + + "validUseCount" = mkOverride 1002 null; + }; + }; + + "istio_mixer_v1_CheckResponse_QuotaResult" = { + options = { + "grantedAmount" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "referencedAttributes" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_mixer_v1_ReferencedAttributes")); + }; + + "validDuration" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + }; + + config = { + "grantedAmount" = mkOverride 1002 null; + + "referencedAttributes" = mkOverride 1002 null; + + "validDuration" = mkOverride 1002 null; + }; + }; + + "istio_mixer_v1_CompressedAttributes" = { + options = { + "bools" = mkOption { + description = ""; + type = (types.nullOr (types.attrsOf types.bool)); + }; + + "bytes" = mkOption { + description = ""; + type = (types.nullOr (types.attrsOf types.str)); + }; + + "doubles" = mkOption { + description = ""; + type = (types.nullOr (types.attrsOf types.int)); + }; + + "durations" = mkOption { + description = ""; + type = (types.nullOr (types.attrsOf types.int)); + }; + + "int64s" = mkOption { + description = ""; + type = (types.nullOr (types.attrsOf types.int)); + }; + + "stringMaps" = mkOption { + description = ""; + type = (types.nullOr types.attrs); + }; + + "strings" = mkOption { + description = ""; + type = (types.nullOr (types.attrsOf types.int)); + }; + + "timestamps" = mkOption { + description = ""; + type = (types.nullOr (types.attrsOf types.str)); + }; + + "words" = mkOption { + description = ""; + type = (types.nullOr (types.listOf types.str)); + }; + }; + + config = { + "bools" = mkOverride 1002 null; + + "bytes" = mkOverride 1002 null; + + "doubles" = mkOverride 1002 null; + + "durations" = mkOverride 1002 null; + + "int64s" = mkOverride 1002 null; + + "stringMaps" = mkOverride 1002 null; + + "strings" = mkOverride 1002 null; + + "timestamps" = mkOverride 1002 null; + + "words" = mkOverride 1002 null; + }; + }; + + "istio_mixer_v1_HeaderOperation" = { + options = { + "name" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "operation" = mkOption { + description = ""; + type = types.unspecified; + }; + + "value" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "name" = mkOverride 1002 null; + + "operation" = mkOverride 1002 null; + + "value" = mkOverride 1002 null; + }; + }; + + "istio_mixer_v1_ReferencedAttributes" = { + options = { + "attributeMatches" = mkOption { + description = ""; + type = (types.nullOr (types.listOf (submoduleOf "istio_mixer_v1_ReferencedAttributes_AttributeMatch"))); + }; + + "words" = mkOption { + description = ""; + type = (types.nullOr (types.listOf types.str)); + }; + }; + + config = { + "attributeMatches" = mkOverride 1002 null; + + "words" = mkOverride 1002 null; + }; + }; + + "istio_mixer_v1_ReferencedAttributes_AttributeMatch" = { + options = { + "condition" = mkOption { + description = ""; + type = types.unspecified; + }; + + "mapKey" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "name" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "regex" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "condition" = mkOverride 1002 null; + + "mapKey" = mkOverride 1002 null; + + "name" = mkOverride 1002 null; + + "regex" = mkOverride 1002 null; + }; + }; + + "istio_mixer_v1_ReportRequest" = { + options = { + "attributes" = mkOption { + description = ""; + type = (types.nullOr (types.listOf (submoduleOf "istio_mixer_v1_CompressedAttributes"))); + }; + + "defaultWords" = mkOption { + description = ""; + type = (types.nullOr (types.listOf types.str)); + }; + + "globalWordCount" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + }; + + config = { + "attributes" = mkOverride 1002 null; + + "defaultWords" = mkOverride 1002 null; + + "globalWordCount" = mkOverride 1002 null; + }; + }; + + "istio_mixer_v1_ReportResponse" = {}; + + "istio_mixer_v1_RouteDirective" = { + options = { + "directResponseBody" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "directResponseCode" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "requestHeaderOperations" = mkOption { + description = ""; + type = (types.nullOr (types.listOf (submoduleOf "istio_mixer_v1_HeaderOperation"))); + }; + + "responseHeaderOperations" = mkOption { + description = ""; + type = (types.nullOr (types.listOf (submoduleOf "istio_mixer_v1_HeaderOperation"))); + }; + }; + + config = { + "directResponseBody" = mkOverride 1002 null; + + "directResponseCode" = mkOverride 1002 null; + + "requestHeaderOperations" = mkOverride 1002 null; + + "responseHeaderOperations" = mkOverride 1002 null; + }; + }; + + "istio_mixer_v1_StringMap" = { + options = { + "entries" = mkOption { + description = ""; + type = (types.nullOr (types.attrsOf types.int)); + }; + }; + + config = { + "entries" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_ConnectionPoolSettings" = { + options = { + "http" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_networking_v1alpha3_ConnectionPoolSettings_HTTPSettings")); + }; + + "tcp" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_networking_v1alpha3_ConnectionPoolSettings_TCPSettings")); + }; + }; + + config = { + "http" = mkOverride 1002 null; + + "tcp" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_ConnectionPoolSettings_HTTPSettings" = { + options = { + "http1MaxPendingRequests" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "http2MaxRequests" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "maxRequestsPerConnection" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "maxRetries" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + }; + + config = { + "http1MaxPendingRequests" = mkOverride 1002 null; + + "http2MaxRequests" = mkOverride 1002 null; + + "maxRequestsPerConnection" = mkOverride 1002 null; + + "maxRetries" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_ConnectionPoolSettings_TCPSettings" = { + options = { + "connectTimeout" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "protobuf_types_Duration")); + }; + + "maxConnections" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + }; + + config = { + "connectTimeout" = mkOverride 1002 null; + + "maxConnections" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_CorsPolicy" = { + options = { + "allowCredentials" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "protobuf_types_BoolValue")); + }; + + "allowHeaders" = mkOption { + description = ""; + type = (types.nullOr (types.listOf types.str)); + }; + + "allowMethods" = mkOption { + description = ""; + type = (types.nullOr (types.listOf types.str)); + }; + + "allowOrigin" = mkOption { + description = ""; + type = (types.nullOr (types.listOf types.str)); + }; + + "exposeHeaders" = mkOption { + description = ""; + type = (types.nullOr (types.listOf types.str)); + }; + + "maxAge" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "protobuf_types_Duration")); + }; + }; + + config = { + "allowCredentials" = mkOverride 1002 null; + + "allowHeaders" = mkOverride 1002 null; + + "allowMethods" = mkOverride 1002 null; + + "allowOrigin" = mkOverride 1002 null; + + "exposeHeaders" = mkOverride 1002 null; + + "maxAge" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_Destination" = { + options = { + "host" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "port" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_networking_v1alpha3_PortSelector")); + }; + + "subset" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "host" = mkOverride 1002 null; + + "port" = mkOverride 1002 null; + + "subset" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_DestinationRule" = { + options = { + "host" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "subsets" = mkOption { + description = ""; + type = (types.nullOr (types.listOf (submoduleOf "istio_networking_v1alpha3_Subset"))); + }; + + "trafficPolicy" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_networking_v1alpha3_TrafficPolicy")); + }; + }; + + config = { + "host" = mkOverride 1002 null; + + "subsets" = mkOverride 1002 null; + + "trafficPolicy" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_DestinationWeight" = { + options = { + "destination" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_networking_v1alpha3_Destination")); + }; + + "weight" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + }; + + config = { + "destination" = mkOverride 1002 null; + + "weight" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_EnvoyFilter" = { + options = { + "filters" = mkOption { + description = ""; + type = (types.nullOr (types.listOf (submoduleOf "istio_networking_v1alpha3_EnvoyFilter_Filter"))); + }; + + "workloadLabels" = mkOption { + description = ""; + type = (types.nullOr (types.attrsOf types.str)); + }; + }; + + config = { + "filters" = mkOverride 1002 null; + + "workloadLabels" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_EnvoyFilter_Filter" = { + options = { + "filterConfig" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "protobuf_types_Struct")); + }; + + "filterName" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "filterType" = mkOption { + description = ""; + type = types.unspecified; + }; + + "insertPosition" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_networking_v1alpha3_EnvoyFilter_InsertPosition")); + }; + + "listenerMatch" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_networking_v1alpha3_EnvoyFilter_ListenerMatch")); + }; + }; + + config = { + "filterConfig" = mkOverride 1002 null; + + "filterName" = mkOverride 1002 null; + + "filterType" = mkOverride 1002 null; + + "insertPosition" = mkOverride 1002 null; + + "listenerMatch" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_EnvoyFilter_InsertPosition" = { + options = { + "index" = mkOption { + description = ""; + type = types.unspecified; + }; + + "relativeTo" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "index" = mkOverride 1002 null; + + "relativeTo" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_EnvoyFilter_ListenerMatch" = { + options = { + "address" = mkOption { + description = ""; + type = (types.nullOr (types.listOf types.str)); + }; + + "listenerProtocol" = mkOption { + description = ""; + type = types.unspecified; + }; + + "listenerType" = mkOption { + description = ""; + type = types.unspecified; + }; + + "portNamePrefix" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "portNumber" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + }; + + config = { + "address" = mkOverride 1002 null; + + "listenerProtocol" = mkOverride 1002 null; + + "listenerType" = mkOverride 1002 null; + + "portNamePrefix" = mkOverride 1002 null; + + "portNumber" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_Gateway" = { + options = { + "selector" = mkOption { + description = ""; + type = (types.nullOr (types.attrsOf types.str)); + }; + + "servers" = mkOption { + description = ""; + type = (types.nullOr (types.listOf (submoduleOf "istio_networking_v1alpha3_Server"))); + }; + }; + + config = { + "selector" = mkOverride 1002 null; + + "servers" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_HTTPFaultInjection" = { + options = { + "abort" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_networking_v1alpha3_HTTPFaultInjection_Abort")); + }; + + "delay" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_networking_v1alpha3_HTTPFaultInjection_Delay")); + }; + }; + + config = { + "abort" = mkOverride 1002 null; + + "delay" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_HTTPFaultInjection_Abort" = { + options = { + "errorType" = mkOption { + description = ""; + type = types.unspecified; + }; + + "percent" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + }; + + config = { + "errorType" = mkOverride 1002 null; + + "percent" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_HTTPFaultInjection_Abort_GrpcStatus" = { + options = { + "grpcStatus" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "grpcStatus" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_HTTPFaultInjection_Abort_Http2Error" = { + options = { + "http2Error" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "http2Error" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_HTTPFaultInjection_Abort_HttpStatus" = { + options = { + "httpStatus" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + }; + + config = { + "httpStatus" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_HTTPFaultInjection_Delay" = { + options = { + "httpDelayType" = mkOption { + description = ""; + type = types.unspecified; + }; + + "percent" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + }; + + config = { + "httpDelayType" = mkOverride 1002 null; + + "percent" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_HTTPFaultInjection_Delay_ExponentialDelay" = { + options = { + "exponentialDelay" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "protobuf_types_Duration")); + }; + }; + + config = { + "exponentialDelay" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_HTTPFaultInjection_Delay_FixedDelay" = { + options = { + "fixedDelay" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "protobuf_types_Duration")); + }; + }; + + config = { + "fixedDelay" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_HTTPMatchRequest" = { + options = { + "authority" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_networking_v1alpha3_StringMatch")); + }; + + "gateways" = mkOption { + description = ""; + type = (types.nullOr (types.listOf types.str)); + }; + + "headers" = mkOption { + description = ""; + type = (types.nullOr types.attrs); + }; + + "method" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_networking_v1alpha3_StringMatch")); + }; + + "port" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "scheme" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_networking_v1alpha3_StringMatch")); + }; + + "sourceLabels" = mkOption { + description = ""; + type = (types.nullOr (types.attrsOf types.str)); + }; + + "uri" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_networking_v1alpha3_StringMatch")); + }; + }; + + config = { + "authority" = mkOverride 1002 null; + + "gateways" = mkOverride 1002 null; + + "headers" = mkOverride 1002 null; + + "method" = mkOverride 1002 null; + + "port" = mkOverride 1002 null; + + "scheme" = mkOverride 1002 null; + + "sourceLabels" = mkOverride 1002 null; + + "uri" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_HTTPRedirect" = { + options = { + "authority" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "uri" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "authority" = mkOverride 1002 null; + + "uri" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_HTTPRetry" = { + options = { + "attempts" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "perTryTimeout" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "protobuf_types_Duration")); + }; + }; + + config = { + "attempts" = mkOverride 1002 null; + + "perTryTimeout" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_HTTPRewrite" = { + options = { + "authority" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "uri" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "authority" = mkOverride 1002 null; + + "uri" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_HTTPRoute" = { + options = { + "appendHeaders" = mkOption { + description = ""; + type = (types.nullOr (types.attrsOf types.str)); + }; + + "corsPolicy" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_networking_v1alpha3_CorsPolicy")); + }; + + "fault" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_networking_v1alpha3_HTTPFaultInjection")); + }; + + "match" = mkOption { + description = ""; + type = (types.nullOr (types.listOf (submoduleOf "istio_networking_v1alpha3_HTTPMatchRequest"))); + }; + + "mirror" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_networking_v1alpha3_Destination")); + }; + + "redirect" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_networking_v1alpha3_HTTPRedirect")); + }; + + "removeResponseHeaders" = mkOption { + description = ""; + type = (types.nullOr (types.listOf types.str)); + }; + + "retries" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_networking_v1alpha3_HTTPRetry")); + }; + + "rewrite" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_networking_v1alpha3_HTTPRewrite")); + }; + + "route" = mkOption { + description = ""; + type = (types.nullOr (types.listOf (submoduleOf "istio_networking_v1alpha3_DestinationWeight"))); + }; + + "timeout" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "protobuf_types_Duration")); + }; + + "websocketUpgrade" = mkOption { + description = ""; + type = (types.nullOr types.bool); + }; + }; + + config = { + "appendHeaders" = mkOverride 1002 null; + + "corsPolicy" = mkOverride 1002 null; + + "fault" = mkOverride 1002 null; + + "match" = mkOverride 1002 null; + + "mirror" = mkOverride 1002 null; + + "redirect" = mkOverride 1002 null; + + "removeResponseHeaders" = mkOverride 1002 null; + + "retries" = mkOverride 1002 null; + + "rewrite" = mkOverride 1002 null; + + "route" = mkOverride 1002 null; + + "timeout" = mkOverride 1002 null; + + "websocketUpgrade" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_L4MatchAttributes" = { + options = { + "destinationSubnets" = mkOption { + description = ""; + type = (types.nullOr (types.listOf types.str)); + }; + + "gateways" = mkOption { + description = ""; + type = (types.nullOr (types.listOf types.str)); + }; + + "port" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "sourceLabels" = mkOption { + description = ""; + type = (types.nullOr (types.attrsOf types.str)); + }; + + "sourceSubnet" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "destinationSubnets" = mkOverride 1002 null; + + "gateways" = mkOverride 1002 null; + + "port" = mkOverride 1002 null; + + "sourceLabels" = mkOverride 1002 null; + + "sourceSubnet" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_LoadBalancerSettings" = { + options = { + "lbPolicy" = mkOption { + description = ""; + type = types.unspecified; + }; + }; + + config = { + "lbPolicy" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_LoadBalancerSettings_ConsistentHash" = { + options = { + "consistentHash" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_networking_v1alpha3_LoadBalancerSettings_ConsistentHashLB")); + }; + }; + + config = { + "consistentHash" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_LoadBalancerSettings_ConsistentHashLB" = { + options = { + "hashKey" = mkOption { + description = ""; + type = types.unspecified; + }; + + "minimumRingSize" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + }; + + config = { + "hashKey" = mkOverride 1002 null; + + "minimumRingSize" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_LoadBalancerSettings_ConsistentHashLB_HTTPCookie" = { + options = { + "name" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "path" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "ttl" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + }; + + config = { + "name" = mkOverride 1002 null; + + "path" = mkOverride 1002 null; + + "ttl" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_LoadBalancerSettings_ConsistentHashLB_HttpCookie" = { + options = { + "httpCookie" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_networking_v1alpha3_LoadBalancerSettings_ConsistentHashLB_HTTPCookie")); + }; + }; + + config = { + "httpCookie" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_LoadBalancerSettings_ConsistentHashLB_HttpHeaderName" = { + options = { + "httpHeaderName" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "httpHeaderName" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_LoadBalancerSettings_ConsistentHashLB_UseSourceIp" = { + options = { + "useSourceIp" = mkOption { + description = ""; + type = (types.nullOr types.bool); + }; + }; + + config = { + "useSourceIp" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_LoadBalancerSettings_Simple" = { + options = { + "simple" = mkOption { + description = ""; + type = types.unspecified; + }; + }; + + config = { + "simple" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_OutlierDetection" = { + options = { + "baseEjectionTime" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "protobuf_types_Duration")); + }; + + "consecutiveErrors" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "interval" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "protobuf_types_Duration")); + }; + + "maxEjectionPercent" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + }; + + config = { + "baseEjectionTime" = mkOverride 1002 null; + + "consecutiveErrors" = mkOverride 1002 null; + + "interval" = mkOverride 1002 null; + + "maxEjectionPercent" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_Port" = { + options = { + "name" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "number" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "protocol" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "name" = mkOverride 1002 null; + + "number" = mkOverride 1002 null; + + "protocol" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_PortSelector" = { + options = { + "port" = mkOption { + description = ""; + type = types.unspecified; + }; + }; + + config = { + "port" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_PortSelector_Name" = { + options = { + "name" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "name" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_PortSelector_Number" = { + options = { + "number" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + }; + + config = { + "number" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_Server" = { + options = { + "hosts" = mkOption { + description = ""; + type = (types.nullOr (types.listOf types.str)); + }; + + "port" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_networking_v1alpha3_Port")); + }; + + "tls" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_networking_v1alpha3_Server_TLSOptions")); + }; + }; + + config = { + "hosts" = mkOverride 1002 null; + + "port" = mkOverride 1002 null; + + "tls" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_Server_TLSOptions" = { + options = { + "caCertificates" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "httpsRedirect" = mkOption { + description = ""; + type = (types.nullOr types.bool); + }; + + "mode" = mkOption { + description = ""; + type = types.unspecified; + }; + + "privateKey" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "serverCertificate" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "subjectAltNames" = mkOption { + description = ""; + type = (types.nullOr (types.listOf types.str)); + }; + }; + + config = { + "caCertificates" = mkOverride 1002 null; + + "httpsRedirect" = mkOverride 1002 null; + + "mode" = mkOverride 1002 null; + + "privateKey" = mkOverride 1002 null; + + "serverCertificate" = mkOverride 1002 null; + + "subjectAltNames" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_ServiceEntry" = { + options = { + "addresses" = mkOption { + description = ""; + type = (types.nullOr (types.listOf types.str)); + }; + + "endpoints" = mkOption { + description = ""; + type = (types.nullOr (types.listOf (submoduleOf "istio_networking_v1alpha3_ServiceEntry_Endpoint"))); + }; + + "hosts" = mkOption { + description = ""; + type = (types.nullOr (types.listOf types.str)); + }; + + "location" = mkOption { + description = ""; + type = types.unspecified; + }; + + "ports" = mkOption { + description = ""; + type = (types.nullOr (types.listOf (submoduleOf "istio_networking_v1alpha3_Port"))); + }; + + "resolution" = mkOption { + description = ""; + type = types.unspecified; + }; + }; + + config = { + "addresses" = mkOverride 1002 null; + + "endpoints" = mkOverride 1002 null; + + "hosts" = mkOverride 1002 null; + + "location" = mkOverride 1002 null; + + "ports" = mkOverride 1002 null; + + "resolution" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_ServiceEntry_Endpoint" = { + options = { + "address" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "labels" = mkOption { + description = ""; + type = (types.nullOr (types.attrsOf types.str)); + }; + + "ports" = mkOption { + description = ""; + type = (types.nullOr (types.attrsOf types.int)); + }; + }; + + config = { + "address" = mkOverride 1002 null; + + "labels" = mkOverride 1002 null; + + "ports" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_StringMatch" = { + options = { + "matchType" = mkOption { + description = ""; + type = types.unspecified; + }; + }; + + config = { + "matchType" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_StringMatch_Exact" = { + options = { + "exact" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "exact" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_StringMatch_Prefix" = { + options = { + "prefix" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "prefix" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_StringMatch_Regex" = { + options = { + "regex" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "regex" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_Subset" = { + options = { + "labels" = mkOption { + description = ""; + type = (types.nullOr (types.attrsOf types.str)); + }; + + "name" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "trafficPolicy" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_networking_v1alpha3_TrafficPolicy")); + }; + }; + + config = { + "labels" = mkOverride 1002 null; + + "name" = mkOverride 1002 null; + + "trafficPolicy" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_TCPRoute" = { + options = { + "match" = mkOption { + description = ""; + type = (types.nullOr (types.listOf (submoduleOf "istio_networking_v1alpha3_L4MatchAttributes"))); + }; + + "route" = mkOption { + description = ""; + type = (types.nullOr (types.listOf (submoduleOf "istio_networking_v1alpha3_DestinationWeight"))); + }; + }; + + config = { + "match" = mkOverride 1002 null; + + "route" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_TLSMatchAttributes" = { + options = { + "destinationSubnets" = mkOption { + description = ""; + type = (types.nullOr (types.listOf types.str)); + }; + + "gateways" = mkOption { + description = ""; + type = (types.nullOr (types.listOf types.str)); + }; + + "port" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "sniHosts" = mkOption { + description = ""; + type = (types.nullOr (types.listOf types.str)); + }; + + "sourceLabels" = mkOption { + description = ""; + type = (types.nullOr (types.attrsOf types.str)); + }; + + "sourceSubnet" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "destinationSubnets" = mkOverride 1002 null; + + "gateways" = mkOverride 1002 null; + + "port" = mkOverride 1002 null; + + "sniHosts" = mkOverride 1002 null; + + "sourceLabels" = mkOverride 1002 null; + + "sourceSubnet" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_TLSRoute" = { + options = { + "match" = mkOption { + description = ""; + type = (types.nullOr (types.listOf (submoduleOf "istio_networking_v1alpha3_TLSMatchAttributes"))); + }; + + "route" = mkOption { + description = ""; + type = (types.nullOr (types.listOf (submoduleOf "istio_networking_v1alpha3_DestinationWeight"))); + }; + }; + + config = { + "match" = mkOverride 1002 null; + + "route" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_TLSSettings" = { + options = { + "caCertificates" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "clientCertificate" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "mode" = mkOption { + description = ""; + type = types.unspecified; + }; + + "privateKey" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "sni" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "subjectAltNames" = mkOption { + description = ""; + type = (types.nullOr (types.listOf types.str)); + }; + }; + + config = { + "caCertificates" = mkOverride 1002 null; + + "clientCertificate" = mkOverride 1002 null; + + "mode" = mkOverride 1002 null; + + "privateKey" = mkOverride 1002 null; + + "sni" = mkOverride 1002 null; + + "subjectAltNames" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_TrafficPolicy" = { + options = { + "connectionPool" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_networking_v1alpha3_ConnectionPoolSettings")); + }; + + "loadBalancer" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_networking_v1alpha3_LoadBalancerSettings")); + }; + + "outlierDetection" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_networking_v1alpha3_OutlierDetection")); + }; + + "portLevelSettings" = mkOption { + description = ""; + type = (types.nullOr (types.listOf (submoduleOf "istio_networking_v1alpha3_TrafficPolicy_PortTrafficPolicy"))); + }; + + "tls" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_networking_v1alpha3_TLSSettings")); + }; + }; + + config = { + "connectionPool" = mkOverride 1002 null; + + "loadBalancer" = mkOverride 1002 null; + + "outlierDetection" = mkOverride 1002 null; + + "portLevelSettings" = mkOverride 1002 null; + + "tls" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_TrafficPolicy_PortTrafficPolicy" = { + options = { + "connectionPool" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_networking_v1alpha3_ConnectionPoolSettings")); + }; + + "loadBalancer" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_networking_v1alpha3_LoadBalancerSettings")); + }; + + "outlierDetection" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_networking_v1alpha3_OutlierDetection")); + }; + + "port" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_networking_v1alpha3_PortSelector")); + }; + + "tls" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_networking_v1alpha3_TLSSettings")); + }; + }; + + config = { + "connectionPool" = mkOverride 1002 null; + + "loadBalancer" = mkOverride 1002 null; + + "outlierDetection" = mkOverride 1002 null; + + "port" = mkOverride 1002 null; + + "tls" = mkOverride 1002 null; + }; + }; + + "istio_networking_v1alpha3_VirtualService" = { + options = { + "gateways" = mkOption { + description = ""; + type = (types.nullOr (types.listOf types.str)); + }; + + "hosts" = mkOption { + description = ""; + type = (types.nullOr (types.listOf types.str)); + }; + + "http" = mkOption { + description = ""; + type = (types.nullOr (types.listOf (submoduleOf "istio_networking_v1alpha3_HTTPRoute"))); + }; + + "tcp" = mkOption { + description = ""; + type = (types.nullOr (types.listOf (submoduleOf "istio_networking_v1alpha3_TCPRoute"))); + }; + + "tls" = mkOption { + description = ""; + type = (types.nullOr (types.listOf (submoduleOf "istio_networking_v1alpha3_TLSRoute"))); + }; + }; + + config = { + "gateways" = mkOverride 1002 null; + + "hosts" = mkOverride 1002 null; + + "http" = mkOverride 1002 null; + + "tcp" = mkOverride 1002 null; + + "tls" = mkOverride 1002 null; + }; + }; + + "istio_policy_v1beta1_Action" = { + options = { + "handler" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "instances" = mkOption { + description = ""; + type = (types.nullOr (types.listOf types.str)); + }; + }; + + config = { + "handler" = mkOverride 1002 null; + + "instances" = mkOverride 1002 null; + }; + }; + + "istio_policy_v1beta1_Rule" = { + options = { + "actions" = mkOption { + description = ""; + type = (types.nullOr (types.listOf (submoduleOf "istio_policy_v1beta1_Action"))); + }; + + "match" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "actions" = mkOverride 1002 null; + + "match" = mkOverride 1002 null; + }; + }; + + "istio_policy_v1beta1_TimeStamp" = { + options = { + "value" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "protobuf_types_Timestamp")); + }; + }; + + config = { + "value" = mkOverride 1002 null; + }; + }; + + "istio_policy_v1beta1_Value" = { + options = { + "value" = mkOption { + description = ""; + type = types.unspecified; + }; + }; + + config = { + "value" = mkOverride 1002 null; + }; + }; + + "istio_rbac_v1alpha1_AccessRule" = { + options = { + "constraints" = mkOption { + description = ""; + type = (types.nullOr (types.listOf (submoduleOf "istio_rbac_v1alpha1_AccessRule_Constraint"))); + }; + + "methods" = mkOption { + description = ""; + type = (types.nullOr (types.listOf types.str)); + }; + + "paths" = mkOption { + description = ""; + type = (types.nullOr (types.listOf types.str)); + }; + + "services" = mkOption { + description = ""; + type = (types.nullOr (types.listOf types.str)); + }; + }; + + config = { + "constraints" = mkOverride 1002 null; + + "methods" = mkOverride 1002 null; + + "paths" = mkOverride 1002 null; + + "services" = mkOverride 1002 null; + }; + }; + + "istio_rbac_v1alpha1_AccessRule_Constraint" = { + options = { + "key" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "values" = mkOption { + description = ""; + type = (types.nullOr (types.listOf types.str)); + }; + }; + + config = { + "key" = mkOverride 1002 null; + + "values" = mkOverride 1002 null; + }; + }; + + "istio_rbac_v1alpha1_RbacConfig" = { + options = { + "exclusion" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_rbac_v1alpha1_RbacConfig_Target")); + }; + + "inclusion" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_rbac_v1alpha1_RbacConfig_Target")); + }; + + "mode" = mkOption { + description = ""; + type = types.unspecified; + }; + }; + + config = { + "exclusion" = mkOverride 1002 null; + + "inclusion" = mkOverride 1002 null; + + "mode" = mkOverride 1002 null; + }; + }; + + "istio_rbac_v1alpha1_RbacConfig_Target" = { + options = { + "namespaces" = mkOption { + description = ""; + type = (types.nullOr (types.listOf types.str)); + }; + + "services" = mkOption { + description = ""; + type = (types.nullOr (types.listOf types.str)); + }; + }; + + config = { + "namespaces" = mkOverride 1002 null; + + "services" = mkOverride 1002 null; + }; + }; + + "istio_rbac_v1alpha1_RoleRef" = { + options = { + "kind" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "name" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "kind" = mkOverride 1002 null; + + "name" = mkOverride 1002 null; + }; + }; + + "istio_rbac_v1alpha1_ServiceRole" = { + options = { + "rules" = mkOption { + description = ""; + type = (types.nullOr (types.listOf (submoduleOf "istio_rbac_v1alpha1_AccessRule"))); + }; + }; + + config = { + "rules" = mkOverride 1002 null; + }; + }; + + "istio_rbac_v1alpha1_ServiceRoleBinding" = { + options = { + "mode" = mkOption { + description = ""; + type = types.unspecified; + }; + + "roleRef" = mkOption { + description = ""; + type = (types.nullOr (submoduleOf "istio_rbac_v1alpha1_RoleRef")); + }; + + "subjects" = mkOption { + description = ""; + type = (types.nullOr (types.listOf (submoduleOf "istio_rbac_v1alpha1_Subject"))); + }; + }; + + config = { + "mode" = mkOverride 1002 null; + + "roleRef" = mkOverride 1002 null; + + "subjects" = mkOverride 1002 null; + }; + }; + + "istio_rbac_v1alpha1_Subject" = { + options = { + "group" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "properties" = mkOption { + description = ""; + type = (types.nullOr (types.attrsOf types.str)); + }; + + "user" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "group" = mkOverride 1002 null; + + "properties" = mkOverride 1002 null; + + "user" = mkOverride 1002 null; + }; + }; + + "protobuf_duration_Duration" = { + options = { + "nanos" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "seconds" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + }; + + config = { + "nanos" = mkOverride 1002 null; + + "seconds" = mkOverride 1002 null; + }; + }; + + "protobuf_types_Any" = { + options = { + "typeUrl" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + + "value" = mkOption { + description = ""; + type = (types.nullOr types.str); + }; + }; + + config = { + "typeUrl" = mkOverride 1002 null; + + "value" = mkOverride 1002 null; + }; + }; + + "protobuf_types_BoolValue" = { + options = { + "value" = mkOption { + description = ""; + type = (types.nullOr types.bool); + }; + }; + + config = { + "value" = mkOverride 1002 null; + }; + }; + + "protobuf_types_Duration" = { + options = { + "nanos" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "seconds" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + }; + + config = { + "nanos" = mkOverride 1002 null; + + "seconds" = mkOverride 1002 null; + }; + }; + + "protobuf_types_Struct" = { + options = { + "fields" = mkOption { + description = ""; + type = (types.nullOr types.attrs); + }; + }; + + config = { + "fields" = mkOverride 1002 null; + }; + }; + + "protobuf_types_Timestamp" = { + options = { + "nanos" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + + "seconds" = mkOption { + description = ""; + type = (types.nullOr types.int); + }; + }; + + config = { + "nanos" = mkOverride 1002 null; + + "seconds" = mkOverride 1002 null; + }; + }; + + "protobuf_types_Value" = { + options = { + "kind" = mkOption { + description = ""; + type = types.unspecified; + }; + }; + + config = { + "kind" = mkOverride 1002 null; + }; + }; + + }; +in { + kubernetes.customResources = [ + { + group = "networking.istio.io"; + version = "v1alpha3"; + kind = "DestinationRule"; + description = ""; + module = definitions."istio_networking_v1alpha3_DestinationRule"; + }{ + group = "networking.istio.io"; + version = "v1alpha3"; + kind = "EnvoyFilter"; + description = ""; + module = definitions."istio_networking_v1alpha3_EnvoyFilter"; + }{ + group = "networking.istio.io"; + version = "v1alpha3"; + kind = "Gateway"; + description = ""; + module = definitions."istio_networking_v1alpha3_Gateway"; + }{ + group = "authentication.istio.io"; + version = "v1alpha1"; + kind = "Policy"; + description = ""; + module = definitions."istio_authentication_v1alpha1_Policy"; + }{ + group = "rbac.istio.io"; + version = "v1alpha1"; + kind = "RbacConfig"; + description = ""; + module = definitions."istio_rbac_v1alpha1_RbacConfig"; + }{ + group = "policy.istio.io"; + version = "v1beta1"; + kind = "Rule"; + description = ""; + module = definitions."istio_policy_v1beta1_Rule"; + }{ + group = "networking.istio.io"; + version = "v1alpha3"; + kind = "ServiceEntry"; + description = ""; + module = definitions."istio_networking_v1alpha3_ServiceEntry"; + }{ + group = "rbac.istio.io"; + version = "v1alpha1"; + kind = "ServiceRole"; + description = ""; + module = definitions."istio_rbac_v1alpha1_ServiceRole"; + }{ + group = "rbac.istio.io"; + version = "v1alpha1"; + kind = "ServiceRoleBinding"; + description = ""; + module = definitions."istio_rbac_v1alpha1_ServiceRoleBinding"; + }{ + group = "networking.istio.io"; + version = "v1alpha3"; + kind = "VirtualService"; + description = ""; + module = definitions."istio_networking_v1alpha3_VirtualService"; + } + ]; +} diff --git a/istio/generator.nix b/istio/generator.nix new file mode 100644 index 0000000..c354964 --- /dev/null +++ b/istio/generator.nix @@ -0,0 +1,323 @@ +{ pkgs ? import {}, lib ? pkgs.lib, spec ? ./istio-schema.json }: + +with lib; + +let + gen = rec { + mkMerge = values: ''mkMerge [${concatMapStrings (value: " + ${value} + ") values}]''; + + toNixString = value: if isAttrs value || isList value + then builtins.toJSON value + else if isString value + then ''"${value}"'' + else if value == null + then "null" + else builtins.toString value; + + removeEmptyLines = str: concatStringsSep "\n" (filter (l: (builtins.match "( |)+" l) == null) (splitString "\n" str)); + + mkOption = { + description ? null, + type ? null, + default ? null, + apply ? null + }: removeEmptyLines ''mkOption { + ${optionalString (description != null) "description = ${builtins.toJSON description};"} + ${optionalString (type != null) ''type = ${type};''} + ${optionalString (default != null) ''default = ${toNixString default};''} + ${optionalString (apply != null) ''apply = ${apply};''} + }''; + + mkOverride = priority: value: "mkOverride ${toString priority} ${toNixString value}"; + + types = { + unspecified = "types.unspecified"; + str = "types.str"; + int = "types.int"; + bool = "types.bool"; + attrs = "types.attrs"; + nullOr = val: "(types.nullOr ${val})"; + attrsOf = val: "(types.attrsOf ${val})"; + listOf = val: "(types.listOf ${val})"; + coercedTo = coercedType: coerceFunc: finalType: + "(types.coercedTo ${coercedType} ${coerceFunc} ${finalType})"; + either = val1: val2: "(types.either ${val1} ${val2})"; + loaOf = type: "(types.loaOf ${type})"; + }; + + hasTypeMapping = def: + hasAttr "type" def && + elem def.type ["string" "integer" "boolean"]; + + mergeValuesByKey = mergeKey: ''(mergeValuesByKey "${mergeKey}")''; + + mapType = def: + if def.type == "string" then + if hasAttr "format" def && def.format == "int-or-string" + then types.either types.int types.str + else types.str + else if def.type == "integer" then types.int + else if def.type == "number" then types.int + else if def.type == "boolean" then types.bool + else if def.type == "object" then types.attrs + else throw "type ${def.type} not supported"; + + submoduleOf = definitions: ref: ''(submoduleOf "${ref}")''; + + submoduleForDefinition = ref: name: kind: group: version: + ''(submoduleForDefinition "${ref}" "${name}" "${kind}" "${group}" "${version}")''; + + coerceAttrsOfSubmodulesToListByKey = ref: mergeKey: + ''(coerceAttrsOfSubmodulesToListByKey "${ref}" "${mergeKey}")''; + + attrsToList = "values: if values != null then mapAttrsToList (n: v: v) values else values"; + + refDefinition = attr: head (tail (tail (splitString "/" attr."$ref"))); + }; + + fixJSON = content: replaceStrings ["\\u"] ["u"] content; + + fetchSpecs = path: builtins.fromJSON (fixJSON (builtins.readFile path)); + + genDefinitions = swagger: with gen; (mapAttrs (name: definition: + # if $ref is in definition it means it's an alias of other definition + if hasAttr "$ref" definition + then definitions."${refDefinition definition}" + + else if !(hasAttr "properties" definition) + then { + type = mapType definition; + } + + else { + options = mapAttrs (propName: property: + let + isRequired = elem propName (definition.required or []); + requiredOrNot = type: if isRequired then type else types.nullOr type; + optionProperties = + # if $ref is in property it references other definition, + # but if other definition does not have properties, then just take it's type + if hasAttr "$ref" property then + if hasTypeMapping swagger.definitions.${refDefinition property} then { + type = requiredOrNot (mapType swagger.definitions.${refDefinition property}); + } + else { + type = requiredOrNot (submoduleOf definitions (refDefinition property)); + } + + else if !(hasAttr "type" property) then { + type = types.unspecified; + } + + # if property has an array type + else if property.type == "array" then + + # if reference is in items it can reference other type of another + # definition + if hasAttr "$ref" property.items then + + # if it is a reference to simple type + if hasTypeMapping swagger.definitions.${refDefinition property.items} + then { + type = requiredOrNot (types.listOf (mapType swagger.definitions.${refDefinition property.items}.type)); + } + + # if a reference is to complex type + else + # if x-kubernetes-patch-merge-key is set then make it an + # attribute set of submodules + if hasAttr "x-kubernetes-patch-merge-key" property + then let + mergeKey = property."x-kubernetes-patch-merge-key"; + in { + type = requiredOrNot (coerceAttrsOfSubmodulesToListByKey (refDefinition property.items) mergeKey); + apply = attrsToList; + } + + # in other case it's a simple list + else { + type = requiredOrNot (types.listOf (submoduleOf definitions (refDefinition property.items))); + } + + # in other case it only references a simple type + else { + type = requiredOrNot (types.listOf (mapType property.items)); + } + + else if property.type == "object" && hasAttr "additionalProperties" property + then + # if it is a reference to simple type + if ( + hasAttr "$ref" property.additionalProperties && + hasTypeMapping swagger.definitions.${refDefinition property.additionalProperties} + ) then { + type = requiredOrNot (types.attrsOf (mapType swagger.definitions.${refDefinition property.additionalProperties})); + } + + else if hasAttr "$ref" property.additionalProperties + then { + type = requiredOrNot types.attrs; + } + + # if is an array + else if property.additionalProperties.type == "array" + then { + type = requiredOrNot (types.loaOf (mapType property.additionalProperties.items)); + } + + else { + type = requiredOrNot (types.attrsOf (mapType property.additionalProperties)); + } + + # just a simple property + else { + type = requiredOrNot (mapType property); + }; + in mkOption ({ + description = property.description or ""; + } // optionProperties) + ) definition.properties; + config = + let + optionalProps = filterAttrs (propName: property: + !(elem propName (definition.required or [])) + ) definition.properties; + in mapAttrs (name: property: mkOverride 1002 null) optionalProps; + } + ) swagger.definitions); + + genResources = swagger: mapAttrsToList (name: property: rec { + splittedType = splitString "." (removePrefix "me.snowdrop.istio.api." property.javaType); + group = (concatStringsSep "." (take ((length splittedType) - 2) splittedType)) + ".istio.io"; + kind = removeSuffix "Spec" (last splittedType); + version = last (take ((length splittedType) - 1) splittedType); + ref = removePrefix "#/definitions/" property."$ref"; + }) + (filterAttrs (name: property: + hasPrefix "me.snowdrop.istio.api" property.javaType && + hasSuffix "Spec" property.javaType + ) swagger.properties); + + swagger = fetchSpecs spec; + + definitions = genDefinitions swagger; +in pkgs.writeText "gen.nix" +"# This file was generated with kubenix k8s generator, do not edit +{lib, config, ... }: + +with lib; + +let + types = lib.types // rec { + str = mkOptionType { + name = \"str\"; + description = \"string\"; + check = isString; + merge = mergeEqualOption; + }; + + # Either value of type `finalType` or `coercedType`, the latter is + # converted to `finalType` using `coerceFunc`. + coercedTo = coercedType: coerceFunc: finalType: + mkOptionType rec { + name = \"coercedTo\"; + description = \"\${finalType.description} or \${coercedType.description}\"; + check = x: finalType.check x || coercedType.check x; + merge = loc: defs: + let + coerceVal = val: + if finalType.check val then val + else let + coerced = coerceFunc val; + in assert finalType.check coerced; coerced; + + in finalType.merge loc (map (def: def // { value = coerceVal def.value; }) defs); + getSubOptions = finalType.getSubOptions; + getSubModules = finalType.getSubModules; + substSubModules = m: coercedTo coercedType coerceFunc (finalType.substSubModules m); + typeMerge = t1: t2: null; + functor = (defaultFunctor name) // { wrapped = finalType; }; + }; + }; + + mkOptionDefault = mkOverride 1001; + + extraOptions = { + kubenix = {}; + }; + + mergeValuesByKey = mergeKey: values: + listToAttrs (map + (value: nameValuePair ( + if isAttrs value.\${mergeKey} + then toString value.\${mergeKey}.content + else (toString value.\${mergeKey}) + ) value) + values); + + submoduleOf = ref: types.submodule ({name, ...}: { + options = definitions.\"\${ref}\".options; + config = definitions.\"\${ref}\".config; + }); + + submoduleWithMergeOf = ref: mergeKey: types.submodule ({name, ...}: let + convertName = name: + if definitions.\"\${ref}\".options.\${mergeKey}.type == types.int + then toInt name + else name; + in { + options = definitions.\"\${ref}\".options; + config = definitions.\"\${ref}\".config // { + \${mergeKey} = mkOverride 1002 (convertName name); + }; + }); + + submoduleForDefinition = ref: resource: kind: group: version: + types.submodule ({name, ...}: { + options = definitions.\"\${ref}\".options // extraOptions; + config = mkMerge ([ + definitions.\"\${ref}\".config + { + kind = mkOptionDefault kind; + apiVersion = mkOptionDefault version; + + # metdata.name cannot use option default, due deep config + metadata.name = mkOptionDefault name; + } + ] ++ (config.defaults.\${resource} or []) + ++ (config.defaults.all or [])); + }); + + coerceAttrsOfSubmodulesToListByKey = ref: mergeKey: (types.coercedTo + (types.listOf (submoduleOf ref)) + (mergeValuesByKey mergeKey) + (types.attrsOf (submoduleWithMergeOf ref mergeKey)) + ); + + definitions = { + ${concatStrings (mapAttrsToList (name: value: " + \"${name}\" = {${optionalString (hasAttr "options" value) " + options = {${concatStrings (mapAttrsToList (name: value: " + \"${name}\" = ${value}; + ") value.options)}}; + "}${optionalString (hasAttr "config" value) " + config = {${concatStrings (mapAttrsToList (name: value: " + \"${name}\" = ${value}; + ") value.config)}}; + "}}; + ") definitions)} + }; +in { + kubernetes.customResources = [ + ${concatMapStrings (resource: ''{ + group = "${resource.group}"; + version = "${resource.version}"; + kind = "${resource.kind}"; + description = ""; + module = definitions."${resource.ref}"; + }'') (genResources swagger)} + ]; +} +" diff --git a/istio/istio-schema.json b/istio/istio-schema.json new file mode 100644 index 0000000..b5cd2b2 --- /dev/null +++ b/istio/istio-schema.json @@ -0,0 +1,4314 @@ +{ + "id": "http://snowdrop.me/istio/v1/Schema#", + "$schema": "http://json-schema.org/schema#", + "definitions": { + "google_rpc_Status": { + "type": "object", + "description": "", + "properties": { + "code": { + "type": "integer", + "description": "" + }, + "details": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/protobuf_types_Any", + "javaType": "me.snowdrop.istio.api.Any" + } + }, + "message": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.Status" + }, + "istio_adapter_bypass_Params": { + "type": "object", + "description": "", + "properties": { + "backendAddress": { + "type": "string", + "description": "" + }, + "params": { + "$ref": "#/definitions/protobuf_types_Any", + "javaType": "me.snowdrop.istio.api.Any" + }, + "sessionBased": { + "type": "boolean", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.bypass.BypassSpec" + }, + "istio_adapter_circonus_Params": { + "type": "object", + "description": "", + "properties": { + "metrics": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/istio_adapter_circonus_Params_MetricInfo", + "javaType": "me.snowdrop.istio.mixer.adapter.circonus.MetricInfo" + } + }, + "submissionInterval": { + "type": "integer", + "description": "", + "javaType": "Long" + }, + "submissionUrl": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.circonus.CirconusSpec" + }, + "istio_adapter_circonus_Params_MetricInfo": { + "type": "object", + "description": "", + "properties": { + "name": { + "type": "string", + "description": "" + }, + "type": { + "javaType": "me.snowdrop.istio.mixer.adapter.circonus.Type" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.circonus.MetricInfo" + }, + "istio_adapter_denier_Params": { + "type": "object", + "description": "", + "properties": { + "status": { + "$ref": "#/definitions/google_rpc_Status", + "javaType": "me.snowdrop.istio.api.Status" + }, + "validDuration": { + "type": "integer", + "description": "", + "javaType": "Long" + }, + "validUseCount": { + "type": "integer", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.denier.DenierSpec" + }, + "istio_adapter_dogstatsd_Params": { + "type": "object", + "description": "", + "properties": { + "address": { + "type": "string", + "description": "" + }, + "bufferLength": { + "type": "integer", + "description": "" + }, + "globalTags": { + "type": "object", + "description": "", + "additionalProperties": { + "type": "string", + "description": "" + }, + "javaType": "java.util.Map\u003cString,String\u003e" + }, + "metrics": { + "type": "object", + "description": "", + "additionalProperties": { + "$ref": "#/definitions/istio_adapter_dogstatsd_Params_MetricInfo", + "javaType": "me.snowdrop.istio.mixer.adapter.dogstatsd.MetricInfo" + }, + "javaType": "java.util.Map\u003cString,me.snowdrop.istio.mixer.adapter.dogstatsd.MetricInfo\u003e" + }, + "prefix": { + "type": "string", + "description": "" + }, + "sampleRate": { + "type": "number", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.dogstatsd.Dogstatsd" + }, + "istio_adapter_dogstatsd_Params_MetricInfo": { + "type": "object", + "description": "", + "properties": { + "name": { + "type": "string", + "description": "" + }, + "tags": { + "type": "object", + "description": "", + "additionalProperties": { + "type": "string", + "description": "" + }, + "javaType": "java.util.Map\u003cString,String\u003e" + }, + "type": { + "javaType": "me.snowdrop.istio.mixer.adapter.dogstatsd.Type" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.dogstatsd.MetricInfo" + }, + "istio_adapter_fluentd_Params": { + "type": "object", + "description": "", + "properties": { + "address": { + "type": "string", + "description": "" + }, + "integerDuration": { + "type": "boolean", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.fluentd.FluentdSpec" + }, + "istio_adapter_kubernetesenv_Params": { + "type": "object", + "description": "", + "properties": { + "cacheRefreshDuration": { + "type": "integer", + "description": "", + "javaType": "Long" + }, + "kubeconfigPath": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.kubernetesenv.KubernetesenvSpec" + }, + "istio_adapter_list_Params": { + "type": "object", + "description": "", + "properties": { + "blacklist": { + "type": "boolean", + "description": "" + }, + "cachingInterval": { + "type": "integer", + "description": "", + "javaType": "Long" + }, + "cachingUseCount": { + "type": "integer", + "description": "" + }, + "entryType": { + "javaType": "me.snowdrop.istio.mixer.adapter.list.ListEntryType" + }, + "overrides": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + }, + "providerUrl": { + "type": "string", + "description": "" + }, + "refreshInterval": { + "type": "integer", + "description": "", + "javaType": "Long" + }, + "ttl": { + "type": "integer", + "description": "", + "javaType": "Long" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.list.BaseKubernetesList" + }, + "istio_adapter_memquota_Params": { + "type": "object", + "description": "", + "properties": { + "minDeduplicationDuration": { + "type": "integer", + "description": "", + "javaType": "Long" + }, + "quotas": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/istio_adapter_memquota_Params_Quota", + "javaType": "me.snowdrop.istio.mixer.adapter.memquota.Quota" + } + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.memquota.MemquotaSpec" + }, + "istio_adapter_memquota_Params_Override": { + "type": "object", + "description": "", + "properties": { + "dimensions": { + "type": "object", + "description": "", + "additionalProperties": { + "type": "string", + "description": "" + }, + "javaType": "java.util.Map\u003cString,String\u003e" + }, + "maxAmount": { + "type": "integer", + "description": "", + "javaType": "Long" + }, + "validDuration": { + "type": "integer", + "description": "", + "javaType": "Long" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.memquota.Override" + }, + "istio_adapter_memquota_Params_Quota": { + "type": "object", + "description": "", + "properties": { + "maxAmount": { + "type": "integer", + "description": "", + "javaType": "Long" + }, + "name": { + "type": "string", + "description": "" + }, + "overrides": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/istio_adapter_memquota_Params_Override", + "javaType": "me.snowdrop.istio.mixer.adapter.memquota.Override" + } + }, + "validDuration": { + "type": "integer", + "description": "", + "javaType": "Long" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.memquota.Quota" + }, + "istio_adapter_opa_Params": { + "type": "object", + "description": "", + "properties": { + "checkMethod": { + "type": "string", + "description": "" + }, + "failClose": { + "type": "boolean", + "description": "" + }, + "policy": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.opa.OpaSpec" + }, + "istio_adapter_prometheus_Params": { + "type": "object", + "description": "", + "properties": { + "metrics": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/istio_adapter_prometheus_Params_MetricInfo", + "javaType": "me.snowdrop.istio.mixer.adapter.prometheus.MetricInfo" + } + }, + "metricsExpirationPolicy": { + "$ref": "#/definitions/istio_adapter_prometheus_Params_MetricsExpirationPolicy", + "javaType": "me.snowdrop.istio.mixer.adapter.prometheus.MetricsExpirationPolicy" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.prometheus.PrometheusSpec" + }, + "istio_adapter_prometheus_Params_MetricInfo": { + "type": "object", + "description": "", + "properties": { + "buckets": { + "$ref": "#/definitions/istio_adapter_prometheus_Params_MetricInfo_BucketsDefinition", + "javaType": "me.snowdrop.istio.mixer.adapter.prometheus.BucketsDefinition" + }, + "description": { + "type": "string", + "description": "" + }, + "instanceName": { + "type": "string", + "description": "" + }, + "kind": { + "javaType": "me.snowdrop.istio.mixer.adapter.prometheus.Kind" + }, + "labelNames": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + }, + "name": { + "type": "string", + "description": "" + }, + "namespace": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.prometheus.MetricInfo" + }, + "istio_adapter_prometheus_Params_MetricInfo_BucketsDefinition": { + "type": "object", + "description": "", + "properties": { + "definition": { + "javaType": "me.snowdrop.istio.mixer.adapter.prometheus.BucketsDefinition.Definition", + "isInterface": true + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.prometheus.BucketsDefinition" + }, + "istio_adapter_prometheus_Params_MetricInfo_BucketsDefinition_Explicit": { + "type": "object", + "description": "", + "properties": { + "bounds": { + "type": "array", + "description": "", + "items": { + "type": "number", + "description": "" + } + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.prometheus.Explicit" + }, + "istio_adapter_prometheus_Params_MetricInfo_BucketsDefinition_ExplicitBuckets": { + "type": "object", + "javaInterfaces": [ + "me.snowdrop.istio.mixer.adapter.prometheus.BucketsDefinition.Definition" + ], + "description": "", + "properties": { + "explicitBuckets": { + "$ref": "#/definitions/istio_adapter_prometheus_Params_MetricInfo_BucketsDefinition_Explicit", + "javaType": "me.snowdrop.istio.mixer.adapter.prometheus.Explicit" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.prometheus.ExplicitBucketsDefinition" + }, + "istio_adapter_prometheus_Params_MetricInfo_BucketsDefinition_Exponential": { + "type": "object", + "description": "", + "properties": { + "growthFactor": { + "type": "number", + "description": "" + }, + "numFiniteBuckets": { + "type": "integer", + "description": "" + }, + "scale": { + "type": "number", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.prometheus.Exponential" + }, + "istio_adapter_prometheus_Params_MetricInfo_BucketsDefinition_ExponentialBuckets": { + "type": "object", + "javaInterfaces": [ + "me.snowdrop.istio.mixer.adapter.prometheus.BucketsDefinition.Definition" + ], + "description": "", + "properties": { + "exponentialBuckets": { + "$ref": "#/definitions/istio_adapter_prometheus_Params_MetricInfo_BucketsDefinition_Exponential", + "javaType": "me.snowdrop.istio.mixer.adapter.prometheus.Exponential" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.prometheus.ExponentialBucketsDefinition" + }, + "istio_adapter_prometheus_Params_MetricInfo_BucketsDefinition_Linear": { + "type": "object", + "description": "", + "properties": { + "numFiniteBuckets": { + "type": "integer", + "description": "" + }, + "offset": { + "type": "number", + "description": "" + }, + "width": { + "type": "number", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.prometheus.Linear" + }, + "istio_adapter_prometheus_Params_MetricInfo_BucketsDefinition_LinearBuckets": { + "type": "object", + "javaInterfaces": [ + "me.snowdrop.istio.mixer.adapter.prometheus.BucketsDefinition.Definition" + ], + "description": "", + "properties": { + "linearBuckets": { + "$ref": "#/definitions/istio_adapter_prometheus_Params_MetricInfo_BucketsDefinition_Linear", + "javaType": "me.snowdrop.istio.mixer.adapter.prometheus.Linear" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.prometheus.LinearBucketsDefinition" + }, + "istio_adapter_prometheus_Params_MetricsExpirationPolicy": { + "type": "object", + "description": "", + "properties": { + "expiryCheckIntervalDuration": { + "type": "integer", + "description": "", + "javaType": "Long" + }, + "metricsExpiryDuration": { + "type": "integer", + "description": "", + "javaType": "Long" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.prometheus.MetricsExpirationPolicy" + }, + "istio_adapter_rbac_Params": { + "type": "object", + "description": "", + "properties": { + "cacheDuration": { + "type": "integer", + "description": "", + "javaType": "Long" + }, + "configStoreUrl": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.rbac.RbacSpec" + }, + "istio_adapter_redisquota_Params": { + "type": "object", + "description": "", + "properties": { + "connectionPoolSize": { + "type": "integer", + "description": "", + "javaType": "Long" + }, + "quotas": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/istio_adapter_redisquota_Params_Quota", + "javaType": "me.snowdrop.istio.mixer.adapter.redisquota.Quota" + } + }, + "redisServerUrl": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.redisquota.RedisquotaSpec" + }, + "istio_adapter_redisquota_Params_Override": { + "type": "object", + "description": "", + "properties": { + "dimensions": { + "type": "object", + "description": "", + "additionalProperties": { + "type": "string", + "description": "" + }, + "javaType": "java.util.Map\u003cString,String\u003e" + }, + "maxAmount": { + "type": "integer", + "description": "", + "javaType": "Long" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.redisquota.Override" + }, + "istio_adapter_redisquota_Params_Quota": { + "type": "object", + "description": "", + "properties": { + "bucketDuration": { + "type": "integer", + "description": "", + "javaType": "Long" + }, + "maxAmount": { + "type": "integer", + "description": "", + "javaType": "Long" + }, + "name": { + "type": "string", + "description": "" + }, + "overrides": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/istio_adapter_redisquota_Params_Override", + "javaType": "me.snowdrop.istio.mixer.adapter.redisquota.Override" + } + }, + "rateLimitAlgorithm": { + "javaType": "me.snowdrop.istio.mixer.adapter.redisquota.QuotaAlgorithm" + }, + "validDuration": { + "type": "integer", + "description": "", + "javaType": "Long" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.redisquota.Quota" + }, + "istio_adapter_servicecontrol_GcpServiceSetting": { + "type": "object", + "description": "", + "properties": { + "googleServiceName": { + "type": "string", + "description": "" + }, + "meshServiceName": { + "type": "string", + "description": "" + }, + "quotas": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/istio_adapter_servicecontrol_Quota", + "javaType": "me.snowdrop.istio.mixer.adapter.servicecontrol.Quota" + } + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.servicecontrol.GcpServiceSetting" + }, + "istio_adapter_servicecontrol_Params": { + "type": "object", + "description": "", + "properties": { + "credentialPath": { + "type": "string", + "description": "" + }, + "runtimeConfig": { + "$ref": "#/definitions/istio_adapter_servicecontrol_RuntimeConfig", + "javaType": "me.snowdrop.istio.mixer.adapter.servicecontrol.RuntimeConfig" + }, + "serviceConfigs": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/istio_adapter_servicecontrol_GcpServiceSetting", + "javaType": "me.snowdrop.istio.mixer.adapter.servicecontrol.GcpServiceSetting" + } + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.servicecontrol.ServicecontrolSpec" + }, + "istio_adapter_servicecontrol_Quota": { + "type": "object", + "description": "", + "properties": { + "expiration": { + "$ref": "#/definitions/protobuf_types_Duration", + "javaType": "me.snowdrop.istio.api.Duration" + }, + "googleQuotaMetricName": { + "type": "string", + "description": "" + }, + "name": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.servicecontrol.Quota" + }, + "istio_adapter_servicecontrol_RuntimeConfig": { + "type": "object", + "description": "", + "properties": { + "checkCacheSize": { + "type": "integer", + "description": "" + }, + "checkResultExpiration": { + "$ref": "#/definitions/protobuf_types_Duration", + "javaType": "me.snowdrop.istio.api.Duration" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.servicecontrol.RuntimeConfig" + }, + "istio_adapter_signalfx_Params": { + "type": "object", + "description": "", + "properties": { + "accessToken": { + "type": "string", + "description": "" + }, + "datapointInterval": { + "type": "integer", + "description": "", + "javaType": "Long" + }, + "ingestUrl": { + "type": "string", + "description": "" + }, + "metrics": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/istio_adapter_signalfx_Params_MetricConfig", + "javaType": "me.snowdrop.istio.mixer.adapter.signalfx.MetricConfig" + } + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.signalfx.SignalfxSpec" + }, + "istio_adapter_signalfx_Params_MetricConfig": { + "type": "object", + "description": "", + "properties": { + "name": { + "type": "string", + "description": "" + }, + "type": { + "javaType": "me.snowdrop.istio.mixer.adapter.signalfx.Type" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.signalfx.MetricConfig" + }, + "istio_adapter_solarwinds_Params": { + "type": "object", + "description": "", + "properties": { + "appopticsAccessToken": { + "type": "string", + "description": "" + }, + "appopticsBatchSize": { + "type": "integer", + "description": "" + }, + "logs": { + "type": "object", + "description": "", + "additionalProperties": { + "$ref": "#/definitions/istio_adapter_solarwinds_Params_LogInfo", + "javaType": "me.snowdrop.istio.mixer.adapter.solarwinds.LogInfo" + }, + "javaType": "java.util.Map\u003cString,me.snowdrop.istio.mixer.adapter.solarwinds.LogInfo\u003e" + }, + "metrics": { + "type": "object", + "description": "", + "additionalProperties": { + "$ref": "#/definitions/istio_adapter_solarwinds_Params_MetricInfo", + "javaType": "me.snowdrop.istio.mixer.adapter.solarwinds.MetricInfo" + }, + "javaType": "java.util.Map\u003cString,me.snowdrop.istio.mixer.adapter.solarwinds.MetricInfo\u003e" + }, + "papertrailLocalRetentionDuration": { + "type": "integer", + "description": "", + "javaType": "Long" + }, + "papertrailUrl": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.solarwinds.SolarwindsSpec" + }, + "istio_adapter_solarwinds_Params_LogInfo": { + "type": "object", + "description": "", + "properties": { + "payloadTemplate": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.solarwinds.LogInfo" + }, + "istio_adapter_solarwinds_Params_MetricInfo": { + "type": "object", + "description": "", + "properties": { + "labelNames": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.solarwinds.MetricInfo" + }, + "istio_adapter_stackdriver_Params": { + "type": "object", + "description": "", + "properties": { + "creds": { + "javaType": "me.snowdrop.istio.mixer.adapter.stackdriver.StackdriverSpec.Creds", + "isInterface": true + }, + "endpoint": { + "type": "string", + "description": "" + }, + "logInfo": { + "type": "object", + "description": "", + "additionalProperties": { + "$ref": "#/definitions/istio_adapter_stackdriver_Params_LogInfo", + "javaType": "me.snowdrop.istio.mixer.adapter.stackdriver.LogInfo" + }, + "javaType": "java.util.Map\u003cString,me.snowdrop.istio.mixer.adapter.stackdriver.LogInfo\u003e" + }, + "metricInfo": { + "type": "object", + "description": "", + "additionalProperties": { + "$ref": "#/definitions/istio_adapter_stackdriver_Params_MetricInfo", + "javaType": "me.snowdrop.istio.mixer.adapter.stackdriver.MetricInfo" + }, + "javaType": "java.util.Map\u003cString,me.snowdrop.istio.mixer.adapter.stackdriver.MetricInfo\u003e" + }, + "projectId": { + "type": "string", + "description": "" + }, + "pushInterval": { + "type": "integer", + "description": "", + "javaType": "Long" + }, + "trace": { + "$ref": "#/definitions/istio_adapter_stackdriver_Params_Trace", + "javaType": "me.snowdrop.istio.mixer.adapter.stackdriver.Trace" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.stackdriver.StackdriverSpec" + }, + "istio_adapter_stackdriver_Params_ApiKey": { + "type": "object", + "javaInterfaces": [ + "me.snowdrop.istio.mixer.adapter.stackdriver.StackdriverSpec.Creds" + ], + "description": "", + "properties": { + "apiKey": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.stackdriver.ApiKeyCreds" + }, + "istio_adapter_stackdriver_Params_AppCredentials": { + "type": "object", + "javaInterfaces": [ + "me.snowdrop.istio.mixer.adapter.stackdriver.StackdriverSpec.Creds" + ], + "description": "", + "properties": { + "appCredentials": { + "type": "boolean", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.stackdriver.AppCredentialsCreds" + }, + "istio_adapter_stackdriver_Params_LogInfo": { + "type": "object", + "description": "", + "properties": { + "httpMapping": { + "$ref": "#/definitions/istio_adapter_stackdriver_Params_LogInfo_HttpRequestMapping", + "javaType": "me.snowdrop.istio.mixer.adapter.stackdriver.HttpRequestMapping" + }, + "labelNames": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + }, + "payloadTemplate": { + "type": "string", + "description": "" + }, + "sinkInfo": { + "$ref": "#/definitions/istio_adapter_stackdriver_Params_LogInfo_SinkInfo", + "javaType": "me.snowdrop.istio.mixer.adapter.stackdriver.SinkInfo" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.stackdriver.LogInfo" + }, + "istio_adapter_stackdriver_Params_LogInfo_HttpRequestMapping": { + "type": "object", + "description": "", + "properties": { + "latency": { + "type": "string", + "description": "" + }, + "localIp": { + "type": "string", + "description": "" + }, + "method": { + "type": "string", + "description": "" + }, + "referer": { + "type": "string", + "description": "" + }, + "remoteIp": { + "type": "string", + "description": "" + }, + "requestSize": { + "type": "string", + "description": "" + }, + "responseSize": { + "type": "string", + "description": "" + }, + "status": { + "type": "string", + "description": "" + }, + "url": { + "type": "string", + "description": "" + }, + "userAgent": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.stackdriver.HttpRequestMapping" + }, + "istio_adapter_stackdriver_Params_LogInfo_SinkInfo": { + "type": "object", + "description": "", + "properties": { + "UniqueWriterIdentity": { + "type": "boolean", + "description": "" + }, + "UpdateDestination": { + "type": "boolean", + "description": "" + }, + "UpdateFilter": { + "type": "boolean", + "description": "" + }, + "UpdateIncludeChildren": { + "type": "boolean", + "description": "" + }, + "destination": { + "type": "string", + "description": "" + }, + "filter": { + "type": "string", + "description": "" + }, + "id": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.stackdriver.SinkInfo" + }, + "istio_adapter_stackdriver_Params_MetricInfo": { + "type": "object", + "description": "", + "properties": { + "buckets": { + "$ref": "#/definitions/istio_adapter_stackdriver_Params_MetricInfo_BucketsDefinition", + "javaType": "me.snowdrop.istio.mixer.adapter.stackdriver.BucketsDefinition" + }, + "kind": { + "javaType": "me.snowdrop.istio.mixer.adapter.stackdriver.MetricKind" + }, + "metricType": { + "type": "string", + "description": "" + }, + "value": { + "javaType": "me.snowdrop.istio.mixer.adapter.stackdriver.ValueType" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.stackdriver.MetricInfo" + }, + "istio_adapter_stackdriver_Params_MetricInfo_BucketsDefinition": { + "type": "object", + "description": "", + "properties": { + "definition": { + "javaType": "me.snowdrop.istio.mixer.adapter.stackdriver.BucketsDefinition.Definition", + "isInterface": true + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.stackdriver.BucketsDefinition" + }, + "istio_adapter_stackdriver_Params_ServiceAccountPath": { + "type": "object", + "javaInterfaces": [ + "me.snowdrop.istio.mixer.adapter.stackdriver.StackdriverSpec.Creds" + ], + "description": "", + "properties": { + "serviceAccountPath": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.stackdriver.ServiceAccountPathCreds" + }, + "istio_adapter_stackdriver_Params_Trace": { + "type": "object", + "description": "", + "properties": { + "sampleProbability": { + "type": "number", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.stackdriver.Trace" + }, + "istio_adapter_statsd_Params": { + "type": "object", + "description": "", + "properties": { + "address": { + "type": "string", + "description": "" + }, + "flushBytes": { + "type": "integer", + "description": "" + }, + "flushDuration": { + "type": "integer", + "description": "", + "javaType": "Long" + }, + "metrics": { + "type": "object", + "description": "", + "additionalProperties": { + "$ref": "#/definitions/istio_adapter_statsd_Params_MetricInfo", + "javaType": "me.snowdrop.istio.mixer.adapter.statsd.MetricInfo" + }, + "javaType": "java.util.Map\u003cString,me.snowdrop.istio.mixer.adapter.statsd.MetricInfo\u003e" + }, + "prefix": { + "type": "string", + "description": "" + }, + "samplingRate": { + "type": "number", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.statsd.StatsdSpec" + }, + "istio_adapter_statsd_Params_MetricInfo": { + "type": "object", + "description": "", + "properties": { + "nameTemplate": { + "type": "string", + "description": "" + }, + "type": { + "javaType": "me.snowdrop.istio.mixer.adapter.statsd.Type" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.statsd.MetricInfo" + }, + "istio_adapter_stdio_Params": { + "type": "object", + "description": "", + "properties": { + "logStream": { + "javaType": "me.snowdrop.istio.mixer.adapter.stdio.Stream" + }, + "maxDaysBeforeRotation": { + "type": "integer", + "description": "" + }, + "maxMegabytesBeforeRotation": { + "type": "integer", + "description": "" + }, + "maxRotatedFiles": { + "type": "integer", + "description": "" + }, + "metricLevel": { + "javaType": "me.snowdrop.istio.mixer.adapter.stdio.Level" + }, + "outputAsJson": { + "type": "boolean", + "description": "" + }, + "outputLevel": { + "javaType": "me.snowdrop.istio.mixer.adapter.stdio.Level" + }, + "outputPath": { + "type": "string", + "description": "" + }, + "severityLevels": { + "type": "object", + "description": "", + "additionalProperties": { + "type": "integer", + "description": "" + }, + "javaType": "java.util.Map\u003cString,Integer\u003e" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.adapter.stdio.StdioSpec" + }, + "istio_authentication_v1alpha1_Jwt": { + "type": "object", + "description": "", + "properties": { + "audiences": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + }, + "issuer": { + "type": "string", + "description": "" + }, + "jwksUri": { + "type": "string", + "description": "" + }, + "jwtHeaders": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + }, + "jwtParams": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.authentication.v1alpha1.Jwt" + }, + "istio_authentication_v1alpha1_MutualTls": { + "type": "object", + "description": "", + "properties": { + "allowTls": { + "type": "boolean", + "description": "" + }, + "mode": { + "javaType": "me.snowdrop.istio.api.authentication.v1alpha1.Mode" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.authentication.v1alpha1.MutualTls" + }, + "istio_authentication_v1alpha1_OriginAuthenticationMethod": { + "type": "object", + "description": "", + "properties": { + "jwt": { + "$ref": "#/definitions/istio_authentication_v1alpha1_Jwt", + "javaType": "me.snowdrop.istio.api.authentication.v1alpha1.Jwt" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.authentication.v1alpha1.OriginAuthenticationMethod" + }, + "istio_authentication_v1alpha1_PeerAuthenticationMethod": { + "type": "object", + "description": "", + "properties": { + "params": { + "javaType": "me.snowdrop.istio.api.authentication.v1alpha1.PeerAuthenticationMethod.Params", + "isInterface": true + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.authentication.v1alpha1.PeerAuthenticationMethod" + }, + "istio_authentication_v1alpha1_PeerAuthenticationMethod_Jwt": { + "type": "object", + "javaInterfaces": [ + "me.snowdrop.istio.api.authentication.v1alpha1.PeerAuthenticationMethod.Params" + ], + "description": "", + "properties": { + "jwt": { + "$ref": "#/definitions/istio_authentication_v1alpha1_Jwt", + "javaType": "me.snowdrop.istio.api.authentication.v1alpha1.Jwt" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.authentication.v1alpha1.JwtParams" + }, + "istio_authentication_v1alpha1_PeerAuthenticationMethod_Mtls": { + "type": "object", + "javaInterfaces": [ + "me.snowdrop.istio.api.authentication.v1alpha1.PeerAuthenticationMethod.Params" + ], + "description": "", + "properties": { + "mtls": { + "$ref": "#/definitions/istio_authentication_v1alpha1_MutualTls", + "javaType": "me.snowdrop.istio.api.authentication.v1alpha1.MutualTls" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.authentication.v1alpha1.MtlsParams" + }, + "istio_authentication_v1alpha1_Policy": { + "type": "object", + "description": "", + "properties": { + "originIsOptional": { + "type": "boolean", + "description": "" + }, + "origins": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/istio_authentication_v1alpha1_OriginAuthenticationMethod", + "javaType": "me.snowdrop.istio.api.authentication.v1alpha1.OriginAuthenticationMethod" + } + }, + "peerIsOptional": { + "type": "boolean", + "description": "" + }, + "peers": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/istio_authentication_v1alpha1_PeerAuthenticationMethod", + "javaType": "me.snowdrop.istio.api.authentication.v1alpha1.PeerAuthenticationMethod" + } + }, + "principalBinding": { + "javaType": "me.snowdrop.istio.api.authentication.v1alpha1.PrincipalBinding" + }, + "targets": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/istio_authentication_v1alpha1_TargetSelector", + "javaType": "me.snowdrop.istio.api.authentication.v1alpha1.TargetSelector" + } + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.authentication.v1alpha1.PolicySpec" + }, + "istio_authentication_v1alpha1_PortSelector": { + "type": "object", + "description": "", + "properties": { + "port": { + "javaType": "me.snowdrop.istio.api.authentication.v1alpha1.PortSelector.Port", + "isInterface": true + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.authentication.v1alpha1.PortSelector" + }, + "istio_authentication_v1alpha1_PortSelector_Name": { + "type": "object", + "javaInterfaces": [ + "me.snowdrop.istio.api.authentication.v1alpha1.PortSelector.Port" + ], + "description": "", + "properties": { + "name": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.authentication.v1alpha1.NamePort" + }, + "istio_authentication_v1alpha1_PortSelector_Number": { + "type": "object", + "javaInterfaces": [ + "me.snowdrop.istio.api.authentication.v1alpha1.PortSelector.Port" + ], + "description": "", + "properties": { + "number": { + "type": "integer", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.authentication.v1alpha1.NumberPort" + }, + "istio_authentication_v1alpha1_TargetSelector": { + "type": "object", + "description": "", + "properties": { + "name": { + "type": "string", + "description": "" + }, + "ports": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/istio_authentication_v1alpha1_PortSelector", + "javaType": "me.snowdrop.istio.api.authentication.v1alpha1.PortSelector" + } + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.authentication.v1alpha1.TargetSelector" + }, + "istio_mesh_v1alpha1_MeshConfig": { + "type": "object", + "description": "", + "properties": { + "accessLogFile": { + "type": "string", + "description": "" + }, + "authPolicy": { + "javaType": "me.snowdrop.istio.api.mesh.v1alpha1.AuthenticationPolicy" + }, + "connectTimeout": { + "$ref": "#/definitions/protobuf_duration_Duration", + "javaType": "me.snowdrop.istio.api.Duration" + }, + "defaultConfig": { + "$ref": "#/definitions/istio_mesh_v1alpha1_ProxyConfig", + "javaType": "me.snowdrop.istio.api.mesh.v1alpha1.ProxyConfig" + }, + "disablePolicyChecks": { + "type": "boolean", + "description": "" + }, + "enableClientSidePolicyCheck": { + "type": "boolean", + "description": "" + }, + "enableTracing": { + "type": "boolean", + "description": "" + }, + "ingressClass": { + "type": "string", + "description": "" + }, + "ingressControllerMode": { + "javaType": "me.snowdrop.istio.api.mesh.v1alpha1.IngressControllerMode" + }, + "ingressService": { + "type": "string", + "description": "" + }, + "mixerAddress": { + "type": "string", + "description": "" + }, + "mixerCheckServer": { + "type": "string", + "description": "" + }, + "mixerReportServer": { + "type": "string", + "description": "" + }, + "outboundTrafficPolicy": { + "$ref": "#/definitions/istio_mesh_v1alpha1_MeshConfig_OutboundTrafficPolicy", + "javaType": "me.snowdrop.istio.api.mesh.v1alpha1.OutboundTrafficPolicy" + }, + "policyCheckFailOpen": { + "type": "boolean", + "description": "" + }, + "proxyHttpPort": { + "type": "integer", + "description": "" + }, + "proxyListenPort": { + "type": "integer", + "description": "" + }, + "rdsRefreshDelay": { + "$ref": "#/definitions/protobuf_duration_Duration", + "javaType": "me.snowdrop.istio.api.Duration" + }, + "sdsRefreshDelay": { + "$ref": "#/definitions/protobuf_duration_Duration", + "javaType": "me.snowdrop.istio.api.Duration" + }, + "sdsUdsPath": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.mesh.v1alpha1.MeshConfig" + }, + "istio_mesh_v1alpha1_MeshConfig_OutboundTrafficPolicy": { + "type": "object", + "description": "", + "properties": { + "mode": { + "javaType": "me.snowdrop.istio.api.mesh.v1alpha1.Mode" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.mesh.v1alpha1.OutboundTrafficPolicy" + }, + "istio_mesh_v1alpha1_ProxyConfig": { + "type": "object", + "description": "", + "properties": { + "availabilityZone": { + "type": "string", + "description": "" + }, + "binaryPath": { + "type": "string", + "description": "" + }, + "concurrency": { + "type": "integer", + "description": "" + }, + "configPath": { + "type": "string", + "description": "" + }, + "connectTimeout": { + "$ref": "#/definitions/protobuf_duration_Duration", + "javaType": "me.snowdrop.istio.api.Duration" + }, + "controlPlaneAuthPolicy": { + "javaType": "me.snowdrop.istio.api.mesh.v1alpha1.AuthenticationPolicy" + }, + "customConfigFile": { + "type": "string", + "description": "" + }, + "discoveryAddress": { + "type": "string", + "description": "" + }, + "discoveryRefreshDelay": { + "$ref": "#/definitions/protobuf_duration_Duration", + "javaType": "me.snowdrop.istio.api.Duration" + }, + "drainDuration": { + "$ref": "#/definitions/protobuf_duration_Duration", + "javaType": "me.snowdrop.istio.api.Duration" + }, + "interceptionMode": { + "javaType": "me.snowdrop.istio.api.mesh.v1alpha1.InboundInterceptionMode" + }, + "parentShutdownDuration": { + "$ref": "#/definitions/protobuf_duration_Duration", + "javaType": "me.snowdrop.istio.api.Duration" + }, + "proxyAdminPort": { + "type": "integer", + "description": "" + }, + "proxyBootstrapTemplatePath": { + "type": "string", + "description": "" + }, + "serviceCluster": { + "type": "string", + "description": "" + }, + "statNameLength": { + "type": "integer", + "description": "" + }, + "statsdUdpAddress": { + "type": "string", + "description": "" + }, + "zipkinAddress": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.mesh.v1alpha1.ProxyConfig" + }, + "istio_mixer_apikey_InstanceMsg": { + "type": "object", + "description": "", + "properties": { + "api": { + "type": "string", + "description": "" + }, + "apiKey": { + "type": "string", + "description": "" + }, + "apiOperation": { + "type": "string", + "description": "" + }, + "apiVersion": { + "type": "string", + "description": "" + }, + "name": { + "type": "string", + "description": "" + }, + "timestamp": { + "$ref": "#/definitions/istio_policy_v1beta1_TimeStamp", + "javaType": "me.snowdrop.istio.api.TimeStamp" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.template.apikey.ApiKeySpec" + }, + "istio_mixer_authorization_ActionMsg": { + "type": "object", + "description": "", + "properties": { + "method": { + "type": "string", + "description": "" + }, + "namespace": { + "type": "string", + "description": "" + }, + "path": { + "type": "string", + "description": "" + }, + "properties": { + "type": "object", + "description": "", + "additionalProperties": { + "$ref": "#/definitions/istio_policy_v1beta1_Value", + "javaType": "me.snowdrop.istio.api.cexl.TypedValue" + }, + "javaType": "java.util.Map\u003cString,me.snowdrop.istio.api.cexl.TypedValue\u003e" + }, + "service": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.template.authorization.Action" + }, + "istio_mixer_authorization_InstanceMsg": { + "type": "object", + "description": "", + "properties": { + "action": { + "$ref": "#/definitions/istio_mixer_authorization_ActionMsg", + "javaType": "me.snowdrop.istio.mixer.template.authorization.Action" + }, + "name": { + "type": "string", + "description": "" + }, + "subject": { + "$ref": "#/definitions/istio_mixer_authorization_SubjectMsg", + "javaType": "me.snowdrop.istio.mixer.template.authorization.Subject" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.template.authorization.AuthorizationSpec" + }, + "istio_mixer_authorization_SubjectMsg": { + "type": "object", + "description": "", + "properties": { + "groups": { + "type": "string", + "description": "" + }, + "properties": { + "type": "object", + "description": "", + "additionalProperties": { + "$ref": "#/definitions/istio_policy_v1beta1_Value", + "javaType": "me.snowdrop.istio.api.cexl.TypedValue" + }, + "javaType": "java.util.Map\u003cString,me.snowdrop.istio.api.cexl.TypedValue\u003e" + }, + "user": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.template.authorization.Subject" + }, + "istio_mixer_checknothing_InstanceMsg": { + "type": "object", + "description": "", + "properties": { + "name": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.template.checknothing.CheckNothingSpec" + }, + "istio_mixer_edge_InstanceMsg": { + "type": "object", + "description": "", + "properties": { + "apiProtocol": { + "type": "string", + "description": "" + }, + "contextProtocol": { + "type": "string", + "description": "" + }, + "destinationOwner": { + "type": "string", + "description": "" + }, + "destinationUid": { + "type": "string", + "description": "" + }, + "destinationWorkloadName": { + "type": "string", + "description": "" + }, + "destinationWorkloadNamespace": { + "type": "string", + "description": "" + }, + "name": { + "type": "string", + "description": "" + }, + "sourceOwner": { + "type": "string", + "description": "" + }, + "sourceUid": { + "type": "string", + "description": "" + }, + "sourceWorkloadName": { + "type": "string", + "description": "" + }, + "sourceWorkloadNamespace": { + "type": "string", + "description": "" + }, + "timestamp": { + "$ref": "#/definitions/istio_policy_v1beta1_TimeStamp", + "javaType": "me.snowdrop.istio.api.TimeStamp" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.template.edge.EdgeSpec" + }, + "istio_mixer_listentry_InstanceMsg": { + "type": "object", + "description": "", + "properties": { + "name": { + "type": "string", + "description": "" + }, + "value": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.template.listentry.ListEntrySpec" + }, + "istio_mixer_logentry_InstanceMsg": { + "type": "object", + "description": "", + "properties": { + "monitoredResourceDimensions": { + "type": "object", + "description": "", + "additionalProperties": { + "$ref": "#/definitions/istio_policy_v1beta1_Value", + "javaType": "me.snowdrop.istio.api.cexl.TypedValue" + }, + "javaType": "java.util.Map\u003cString,me.snowdrop.istio.api.cexl.TypedValue\u003e" + }, + "monitoredResourceType": { + "type": "string", + "description": "" + }, + "name": { + "type": "string", + "description": "" + }, + "severity": { + "type": "string", + "description": "" + }, + "timestamp": { + "$ref": "#/definitions/istio_policy_v1beta1_TimeStamp", + "javaType": "me.snowdrop.istio.api.TimeStamp" + }, + "variables": { + "type": "object", + "description": "", + "additionalProperties": { + "$ref": "#/definitions/istio_policy_v1beta1_Value", + "javaType": "me.snowdrop.istio.api.cexl.TypedValue" + }, + "javaType": "java.util.Map\u003cString,me.snowdrop.istio.api.cexl.TypedValue\u003e" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.template.logentry.LogEntrySpec" + }, + "istio_mixer_metric_InstanceMsg": { + "type": "object", + "description": "", + "properties": { + "dimensions": { + "type": "object", + "description": "", + "additionalProperties": { + "$ref": "#/definitions/istio_policy_v1beta1_Value", + "javaType": "me.snowdrop.istio.api.cexl.TypedValue" + }, + "javaType": "java.util.Map\u003cString,me.snowdrop.istio.api.cexl.TypedValue\u003e" + }, + "monitoredResourceDimensions": { + "type": "object", + "description": "", + "additionalProperties": { + "$ref": "#/definitions/istio_policy_v1beta1_Value", + "javaType": "me.snowdrop.istio.api.cexl.TypedValue" + }, + "javaType": "java.util.Map\u003cString,me.snowdrop.istio.api.cexl.TypedValue\u003e" + }, + "monitoredResourceType": { + "type": "string", + "description": "" + }, + "name": { + "type": "string", + "description": "" + }, + "value": { + "$ref": "#/definitions/istio_policy_v1beta1_Value", + "javaType": "me.snowdrop.istio.api.cexl.TypedValue" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.template.metric.MetricSpec" + }, + "istio_mixer_quota_InstanceMsg": { + "type": "object", + "description": "", + "properties": { + "dimensions": { + "type": "object", + "description": "", + "additionalProperties": { + "$ref": "#/definitions/istio_policy_v1beta1_Value", + "javaType": "me.snowdrop.istio.api.cexl.TypedValue" + }, + "javaType": "java.util.Map\u003cString,me.snowdrop.istio.api.cexl.TypedValue\u003e" + }, + "name": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.template.quota.QuotaSpec" + }, + "istio_mixer_reportnothing_InstanceMsg": { + "type": "object", + "description": "", + "properties": { + "name": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.template.reportnothing.ReportNothingSpec" + }, + "istio_mixer_tracespan_InstanceMsg": { + "type": "object", + "description": "", + "properties": { + "clientSpan": { + "type": "boolean", + "description": "" + }, + "endTime": { + "$ref": "#/definitions/istio_policy_v1beta1_TimeStamp", + "javaType": "me.snowdrop.istio.api.TimeStamp" + }, + "httpStatusCode": { + "type": "integer", + "description": "", + "javaType": "Long" + }, + "name": { + "type": "string", + "description": "" + }, + "parentSpanId": { + "type": "string", + "description": "" + }, + "rewriteClientSpanId": { + "type": "boolean", + "description": "" + }, + "spanId": { + "type": "string", + "description": "" + }, + "spanName": { + "type": "string", + "description": "" + }, + "spanTags": { + "type": "object", + "description": "", + "additionalProperties": { + "$ref": "#/definitions/istio_policy_v1beta1_Value", + "javaType": "me.snowdrop.istio.api.cexl.TypedValue" + }, + "javaType": "java.util.Map\u003cString,me.snowdrop.istio.api.cexl.TypedValue\u003e" + }, + "startTime": { + "$ref": "#/definitions/istio_policy_v1beta1_TimeStamp", + "javaType": "me.snowdrop.istio.api.TimeStamp" + }, + "traceId": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.mixer.template.tracespan.TraceSpanSpec" + }, + "istio_mixer_v1_Attributes": { + "type": "object", + "description": "", + "properties": { + "attributes": { + "type": "object", + "description": "", + "additionalProperties": { + "$ref": "#/definitions/istio_mixer_v1_Attributes_AttributeValue", + "javaType": "me.snowdrop.istio.api.cexl.TypedValue" + }, + "javaType": "java.util.Map\u003cString,me.snowdrop.istio.api.cexl.TypedValue\u003e" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.mixer.v1.Attributes" + }, + "istio_mixer_v1_Attributes_AttributeValue": { + "type": "object", + "description": "", + "properties": { + "value": { + "javaType": "me.snowdrop.istio.api.cexl.TypedValue", + "isInterface": true + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.cexl.TypedValue" + }, + "istio_mixer_v1_CheckRequest": { + "type": "object", + "description": "", + "properties": { + "attributes": { + "$ref": "#/definitions/istio_mixer_v1_CompressedAttributes", + "javaType": "me.snowdrop.istio.api.mixer.v1.CompressedAttributes" + }, + "deduplicationId": { + "type": "string", + "description": "" + }, + "globalWordCount": { + "type": "integer", + "description": "" + }, + "quotas": { + "type": "object", + "description": "", + "additionalProperties": { + "$ref": "#/definitions/istio_mixer_v1_CheckRequest_QuotaParams", + "javaType": "me.snowdrop.istio.api.mixer.v1.QuotaParams" + }, + "javaType": "java.util.Map\u003cString,me.snowdrop.istio.api.mixer.v1.QuotaParams\u003e" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.mixer.v1.CheckRequest" + }, + "istio_mixer_v1_CheckRequest_QuotaParams": { + "type": "object", + "description": "", + "properties": { + "amount": { + "type": "integer", + "description": "", + "javaType": "Long" + }, + "bestEffort": { + "type": "boolean", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.mixer.v1.QuotaParams" + }, + "istio_mixer_v1_CheckResponse": { + "type": "object", + "description": "", + "properties": { + "precondition": { + "$ref": "#/definitions/istio_mixer_v1_CheckResponse_PreconditionResult", + "javaType": "me.snowdrop.istio.api.mixer.v1.PreconditionResult" + }, + "quotas": { + "type": "object", + "description": "", + "additionalProperties": { + "$ref": "#/definitions/istio_mixer_v1_CheckResponse_QuotaResult", + "javaType": "me.snowdrop.istio.api.mixer.v1.QuotaResult" + }, + "javaType": "java.util.Map\u003cString,me.snowdrop.istio.api.mixer.v1.QuotaResult\u003e" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.mixer.v1.CheckResponse" + }, + "istio_mixer_v1_CheckResponse_PreconditionResult": { + "type": "object", + "description": "", + "properties": { + "referencedAttributes": { + "$ref": "#/definitions/istio_mixer_v1_ReferencedAttributes", + "javaType": "me.snowdrop.istio.api.mixer.v1.ReferencedAttributes" + }, + "routeDirective": { + "$ref": "#/definitions/istio_mixer_v1_RouteDirective", + "javaType": "me.snowdrop.istio.api.mixer.v1.RouteDirective" + }, + "status": { + "$ref": "#/definitions/google_rpc_Status", + "javaType": "me.snowdrop.istio.api.Status" + }, + "validDuration": { + "type": "integer", + "description": "", + "javaType": "Long" + }, + "validUseCount": { + "type": "integer", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.mixer.v1.PreconditionResult" + }, + "istio_mixer_v1_CheckResponse_QuotaResult": { + "type": "object", + "description": "", + "properties": { + "grantedAmount": { + "type": "integer", + "description": "", + "javaType": "Long" + }, + "referencedAttributes": { + "$ref": "#/definitions/istio_mixer_v1_ReferencedAttributes", + "javaType": "me.snowdrop.istio.api.mixer.v1.ReferencedAttributes" + }, + "validDuration": { + "type": "integer", + "description": "", + "javaType": "Long" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.mixer.v1.QuotaResult" + }, + "istio_mixer_v1_CompressedAttributes": { + "type": "object", + "description": "", + "properties": { + "bools": { + "type": "object", + "description": "", + "additionalProperties": { + "type": "boolean", + "description": "" + }, + "javaType": "java.util.Map\u003cString,Boolean\u003e" + }, + "bytes": { + "type": "object", + "description": "", + "additionalProperties": { + "type": "string", + "description": "" + }, + "javaType": "java.util.Map\u003cString,String\u003e" + }, + "doubles": { + "type": "object", + "description": "", + "additionalProperties": { + "type": "number", + "description": "" + }, + "javaType": "java.util.Map\u003cString,Double\u003e" + }, + "durations": { + "type": "object", + "description": "", + "additionalProperties": { + "type": "integer", + "description": "", + "javaType": "Long" + }, + "javaType": "java.util.Map\u003cString,Long\u003e" + }, + "int64s": { + "type": "object", + "description": "", + "additionalProperties": { + "type": "integer", + "description": "", + "javaType": "Long" + }, + "javaType": "java.util.Map\u003cString,Long\u003e" + }, + "stringMaps": { + "type": "object", + "description": "", + "additionalProperties": { + "$ref": "#/definitions/istio_mixer_v1_StringMap", + "javaType": "me.snowdrop.istio.api.mixer.v1.StringMap" + }, + "javaType": "java.util.Map\u003cString,me.snowdrop.istio.api.mixer.v1.StringMap\u003e" + }, + "strings": { + "type": "object", + "description": "", + "additionalProperties": { + "type": "integer", + "description": "" + }, + "javaType": "java.util.Map\u003cString,Integer\u003e" + }, + "timestamps": { + "type": "object", + "description": "", + "additionalProperties": { + "type": "string", + "description": "" + }, + "javaType": "java.util.Map\u003cString,String\u003e" + }, + "words": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.mixer.v1.CompressedAttributes" + }, + "istio_mixer_v1_HeaderOperation": { + "type": "object", + "description": "", + "properties": { + "name": { + "type": "string", + "description": "" + }, + "operation": { + "javaType": "me.snowdrop.istio.api.mixer.v1.Operation" + }, + "value": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.mixer.v1.HeaderOperation" + }, + "istio_mixer_v1_ReferencedAttributes": { + "type": "object", + "description": "", + "properties": { + "attributeMatches": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/istio_mixer_v1_ReferencedAttributes_AttributeMatch", + "javaType": "me.snowdrop.istio.api.mixer.v1.AttributeMatch" + } + }, + "words": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.mixer.v1.ReferencedAttributes" + }, + "istio_mixer_v1_ReferencedAttributes_AttributeMatch": { + "type": "object", + "description": "", + "properties": { + "condition": { + "javaType": "me.snowdrop.istio.api.mixer.v1.Condition" + }, + "mapKey": { + "type": "integer", + "description": "" + }, + "name": { + "type": "integer", + "description": "" + }, + "regex": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.mixer.v1.AttributeMatch" + }, + "istio_mixer_v1_ReportRequest": { + "type": "object", + "description": "", + "properties": { + "attributes": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/istio_mixer_v1_CompressedAttributes", + "javaType": "me.snowdrop.istio.api.mixer.v1.CompressedAttributes" + } + }, + "defaultWords": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + }, + "globalWordCount": { + "type": "integer", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.mixer.v1.ReportRequest" + }, + "istio_mixer_v1_ReportResponse": { + "type": "object", + "description": "", + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.mixer.v1.ReportResponse" + }, + "istio_mixer_v1_RouteDirective": { + "type": "object", + "description": "", + "properties": { + "directResponseBody": { + "type": "string", + "description": "" + }, + "directResponseCode": { + "type": "integer", + "description": "" + }, + "requestHeaderOperations": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/istio_mixer_v1_HeaderOperation", + "javaType": "me.snowdrop.istio.api.mixer.v1.HeaderOperation" + } + }, + "responseHeaderOperations": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/istio_mixer_v1_HeaderOperation", + "javaType": "me.snowdrop.istio.api.mixer.v1.HeaderOperation" + } + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.mixer.v1.RouteDirective" + }, + "istio_mixer_v1_StringMap": { + "type": "object", + "description": "", + "properties": { + "entries": { + "type": "object", + "description": "", + "additionalProperties": { + "type": "integer", + "description": "" + }, + "javaType": "java.util.Map\u003cString,Integer\u003e" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.mixer.v1.StringMap" + }, + "istio_networking_v1alpha3_ConnectionPoolSettings": { + "type": "object", + "description": "", + "properties": { + "http": { + "$ref": "#/definitions/istio_networking_v1alpha3_ConnectionPoolSettings_HTTPSettings", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.HTTPSettings" + }, + "tcp": { + "$ref": "#/definitions/istio_networking_v1alpha3_ConnectionPoolSettings_TCPSettings", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.TCPSettings" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.ConnectionPoolSettings" + }, + "istio_networking_v1alpha3_ConnectionPoolSettings_HTTPSettings": { + "type": "object", + "description": "", + "properties": { + "http1MaxPendingRequests": { + "type": "integer", + "description": "" + }, + "http2MaxRequests": { + "type": "integer", + "description": "" + }, + "maxRequestsPerConnection": { + "type": "integer", + "description": "" + }, + "maxRetries": { + "type": "integer", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.HTTPSettings" + }, + "istio_networking_v1alpha3_ConnectionPoolSettings_TCPSettings": { + "type": "object", + "description": "", + "properties": { + "connectTimeout": { + "$ref": "#/definitions/protobuf_types_Duration", + "javaType": "me.snowdrop.istio.api.Duration" + }, + "maxConnections": { + "type": "integer", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.TCPSettings" + }, + "istio_networking_v1alpha3_CorsPolicy": { + "type": "object", + "description": "", + "properties": { + "allowCredentials": { + "$ref": "#/definitions/protobuf_types_BoolValue", + "javaType": "me.snowdrop.istio.api.BoolValue" + }, + "allowHeaders": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + }, + "allowMethods": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + }, + "allowOrigin": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + }, + "exposeHeaders": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + }, + "maxAge": { + "$ref": "#/definitions/protobuf_types_Duration", + "javaType": "me.snowdrop.istio.api.Duration" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.CorsPolicy" + }, + "istio_networking_v1alpha3_Destination": { + "type": "object", + "description": "", + "properties": { + "host": { + "type": "string", + "description": "" + }, + "port": { + "$ref": "#/definitions/istio_networking_v1alpha3_PortSelector", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.PortSelector" + }, + "subset": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.Destination" + }, + "istio_networking_v1alpha3_DestinationRule": { + "type": "object", + "description": "", + "properties": { + "host": { + "type": "string", + "description": "" + }, + "subsets": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/istio_networking_v1alpha3_Subset", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.Subset" + } + }, + "trafficPolicy": { + "$ref": "#/definitions/istio_networking_v1alpha3_TrafficPolicy", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.TrafficPolicy" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.DestinationRuleSpec" + }, + "istio_networking_v1alpha3_DestinationWeight": { + "type": "object", + "description": "", + "properties": { + "destination": { + "$ref": "#/definitions/istio_networking_v1alpha3_Destination", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.Destination" + }, + "weight": { + "type": "integer", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.DestinationWeight" + }, + "istio_networking_v1alpha3_EnvoyFilter": { + "type": "object", + "description": "", + "properties": { + "filters": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/istio_networking_v1alpha3_EnvoyFilter_Filter", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.Filter" + } + }, + "workloadLabels": { + "type": "object", + "description": "", + "additionalProperties": { + "type": "string", + "description": "" + }, + "javaType": "java.util.Map\u003cString,String\u003e" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.EnvoyFilterSpec" + }, + "istio_networking_v1alpha3_EnvoyFilter_Filter": { + "type": "object", + "description": "", + "properties": { + "filterConfig": { + "$ref": "#/definitions/protobuf_types_Struct", + "javaType": "me.snowdrop.istio.api.Struct" + }, + "filterName": { + "type": "string", + "description": "" + }, + "filterType": { + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.FilterType" + }, + "insertPosition": { + "$ref": "#/definitions/istio_networking_v1alpha3_EnvoyFilter_InsertPosition", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.InsertPosition" + }, + "listenerMatch": { + "$ref": "#/definitions/istio_networking_v1alpha3_EnvoyFilter_ListenerMatch", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.ListenerMatch" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.Filter" + }, + "istio_networking_v1alpha3_EnvoyFilter_InsertPosition": { + "type": "object", + "description": "", + "properties": { + "index": { + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.Index" + }, + "relativeTo": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.InsertPosition" + }, + "istio_networking_v1alpha3_EnvoyFilter_ListenerMatch": { + "type": "object", + "description": "", + "properties": { + "address": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + }, + "listenerProtocol": { + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.ListenerProtocol" + }, + "listenerType": { + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.ListenerType" + }, + "portNamePrefix": { + "type": "string", + "description": "" + }, + "portNumber": { + "type": "integer", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.ListenerMatch" + }, + "istio_networking_v1alpha3_Gateway": { + "type": "object", + "description": "", + "properties": { + "selector": { + "type": "object", + "description": "", + "additionalProperties": { + "type": "string", + "description": "" + }, + "javaType": "java.util.Map\u003cString,String\u003e" + }, + "servers": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/istio_networking_v1alpha3_Server", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.Server" + } + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.GatewaySpec" + }, + "istio_networking_v1alpha3_HTTPFaultInjection": { + "type": "object", + "description": "", + "properties": { + "abort": { + "$ref": "#/definitions/istio_networking_v1alpha3_HTTPFaultInjection_Abort", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.Abort" + }, + "delay": { + "$ref": "#/definitions/istio_networking_v1alpha3_HTTPFaultInjection_Delay", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.Delay" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.HTTPFaultInjection" + }, + "istio_networking_v1alpha3_HTTPFaultInjection_Abort": { + "type": "object", + "description": "", + "properties": { + "errorType": { + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.Abort.ErrorType", + "isInterface": true + }, + "percent": { + "type": "integer", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.Abort" + }, + "istio_networking_v1alpha3_HTTPFaultInjection_Abort_GrpcStatus": { + "type": "object", + "javaInterfaces": [ + "me.snowdrop.istio.api.networking.v1alpha3.Abort.ErrorType" + ], + "description": "", + "properties": { + "grpcStatus": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.GrpcStatusErrorType" + }, + "istio_networking_v1alpha3_HTTPFaultInjection_Abort_Http2Error": { + "type": "object", + "javaInterfaces": [ + "me.snowdrop.istio.api.networking.v1alpha3.Abort.ErrorType" + ], + "description": "", + "properties": { + "http2Error": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.Http2ErrorErrorType" + }, + "istio_networking_v1alpha3_HTTPFaultInjection_Abort_HttpStatus": { + "type": "object", + "javaInterfaces": [ + "me.snowdrop.istio.api.networking.v1alpha3.Abort.ErrorType" + ], + "description": "", + "properties": { + "httpStatus": { + "type": "integer", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.HttpStatusErrorType" + }, + "istio_networking_v1alpha3_HTTPFaultInjection_Delay": { + "type": "object", + "description": "", + "properties": { + "httpDelayType": { + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.Delay.HttpDelayType", + "isInterface": true + }, + "percent": { + "type": "integer", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.Delay" + }, + "istio_networking_v1alpha3_HTTPFaultInjection_Delay_ExponentialDelay": { + "type": "object", + "javaInterfaces": [ + "me.snowdrop.istio.api.networking.v1alpha3.Delay.HttpDelayType" + ], + "description": "", + "properties": { + "exponentialDelay": { + "$ref": "#/definitions/protobuf_types_Duration", + "javaType": "me.snowdrop.istio.api.Duration" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.ExponentialDelayHttpDelayType" + }, + "istio_networking_v1alpha3_HTTPFaultInjection_Delay_FixedDelay": { + "type": "object", + "javaInterfaces": [ + "me.snowdrop.istio.api.networking.v1alpha3.Delay.HttpDelayType" + ], + "description": "", + "properties": { + "fixedDelay": { + "$ref": "#/definitions/protobuf_types_Duration", + "javaType": "me.snowdrop.istio.api.Duration" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.FixedDelayHttpDelayType" + }, + "istio_networking_v1alpha3_HTTPMatchRequest": { + "type": "object", + "description": "", + "properties": { + "authority": { + "$ref": "#/definitions/istio_networking_v1alpha3_StringMatch", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.StringMatch" + }, + "gateways": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + }, + "headers": { + "type": "object", + "description": "", + "additionalProperties": { + "$ref": "#/definitions/istio_networking_v1alpha3_StringMatch", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.StringMatch" + }, + "javaType": "java.util.Map\u003cString,me.snowdrop.istio.api.networking.v1alpha3.StringMatch\u003e" + }, + "method": { + "$ref": "#/definitions/istio_networking_v1alpha3_StringMatch", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.StringMatch" + }, + "port": { + "type": "integer", + "description": "" + }, + "scheme": { + "$ref": "#/definitions/istio_networking_v1alpha3_StringMatch", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.StringMatch" + }, + "sourceLabels": { + "type": "object", + "description": "", + "additionalProperties": { + "type": "string", + "description": "" + }, + "javaType": "java.util.Map\u003cString,String\u003e" + }, + "uri": { + "$ref": "#/definitions/istio_networking_v1alpha3_StringMatch", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.StringMatch" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.HTTPMatchRequest" + }, + "istio_networking_v1alpha3_HTTPRedirect": { + "type": "object", + "description": "", + "properties": { + "authority": { + "type": "string", + "description": "" + }, + "uri": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.HTTPRedirect" + }, + "istio_networking_v1alpha3_HTTPRetry": { + "type": "object", + "description": "", + "properties": { + "attempts": { + "type": "integer", + "description": "" + }, + "perTryTimeout": { + "$ref": "#/definitions/protobuf_types_Duration", + "javaType": "me.snowdrop.istio.api.Duration" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.HTTPRetry" + }, + "istio_networking_v1alpha3_HTTPRewrite": { + "type": "object", + "description": "", + "properties": { + "authority": { + "type": "string", + "description": "" + }, + "uri": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.HTTPRewrite" + }, + "istio_networking_v1alpha3_HTTPRoute": { + "type": "object", + "description": "", + "properties": { + "appendHeaders": { + "type": "object", + "description": "", + "additionalProperties": { + "type": "string", + "description": "" + }, + "javaType": "java.util.Map\u003cString,String\u003e" + }, + "corsPolicy": { + "$ref": "#/definitions/istio_networking_v1alpha3_CorsPolicy", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.CorsPolicy" + }, + "fault": { + "$ref": "#/definitions/istio_networking_v1alpha3_HTTPFaultInjection", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.HTTPFaultInjection" + }, + "match": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/istio_networking_v1alpha3_HTTPMatchRequest", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.HTTPMatchRequest" + } + }, + "mirror": { + "$ref": "#/definitions/istio_networking_v1alpha3_Destination", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.Destination" + }, + "redirect": { + "$ref": "#/definitions/istio_networking_v1alpha3_HTTPRedirect", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.HTTPRedirect" + }, + "removeResponseHeaders": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + }, + "retries": { + "$ref": "#/definitions/istio_networking_v1alpha3_HTTPRetry", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.HTTPRetry" + }, + "rewrite": { + "$ref": "#/definitions/istio_networking_v1alpha3_HTTPRewrite", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.HTTPRewrite" + }, + "route": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/istio_networking_v1alpha3_DestinationWeight", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.DestinationWeight" + } + }, + "timeout": { + "$ref": "#/definitions/protobuf_types_Duration", + "javaType": "me.snowdrop.istio.api.Duration" + }, + "websocketUpgrade": { + "type": "boolean", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.HTTPRoute" + }, + "istio_networking_v1alpha3_L4MatchAttributes": { + "type": "object", + "description": "", + "properties": { + "destinationSubnets": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + }, + "gateways": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + }, + "port": { + "type": "integer", + "description": "" + }, + "sourceLabels": { + "type": "object", + "description": "", + "additionalProperties": { + "type": "string", + "description": "" + }, + "javaType": "java.util.Map\u003cString,String\u003e" + }, + "sourceSubnet": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.L4MatchAttributes" + }, + "istio_networking_v1alpha3_LoadBalancerSettings": { + "type": "object", + "description": "", + "properties": { + "lbPolicy": { + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.LoadBalancerSettings.LbPolicy", + "isInterface": true + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.LoadBalancerSettings" + }, + "istio_networking_v1alpha3_LoadBalancerSettings_ConsistentHash": { + "type": "object", + "description": "", + "properties": { + "consistentHash": { + "$ref": "#/definitions/istio_networking_v1alpha3_LoadBalancerSettings_ConsistentHashLB", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.ConsistentHashLB" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.ConsistentHash" + }, + "istio_networking_v1alpha3_LoadBalancerSettings_ConsistentHashLB": { + "type": "object", + "description": "", + "properties": { + "hashKey": { + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.ConsistentHashLB.HashKey", + "isInterface": true + }, + "minimumRingSize": { + "type": "integer", + "description": "", + "javaType": "Long" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.ConsistentHashLB" + }, + "istio_networking_v1alpha3_LoadBalancerSettings_ConsistentHashLB_HTTPCookie": { + "type": "object", + "description": "", + "properties": { + "name": { + "type": "string", + "description": "" + }, + "path": { + "type": "string", + "description": "" + }, + "ttl": { + "type": "integer", + "description": "", + "javaType": "Long" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.HTTPCookie" + }, + "istio_networking_v1alpha3_LoadBalancerSettings_ConsistentHashLB_HttpCookie": { + "type": "object", + "javaInterfaces": [ + "me.snowdrop.istio.api.networking.v1alpha3.ConsistentHashLB.HashKey" + ], + "description": "", + "properties": { + "httpCookie": { + "$ref": "#/definitions/istio_networking_v1alpha3_LoadBalancerSettings_ConsistentHashLB_HTTPCookie", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.HTTPCookie" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.HttpCookieHashKey" + }, + "istio_networking_v1alpha3_LoadBalancerSettings_ConsistentHashLB_HttpHeaderName": { + "type": "object", + "javaInterfaces": [ + "me.snowdrop.istio.api.networking.v1alpha3.ConsistentHashLB.HashKey" + ], + "description": "", + "properties": { + "httpHeaderName": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.HttpHeaderNameHashKey" + }, + "istio_networking_v1alpha3_LoadBalancerSettings_ConsistentHashLB_UseSourceIp": { + "type": "object", + "javaInterfaces": [ + "me.snowdrop.istio.api.networking.v1alpha3.ConsistentHashLB.HashKey" + ], + "description": "", + "properties": { + "useSourceIp": { + "type": "boolean", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.UseSourceIpHashKey" + }, + "istio_networking_v1alpha3_LoadBalancerSettings_Simple": { + "type": "object", + "javaInterfaces": [ + "me.snowdrop.istio.api.networking.v1alpha3.LoadBalancerSettings.LbPolicy" + ], + "description": "", + "properties": { + "simple": { + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.SimpleLB" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.SimpleLbPolicy" + }, + "istio_networking_v1alpha3_OutlierDetection": { + "type": "object", + "description": "", + "properties": { + "baseEjectionTime": { + "$ref": "#/definitions/protobuf_types_Duration", + "javaType": "me.snowdrop.istio.api.Duration" + }, + "consecutiveErrors": { + "type": "integer", + "description": "" + }, + "interval": { + "$ref": "#/definitions/protobuf_types_Duration", + "javaType": "me.snowdrop.istio.api.Duration" + }, + "maxEjectionPercent": { + "type": "integer", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.OutlierDetection" + }, + "istio_networking_v1alpha3_Port": { + "type": "object", + "description": "", + "properties": { + "name": { + "type": "string", + "description": "" + }, + "number": { + "type": "integer", + "description": "" + }, + "protocol": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.Port" + }, + "istio_networking_v1alpha3_PortSelector": { + "type": "object", + "description": "", + "properties": { + "port": { + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.PortSelector.Port", + "isInterface": true + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.PortSelector" + }, + "istio_networking_v1alpha3_PortSelector_Name": { + "type": "object", + "javaInterfaces": [ + "me.snowdrop.istio.api.networking.v1alpha3.PortSelector.Port" + ], + "description": "", + "properties": { + "name": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.NamePort" + }, + "istio_networking_v1alpha3_PortSelector_Number": { + "type": "object", + "javaInterfaces": [ + "me.snowdrop.istio.api.networking.v1alpha3.PortSelector.Port" + ], + "description": "", + "properties": { + "number": { + "type": "integer", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.NumberPort" + }, + "istio_networking_v1alpha3_Server": { + "type": "object", + "description": "", + "properties": { + "hosts": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + }, + "port": { + "$ref": "#/definitions/istio_networking_v1alpha3_Port", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.Port" + }, + "tls": { + "$ref": "#/definitions/istio_networking_v1alpha3_Server_TLSOptions", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.TLSOptions" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.Server" + }, + "istio_networking_v1alpha3_Server_TLSOptions": { + "type": "object", + "description": "", + "properties": { + "caCertificates": { + "type": "string", + "description": "" + }, + "httpsRedirect": { + "type": "boolean", + "description": "" + }, + "mode": { + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.TLSOptionsMode" + }, + "privateKey": { + "type": "string", + "description": "" + }, + "serverCertificate": { + "type": "string", + "description": "" + }, + "subjectAltNames": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.TLSOptions" + }, + "istio_networking_v1alpha3_ServiceEntry": { + "type": "object", + "description": "", + "properties": { + "addresses": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + }, + "endpoints": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/istio_networking_v1alpha3_ServiceEntry_Endpoint", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.Endpoint" + } + }, + "hosts": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + }, + "location": { + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.ServiceEntryLocation" + }, + "ports": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/istio_networking_v1alpha3_Port", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.Port" + } + }, + "resolution": { + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.ServiceEntryResolution" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.ServiceEntrySpec" + }, + "istio_networking_v1alpha3_ServiceEntry_Endpoint": { + "type": "object", + "description": "", + "properties": { + "address": { + "type": "string", + "description": "" + }, + "labels": { + "type": "object", + "description": "", + "additionalProperties": { + "type": "string", + "description": "" + }, + "javaType": "java.util.Map\u003cString,String\u003e" + }, + "ports": { + "type": "object", + "description": "", + "additionalProperties": { + "type": "integer", + "description": "" + }, + "javaType": "java.util.Map\u003cString,Integer\u003e" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.Endpoint" + }, + "istio_networking_v1alpha3_StringMatch": { + "type": "object", + "description": "", + "properties": { + "matchType": { + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.StringMatch.MatchType", + "isInterface": true + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.StringMatch" + }, + "istio_networking_v1alpha3_StringMatch_Exact": { + "type": "object", + "javaInterfaces": [ + "me.snowdrop.istio.api.networking.v1alpha3.StringMatch.MatchType" + ], + "description": "", + "properties": { + "exact": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.ExactMatchType" + }, + "istio_networking_v1alpha3_StringMatch_Prefix": { + "type": "object", + "javaInterfaces": [ + "me.snowdrop.istio.api.networking.v1alpha3.StringMatch.MatchType" + ], + "description": "", + "properties": { + "prefix": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.PrefixMatchType" + }, + "istio_networking_v1alpha3_StringMatch_Regex": { + "type": "object", + "javaInterfaces": [ + "me.snowdrop.istio.api.networking.v1alpha3.StringMatch.MatchType" + ], + "description": "", + "properties": { + "regex": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.RegexMatchType" + }, + "istio_networking_v1alpha3_Subset": { + "type": "object", + "description": "", + "properties": { + "labels": { + "type": "object", + "description": "", + "additionalProperties": { + "type": "string", + "description": "" + }, + "javaType": "java.util.Map\u003cString,String\u003e" + }, + "name": { + "type": "string", + "description": "" + }, + "trafficPolicy": { + "$ref": "#/definitions/istio_networking_v1alpha3_TrafficPolicy", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.TrafficPolicy" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.Subset" + }, + "istio_networking_v1alpha3_TCPRoute": { + "type": "object", + "description": "", + "properties": { + "match": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/istio_networking_v1alpha3_L4MatchAttributes", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.L4MatchAttributes" + } + }, + "route": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/istio_networking_v1alpha3_DestinationWeight", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.DestinationWeight" + } + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.TCPRoute" + }, + "istio_networking_v1alpha3_TLSMatchAttributes": { + "type": "object", + "description": "", + "properties": { + "destinationSubnets": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + }, + "gateways": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + }, + "port": { + "type": "integer", + "description": "" + }, + "sniHosts": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + }, + "sourceLabels": { + "type": "object", + "description": "", + "additionalProperties": { + "type": "string", + "description": "" + }, + "javaType": "java.util.Map\u003cString,String\u003e" + }, + "sourceSubnet": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.TLSMatchAttributes" + }, + "istio_networking_v1alpha3_TLSRoute": { + "type": "object", + "description": "", + "properties": { + "match": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/istio_networking_v1alpha3_TLSMatchAttributes", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.TLSMatchAttributes" + } + }, + "route": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/istio_networking_v1alpha3_DestinationWeight", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.DestinationWeight" + } + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.TLSRoute" + }, + "istio_networking_v1alpha3_TLSSettings": { + "type": "object", + "description": "", + "properties": { + "caCertificates": { + "type": "string", + "description": "" + }, + "clientCertificate": { + "type": "string", + "description": "" + }, + "mode": { + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.TLSSettingsMode" + }, + "privateKey": { + "type": "string", + "description": "" + }, + "sni": { + "type": "string", + "description": "" + }, + "subjectAltNames": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.TLSSettings" + }, + "istio_networking_v1alpha3_TrafficPolicy": { + "type": "object", + "description": "", + "properties": { + "connectionPool": { + "$ref": "#/definitions/istio_networking_v1alpha3_ConnectionPoolSettings", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.ConnectionPoolSettings" + }, + "loadBalancer": { + "$ref": "#/definitions/istio_networking_v1alpha3_LoadBalancerSettings", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.LoadBalancerSettings" + }, + "outlierDetection": { + "$ref": "#/definitions/istio_networking_v1alpha3_OutlierDetection", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.OutlierDetection" + }, + "portLevelSettings": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/istio_networking_v1alpha3_TrafficPolicy_PortTrafficPolicy", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.PortTrafficPolicy" + } + }, + "tls": { + "$ref": "#/definitions/istio_networking_v1alpha3_TLSSettings", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.TLSSettings" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.TrafficPolicy" + }, + "istio_networking_v1alpha3_TrafficPolicy_PortTrafficPolicy": { + "type": "object", + "description": "", + "properties": { + "connectionPool": { + "$ref": "#/definitions/istio_networking_v1alpha3_ConnectionPoolSettings", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.ConnectionPoolSettings" + }, + "loadBalancer": { + "$ref": "#/definitions/istio_networking_v1alpha3_LoadBalancerSettings", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.LoadBalancerSettings" + }, + "outlierDetection": { + "$ref": "#/definitions/istio_networking_v1alpha3_OutlierDetection", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.OutlierDetection" + }, + "port": { + "$ref": "#/definitions/istio_networking_v1alpha3_PortSelector", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.PortSelector" + }, + "tls": { + "$ref": "#/definitions/istio_networking_v1alpha3_TLSSettings", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.TLSSettings" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.PortTrafficPolicy" + }, + "istio_networking_v1alpha3_VirtualService": { + "type": "object", + "description": "", + "properties": { + "gateways": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + }, + "hosts": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + }, + "http": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/istio_networking_v1alpha3_HTTPRoute", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.HTTPRoute" + } + }, + "tcp": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/istio_networking_v1alpha3_TCPRoute", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.TCPRoute" + } + }, + "tls": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/istio_networking_v1alpha3_TLSRoute", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.TLSRoute" + } + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.VirtualServiceSpec" + }, + "istio_policy_v1beta1_Action": { + "type": "object", + "description": "", + "properties": { + "handler": { + "type": "string", + "description": "" + }, + "instances": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.policy.v1beta1.Action" + }, + "istio_policy_v1beta1_Rule": { + "type": "object", + "description": "", + "properties": { + "actions": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/istio_policy_v1beta1_Action", + "javaType": "me.snowdrop.istio.api.policy.v1beta1.Action" + } + }, + "match": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.policy.v1beta1.RuleSpec" + }, + "istio_policy_v1beta1_TimeStamp": { + "type": "object", + "description": "", + "properties": { + "value": { + "$ref": "#/definitions/protobuf_types_Timestamp", + "javaType": "me.snowdrop.istio.api.TimeStamp" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.TimeStamp" + }, + "istio_policy_v1beta1_Value": { + "type": "object", + "description": "", + "properties": { + "value": { + "javaType": "me.snowdrop.istio.api.cexl.TypedValue", + "isInterface": true + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.cexl.TypedValue" + }, + "istio_rbac_v1alpha1_AccessRule": { + "type": "object", + "description": "", + "properties": { + "constraints": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/istio_rbac_v1alpha1_AccessRule_Constraint", + "javaType": "me.snowdrop.istio.api.rbac.v1alpha1.Constraint" + } + }, + "methods": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + }, + "paths": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + }, + "services": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.rbac.v1alpha1.AccessRule" + }, + "istio_rbac_v1alpha1_AccessRule_Constraint": { + "type": "object", + "description": "", + "properties": { + "key": { + "type": "string", + "description": "" + }, + "values": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.rbac.v1alpha1.Constraint" + }, + "istio_rbac_v1alpha1_RbacConfig": { + "type": "object", + "description": "", + "properties": { + "exclusion": { + "$ref": "#/definitions/istio_rbac_v1alpha1_RbacConfig_Target", + "javaType": "me.snowdrop.istio.api.rbac.v1alpha1.Target" + }, + "inclusion": { + "$ref": "#/definitions/istio_rbac_v1alpha1_RbacConfig_Target", + "javaType": "me.snowdrop.istio.api.rbac.v1alpha1.Target" + }, + "mode": { + "javaType": "me.snowdrop.istio.api.rbac.v1alpha1.Mode" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.rbac.v1alpha1.RbacConfigSpec" + }, + "istio_rbac_v1alpha1_RbacConfig_Target": { + "type": "object", + "description": "", + "properties": { + "namespaces": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + }, + "services": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.rbac.v1alpha1.Target" + }, + "istio_rbac_v1alpha1_RoleRef": { + "type": "object", + "description": "", + "properties": { + "kind": { + "type": "string", + "description": "" + }, + "name": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.rbac.v1alpha1.RoleRef" + }, + "istio_rbac_v1alpha1_ServiceRole": { + "type": "object", + "description": "", + "properties": { + "rules": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/istio_rbac_v1alpha1_AccessRule", + "javaType": "me.snowdrop.istio.api.rbac.v1alpha1.AccessRule" + } + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.rbac.v1alpha1.ServiceRoleSpec" + }, + "istio_rbac_v1alpha1_ServiceRoleBinding": { + "type": "object", + "description": "", + "properties": { + "mode": { + "javaType": "me.snowdrop.istio.api.rbac.v1alpha1.EnforcementMode" + }, + "roleRef": { + "$ref": "#/definitions/istio_rbac_v1alpha1_RoleRef", + "javaType": "me.snowdrop.istio.api.rbac.v1alpha1.RoleRef" + }, + "subjects": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/istio_rbac_v1alpha1_Subject", + "javaType": "me.snowdrop.istio.api.rbac.v1alpha1.Subject" + } + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.rbac.v1alpha1.ServiceRoleBindingSpec" + }, + "istio_rbac_v1alpha1_Subject": { + "type": "object", + "description": "", + "properties": { + "group": { + "type": "string", + "description": "" + }, + "properties": { + "type": "object", + "description": "", + "additionalProperties": { + "type": "string", + "description": "" + }, + "javaType": "java.util.Map\u003cString,String\u003e" + }, + "user": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.rbac.v1alpha1.Subject" + }, + "protobuf_duration_Duration": { + "type": "object", + "description": "", + "properties": { + "nanos": { + "type": "integer", + "description": "" + }, + "seconds": { + "type": "integer", + "description": "", + "javaType": "Long" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.Duration" + }, + "protobuf_types_Any": { + "type": "object", + "description": "", + "properties": { + "typeUrl": { + "type": "string", + "description": "" + }, + "value": { + "type": "string", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.Any" + }, + "protobuf_types_BoolValue": { + "type": "object", + "description": "", + "properties": { + "value": { + "type": "boolean", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.BoolValue" + }, + "protobuf_types_Duration": { + "type": "object", + "description": "", + "properties": { + "nanos": { + "type": "integer", + "description": "" + }, + "seconds": { + "type": "integer", + "description": "", + "javaType": "Long" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.Duration" + }, + "protobuf_types_Struct": { + "type": "object", + "description": "", + "properties": { + "fields": { + "type": "object", + "description": "", + "additionalProperties": { + "$ref": "#/definitions/protobuf_types_Value", + "javaType": "me.snowdrop.istio.api.cexl.TypedValue" + }, + "javaType": "java.util.Map\u003cString,me.snowdrop.istio.api.cexl.TypedValue\u003e" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.Struct" + }, + "protobuf_types_Timestamp": { + "type": "object", + "description": "", + "properties": { + "nanos": { + "type": "integer", + "description": "" + }, + "seconds": { + "type": "integer", + "description": "", + "javaType": "Long" + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.TimeStamp" + }, + "protobuf_types_Value": { + "type": "object", + "description": "", + "properties": { + "kind": { + "javaType": "me.snowdrop.istio.api.Kind", + "isInterface": true + } + }, + "additionalProperties": false, + "javaType": "me.snowdrop.istio.api.cexl.TypedValue" + } + }, + "type": "object", + "properties": { + "aPIKey": { + "$ref": "#/definitions/istio_mixer_apikey_InstanceMsg", + "javaType": "me.snowdrop.istio.mixer.template.apikey.ApiKeySpec" + }, + "attributeValue": { + "$ref": "#/definitions/istio_mixer_v1_Attributes_AttributeValue", + "javaType": "me.snowdrop.istio.api.cexl.TypedValue" + }, + "attributes": { + "$ref": "#/definitions/istio_mixer_v1_Attributes", + "javaType": "me.snowdrop.istio.api.mixer.v1.Attributes" + }, + "authNamePortSelector": { + "$ref": "#/definitions/istio_authentication_v1alpha1_PortSelector_Name", + "javaType": "me.snowdrop.istio.api.authentication.v1alpha1.NamePort" + }, + "authNumberPortSelector": { + "$ref": "#/definitions/istio_authentication_v1alpha1_PortSelector_Number", + "javaType": "me.snowdrop.istio.api.authentication.v1alpha1.NumberPort" + }, + "authorization": { + "$ref": "#/definitions/istio_mixer_authorization_InstanceMsg", + "javaType": "me.snowdrop.istio.mixer.template.authorization.AuthorizationSpec" + }, + "bypass": { + "$ref": "#/definitions/istio_adapter_bypass_Params", + "javaType": "me.snowdrop.istio.mixer.adapter.bypass.BypassSpec" + }, + "checkNothing": { + "$ref": "#/definitions/istio_mixer_checknothing_InstanceMsg", + "javaType": "me.snowdrop.istio.mixer.template.checknothing.CheckNothingSpec" + }, + "checkRequest": { + "$ref": "#/definitions/istio_mixer_v1_CheckRequest", + "javaType": "me.snowdrop.istio.api.mixer.v1.CheckRequest" + }, + "checkResponse": { + "$ref": "#/definitions/istio_mixer_v1_CheckResponse", + "javaType": "me.snowdrop.istio.api.mixer.v1.CheckResponse" + }, + "circonus": { + "$ref": "#/definitions/istio_adapter_circonus_Params", + "javaType": "me.snowdrop.istio.mixer.adapter.circonus.CirconusSpec" + }, + "compressedAttributes": { + "$ref": "#/definitions/istio_mixer_v1_CompressedAttributes", + "javaType": "me.snowdrop.istio.api.mixer.v1.CompressedAttributes" + }, + "consistentHashLoadBalancerSettings": { + "$ref": "#/definitions/istio_networking_v1alpha3_LoadBalancerSettings_ConsistentHash", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.ConsistentHash" + }, + "dSMetricInfo": { + "$ref": "#/definitions/istio_adapter_dogstatsd_Params_MetricInfo", + "javaType": "me.snowdrop.istio.mixer.adapter.dogstatsd.MetricInfo" + }, + "denier": { + "$ref": "#/definitions/istio_adapter_denier_Params", + "javaType": "me.snowdrop.istio.mixer.adapter.denier.DenierSpec" + }, + "destinationRule": { + "$ref": "#/definitions/istio_networking_v1alpha3_DestinationRule", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.DestinationRuleSpec" + }, + "dogstatsd": { + "$ref": "#/definitions/istio_adapter_dogstatsd_Params", + "javaType": "me.snowdrop.istio.mixer.adapter.dogstatsd.Dogstatsd" + }, + "edge": { + "$ref": "#/definitions/istio_mixer_edge_InstanceMsg", + "javaType": "me.snowdrop.istio.mixer.template.edge.EdgeSpec" + }, + "envoyFilter": { + "$ref": "#/definitions/istio_networking_v1alpha3_EnvoyFilter", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.EnvoyFilterSpec" + }, + "exactStringMatch": { + "$ref": "#/definitions/istio_networking_v1alpha3_StringMatch_Exact", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.ExactMatchType" + }, + "explicitBucketsDefinition": { + "$ref": "#/definitions/istio_adapter_prometheus_Params_MetricInfo_BucketsDefinition_ExplicitBuckets", + "javaType": "me.snowdrop.istio.mixer.adapter.prometheus.ExplicitBucketsDefinition" + }, + "exponentialBucketsDefinition": { + "$ref": "#/definitions/istio_adapter_prometheus_Params_MetricInfo_BucketsDefinition_ExponentialBuckets", + "javaType": "me.snowdrop.istio.mixer.adapter.prometheus.ExponentialBucketsDefinition" + }, + "exponentialDelay": { + "$ref": "#/definitions/istio_networking_v1alpha3_HTTPFaultInjection_Delay_ExponentialDelay", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.ExponentialDelayHttpDelayType" + }, + "fixedDelay": { + "$ref": "#/definitions/istio_networking_v1alpha3_HTTPFaultInjection_Delay_FixedDelay", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.FixedDelayHttpDelayType" + }, + "fluentd": { + "$ref": "#/definitions/istio_adapter_fluentd_Params", + "javaType": "me.snowdrop.istio.mixer.adapter.fluentd.FluentdSpec" + }, + "gateway": { + "$ref": "#/definitions/istio_networking_v1alpha3_Gateway", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.GatewaySpec" + }, + "grpcStatusAbort": { + "$ref": "#/definitions/istio_networking_v1alpha3_HTTPFaultInjection_Abort_GrpcStatus", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.GrpcStatusErrorType" + }, + "http2ErrorAbort": { + "$ref": "#/definitions/istio_networking_v1alpha3_HTTPFaultInjection_Abort_Http2Error", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.Http2ErrorErrorType" + }, + "httpCookieHashKey": { + "$ref": "#/definitions/istio_networking_v1alpha3_LoadBalancerSettings_ConsistentHashLB_HttpCookie", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.HttpCookieHashKey" + }, + "httpHeaderNameHashKey": { + "$ref": "#/definitions/istio_networking_v1alpha3_LoadBalancerSettings_ConsistentHashLB_HttpHeaderName", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.HttpHeaderNameHashKey" + }, + "httpStatusAbort": { + "$ref": "#/definitions/istio_networking_v1alpha3_HTTPFaultInjection_Abort_HttpStatus", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.HttpStatusErrorType" + }, + "jwtPeerAuthenticationMethod": { + "$ref": "#/definitions/istio_authentication_v1alpha1_PeerAuthenticationMethod_Jwt", + "javaType": "me.snowdrop.istio.api.authentication.v1alpha1.JwtParams" + }, + "kubernetesEnv": { + "$ref": "#/definitions/istio_adapter_kubernetesenv_Params", + "javaType": "me.snowdrop.istio.mixer.adapter.kubernetesenv.KubernetesenvSpec" + }, + "linearBucketsDefinition": { + "$ref": "#/definitions/istio_adapter_prometheus_Params_MetricInfo_BucketsDefinition_LinearBuckets", + "javaType": "me.snowdrop.istio.mixer.adapter.prometheus.LinearBucketsDefinition" + }, + "listChecker": { + "$ref": "#/definitions/istio_adapter_list_Params", + "javaType": "me.snowdrop.istio.mixer.adapter.list.BaseKubernetesList" + }, + "listEntry": { + "$ref": "#/definitions/istio_mixer_listentry_InstanceMsg", + "javaType": "me.snowdrop.istio.mixer.template.listentry.ListEntrySpec" + }, + "logEntry": { + "$ref": "#/definitions/istio_mixer_logentry_InstanceMsg", + "javaType": "me.snowdrop.istio.mixer.template.logentry.LogEntrySpec" + }, + "memQuota": { + "$ref": "#/definitions/istio_adapter_memquota_Params", + "javaType": "me.snowdrop.istio.mixer.adapter.memquota.MemquotaSpec" + }, + "meshConfig": { + "$ref": "#/definitions/istio_mesh_v1alpha1_MeshConfig", + "javaType": "me.snowdrop.istio.api.mesh.v1alpha1.MeshConfig" + }, + "metric": { + "$ref": "#/definitions/istio_mixer_metric_InstanceMsg", + "javaType": "me.snowdrop.istio.mixer.template.metric.MetricSpec" + }, + "mtlsPeerAuthenticationMethod": { + "$ref": "#/definitions/istio_authentication_v1alpha1_PeerAuthenticationMethod_Mtls", + "javaType": "me.snowdrop.istio.api.authentication.v1alpha1.MtlsParams" + }, + "namePortSelector": { + "$ref": "#/definitions/istio_networking_v1alpha3_PortSelector_Name", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.NamePort" + }, + "numberPortSelector": { + "$ref": "#/definitions/istio_networking_v1alpha3_PortSelector_Number", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.NumberPort" + }, + "oPA": { + "$ref": "#/definitions/istio_adapter_opa_Params", + "javaType": "me.snowdrop.istio.mixer.adapter.opa.OpaSpec" + }, + "policy": { + "$ref": "#/definitions/istio_authentication_v1alpha1_Policy", + "javaType": "me.snowdrop.istio.api.authentication.v1alpha1.PolicySpec" + }, + "prefixStringMatch": { + "$ref": "#/definitions/istio_networking_v1alpha3_StringMatch_Prefix", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.PrefixMatchType" + }, + "prometheus": { + "$ref": "#/definitions/istio_adapter_prometheus_Params", + "javaType": "me.snowdrop.istio.mixer.adapter.prometheus.PrometheusSpec" + }, + "proxyConfig": { + "$ref": "#/definitions/istio_mesh_v1alpha1_ProxyConfig", + "javaType": "me.snowdrop.istio.api.mesh.v1alpha1.ProxyConfig" + }, + "quota": { + "$ref": "#/definitions/istio_mixer_quota_InstanceMsg", + "javaType": "me.snowdrop.istio.mixer.template.quota.QuotaSpec" + }, + "quotaParams": { + "$ref": "#/definitions/istio_mixer_v1_CheckRequest_QuotaParams", + "javaType": "me.snowdrop.istio.api.mixer.v1.QuotaParams" + }, + "quotaResult": { + "$ref": "#/definitions/istio_mixer_v1_CheckResponse_QuotaResult", + "javaType": "me.snowdrop.istio.api.mixer.v1.QuotaResult" + }, + "rbac": { + "$ref": "#/definitions/istio_adapter_rbac_Params", + "javaType": "me.snowdrop.istio.mixer.adapter.rbac.RbacSpec" + }, + "rbacConfig": { + "$ref": "#/definitions/istio_rbac_v1alpha1_RbacConfig", + "javaType": "me.snowdrop.istio.api.rbac.v1alpha1.RbacConfigSpec" + }, + "redisQuota": { + "$ref": "#/definitions/istio_adapter_redisquota_Params", + "javaType": "me.snowdrop.istio.mixer.adapter.redisquota.RedisquotaSpec" + }, + "referencedAttributes": { + "$ref": "#/definitions/istio_mixer_v1_ReferencedAttributes", + "javaType": "me.snowdrop.istio.api.mixer.v1.ReferencedAttributes" + }, + "regexStringMatch": { + "$ref": "#/definitions/istio_networking_v1alpha3_StringMatch_Regex", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.RegexMatchType" + }, + "reportNothing": { + "$ref": "#/definitions/istio_mixer_reportnothing_InstanceMsg", + "javaType": "me.snowdrop.istio.mixer.template.reportnothing.ReportNothingSpec" + }, + "reportRequest": { + "$ref": "#/definitions/istio_mixer_v1_ReportRequest", + "javaType": "me.snowdrop.istio.api.mixer.v1.ReportRequest" + }, + "reportResponse": { + "$ref": "#/definitions/istio_mixer_v1_ReportResponse", + "javaType": "me.snowdrop.istio.api.mixer.v1.ReportResponse" + }, + "rule": { + "$ref": "#/definitions/istio_policy_v1beta1_Rule", + "javaType": "me.snowdrop.istio.api.policy.v1beta1.RuleSpec" + }, + "sDApiKey": { + "$ref": "#/definitions/istio_adapter_stackdriver_Params_ApiKey", + "javaType": "me.snowdrop.istio.mixer.adapter.stackdriver.ApiKeyCreds" + }, + "sDAppCredentials": { + "$ref": "#/definitions/istio_adapter_stackdriver_Params_AppCredentials", + "javaType": "me.snowdrop.istio.mixer.adapter.stackdriver.AppCredentialsCreds" + }, + "sDLogInfo": { + "$ref": "#/definitions/istio_adapter_stackdriver_Params_LogInfo", + "javaType": "me.snowdrop.istio.mixer.adapter.stackdriver.LogInfo" + }, + "sDMetricInfo": { + "$ref": "#/definitions/istio_adapter_stackdriver_Params_MetricInfo", + "javaType": "me.snowdrop.istio.mixer.adapter.stackdriver.MetricInfo" + }, + "sDServiceAccountPath": { + "$ref": "#/definitions/istio_adapter_stackdriver_Params_ServiceAccountPath", + "javaType": "me.snowdrop.istio.mixer.adapter.stackdriver.ServiceAccountPathCreds" + }, + "sWLogInfo": { + "$ref": "#/definitions/istio_adapter_solarwinds_Params_LogInfo", + "javaType": "me.snowdrop.istio.mixer.adapter.solarwinds.LogInfo" + }, + "sWMetricInfo": { + "$ref": "#/definitions/istio_adapter_solarwinds_Params_MetricInfo", + "javaType": "me.snowdrop.istio.mixer.adapter.solarwinds.MetricInfo" + }, + "serviceControl": { + "$ref": "#/definitions/istio_adapter_servicecontrol_Params", + "javaType": "me.snowdrop.istio.mixer.adapter.servicecontrol.ServicecontrolSpec" + }, + "serviceEntry": { + "$ref": "#/definitions/istio_networking_v1alpha3_ServiceEntry", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.ServiceEntrySpec" + }, + "serviceRole": { + "$ref": "#/definitions/istio_rbac_v1alpha1_ServiceRole", + "javaType": "me.snowdrop.istio.api.rbac.v1alpha1.ServiceRoleSpec" + }, + "serviceRoleBinding": { + "$ref": "#/definitions/istio_rbac_v1alpha1_ServiceRoleBinding", + "javaType": "me.snowdrop.istio.api.rbac.v1alpha1.ServiceRoleBindingSpec" + }, + "signalFX": { + "$ref": "#/definitions/istio_adapter_signalfx_Params", + "javaType": "me.snowdrop.istio.mixer.adapter.signalfx.SignalfxSpec" + }, + "simpleLoadBalancerSettings": { + "$ref": "#/definitions/istio_networking_v1alpha3_LoadBalancerSettings_Simple", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.SimpleLbPolicy" + }, + "solarWinds": { + "$ref": "#/definitions/istio_adapter_solarwinds_Params", + "javaType": "me.snowdrop.istio.mixer.adapter.solarwinds.SolarwindsSpec" + }, + "stackDriver": { + "$ref": "#/definitions/istio_adapter_stackdriver_Params", + "javaType": "me.snowdrop.istio.mixer.adapter.stackdriver.StackdriverSpec" + }, + "statsd": { + "$ref": "#/definitions/istio_adapter_statsd_Params", + "javaType": "me.snowdrop.istio.mixer.adapter.statsd.StatsdSpec" + }, + "statsdMetricInfo": { + "$ref": "#/definitions/istio_adapter_statsd_Params_MetricInfo", + "javaType": "me.snowdrop.istio.mixer.adapter.statsd.MetricInfo" + }, + "stdio": { + "$ref": "#/definitions/istio_adapter_stdio_Params", + "javaType": "me.snowdrop.istio.mixer.adapter.stdio.StdioSpec" + }, + "stringMap": { + "$ref": "#/definitions/istio_mixer_v1_StringMap", + "javaType": "me.snowdrop.istio.api.mixer.v1.StringMap" + }, + "traceSpan": { + "$ref": "#/definitions/istio_mixer_tracespan_InstanceMsg", + "javaType": "me.snowdrop.istio.mixer.template.tracespan.TraceSpanSpec" + }, + "useSourceIpHashKey": { + "$ref": "#/definitions/istio_networking_v1alpha3_LoadBalancerSettings_ConsistentHashLB_UseSourceIp", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.UseSourceIpHashKey" + }, + "virtualService": { + "$ref": "#/definitions/istio_networking_v1alpha3_VirtualService", + "javaType": "me.snowdrop.istio.api.networking.v1alpha3.VirtualServiceSpec" + } + }, + "additionalProperties": false +} diff --git a/release.nix b/release.nix index 04f42c3..bcf05e3 100644 --- a/release.nix +++ b/release.nix @@ -27,6 +27,7 @@ in { imports = [ kubenix.k8s kubenix.submodules + kubenix.istio ]; config = { @@ -95,6 +96,32 @@ in { submodule = "test"; }; + kubernetes.api."networking.istio.io"."v1alpha3".Gateway.test.spec = { + selector.istio = "ingressgateway"; + servers = [{ + port = { + number = 80; + name = "http"; + protocol = "HTTP"; + }; + hosts = ["host.example.com"]; + tls.httpsRedirect = true; + } { + port = { + number = 443; + name = "https"; + protocol = "HTTPS"; + }; + hosts = ["host.example.com"]; + tls = { + mode = "SIMPLE"; + serverCertificate = "/path/to/server.crt"; + privateKey = "/path/to/private.key"; + caCertificates = "/path/to/ca.crt"; + }; + }]; + }; + #kubernetes.api."cloud.google.com".v1beta1.BackendConfig.my-backend = { #};