cloudfoundry / app-autoscaler-cli-plugin

CF CLI Plugin for the App AutoScaler
Apache License 2.0
10 stars 12 forks source link

conversion error with invalid policy #45

Closed zyjiaobj closed 4 years ago

zyjiaobj commented 5 years ago
$ cat a.json
{"a":"123"}

$ CF_TRACE=true cf aasp testnode a.json

......

REQUEST: [2019-08-15T05:02:20-05:00]
PUT /v1/apps/bf4d3aa7-a5b9-42ea-87d2-a323f06c0861/policy HTTP/1.1
Host: autoscaler.bosh-lite.com
Authorization: [PRIVATE DATA HIDDEN]
Content-Type: application/json

{"a":"123"}

RESPONSE: [2019-08-15T05:02:20-05:00] Elapsed: 173ms
HTTP/1.1 400 Bad Request
Connection: close
Content-Length: 279
Content-Type: application/json
Date: Thu, 15 Aug 2019 10:02:20 GMT
X-Vcap-Request-Id: 743de125-62b9-4c32-6bd3-74602a4ff10b

[{"context":"(root)","description":"Must validate at least one schema (anyOf)"},{"context":"(root)","description":"scaling_rules is required"},{"context":"(root)","description":"instance_min_count is required"},{"context":"(root)","description":"instance_max_count is required"}]
panic: interface conversion: interface {} is []interface {}, not map[string]interface {}

goroutine 1 [running]:
cli/api.parseErrResponse(0xc420015200, 0x117, 0x600, 0x117, 0x600)
    /Users/liuying/Bluemix/dev/git-openautoscaler/cdlliuy/app-autoscaler-cli-plugin/src/cli/api/apihelper.go:106 +0x71b
cli/api.(*APIHelper).CreatePolicy(0xc420143fe0, 0x7bf2a0, 0xc42013bda0, 0x0, 0x0)
    /Users/liuying/Bluemix/dev/git-openautoscaler/cdlliuy/app-autoscaler-cli-plugin/src/cli/api/apihelper.go:251 +0x529
cli/commands.CreatePolicy(0x7f12a708f030, 0xc420128090, 0x7ffff9dde707, 0x8, 0x7ffff9dde710, 0x6, 0xc420078e00, 0xc420127c00)
    /Users/liuying/Bluemix/dev/git-openautoscaler/cdlliuy/app-autoscaler-cli-plugin/src/cli/commands/attach_policy.go:58 +0x3ab
cli/commands.AttachPolicyCommand.Execute(0x7ffff9dde707, 0x8, 0x7ffff9dde710, 0x6, 0xc42011f6e0, 0x0, 0x3, 0x758e01, 0x7f12a708f0c8)
    /Users/liuying/Bluemix/dev/git-openautoscaler/cdlliuy/app-autoscaler-cli-plugin/src/cli/commands/attach_policy.go:23 +0x61
cli/commands.(*AttachPolicyCommand).Execute(0xa36b28, 0xc42011f6e0, 0x0, 0x3, 0xa36b28, 0x1)
    <autogenerated>:1 +0x86
github.com/jessevdk/go-flags.(*Parser).ParseArgs(0xc4200708a0, 0xc42000e0c0, 0x3, 0x3, 0xc420128090, 0x8338ff, 0xa, 0x1, 0x1)
    /Users/liuying/Bluemix/dev/git-openautoscaler/cdlliuy/app-autoscaler-cli-plugin/src/github.com/jessevdk/go-flags/parser.go:316 +0x893
main.(*AutoScaler).Run(0xa53068, 0xa01cc0, 0xc420128090, 0xc42000e0c0, 0x3, 0x3)
    /Users/liuying/Bluemix/dev/git-openautoscaler/cdlliuy/app-autoscaler-cli-plugin/src/cli/main.go:112 +0x103
code.cloudfoundry.org/cli/plugin.Start(0x9fb540, 0xa53068)
    /Users/liuying/Bluemix/dev/git-openautoscaler/cdlliuy/app-autoscaler-cli-plugin/src/code.cloudfoundry.org/cli/plugin/plugin_shim.go:34 +0x28d
main.main()
    /Users/liuying/Bluemix/dev/git-openautoscaler/cdlliuy/app-autoscaler-cli-plugin/src/cli/main.go:103 +0x47
zyjiaobj commented 5 years ago

Policy.json content:

{
    "instance_min_count": "",
    "instance_max_count": "",
    "scaling_rules": [
        {
            "metric_type": "",
            "breach_duration_secs": "",
            "threshold": "",
            "operator": "",
            "cool_down_secs": "",
            "adjustment": ""
        }
    ],
    "schedules": {
        "timezone": "",
        "recurring_schedule": [
            {
                "start_date": "",
                "end_date": "",
                "start_time": "",
                "end_time": "",
                "days_of_week": "",
                "days_of_month": "",
                "instance_min_count": "",
                "instance_max_count": "",
                "initial_min_instance_count": ""
            }
        ],
        "specific_date": [
            {
                "start_date_time": "",
                "end_date_time": "",
                "instance_min_count": "",
                "instance_max_count": "",
                "initial_min_instance_count": ""
            }
        ]
    }
}

node-api response:

{
  "error": [
    {
      "property": "instance.instance_min_count",
      "message": "is not of a type(s) integer",
      "schema": {
        "type": "integer",
        "minimum": 1
      },
      "name": "type",
      "argument": [
        "integer"
      ],
      "stack": "instance.instance_min_count is not of a type(s) integer"
    },
    {
      "property": "instance.instance_max_count",
      "message": "is not of a type(s) integer",
      "schema": {
        "type": "integer",
        "minimum": 1
      },
      "name": "type",
      "argument": [
        "integer"
      ],
      "stack": "instance.instance_max_count is not of a type(s) integer"
    },
    {
      "property": "instance.scaling_rules[0].metric_type",
      "message": "does not match pattern \"^[a-zA-Z0-9_]+$\"",
      "schema": {
        "type": "string",
        "pattern": "^[a-zA-Z0-9_]+$"
      },
      "name": "pattern",
      "argument": "^[a-zA-Z0-9_]+$",
      "stack": "instance.scaling_rules[0].metric_type does not match pattern \"^[a-zA-Z0-9_]+$\""
    },
    {
      "property": "instance.scaling_rules[0].breach_duration_secs",
      "message": "is not of a type(s) integer",
      "schema": {
        "type": "integer",
        "minimum": 60,
        "maximum": 3600
      },
      "name": "type",
      "argument": [
        "integer"
      ],
      "stack": "instance.scaling_rules[0].breach_duration_secs is not of a type(s) integer"
    },
    {
      "property": "instance.scaling_rules[0].threshold",
      "message": "is not of a type(s) integer",
      "schema": {
        "type": "integer"
      },
      "name": "type",
      "argument": [
        "integer"
      ],
      "stack": "instance.scaling_rules[0].threshold is not of a type(s) integer"
    },
    {
      "property": "instance.scaling_rules[0].operator",
      "message": "is not one of enum values: <,>,<=,>=",
      "schema": {
        "type": "string",
        "enum": [
          "<",
          ">",
          "<=",
          ">="
        ]
      },
      "name": "enum",
      "argument": [
        "<",
        ">",
        "<=",
        ">="
      ],
      "stack": "instance.scaling_rules[0].operator is not one of enum values: <,>,<=,>="
    },
    {
      "property": "instance.scaling_rules[0].cool_down_secs",
      "message": "is not of a type(s) integer",
      "schema": {
        "type": "integer",
        "minimum": 60,
        "maximum": 3600
      },
      "name": "type",
      "argument": [
        "integer"
      ],
      "stack": "instance.scaling_rules[0].cool_down_secs is not of a type(s) integer"
    },
    {
      "property": "instance.scaling_rules[0].adjustment",
      "message": "does not match pattern \"^[-+][1-9]+[0-9]*[%]?$\"",
      "schema": {
        "type": "string",
        "pattern": "^[-+][1-9]+[0-9]*[%]?$"
      },
      "name": "pattern",
      "argument": "^[-+][1-9]+[0-9]*[%]?$",
      "stack": "instance.scaling_rules[0].adjustment does not match pattern \"^[-+][1-9]+[0-9]*[%]?$\""
    },
    {
      "property": "instance.schedules.timezone",
      "message": "does not conform to the \"timeZoneFormat\" format",
      "schema": {
        "type": "string",
        "format": "timeZoneFormat"
      },
      "name": "format",
      "argument": "timeZoneFormat",
      "stack": "instance.schedules.timezone does not conform to the \"timeZoneFormat\" format"
    },
    {
      "property": "instance.schedules.recurring_schedule[0].start_time",
      "message": "does not conform to the \"timeFormat\" format",
      "schema": {
        "type": "string",
        "format": "timeFormat"
      },
      "name": "format",
      "argument": "timeFormat",
      "stack": "instance.schedules.recurring_schedule[0].start_time does not conform to the \"timeFormat\" format"
    },
    {
      "property": "instance.schedules.recurring_schedule[0].end_time",
      "message": "does not conform to the \"timeFormat\" format",
      "schema": {
        "type": "string",
        "format": "timeFormat"
      },
      "name": "format",
      "argument": "timeFormat",
      "stack": "instance.schedules.recurring_schedule[0].end_time does not conform to the \"timeFormat\" format"
    },
    {
      "property": "instance.schedules.recurring_schedule[0].instance_min_count",
      "message": "is not of a type(s) integer",
      "schema": {
        "type": "integer",
        "minimum": 1
      },
      "name": "type",
      "argument": [
        "integer"
      ],
      "stack": "instance.schedules.recurring_schedule[0].instance_min_count is not of a type(s) integer"
    },
    {
      "property": "instance.schedules.recurring_schedule[0].instance_max_count",
      "message": "is not of a type(s) integer",
      "schema": {
        "type": "integer",
        "minimum": 1
      },
      "name": "type",
      "argument": [
        "integer"
      ],
      "stack": "instance.schedules.recurring_schedule[0].instance_max_count is not of a type(s) integer"
    },
    {
      "property": "instance.schedules.recurring_schedule[0].initial_min_instance_count",
      "message": "is not of a type(s) integer",
      "schema": {
        "type": "integer",
        "minimum": 1
      },
      "name": "type",
      "argument": [
        "integer"
      ],
      "stack": "instance.schedules.recurring_schedule[0].initial_min_instance_count is not of a type(s) integer"
    },
    {
      "property": "instance.schedules.recurring_schedule[0].days_of_week",
      "message": "is not of a type(s) array",
      "schema": {
        "type": "array",
        "uniqueItems": true,
        "minItems": 1,
        "items": {
          "type": "number",
          "enum": [
            1,
            2,
            3,
            4,
            5,
            6,
            7
          ]
        }
      },
      "name": "type",
      "argument": [
        "array"
      ],
      "stack": "instance.schedules.recurring_schedule[0].days_of_week is not of a type(s) array"
    },
    {
      "property": "instance.schedules.recurring_schedule[0].days_of_month",
      "message": "is not of a type(s) array",
      "schema": {
        "type": "array",
        "uniqueItems": true,
        "minItems": 1,
        "items": {
          "type": "number",
          "enum": [
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
            12,
            13,
            14,
            15,
            16,
            17,
            18,
            19,
            20,
            21,
            22,
            23,
            24,
            25,
            26,
            27,
            28,
            29,
            30,
            31
          ]
        }
      },
      "name": "type",
      "argument": [
        "array"
      ],
      "stack": "instance.schedules.recurring_schedule[0].days_of_month is not of a type(s) array"
    },
    {
      "property": "instance.schedules.recurring_schedule[0]",
      "message": "is not exactly one from [subschema 0],[subschema 1]",
      "schema": "/recurring_schedule",
      "instance": {
        "days_of_month": "",
        "days_of_week": "",
        "end_date": "",
        "end_time": "",
        "initial_min_instance_count": "",
        "instance_max_count": "",
        "instance_min_count": "",
        "start_date": "",
        "start_time": ""
      },
      "name": "oneOf",
      "argument": [
        "[subschema 0]",
        "[subschema 1]"
      ],
      "stack": "instance.schedules.recurring_schedule[0] is not exactly one from [subschema 0],[subschema 1]"
    },
    {
      "property": "instance.schedules.specific_date[0].start_date_time",
      "message": "does not conform to the \"dateTimeFormat\" format",
      "schema": {
        "type": "string",
        "format": "dateTimeFormat"
      },
      "name": "format",
      "argument": "dateTimeFormat",
      "stack": "instance.schedules.specific_date[0].start_date_time does not conform to the \"dateTimeFormat\" format"
    },
    {
      "property": "instance.schedules.specific_date[0].end_date_time",
      "message": "does not conform to the \"dateTimeFormat\" format",
      "schema": {
        "type": "string",
        "format": "dateTimeFormat"
      },
      "name": "format",
      "argument": "dateTimeFormat",
      "stack": "instance.schedules.specific_date[0].end_date_time does not conform to the \"dateTimeFormat\" format"
    },
    {
      "property": "instance.schedules.specific_date[0].instance_min_count",
      "message": "is not of a type(s) integer",
      "schema": {
        "type": "integer",
        "minimum": 1
      },
      "name": "type",
      "argument": [
        "integer"
      ],
      "stack": "instance.schedules.specific_date[0].instance_min_count is not of a type(s) integer"
    },
    {
      "property": "instance.schedules.specific_date[0].instance_max_count",
      "message": "is not of a type(s) integer",
      "schema": {
        "type": "integer",
        "minimum": 1
      },
      "name": "type",
      "argument": [
        "integer"
      ],
      "stack": "instance.schedules.specific_date[0].instance_max_count is not of a type(s) integer"
    },
    {
      "property": "instance.schedules.specific_date[0].initial_min_instance_count",
      "message": "is not of a type(s) integer",
      "schema": {
        "type": "integer",
        "minimum": 1
      },
      "name": "type",
      "argument": [
        "integer"
      ],
      "stack": "instance.schedules.specific_date[0].initial_min_instance_count is not of a type(s) integer"
    }
  ]
}

go-api response:

[
    {
        "context": "(root).instance_max_count",
        "description": "Invalid type. Expected: integer, given: string"
    },
    {
        "context": "(root).scaling_rules.0.breach_duration_secs",
        "description": "Invalid type. Expected: integer, given: string"
    },
    {
        "context": "(root).scaling_rules.0.threshold",
        "description": "Invalid type. Expected: integer, given: string"
    },
    {
        "context": "(root).scaling_rules.0.operator",
        "description": "scaling_rules.0.operator must be one of the following: \"\\u003c\", \"\\u003e\", \"\\u003c=\", \"\\u003e=\""
    },
    {
        "context": "(root).scaling_rules.0.cool_down_secs",
        "description": "Invalid type. Expected: integer, given: string"
    },
    {
        "context": "(root).scaling_rules.0.adjustment",
        "description": "Does not match pattern '^[-+][1-9]+[0-9]*$'"
    },
    {
        "context": "(root).scaling_rules.0.metric_type",
        "description": "Does not match pattern '^[a-zA-Z0-9_]+$'"
    },
    {
        "context": "(root).schedules.timezone",
        "description": "schedules.timezone must be one of the following: \"Etc/GMT+12\", \"Etc/GMT+11\", \"Pacific/Midway\", \"Pacific/Niue\", \"Pacific/Pago_Pago\", \"Pacific/Samoa\", \"US/Samoa\", \"Etc/GMT+10\", \"HST\", \"Pacific/Honolulu\", \"Pacific/Johnston\", \"Pacific/Rarotonga\", \"Pacific/Tahiti\", \"US/Hawaii\", \"Pacific/Marquesas\", \"America/Adak\", \"America/Atka\", \"Etc/GMT+9\", \"Pacific/Gambier\", \"US/Aleutian\", \"America/Anchorage\", \"America/Juneau\", \"America/Metlakatla\", \"America/Nome\", \"America/Sitka\", \"America/Yakutat\", \"Etc/GMT+8\", \"Pacific/Pitcairn\", \"US/Alaska\", \"America/Creston\", \"America/Dawson\", \"America/Dawson_Creek\", \"America/Ensenada\", \"America/Hermosillo\", \"America/Los_Angeles\", \"America/Phoenix\", \"America/Santa_Isabel\", \"America/Tijuana\", \"America/Vancouver\", \"America/Whitehorse\", \"Canada/Pacific\", \"Canada/Yukon\", \"Etc/GMT+7\", \"MST\", \"Mexico/BajaNorte\", \"PST8PDT\", \"US/Arizona\", \"US/Pacific\", \"US/Pacific-New\", \"America/Belize\", \"America/Boise\", \"America/Cambridge_Bay\", \"America/Chihuahua\", \"America/Costa_Rica\", \"America/Denver\", \"America/Edmonton\", \"America/El_Salvador\", \"America/Guatemala\", \"America/Inuvik\", \"America/Managua\", \"America/Mazatlan\", \"America/Ojinaga\", \"America/Regina\", \"America/Shiprock\", \"America/Swift_Current\", \"America/Tegucigalpa\", \"America/Yellowknife\", \"Canada/East-Saskatchewan\", \"Canada/Mountain\", \"Canada/Saskatchewan\", \"Etc/GMT+6\", \"MST7MDT\", \"Mexico/BajaSur\", \"Navajo\", \"Pacific/Galapagos\", \"US/Mountain\", \"America/Atikokan\", \"America/Bahia_Banderas\", \"America/Bogota\", \"America/Cancun\", \"America/Cayman\", \"America/Chicago\", \"America/Coral_Harbour\", \"America/Eirunepe\", \"America/Guayaquil\", \"America/Indiana/Knox\", \"America/Indiana/Tell_City\", \"America/Jamaica\", \"America/Knox_IN\", \"America/Lima\", \"America/Matamoros\", \"America/Menominee\", \"America/Merida\", \"America/Mexico_City\", \"America/Monterrey\", \"America/North_Dakota/Beulah\", \"America/North_Dakota/Center\", \"America/North_Dakota/New_Salem\", \"America/Panama\", \"America/Porto_Acre\", \"America/Rainy_River\", \"America/Rankin_Inlet\", \"America/Resolute\", \"America/Rio_Branco\", \"America/Winnipeg\", \"Brazil/Acre\", \"CST6CDT\", \"Canada/Central\", \"Chile/EasterIsland\", \"EST\", \"Etc/GMT+5\", \"Jamaica\", \"Mexico/General\", \"Pacific/Easter\", \"US/Central\", \"US/Indiana-Starke\", \"America/Caracas\", \"America/Anguilla\", \"America/Antigua\", \"America/Aruba\", \"America/Asuncion\", \"America/Barbados\", \"America/Blanc-Sablon\", \"America/Boa_Vista\", \"America/Campo_Grande\", \"America/Cuiaba\", \"America/Curacao\", \"America/Detroit\", \"America/Dominica\", \"America/Fort_Wayne\", \"America/Grand_Turk\", \"America/Grenada\", \"America/Guadeloupe\", \"America/Guyana\", \"America/Havana\", \"America/Indiana/Indianapolis\", \"America/Indiana/Marengo\", \"America/Indiana/Petersburg\", \"America/Indiana/Vevay\", \"America/Indiana/Vincennes\", \"America/Indiana/Winamac\", \"America/Indianapolis\", \"America/Iqaluit \", \"America/Kentucky/Louisville \", \"America/Kentucky/Monticello\", \"America/Kralendijk\", \"America/La_Paz\", \"America/Louisville \", \"America/Lower_Princes\", \"America/Manaus\", \"America/Marigot\", \"America/Martinique\", \"America/Montreal\", \"America/Montserrat\", \"America/Nassau\", \"America/New_York\", \"America/Nipigon\", \"America/Pangnirtung \", \"America/Port-au-Prince \", \"America/Port_of_Spain\", \"America/Porto_Velho\", \"America/Puerto_Rico \", \"America/Santo_Domingo \", \"America/St_Barthelemy\", \"America/St_Kitts\", \"America/St_Lucia\", \"America/St_Thomas\", \"America/St_Vincent\", \"America/Thunder_Bay\", \"America/Toronto\", \"America/Tortola\", \"America/Virgin\", \"Brazil/West\", \"Canada/Eastern\", \"Cuba\", \"EST5EDT\", \"Etc/GMT+4\", \"US/East-Indiana\", \"US/Eastern\", \"US/Michigan\", \"America/Araguaina \", \"America/Argentina/Buenos_Aires \", \"America/Argentina/Catamarca \", \"America/Argentina/ComodRivadavia \", \"America/Argentina/Cordoba \", \"America/Argentina/Jujuy \", \"America/Argentina/La_Rioja \", \"America/Argentina/Mendoza \", \"America/Argentina/Rio_Gallegos \", \"America/Argentina/Salta \", \"America/Argentina/San_Juan \", \"America/Argentina/San_Luis \", \"America/Argentina/Tucuman \", \"America/Argentina/Ushuaia\", \"America/Bahia\", \"America/Belem\", \"America/Buenos_Aires\", \"America/Catamarca\", \"America/Cayenne\", \"America/Cordoba\", \"America/Fortaleza\", \"America/Glace_Bay\", \"America/Goose_Bay\", \"America/Halifax\", \"America/Jujuy\", \"America/Maceio\", \"America/Mendoza\", \"America/Moncton\", \"America/Montevideo\", \"America/Paramaribo\", \"America/Recife\", \"America/Rosario\", \"America/Santarem\", \"America/Santiago\", \"America/Sao_Paulo\", \"America/Thule\", \"Antarctica/Palmer\", \"Antarctica/Rothera\", \"Atlantic/Bermuda\", \"Atlantic/Stanley\", \"Brazil/East\", \"Canada/Atlantic\", \"Chile/Continental\", \"Etc/GMT+3\", \"America/St_Johns\", \"Canada/Newfoundland\", \"America/Godthab\", \"America/Miquelon\", \"America/Noronha \", \"Atlantic/South_Georgia\", \"Brazil/DeNoronha\", \"Etc/GMT+2\", \"Atlantic/Cape_Verde\", \"Etc/GMT+1\", \"Africa/Abidjan\", \"Africa/Accra\", \"Africa/Bamako\", \"Africa/Banjul\", \"Africa/Bissau\", \"Africa/Conakry\", \"Africa/Dakar\", \"Africa/Freetown\", \"Africa/Lome\", \"Africa/Monrovia\", \"Africa/Nouakchott\", \"Africa/Ouagadougou\", \"Africa/Sao_Tome\", \"Africa/Timbuktu\", \"America/Danmarkshavn\", \"America/Scoresbysund\", \"Atlantic/Azores\", \"Atlantic/Reykjavik\", \"Atlantic/St_Helena\", \"Etc/GMT\", \"Etc/GMT+0\", \"Etc/GMT-0\", \"Etc/GMT0\", \"Etc/Greenwich\", \"Etc/UCT\", \"Etc/UTC\", \"Etc/Universal\", \"Etc/Zulu\", \"GMT\", \"GMT+0\", \"GMT-0\", \"GMT0\", \"Greenwich\", \"Iceland\", \"UCT\", \"UTC\", \"Universal\", \"Zulu\", \"Africa/Algiers\", \"Africa/Bangui\", \"Africa/Brazzaville\", \"Africa/Casablanca\", \"Africa/Douala\", \"Africa/El_Aaiun\", \"Africa/Kinshasa\", \"Africa/Lagos\", \"Africa/Libreville\", \"Africa/Luanda\", \"Africa/Malabo\", \"Africa/Ndjamena\", \"Africa/Niamey\", \"Africa/Porto-Novo\", \"Africa/Tunis\", \"Africa/Windhoek\", \"Atlantic/Canary\", \"Atlantic/Faeroe\", \"Atlantic/Faroe\", \"Atlantic/Madeira\", \"Eire\", \"Etc/GMT-1\", \"Europe/Belfast\", \"Europe/Dublin\", \"Europe/Guernsey\", \"Europe/Isle_of_Man\", \"Europe/Jersey\", \"Europe/Lisbon\", \"Europe/London\", \"GB\", \"GB-Eire\", \"Portugal\", \"WET\", \"Africa/Blantyre\", \"Africa/Bujumbura\", \"Africa/Cairo\", \"Africa/Ceuta\", \"Africa/Gaborone\", \"Africa/Harare\", \"Africa/Johannesburg\", \"Africa/Kigali\", \"Africa/Lubumbashi\", \"Africa/Lusaka\", \"Africa/Maputo\", \"Africa/Maseru\", \"Africa/Mbabane\", \"Africa/Tripoli\", \"Antarctica/Troll\", \"Arctic/Longyearbyen\", \"Atlantic/Jan_Mayen\", \"CET\", \"Egypt\", \"Etc/GMT-2\", \"Europe/Amsterdam\", \"Europe/Andorra\", \"Europe/Belgrade\", \"Europe/Berlin\", \"Europe/Bratislava\", \"Europe/Brussels\", \"Europe/Budapest\", \"Europe/Busingen\", \"Europe/Copenhagen\", \"Europe/Gibraltar\", \"Europe/Kaliningrad\", \"Europe/Ljubljana\", \"Europe/Luxembourg\", \"Europe/Madrid\", \"Europe/Malta\", \"Europe/Monaco\", \"Europe/Oslo\", \"Europe/Paris\", \"Europe/Podgorica\", \"Europe/Prague\", \"Europe/Rome\", \"Europe/San_Marino\", \"Europe/Sarajevo\", \"Europe/Skopje\", \"Europe/Stockholm\", \"Europe/Tirane\", \"Europe/Vaduz\", \"Europe/Vatican\", \"Europe/Vienna\", \"Europe/Warsaw\", \"Europe/Zagreb\", \"Europe/Zurich\", \"Libya\", \"MET\", \"Poland\", \"Africa/Addis_Ababa\", \"Africa/Asmara\", \"Africa/Asmera\", \"Africa/Dar_es_Salaam\", \"Africa/Djibouti\", \"Africa/Juba\", \"Africa/Kampala\", \"Africa/Khartoum\", \"Africa/Mogadishu\", \"Africa/Nairobi\", \"Antarctica/Syowa\", \"Asia/Aden\", \"Asia/Amman\", \"Asia/Baghdad\", \"Asia/Bahrain\", \"Asia/Beirut\", \"Asia/Damascus\", \"Asia/Gaza\", \"Asia/Hebron\", \"Asia/Istanbul\", \"Asia/Jerusalem\", \"Asia/Kuwait\", \"Asia/Nicosia\", \"Asia/Qatar\", \"Asia/Riyadh\", \"Asia/Tel_Aviv\", \"EET\", \"Etc/GMT-3\", \"Europe/Athens\", \"Europe/Bucharest\", \"Europe/Chisinau\", \"Europe/Helsinki\", \"Europe/Istanbul\", \"Europe/Kiev\", \"Europe/Mariehamn\", \"Europe/Minsk\", \"Europe/Moscow\", \"Europe/Nicosia\", \"Europe/Riga\", \"Europe/Simferopol\", \"Europe/Sofia\", \"Europe/Tallinn\", \"Europe/Tiraspol\", \"Europe/Uzhgorod\", \"Europe/Vilnius\", \"Europe/Volgograd\", \"Europe/Zaporozhye\", \"Indian/Antananarivo\", \"Indian/Comoro\", \"Indian/Mayotte\", \"Israel\", \"Turkey\", \"W-SU\", \"Asia/Dubai\", \"Asia/Muscat\", \"Asia/Tbilisi\", \"Asia/Yerevan\", \"Etc/GMT-4\", \"Europe/Samara\", \"Indian/Mahe\", \"Indian/Mauritius\", \"Indian/Reunion\", \"Asia/Kabul\", \"Asia/Tehran\", \"Iran\", \"Antarctica/Mawson\", \"Asia/Aqtau\", \"Asia/Aqtobe\", \"Asia/Ashgabat\", \"Asia/Ashkhabad\", \"Asia/Baku\", \"Asia/Dushanbe\", \"Asia/Karachi\", \"Asia/Oral\", \"Asia/Samarkand\", \"Asia/Tashkent\", \"Asia/Yekaterinburg\", \"Etc/GMT-5\", \"Indian/Kerguelen\", \"Indian/Maldives\", \"Asia/Calcutta\", \"Asia/Colombo\", \"Asia/Kolkata\", \"Asia/Kathmandu\", \"Asia/Katmandu\", \"Antarctica/Vostok\", \"Asia/Almaty\", \"Asia/Bishkek\", \"Asia/Dacca\", \"Asia/Dhaka\", \"Asia/Kashgar\", \"Asia/Novosibirsk\", \"Asia/Omsk\", \"Asia/Qyzylorda\", \"Asia/Thimbu\", \"Asia/Thimphu\", \"Asia/Urumqi\", \"Etc/GMT-6\", \"Indian/Chagos\", \"Asia/Rangoon\", \"Indian/Cocos\", \"Antarctica/Davis\", \"Asia/Bangkok\", \"Asia/Ho_Chi_Minh\", \"Asia/Hovd\", \"Asia/Jakarta\", \"Asia/Krasnoyarsk\", \"Asia/Novokuznetsk\", \"Asia/Phnom_Penh\", \"Asia/Pontianak\", \"Asia/Saigon\", \"Asia/Vientiane\", \"Etc/GMT-7\", \"Indian/Christmas\", \"Antarctica/Casey\", \"Asia/Brunei\", \"Asia/Chita\", \"Asia/Choibalsan\", \"Asia/Chongqing\", \"Asia/Chungking\", \"Asia/Harbin\", \"Asia/Hong_Kong\", \"Asia/Irkutsk\", \"Asia/Kuala_Lumpur\", \"Asia/Kuching\", \"Asia/Macao\", \"Asia/Macau\", \"Asia/Makassar\", \"Asia/Manila\", \"Asia/Shanghai\", \"Asia/Singapore\", \"Asia/Taipei\", \"Asia/Ujung_Pandang\", \"Asia/Ulaanbaatar\", \"Asia/Ulan_Bator\", \"Australia/Perth\", \"Australia/West\", \"Etc/GMT-8\", \"Hongkong\", \"PRC\", \"ROC\", \"Singapore\", \"Australia/Eucla\", \"Asia/Dili\", \"Asia/Jayapura\", \"Asia/Khandyga\", \"Asia/Pyongyang\", \"Asia/Seoul\", \"Asia/Tokyo\", \"Asia/Yakutsk\", \"Etc/GMT-9\", \"Japan\", \"Pacific/Palau\", \"ROK\", \"Australia/Adelaide \", \"Australia/Broken_Hill\", \"Australia/Darwin\", \"Australia/North\", \"Australia/South\", \"Australia/Yancowinna \", \"Antarctica/DumontDUrville\", \"Asia/Magadan\", \"Asia/Sakhalin\", \"Asia/Ust-Nera\", \"Asia/Vladivostok\", \"Australia/ACT\", \"Australia/Brisbane\", \"Australia/Canberra\", \"Australia/Currie\", \"Australia/Hobart\", \"Australia/Lindeman\", \"Australia/Melbourne\", \"Australia/NSW\", \"Australia/Queensland\", \"Australia/Sydney\", \"Australia/Tasmania\", \"Australia/Victoria\", \"Etc/GMT-10\", \"Pacific/Chuuk\", \"Pacific/Guam\", \"Pacific/Port_Moresby\", \"Pacific/Saipan\", \"Pacific/Truk\", \"Pacific/Yap\", \"Australia/LHI\", \"Australia/Lord_Howe\", \"Antarctica/Macquarie\", \"Asia/Srednekolymsk\", \"Etc/GMT-11\", \"Pacific/Bougainville\", \"Pacific/Efate\", \"Pacific/Guadalcanal\", \"Pacific/Kosrae\", \"Pacific/Noumea\", \"Pacific/Pohnpei\", \"Pacific/Ponape\", \"Pacific/Norfolk\", \"Antarctica/McMurdo\", \"Antarctica/South_Pole\", \"Asia/Anadyr\", \"Asia/Kamchatka\", \"Etc/GMT-12\", \"Kwajalein\", \"NZ\", \"Pacific/Auckland\", \"Pacific/Fiji\", \"Pacific/Funafuti\", \"Pacific/Kwajalein\", \"Pacific/Majuro\", \"Pacific/Nauru\", \"Pacific/Tarawa\", \"Pacific/Wake\", \"Pacific/Wallis\", \"NZ-CHAT\", \"Pacific/Chatham\", \"Etc/GMT-13\", \"Pacific/Apia\", \"Pacific/Enderbury\", \"Pacific/Fakaofo\", \"Pacific/Tongatapu\", \"Etc/GMT-14\", \"Pacific/Kiritimati\""
    },
    {
        "context": "(root).schedules.recurring_schedule.0",
        "description": "Must validate one and only one schema (oneOf)"
    },
    {
        "context": "(root).schedules.recurring_schedule.0.instance_min_count",
        "description": "Invalid type. Expected: integer, given: string"
    },
    {
        "context": "(root).schedules.recurring_schedule.0.start_time",
        "description": "Does not match pattern '^(2[0-3]|1[0-9]|0[0-9]):([0-5][0-9])$'"
    },
    {
        "context": "(root).schedules.recurring_schedule.0.days_of_week",
        "description": "Invalid type. Expected: array, given: string"
    },
    {
        "context": "(root).schedules.recurring_schedule.0.days_of_month",
        "description": "Invalid type. Expected: array, given: string"
    },
    {
        "context": "(root).schedules.recurring_schedule.0.instance_max_count",
        "description": "Invalid type. Expected: integer, given: string"
    },
    {
        "context": "(root).schedules.recurring_schedule.0.initial_min_instance_count",
        "description": "Invalid type. Expected: integer, given: string"
    },
    {
        "context": "(root).schedules.recurring_schedule.0.end_time",
        "description": "Does not match pattern '^(2[0-3]|1[0-9]|0[0-9]):([0-5][0-9])$'"
    },
    {
        "context": "(root).schedules.specific_date.0.start_date_time",
        "description": "Does not match pattern '^2[0-9]{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T(2[0-3]|1[0-9]|0[0-9]):([0-5][0-9])$'"
    },
    {
        "context": "(root).schedules.specific_date.0.end_date_time",
        "description": "Does not match pattern '^2[0-9]{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T(2[0-3]|1[0-9]|0[0-9]):([0-5][0-9])$'"
    },
    {
        "context": "(root).schedules.specific_date.0.instance_min_count",
        "description": "Invalid type. Expected: integer, given: string"
    },
    {
        "context": "(root).schedules.specific_date.0.instance_max_count",
        "description": "Invalid type. Expected: integer, given: string"
    },
    {
        "context": "(root).schedules.specific_date.0.initial_min_instance_count",
        "description": "Invalid type. Expected: integer, given: string"
    },
    {
        "context": "(root).instance_min_count",
        "description": "Invalid type. Expected: integer, given: string"
    }
]

other error:

{
  "code": "Forbidden",
  "message": "This command is only valid for build-in auto-scaling capacity. Please operate service credential with \"cf bind/unbind-service\" command."
}
zyjiaobj commented 4 years ago

fixed in #46