...

Source file src/github.com/Azure/azure-sdk-for-go/services/resourcegraph/mgmt/2019-04-01/resourcegraph/models.go

Documentation: github.com/Azure/azure-sdk-for-go/services/resourcegraph/mgmt/2019-04-01/resourcegraph

     1  package resourcegraph
     2  
     3  // Copyright (c) Microsoft Corporation. All rights reserved.
     4  // Licensed under the MIT License. See License.txt in the project root for license information.
     5  //
     6  // Code generated by Microsoft (R) AutoRest Code Generator.
     7  // Changes may cause incorrect behavior and will be lost if the code is regenerated.
     8  
     9  import (
    10  	"encoding/json"
    11  	"github.com/Azure/go-autorest/autorest"
    12  )
    13  
    14  // The package's fully qualified name.
    15  const fqdn = "github.com/Azure/azure-sdk-for-go/services/resourcegraph/mgmt/2019-04-01/resourcegraph"
    16  
    17  // Column query result column descriptor.
    18  type Column struct {
    19  	// Name - Column name.
    20  	Name *string `json:"name,omitempty"`
    21  	// Type - Column data type. Possible values include: 'String', 'Integer', 'Number', 'Boolean', 'Object'
    22  	Type ColumnDataType `json:"type,omitempty"`
    23  }
    24  
    25  // Error error details.
    26  type Error struct {
    27  	// Code - Error code identifying the specific error.
    28  	Code *string `json:"code,omitempty"`
    29  	// Message - A human readable error message.
    30  	Message *string `json:"message,omitempty"`
    31  	// Details - Error details
    32  	Details *[]ErrorDetails `json:"details,omitempty"`
    33  }
    34  
    35  // ErrorDetails ...
    36  type ErrorDetails struct {
    37  	// AdditionalProperties - Unmatched properties from the message are deserialized this collection
    38  	AdditionalProperties map[string]interface{} `json:""`
    39  	// Code - Error code identifying the specific error.
    40  	Code *string `json:"code,omitempty"`
    41  	// Message - A human readable error message.
    42  	Message *string `json:"message,omitempty"`
    43  }
    44  
    45  // MarshalJSON is the custom marshaler for ErrorDetails.
    46  func (ed ErrorDetails) MarshalJSON() ([]byte, error) {
    47  	objectMap := make(map[string]interface{})
    48  	if ed.Code != nil {
    49  		objectMap["code"] = ed.Code
    50  	}
    51  	if ed.Message != nil {
    52  		objectMap["message"] = ed.Message
    53  	}
    54  	for k, v := range ed.AdditionalProperties {
    55  		objectMap[k] = v
    56  	}
    57  	return json.Marshal(objectMap)
    58  }
    59  
    60  // UnmarshalJSON is the custom unmarshaler for ErrorDetails struct.
    61  func (ed *ErrorDetails) UnmarshalJSON(body []byte) error {
    62  	var m map[string]*json.RawMessage
    63  	err := json.Unmarshal(body, &m)
    64  	if err != nil {
    65  		return err
    66  	}
    67  	for k, v := range m {
    68  		switch k {
    69  		default:
    70  			if v != nil {
    71  				var additionalProperties interface{}
    72  				err = json.Unmarshal(*v, &additionalProperties)
    73  				if err != nil {
    74  					return err
    75  				}
    76  				if ed.AdditionalProperties == nil {
    77  					ed.AdditionalProperties = make(map[string]interface{})
    78  				}
    79  				ed.AdditionalProperties[k] = additionalProperties
    80  			}
    81  		case "code":
    82  			if v != nil {
    83  				var code string
    84  				err = json.Unmarshal(*v, &code)
    85  				if err != nil {
    86  					return err
    87  				}
    88  				ed.Code = &code
    89  			}
    90  		case "message":
    91  			if v != nil {
    92  				var message string
    93  				err = json.Unmarshal(*v, &message)
    94  				if err != nil {
    95  					return err
    96  				}
    97  				ed.Message = &message
    98  			}
    99  		}
   100  	}
   101  
   102  	return nil
   103  }
   104  
   105  // ErrorResponse an error response from the API.
   106  type ErrorResponse struct {
   107  	// Error - Error information.
   108  	Error *Error `json:"error,omitempty"`
   109  }
   110  
   111  // BasicFacet a facet containing additional statistics on the response of a query. Can be either FacetResult or
   112  // FacetError.
   113  type BasicFacet interface {
   114  	AsFacetResult() (*FacetResult, bool)
   115  	AsFacetError() (*FacetError, bool)
   116  	AsFacet() (*Facet, bool)
   117  }
   118  
   119  // Facet a facet containing additional statistics on the response of a query. Can be either FacetResult or
   120  // FacetError.
   121  type Facet struct {
   122  	// Expression - Facet expression, same as in the corresponding facet request.
   123  	Expression *string `json:"expression,omitempty"`
   124  	// ResultType - Possible values include: 'ResultTypeFacet', 'ResultTypeFacetResult', 'ResultTypeFacetError'
   125  	ResultType ResultType `json:"resultType,omitempty"`
   126  }
   127  
   128  func unmarshalBasicFacet(body []byte) (BasicFacet, error) {
   129  	var m map[string]interface{}
   130  	err := json.Unmarshal(body, &m)
   131  	if err != nil {
   132  		return nil, err
   133  	}
   134  
   135  	switch m["resultType"] {
   136  	case string(ResultTypeFacetResult):
   137  		var fr FacetResult
   138  		err := json.Unmarshal(body, &fr)
   139  		return fr, err
   140  	case string(ResultTypeFacetError):
   141  		var fe FacetError
   142  		err := json.Unmarshal(body, &fe)
   143  		return fe, err
   144  	default:
   145  		var f Facet
   146  		err := json.Unmarshal(body, &f)
   147  		return f, err
   148  	}
   149  }
   150  func unmarshalBasicFacetArray(body []byte) ([]BasicFacet, error) {
   151  	var rawMessages []*json.RawMessage
   152  	err := json.Unmarshal(body, &rawMessages)
   153  	if err != nil {
   154  		return nil, err
   155  	}
   156  
   157  	fArray := make([]BasicFacet, len(rawMessages))
   158  
   159  	for index, rawMessage := range rawMessages {
   160  		f, err := unmarshalBasicFacet(*rawMessage)
   161  		if err != nil {
   162  			return nil, err
   163  		}
   164  		fArray[index] = f
   165  	}
   166  	return fArray, nil
   167  }
   168  
   169  // MarshalJSON is the custom marshaler for Facet.
   170  func (f Facet) MarshalJSON() ([]byte, error) {
   171  	f.ResultType = ResultTypeFacet
   172  	objectMap := make(map[string]interface{})
   173  	if f.Expression != nil {
   174  		objectMap["expression"] = f.Expression
   175  	}
   176  	if f.ResultType != "" {
   177  		objectMap["resultType"] = f.ResultType
   178  	}
   179  	return json.Marshal(objectMap)
   180  }
   181  
   182  // AsFacetResult is the BasicFacet implementation for Facet.
   183  func (f Facet) AsFacetResult() (*FacetResult, bool) {
   184  	return nil, false
   185  }
   186  
   187  // AsFacetError is the BasicFacet implementation for Facet.
   188  func (f Facet) AsFacetError() (*FacetError, bool) {
   189  	return nil, false
   190  }
   191  
   192  // AsFacet is the BasicFacet implementation for Facet.
   193  func (f Facet) AsFacet() (*Facet, bool) {
   194  	return &f, true
   195  }
   196  
   197  // AsBasicFacet is the BasicFacet implementation for Facet.
   198  func (f Facet) AsBasicFacet() (BasicFacet, bool) {
   199  	return &f, true
   200  }
   201  
   202  // FacetError a facet whose execution resulted in an error.
   203  type FacetError struct {
   204  	// Errors - An array containing detected facet errors with details.
   205  	Errors *[]ErrorDetails `json:"errors,omitempty"`
   206  	// Expression - Facet expression, same as in the corresponding facet request.
   207  	Expression *string `json:"expression,omitempty"`
   208  	// ResultType - Possible values include: 'ResultTypeFacet', 'ResultTypeFacetResult', 'ResultTypeFacetError'
   209  	ResultType ResultType `json:"resultType,omitempty"`
   210  }
   211  
   212  // MarshalJSON is the custom marshaler for FacetError.
   213  func (fe FacetError) MarshalJSON() ([]byte, error) {
   214  	fe.ResultType = ResultTypeFacetError
   215  	objectMap := make(map[string]interface{})
   216  	if fe.Errors != nil {
   217  		objectMap["errors"] = fe.Errors
   218  	}
   219  	if fe.Expression != nil {
   220  		objectMap["expression"] = fe.Expression
   221  	}
   222  	if fe.ResultType != "" {
   223  		objectMap["resultType"] = fe.ResultType
   224  	}
   225  	return json.Marshal(objectMap)
   226  }
   227  
   228  // AsFacetResult is the BasicFacet implementation for FacetError.
   229  func (fe FacetError) AsFacetResult() (*FacetResult, bool) {
   230  	return nil, false
   231  }
   232  
   233  // AsFacetError is the BasicFacet implementation for FacetError.
   234  func (fe FacetError) AsFacetError() (*FacetError, bool) {
   235  	return &fe, true
   236  }
   237  
   238  // AsFacet is the BasicFacet implementation for FacetError.
   239  func (fe FacetError) AsFacet() (*Facet, bool) {
   240  	return nil, false
   241  }
   242  
   243  // AsBasicFacet is the BasicFacet implementation for FacetError.
   244  func (fe FacetError) AsBasicFacet() (BasicFacet, bool) {
   245  	return &fe, true
   246  }
   247  
   248  // FacetRequest a request to compute additional statistics (facets) over the query results.
   249  type FacetRequest struct {
   250  	// Expression - The column or list of columns to summarize by
   251  	Expression *string `json:"expression,omitempty"`
   252  	// Options - The options for facet evaluation
   253  	Options *FacetRequestOptions `json:"options,omitempty"`
   254  }
   255  
   256  // FacetRequestOptions the options for facet evaluation
   257  type FacetRequestOptions struct {
   258  	// SortBy - The column name or query expression to sort on. Defaults to count if not present.
   259  	SortBy *string `json:"sortBy,omitempty"`
   260  	// SortOrder - The sorting order by the selected column (count by default). Possible values include: 'Asc', 'Desc'
   261  	SortOrder FacetSortOrder `json:"sortOrder,omitempty"`
   262  	// Filter - Specifies the filter condition for the 'where' clause which will be run on main query's result, just before the actual faceting.
   263  	Filter *string `json:"filter,omitempty"`
   264  	// Top - The maximum number of facet rows that should be returned.
   265  	Top *int32 `json:"$top,omitempty"`
   266  }
   267  
   268  // FacetResult successfully executed facet containing additional statistics on the response of a query.
   269  type FacetResult struct {
   270  	// TotalRecords - Number of total records in the facet results.
   271  	TotalRecords *int64 `json:"totalRecords,omitempty"`
   272  	// Count - Number of records returned in the facet response.
   273  	Count *int32 `json:"count,omitempty"`
   274  	// Data - A table containing the desired facets. Only present if the facet is valid.
   275  	Data interface{} `json:"data,omitempty"`
   276  	// Expression - Facet expression, same as in the corresponding facet request.
   277  	Expression *string `json:"expression,omitempty"`
   278  	// ResultType - Possible values include: 'ResultTypeFacet', 'ResultTypeFacetResult', 'ResultTypeFacetError'
   279  	ResultType ResultType `json:"resultType,omitempty"`
   280  }
   281  
   282  // MarshalJSON is the custom marshaler for FacetResult.
   283  func (fr FacetResult) MarshalJSON() ([]byte, error) {
   284  	fr.ResultType = ResultTypeFacetResult
   285  	objectMap := make(map[string]interface{})
   286  	if fr.TotalRecords != nil {
   287  		objectMap["totalRecords"] = fr.TotalRecords
   288  	}
   289  	if fr.Count != nil {
   290  		objectMap["count"] = fr.Count
   291  	}
   292  	if fr.Data != nil {
   293  		objectMap["data"] = fr.Data
   294  	}
   295  	if fr.Expression != nil {
   296  		objectMap["expression"] = fr.Expression
   297  	}
   298  	if fr.ResultType != "" {
   299  		objectMap["resultType"] = fr.ResultType
   300  	}
   301  	return json.Marshal(objectMap)
   302  }
   303  
   304  // AsFacetResult is the BasicFacet implementation for FacetResult.
   305  func (fr FacetResult) AsFacetResult() (*FacetResult, bool) {
   306  	return &fr, true
   307  }
   308  
   309  // AsFacetError is the BasicFacet implementation for FacetResult.
   310  func (fr FacetResult) AsFacetError() (*FacetError, bool) {
   311  	return nil, false
   312  }
   313  
   314  // AsFacet is the BasicFacet implementation for FacetResult.
   315  func (fr FacetResult) AsFacet() (*Facet, bool) {
   316  	return nil, false
   317  }
   318  
   319  // AsBasicFacet is the BasicFacet implementation for FacetResult.
   320  func (fr FacetResult) AsBasicFacet() (BasicFacet, bool) {
   321  	return &fr, true
   322  }
   323  
   324  // Operation resource Graph REST API operation definition.
   325  type Operation struct {
   326  	// Name - Operation name: {provider}/{resource}/{operation}
   327  	Name *string `json:"name,omitempty"`
   328  	// Display - Display metadata associated with the operation.
   329  	Display *OperationDisplay `json:"display,omitempty"`
   330  	// Origin - The origin of operations.
   331  	Origin *string `json:"origin,omitempty"`
   332  }
   333  
   334  // OperationDisplay display metadata associated with the operation.
   335  type OperationDisplay struct {
   336  	// Provider - Service provider: Microsoft Resource Graph.
   337  	Provider *string `json:"provider,omitempty"`
   338  	// Resource - Resource on which the operation is performed etc.
   339  	Resource *string `json:"resource,omitempty"`
   340  	// Operation - Type of operation: get, read, delete, etc.
   341  	Operation *string `json:"operation,omitempty"`
   342  	// Description - Description for the operation.
   343  	Description *string `json:"description,omitempty"`
   344  }
   345  
   346  // OperationListResult result of the request to list Resource Graph operations. It contains a list of
   347  // operations and a URL link to get the next set of results.
   348  type OperationListResult struct {
   349  	autorest.Response `json:"-"`
   350  	// Value - List of Resource Graph operations supported by the Resource Graph resource provider.
   351  	Value *[]Operation `json:"value,omitempty"`
   352  }
   353  
   354  // QueryRequest describes a query to be executed.
   355  type QueryRequest struct {
   356  	// Subscriptions - Azure subscriptions against which to execute the query.
   357  	Subscriptions *[]string `json:"subscriptions,omitempty"`
   358  	// Query - The resources query.
   359  	Query *string `json:"query,omitempty"`
   360  	// Options - The query evaluation options
   361  	Options *QueryRequestOptions `json:"options,omitempty"`
   362  	// Facets - An array of facet requests to be computed against the query result.
   363  	Facets *[]FacetRequest `json:"facets,omitempty"`
   364  }
   365  
   366  // QueryRequestOptions the options for query evaluation
   367  type QueryRequestOptions struct {
   368  	// SkipToken - Continuation token for pagination, capturing the next page size and offset, as well as the context of the query.
   369  	SkipToken *string `json:"$skipToken,omitempty"`
   370  	// Top - The maximum number of rows that the query should return. Overrides the page size when ```$skipToken``` property is present.
   371  	Top *int32 `json:"$top,omitempty"`
   372  	// Skip - The number of rows to skip from the beginning of the results. Overrides the next page offset when ```$skipToken``` property is present.
   373  	Skip *int32 `json:"$skip,omitempty"`
   374  	// ResultFormat - Defines in which format query result returned. Possible values include: 'ResultFormatTable', 'ResultFormatObjectArray'
   375  	ResultFormat ResultFormat `json:"resultFormat,omitempty"`
   376  }
   377  
   378  // QueryResponse query result.
   379  type QueryResponse struct {
   380  	autorest.Response `json:"-"`
   381  	// TotalRecords - Number of total records matching the query.
   382  	TotalRecords *int64 `json:"totalRecords,omitempty"`
   383  	// Count - Number of records returned in the current response. In the case of paging, this is the number of records in the current page.
   384  	Count *int64 `json:"count,omitempty"`
   385  	// ResultTruncated - Indicates whether the query results are truncated. Possible values include: 'True', 'False'
   386  	ResultTruncated ResultTruncated `json:"resultTruncated,omitempty"`
   387  	// SkipToken - When present, the value can be passed to a subsequent query call (together with the same query and subscriptions used in the current request) to retrieve the next page of data.
   388  	SkipToken *string `json:"$skipToken,omitempty"`
   389  	// Data - Query output in tabular format.
   390  	Data interface{} `json:"data,omitempty"`
   391  	// Facets - Query facets.
   392  	Facets *[]BasicFacet `json:"facets,omitempty"`
   393  }
   394  
   395  // UnmarshalJSON is the custom unmarshaler for QueryResponse struct.
   396  func (qr *QueryResponse) UnmarshalJSON(body []byte) error {
   397  	var m map[string]*json.RawMessage
   398  	err := json.Unmarshal(body, &m)
   399  	if err != nil {
   400  		return err
   401  	}
   402  	for k, v := range m {
   403  		switch k {
   404  		case "totalRecords":
   405  			if v != nil {
   406  				var totalRecords int64
   407  				err = json.Unmarshal(*v, &totalRecords)
   408  				if err != nil {
   409  					return err
   410  				}
   411  				qr.TotalRecords = &totalRecords
   412  			}
   413  		case "count":
   414  			if v != nil {
   415  				var count int64
   416  				err = json.Unmarshal(*v, &count)
   417  				if err != nil {
   418  					return err
   419  				}
   420  				qr.Count = &count
   421  			}
   422  		case "resultTruncated":
   423  			if v != nil {
   424  				var resultTruncated ResultTruncated
   425  				err = json.Unmarshal(*v, &resultTruncated)
   426  				if err != nil {
   427  					return err
   428  				}
   429  				qr.ResultTruncated = resultTruncated
   430  			}
   431  		case "$skipToken":
   432  			if v != nil {
   433  				var skipToken string
   434  				err = json.Unmarshal(*v, &skipToken)
   435  				if err != nil {
   436  					return err
   437  				}
   438  				qr.SkipToken = &skipToken
   439  			}
   440  		case "data":
   441  			if v != nil {
   442  				var data interface{}
   443  				err = json.Unmarshal(*v, &data)
   444  				if err != nil {
   445  					return err
   446  				}
   447  				qr.Data = data
   448  			}
   449  		case "facets":
   450  			if v != nil {
   451  				facets, err := unmarshalBasicFacetArray(*v)
   452  				if err != nil {
   453  					return err
   454  				}
   455  				qr.Facets = &facets
   456  			}
   457  		}
   458  	}
   459  
   460  	return nil
   461  }
   462  
   463  // Table query output in tabular format.
   464  type Table struct {
   465  	// Columns - Query result column descriptors.
   466  	Columns *[]Column `json:"columns,omitempty"`
   467  	// Rows - Query result rows.
   468  	Rows *[][]interface{} `json:"rows,omitempty"`
   469  }
   470  

View as plain text