Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package broker
- import (
- "encoding/json"
- "fmt"
- )
- type ProvisionParameters struct {
- RestoreFromLatestSnapshotOf *string `json:"restore_from_latest_snapshot_of"`
- }
- func ParseProvisionParameters(data []byte) (*ProvisionParameters, error) {
- var parsedParams provisionParametersParser
- err := json.Unmarshal(data, &parsedParams)
- if err != nil {
- return nil, err
- }
- if len(parsedParams.invalid) > 0 {
- return nil, fmt.Errorf("unknown provision parameters: %v", parsedParams.invalid)
- }
- return &parsedParams.valid, nil
- }
- type provisionParametersParser struct {
- valid ProvisionParameters
- invalid map[string]interface{}
- }
- func (p *provisionParametersParser) UnmarshalJSON(bs []byte) error {
- if err := json.Unmarshal(bs, &p.valid); err != nil {
- return err
- }
- if err = json.Unmarshal(bs, &p.invalid); err != nil {
- return err
- }
- delete(p.invalid, "restore_from_latest_snapshot_of")
- return nil
- }
Add Comment
Please, Sign In to add comment