diff --git a/sdk/resourcemanager/resourcegraph/armresourcegraph/CHANGELOG.md b/sdk/resourcemanager/resourcegraph/armresourcegraph/CHANGELOG.md index ddc735160ee9..ca03620ec562 100644 --- a/sdk/resourcemanager/resourcegraph/armresourcegraph/CHANGELOG.md +++ b/sdk/resourcemanager/resourcegraph/armresourcegraph/CHANGELOG.md @@ -1,5 +1,39 @@ # Release History +## 0.7.0 (2022-09-29) +### Features Added + +- New const `ChangeTypeCreate` +- New const `ChangeCategorySystem` +- New const `ChangeTypeUpdate` +- New const `PropertyChangeTypeUpdate` +- New const `ChangeCategoryUser` +- New const `ChangeTypeDelete` +- New const `PropertyChangeTypeInsert` +- New const `PropertyChangeTypeRemove` +- New type alias `ChangeType` +- New type alias `PropertyChangeType` +- New type alias `ChangeCategory` +- New function `PossibleChangeTypeValues() []ChangeType` +- New function `*Client.ResourceChanges(context.Context, ResourceChangesRequestParameters, *ClientResourceChangesOptions) (ClientResourceChangesResponse, error)` +- New function `PossibleChangeCategoryValues() []ChangeCategory` +- New function `PossiblePropertyChangeTypeValues() []PropertyChangeType` +- New function `*Client.ResourceChangeDetails(context.Context, ResourceChangeDetailsRequestParameters, *ClientResourceChangeDetailsOptions) (ClientResourceChangeDetailsResponse, error)` +- New struct `ClientResourceChangeDetailsOptions` +- New struct `ClientResourceChangeDetailsResponse` +- New struct `ClientResourceChangesOptions` +- New struct `ClientResourceChangesResponse` +- New struct `ResourceChangeData` +- New struct `ResourceChangeDataAfterSnapshot` +- New struct `ResourceChangeDataBeforeSnapshot` +- New struct `ResourceChangeDetailsRequestParameters` +- New struct `ResourceChangeList` +- New struct `ResourceChangesRequestParameters` +- New struct `ResourceChangesRequestParametersInterval` +- New struct `ResourcePropertyChange` +- New struct `ResourceSnapshotData` + + ## 0.6.0 (2022-05-18) The package of `github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph` is using our [next generation design principles](https://azure.github.io/azure-sdk/general_introduction.html) since version 0.6.0, which contains breaking changes. diff --git a/sdk/resourcemanager/resourcegraph/armresourcegraph/autorest.md b/sdk/resourcemanager/resourcegraph/armresourcegraph/autorest.md index f8af7afbebbe..93e89e676a8c 100644 --- a/sdk/resourcemanager/resourcegraph/armresourcegraph/autorest.md +++ b/sdk/resourcemanager/resourcegraph/armresourcegraph/autorest.md @@ -5,9 +5,9 @@ ``` yaml azure-arm: true require: -- https://github.com/Azure/azure-rest-api-specs/blob/d55b8005f05b040b852c15e74a0f3e36494a15e1/specification/resourcegraph/resource-manager/readme.md -- https://github.com/Azure/azure-rest-api-specs/blob/d55b8005f05b040b852c15e74a0f3e36494a15e1/specification/resourcegraph/resource-manager/readme.go.md +- /mnt/vss/_work/1/s/azure-rest-api-specs/specification/resourcegraph/resource-manager/readme.md +- /mnt/vss/_work/1/s/azure-rest-api-specs/specification/resourcegraph/resource-manager/readme.go.md license-header: MICROSOFT_MIT_NO_VERSION -module-version: 0.6.0 +module-version: 0.7.0 ``` \ No newline at end of file diff --git a/sdk/resourcemanager/resourcegraph/armresourcegraph/zz_generated_client.go b/sdk/resourcemanager/resourcegraph/armresourcegraph/client.go similarity index 55% rename from sdk/resourcemanager/resourcegraph/armresourcegraph/zz_generated_client.go rename to sdk/resourcemanager/resourcegraph/armresourcegraph/client.go index 4c9ec2354412..d235f532796d 100644 --- a/sdk/resourcemanager/resourcegraph/armresourcegraph/zz_generated_client.go +++ b/sdk/resourcemanager/resourcegraph/armresourcegraph/client.go @@ -5,6 +5,7 @@ // Licensed under the MIT License. See License.txt in the project root for license information. // Code generated by Microsoft (R) AutoRest Code Generator. // Changes may cause incorrect behavior and will be lost if the code is regenerated. +// DO NOT EDIT. package armresourcegraph @@ -48,9 +49,95 @@ func NewClient(credential azcore.TokenCredential, options *arm.ClientOptions) (* return client, nil } +// ResourceChangeDetails - Get resource change details. +// If the operation fails it returns an *azcore.ResponseError type. +// Generated from API version 2020-09-01-preview +// parameters - The parameters for this request for resource change details. +// options - ClientResourceChangeDetailsOptions contains the optional parameters for the Client.ResourceChangeDetails method. +func (client *Client) ResourceChangeDetails(ctx context.Context, parameters ResourceChangeDetailsRequestParameters, options *ClientResourceChangeDetailsOptions) (ClientResourceChangeDetailsResponse, error) { + req, err := client.resourceChangeDetailsCreateRequest(ctx, parameters, options) + if err != nil { + return ClientResourceChangeDetailsResponse{}, err + } + resp, err := client.pl.Do(req) + if err != nil { + return ClientResourceChangeDetailsResponse{}, err + } + if !runtime.HasStatusCode(resp, http.StatusOK) { + return ClientResourceChangeDetailsResponse{}, runtime.NewResponseError(resp) + } + return client.resourceChangeDetailsHandleResponse(resp) +} + +// resourceChangeDetailsCreateRequest creates the ResourceChangeDetails request. +func (client *Client) resourceChangeDetailsCreateRequest(ctx context.Context, parameters ResourceChangeDetailsRequestParameters, options *ClientResourceChangeDetailsOptions) (*policy.Request, error) { + urlPath := "/providers/Microsoft.ResourceGraph/resourceChangeDetails" + req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(client.host, urlPath)) + if err != nil { + return nil, err + } + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "2020-09-01-preview") + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, runtime.MarshalAsJSON(req, parameters) +} + +// resourceChangeDetailsHandleResponse handles the ResourceChangeDetails response. +func (client *Client) resourceChangeDetailsHandleResponse(resp *http.Response) (ClientResourceChangeDetailsResponse, error) { + result := ClientResourceChangeDetailsResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.ResourceChangeDataArray); err != nil { + return ClientResourceChangeDetailsResponse{}, err + } + return result, nil +} + +// ResourceChanges - List changes to a resource for a given time interval. +// If the operation fails it returns an *azcore.ResponseError type. +// Generated from API version 2020-09-01-preview +// parameters - the parameters for this request for changes. +// options - ClientResourceChangesOptions contains the optional parameters for the Client.ResourceChanges method. +func (client *Client) ResourceChanges(ctx context.Context, parameters ResourceChangesRequestParameters, options *ClientResourceChangesOptions) (ClientResourceChangesResponse, error) { + req, err := client.resourceChangesCreateRequest(ctx, parameters, options) + if err != nil { + return ClientResourceChangesResponse{}, err + } + resp, err := client.pl.Do(req) + if err != nil { + return ClientResourceChangesResponse{}, err + } + if !runtime.HasStatusCode(resp, http.StatusOK) { + return ClientResourceChangesResponse{}, runtime.NewResponseError(resp) + } + return client.resourceChangesHandleResponse(resp) +} + +// resourceChangesCreateRequest creates the ResourceChanges request. +func (client *Client) resourceChangesCreateRequest(ctx context.Context, parameters ResourceChangesRequestParameters, options *ClientResourceChangesOptions) (*policy.Request, error) { + urlPath := "/providers/Microsoft.ResourceGraph/resourceChanges" + req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(client.host, urlPath)) + if err != nil { + return nil, err + } + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "2020-09-01-preview") + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, runtime.MarshalAsJSON(req, parameters) +} + +// resourceChangesHandleResponse handles the ResourceChanges response. +func (client *Client) resourceChangesHandleResponse(resp *http.Response) (ClientResourceChangesResponse, error) { + result := ClientResourceChangesResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.ResourceChangeList); err != nil { + return ClientResourceChangesResponse{}, err + } + return result, nil +} + // Resources - Queries the resources managed by Azure Resource Manager for scopes specified in the request. // If the operation fails it returns an *azcore.ResponseError type. -// Generated from API version 2021-06-01-preview +// Generated from API version 2022-10-01 // query - Request specifying query and its options. // options - ClientResourcesOptions contains the optional parameters for the Client.Resources method. func (client *Client) Resources(ctx context.Context, query QueryRequest, options *ClientResourcesOptions) (ClientResourcesResponse, error) { @@ -76,7 +163,7 @@ func (client *Client) resourcesCreateRequest(ctx context.Context, query QueryReq return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "2021-06-01-preview") + reqQP.Set("api-version", "2022-10-01") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header["Accept"] = []string{"application/json"} return req, runtime.MarshalAsJSON(req, query) diff --git a/sdk/resourcemanager/resourcegraph/armresourcegraph/zz_generated_constants.go b/sdk/resourcemanager/resourcegraph/armresourcegraph/constants.go similarity index 69% rename from sdk/resourcemanager/resourcegraph/armresourcegraph/zz_generated_constants.go rename to sdk/resourcemanager/resourcegraph/armresourcegraph/constants.go index ee6558b79294..c7a5389637bb 100644 --- a/sdk/resourcemanager/resourcegraph/armresourcegraph/zz_generated_constants.go +++ b/sdk/resourcemanager/resourcegraph/armresourcegraph/constants.go @@ -5,12 +5,13 @@ // Licensed under the MIT License. See License.txt in the project root for license information. // Code generated by Microsoft (R) AutoRest Code Generator. // Changes may cause incorrect behavior and will be lost if the code is regenerated. +// DO NOT EDIT. package armresourcegraph const ( moduleName = "armresourcegraph" - moduleVersion = "v0.6.0" + moduleVersion = "v0.7.0" ) // AuthorizationScopeFilter - Defines what level of authorization resources should be returned based on the which subscriptions @@ -34,6 +35,40 @@ func PossibleAuthorizationScopeFilterValues() []AuthorizationScopeFilter { } } +// ChangeCategory - The change category. +type ChangeCategory string + +const ( + ChangeCategoryUser ChangeCategory = "User" + ChangeCategorySystem ChangeCategory = "System" +) + +// PossibleChangeCategoryValues returns the possible values for the ChangeCategory const type. +func PossibleChangeCategoryValues() []ChangeCategory { + return []ChangeCategory{ + ChangeCategoryUser, + ChangeCategorySystem, + } +} + +// ChangeType - The change type for snapshot. PropertyChanges will be provided in case of Update change type +type ChangeType string + +const ( + ChangeTypeCreate ChangeType = "Create" + ChangeTypeUpdate ChangeType = "Update" + ChangeTypeDelete ChangeType = "Delete" +) + +// PossibleChangeTypeValues returns the possible values for the ChangeType const type. +func PossibleChangeTypeValues() []ChangeType { + return []ChangeType{ + ChangeTypeCreate, + ChangeTypeUpdate, + ChangeTypeDelete, + } +} + // ColumnDataType - Data type of a column in a table. type ColumnDataType string @@ -74,6 +109,24 @@ func PossibleFacetSortOrderValues() []FacetSortOrder { } } +// PropertyChangeType - The property change Type +type PropertyChangeType string + +const ( + PropertyChangeTypeInsert PropertyChangeType = "Insert" + PropertyChangeTypeUpdate PropertyChangeType = "Update" + PropertyChangeTypeRemove PropertyChangeType = "Remove" +) + +// PossiblePropertyChangeTypeValues returns the possible values for the PropertyChangeType const type. +func PossiblePropertyChangeTypeValues() []PropertyChangeType { + return []PropertyChangeType{ + PropertyChangeTypeInsert, + PropertyChangeTypeUpdate, + PropertyChangeTypeRemove, + } +} + // ResultFormat - Defines in which format query result returned. type ResultFormat string diff --git a/sdk/resourcemanager/resourcegraph/armresourcegraph/go.mod b/sdk/resourcemanager/resourcegraph/armresourcegraph/go.mod index 9bcccca2ce56..b1680d149067 100644 --- a/sdk/resourcemanager/resourcegraph/armresourcegraph/go.mod +++ b/sdk/resourcemanager/resourcegraph/armresourcegraph/go.mod @@ -2,20 +2,12 @@ module github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armre go 1.18 -require ( - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.0.0 - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.0.0 -) +require github.com/Azure/azure-sdk-for-go/sdk/azcore v1.0.0 require ( github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0 // indirect - github.com/AzureAD/microsoft-authentication-library-for-go v0.4.0 // indirect - github.com/golang-jwt/jwt v3.2.1+incompatible // indirect - github.com/google/uuid v1.1.1 // indirect - github.com/kylelemons/godebug v1.1.0 // indirect - github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4 // indirect - golang.org/x/crypto v0.0.0-20220511200225-c6db032c6c88 // indirect + github.com/davecgh/go-spew v1.1.1 // indirect golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4 // indirect - golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e // indirect golang.org/x/text v0.3.7 // indirect + gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect ) diff --git a/sdk/resourcemanager/resourcegraph/armresourcegraph/go.sum b/sdk/resourcemanager/resourcegraph/armresourcegraph/go.sum index ed5b814680ee..3afb578030a5 100644 --- a/sdk/resourcemanager/resourcegraph/armresourcegraph/go.sum +++ b/sdk/resourcemanager/resourcegraph/armresourcegraph/go.sum @@ -1,33 +1,15 @@ github.com/Azure/azure-sdk-for-go/sdk/azcore v1.0.0 h1:sVPhtT2qjO86rTUaWMr4WoES4TkjGnzcioXcnHV9s5k= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.0.0/go.mod h1:uGG2W01BaETf0Ozp+QxxKJdMBNRWPdstHG0Fmdwn1/U= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.0.0 h1:Yoicul8bnVdQrhDMTHxdEckRGX01XvwXDHUT9zYZ3k0= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.0.0/go.mod h1:+6sju8gk8FRmSajX3Oz4G5Gm7P+mbqE9FVaXXFYTkCM= github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0 h1:jp0dGvZ7ZK0mgqnTSClMxa5xuRL7NZgHameVYF6BurY= github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0/go.mod h1:eWRD7oawr1Mu1sLCawqVc0CUiF43ia3qQMxLscsKQ9w= -github.com/AzureAD/microsoft-authentication-library-for-go v0.4.0 h1:WVsrXCnHlDDX8ls+tootqRE87/hL9S/g4ewig9RsD/c= -github.com/AzureAD/microsoft-authentication-library-for-go v0.4.0/go.mod h1:Vt9sXTKwMyGcOxSmLDMnGPgqsUg7m8pe215qMLrDXw4= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/dnaeon/go-vcr v1.1.0 h1:ReYa/UBrRyQdant9B4fNHGoCNKw6qh6P0fsdGmZpR7c= -github.com/golang-jwt/jwt v3.2.1+incompatible h1:73Z+4BJcrTC+KczS6WvTPvRGOp1WmfEP4Q1lOd9Z/+c= -github.com/golang-jwt/jwt v3.2.1+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= -github.com/golang-jwt/jwt/v4 v4.2.0 h1:besgBTC8w8HjP6NzQdxwKH9Z5oQMZ24ThTrHp3cZ8eU= -github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= -github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= -github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/montanaflynn/stats v0.6.6/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= -github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4 h1:Qj1ukM4GlMWXNdMBuXcXfz/Kw9s1qm0CLY32QxuSImI= -github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4/go.mod h1:N6UoU20jOqggOuDwUaBQpluzLNDqif3kq9z2wpdYEfQ= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= -golang.org/x/crypto v0.0.0-20220511200225-c6db032c6c88 h1:Tgea0cVUD0ivh5ADBX4WwuI12DUd2to3nCYe2eayMIw= -golang.org/x/crypto v0.0.0-20220511200225-c6db032c6c88/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4 h1:HVyaeDAYux4pnY+D/SiwmLOR36ewZ4iGQIIrtnuCjFA= golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e h1:fLOSk5Q00efkSvAm+4xcoXD+RRmLmmulPn5I3Y9F2EM= -golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/sdk/resourcemanager/resourcegraph/armresourcegraph/zz_generated_models.go b/sdk/resourcemanager/resourcegraph/armresourcegraph/models.go similarity index 62% rename from sdk/resourcemanager/resourcegraph/armresourcegraph/zz_generated_models.go rename to sdk/resourcemanager/resourcegraph/armresourcegraph/models.go index fa50cb150f33..86887a1b49e2 100644 --- a/sdk/resourcemanager/resourcegraph/armresourcegraph/zz_generated_models.go +++ b/sdk/resourcemanager/resourcegraph/armresourcegraph/models.go @@ -5,11 +5,22 @@ // Licensed under the MIT License. See License.txt in the project root for license information. // Code generated by Microsoft (R) AutoRest Code Generator. // Changes may cause incorrect behavior and will be lost if the code is regenerated. +// DO NOT EDIT. package armresourcegraph import "time" +// ClientResourceChangeDetailsOptions contains the optional parameters for the Client.ResourceChangeDetails method. +type ClientResourceChangeDetailsOptions struct { + // placeholder for future optional parameters +} + +// ClientResourceChangesOptions contains the optional parameters for the Client.ResourceChanges method. +type ClientResourceChangesOptions struct { + // placeholder for future optional parameters +} + // ClientResourcesHistoryOptions contains the optional parameters for the Client.ResourcesHistory method. type ClientResourcesHistoryOptions struct { // placeholder for future optional parameters @@ -267,6 +278,149 @@ type QueryResponse struct { SkipToken *string `json:"$skipToken,omitempty"` } +// ResourceChangeData - Data on a specific change, represented by a pair of before and after resource snapshots. +type ResourceChangeData struct { + // REQUIRED; The snapshot after the change. + AfterSnapshot *ResourceChangeDataAfterSnapshot `json:"afterSnapshot,omitempty"` + + // REQUIRED; The snapshot before the change. + BeforeSnapshot *ResourceChangeDataBeforeSnapshot `json:"beforeSnapshot,omitempty"` + + // REQUIRED; The change ID. Valid and unique within the specified resource only. + ChangeID *string `json:"changeId,omitempty"` + + // The change type for snapshot. PropertyChanges will be provided in case of Update change type + ChangeType *ChangeType `json:"changeType,omitempty"` + + // An array of resource property change + PropertyChanges []*ResourcePropertyChange `json:"propertyChanges,omitempty"` + + // The resource for a change. + ResourceID *string `json:"resourceId,omitempty"` +} + +// ResourceChangeDataAfterSnapshot - The snapshot after the change. +type ResourceChangeDataAfterSnapshot struct { + // REQUIRED; The time when the snapshot was created. The snapshot timestamp provides an approximation as to when a modification + // to a resource was detected. There can be a difference between the actual modification + // time and the detection time. This is due to differences in how operations that modify a resource are processed, versus + // how operation that record resource snapshots are processed. + Timestamp *time.Time `json:"timestamp,omitempty"` + + // The resource snapshot content (in resourceChangeDetails response only). + Content interface{} `json:"content,omitempty"` + + // The ID of the snapshot. + SnapshotID *string `json:"snapshotId,omitempty"` +} + +// ResourceChangeDataBeforeSnapshot - The snapshot before the change. +type ResourceChangeDataBeforeSnapshot struct { + // REQUIRED; The time when the snapshot was created. The snapshot timestamp provides an approximation as to when a modification + // to a resource was detected. There can be a difference between the actual modification + // time and the detection time. This is due to differences in how operations that modify a resource are processed, versus + // how operation that record resource snapshots are processed. + Timestamp *time.Time `json:"timestamp,omitempty"` + + // The resource snapshot content (in resourceChangeDetails response only). + Content interface{} `json:"content,omitempty"` + + // The ID of the snapshot. + SnapshotID *string `json:"snapshotId,omitempty"` +} + +// ResourceChangeDetailsRequestParameters - The parameters for a specific change details request. +type ResourceChangeDetailsRequestParameters struct { + // REQUIRED; Specifies the list of change IDs for a change details request. + ChangeIDs []*string `json:"changeIds,omitempty"` + + // REQUIRED; Specifies the list of resources for a change details request. + ResourceIDs []*string `json:"resourceIds,omitempty"` +} + +// ResourceChangeList - A list of changes associated with a resource over a specific time interval. +type ResourceChangeList struct { + // The pageable value returned by the operation, i.e. a list of changes to the resource. + // * The list is ordered from the most recent changes to the least recent changes. + // * This list will be empty if there were no changes during the requested interval. + // * The Before snapshot timestamp value of the oldest change can be outside of the specified time interval. + Changes []*ResourceChangeData `json:"changes,omitempty"` + + // Skip token that encodes the skip information while executing the current request + SkipToken interface{} `json:"$skipToken,omitempty"` +} + +// ResourceChangesRequestParameters - The parameters for a specific changes request. +type ResourceChangesRequestParameters struct { + // REQUIRED; Specifies the date and time interval for a changes request. + Interval *ResourceChangesRequestParametersInterval `json:"interval,omitempty"` + + // The flag if set to true will fetch property changes + FetchPropertyChanges *bool `json:"fetchPropertyChanges,omitempty"` + + // The flag if set to true will fetch change snapshots + FetchSnapshots *bool `json:"fetchSnapshots,omitempty"` + + // Specifies the list of resources for a changes request. + ResourceIDs []*string `json:"resourceIds,omitempty"` + + // Acts as the continuation token for paged responses. + SkipToken *string `json:"$skipToken,omitempty"` + + // The subscription id of resources to query the changes from. + SubscriptionID *string `json:"subscriptionId,omitempty"` + + // The table name to query resources from. + Table *string `json:"table,omitempty"` + + // The maximum number of changes the client can accept in a paged response. + Top *int32 `json:"$top,omitempty"` +} + +// ResourceChangesRequestParametersInterval - Specifies the date and time interval for a changes request. +type ResourceChangesRequestParametersInterval struct { + // REQUIRED; A datetime indicating the exclusive/open end of the time interval, i.e. [start,end). Specifying an end that occurs + // chronologically before start will result in an error. + End *time.Time `json:"end,omitempty"` + + // REQUIRED; A datetime indicating the inclusive/closed start of the time interval, i.e. [start, end). Specifying a start + // that occurs chronologically after end will result in an error. + Start *time.Time `json:"start,omitempty"` +} + +// ResourcePropertyChange - The resource property change +type ResourcePropertyChange struct { + // REQUIRED; The change category. + ChangeCategory *ChangeCategory `json:"changeCategory,omitempty"` + + // REQUIRED; The property change Type + PropertyChangeType *PropertyChangeType `json:"propertyChangeType,omitempty"` + + // REQUIRED; The property name + PropertyName *string `json:"propertyName,omitempty"` + + // The property value in after snapshot + AfterValue *string `json:"afterValue,omitempty"` + + // The property value in before snapshot + BeforeValue *string `json:"beforeValue,omitempty"` +} + +// ResourceSnapshotData - Data on a specific resource snapshot. +type ResourceSnapshotData struct { + // REQUIRED; The time when the snapshot was created. The snapshot timestamp provides an approximation as to when a modification + // to a resource was detected. There can be a difference between the actual modification + // time and the detection time. This is due to differences in how operations that modify a resource are processed, versus + // how operation that record resource snapshots are processed. + Timestamp *time.Time `json:"timestamp,omitempty"` + + // The resource snapshot content (in resourceChangeDetails response only). + Content interface{} `json:"content,omitempty"` + + // The ID of the snapshot. + SnapshotID *string `json:"snapshotId,omitempty"` +} + // ResourcesHistoryRequest - Describes a history request to be executed. type ResourcesHistoryRequest struct { // Azure management groups against which to execute the query. Example: [ 'mg1', 'mg2' ] diff --git a/sdk/resourcemanager/resourcegraph/armresourcegraph/models_serde.go b/sdk/resourcemanager/resourcegraph/armresourcegraph/models_serde.go new file mode 100644 index 000000000000..afca9ee1c9ad --- /dev/null +++ b/sdk/resourcemanager/resourcegraph/armresourcegraph/models_serde.go @@ -0,0 +1,1080 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. +// DO NOT EDIT. + +package armresourcegraph + +import ( + "encoding/json" + "fmt" + "github.com/Azure/azure-sdk-for-go/sdk/azcore" + "reflect" +) + +// MarshalJSON implements the json.Marshaller interface for type Column. +func (c Column) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "name", c.Name) + populate(objectMap, "type", c.Type) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type Column. +func (c *Column) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", c, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "name": + err = unpopulate(val, "Name", &c.Name) + delete(rawMsg, key) + case "type": + err = unpopulate(val, "Type", &c.Type) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", c, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type DateTimeInterval. +func (d DateTimeInterval) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populateTimeRFC3339(objectMap, "end", d.End) + populateTimeRFC3339(objectMap, "start", d.Start) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type DateTimeInterval. +func (d *DateTimeInterval) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", d, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "end": + err = unpopulateTimeRFC3339(val, "End", &d.End) + delete(rawMsg, key) + case "start": + err = unpopulateTimeRFC3339(val, "Start", &d.Start) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", d, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type Error. +func (e Error) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "code", e.Code) + populate(objectMap, "details", e.Details) + populate(objectMap, "message", e.Message) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type Error. +func (e *Error) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "code": + err = unpopulate(val, "Code", &e.Code) + delete(rawMsg, key) + case "details": + err = unpopulate(val, "Details", &e.Details) + delete(rawMsg, key) + case "message": + err = unpopulate(val, "Message", &e.Message) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type ErrorDetails. +func (e ErrorDetails) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "code", e.Code) + populate(objectMap, "message", e.Message) + if e.AdditionalProperties != nil { + for key, val := range e.AdditionalProperties { + objectMap[key] = val + } + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type ErrorDetails. +func (e *ErrorDetails) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "code": + err = unpopulate(val, "Code", &e.Code) + delete(rawMsg, key) + case "message": + err = unpopulate(val, "Message", &e.Message) + delete(rawMsg, key) + default: + if e.AdditionalProperties == nil { + e.AdditionalProperties = map[string]interface{}{} + } + if val != nil { + var aux interface{} + err = json.Unmarshal(val, &aux) + e.AdditionalProperties[key] = aux + } + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type ErrorResponse. +func (e ErrorResponse) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "error", e.Error) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type ErrorResponse. +func (e *ErrorResponse) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "error": + err = unpopulate(val, "Error", &e.Error) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type Facet. +func (f Facet) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "expression", f.Expression) + objectMap["resultType"] = f.ResultType + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type Facet. +func (f *Facet) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", f, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "expression": + err = unpopulate(val, "Expression", &f.Expression) + delete(rawMsg, key) + case "resultType": + err = unpopulate(val, "ResultType", &f.ResultType) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", f, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type FacetError. +func (f FacetError) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "errors", f.Errors) + populate(objectMap, "expression", f.Expression) + objectMap["resultType"] = "FacetError" + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type FacetError. +func (f *FacetError) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", f, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "errors": + err = unpopulate(val, "Errors", &f.Errors) + delete(rawMsg, key) + case "expression": + err = unpopulate(val, "Expression", &f.Expression) + delete(rawMsg, key) + case "resultType": + err = unpopulate(val, "ResultType", &f.ResultType) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", f, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type FacetRequest. +func (f FacetRequest) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "expression", f.Expression) + populate(objectMap, "options", f.Options) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type FacetRequest. +func (f *FacetRequest) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", f, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "expression": + err = unpopulate(val, "Expression", &f.Expression) + delete(rawMsg, key) + case "options": + err = unpopulate(val, "Options", &f.Options) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", f, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type FacetRequestOptions. +func (f FacetRequestOptions) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "filter", f.Filter) + populate(objectMap, "sortBy", f.SortBy) + populate(objectMap, "sortOrder", f.SortOrder) + populate(objectMap, "$top", f.Top) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type FacetRequestOptions. +func (f *FacetRequestOptions) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", f, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "filter": + err = unpopulate(val, "Filter", &f.Filter) + delete(rawMsg, key) + case "sortBy": + err = unpopulate(val, "SortBy", &f.SortBy) + delete(rawMsg, key) + case "sortOrder": + err = unpopulate(val, "SortOrder", &f.SortOrder) + delete(rawMsg, key) + case "$top": + err = unpopulate(val, "Top", &f.Top) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", f, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type FacetResult. +func (f FacetResult) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "count", f.Count) + populate(objectMap, "data", &f.Data) + populate(objectMap, "expression", f.Expression) + objectMap["resultType"] = "FacetResult" + populate(objectMap, "totalRecords", f.TotalRecords) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type FacetResult. +func (f *FacetResult) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", f, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "count": + err = unpopulate(val, "Count", &f.Count) + delete(rawMsg, key) + case "data": + err = unpopulate(val, "Data", &f.Data) + delete(rawMsg, key) + case "expression": + err = unpopulate(val, "Expression", &f.Expression) + delete(rawMsg, key) + case "resultType": + err = unpopulate(val, "ResultType", &f.ResultType) + delete(rawMsg, key) + case "totalRecords": + err = unpopulate(val, "TotalRecords", &f.TotalRecords) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", f, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type Operation. +func (o Operation) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "display", o.Display) + populate(objectMap, "name", o.Name) + populate(objectMap, "origin", o.Origin) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type Operation. +func (o *Operation) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", o, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "display": + err = unpopulate(val, "Display", &o.Display) + delete(rawMsg, key) + case "name": + err = unpopulate(val, "Name", &o.Name) + delete(rawMsg, key) + case "origin": + err = unpopulate(val, "Origin", &o.Origin) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", o, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type OperationDisplay. +func (o OperationDisplay) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "description", o.Description) + populate(objectMap, "operation", o.Operation) + populate(objectMap, "provider", o.Provider) + populate(objectMap, "resource", o.Resource) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type OperationDisplay. +func (o *OperationDisplay) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", o, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "description": + err = unpopulate(val, "Description", &o.Description) + delete(rawMsg, key) + case "operation": + err = unpopulate(val, "Operation", &o.Operation) + delete(rawMsg, key) + case "provider": + err = unpopulate(val, "Provider", &o.Provider) + delete(rawMsg, key) + case "resource": + err = unpopulate(val, "Resource", &o.Resource) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", o, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type OperationListResult. +func (o OperationListResult) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "value", o.Value) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type OperationListResult. +func (o *OperationListResult) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", o, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "value": + err = unpopulate(val, "Value", &o.Value) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", o, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type QueryRequest. +func (q QueryRequest) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "facets", q.Facets) + populate(objectMap, "managementGroups", q.ManagementGroups) + populate(objectMap, "options", q.Options) + populate(objectMap, "query", q.Query) + populate(objectMap, "subscriptions", q.Subscriptions) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type QueryRequest. +func (q *QueryRequest) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", q, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "facets": + err = unpopulate(val, "Facets", &q.Facets) + delete(rawMsg, key) + case "managementGroups": + err = unpopulate(val, "ManagementGroups", &q.ManagementGroups) + delete(rawMsg, key) + case "options": + err = unpopulate(val, "Options", &q.Options) + delete(rawMsg, key) + case "query": + err = unpopulate(val, "Query", &q.Query) + delete(rawMsg, key) + case "subscriptions": + err = unpopulate(val, "Subscriptions", &q.Subscriptions) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", q, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type QueryRequestOptions. +func (q QueryRequestOptions) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "allowPartialScopes", q.AllowPartialScopes) + populate(objectMap, "authorizationScopeFilter", q.AuthorizationScopeFilter) + populate(objectMap, "resultFormat", q.ResultFormat) + populate(objectMap, "$skip", q.Skip) + populate(objectMap, "$skipToken", q.SkipToken) + populate(objectMap, "$top", q.Top) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type QueryRequestOptions. +func (q *QueryRequestOptions) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", q, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "allowPartialScopes": + err = unpopulate(val, "AllowPartialScopes", &q.AllowPartialScopes) + delete(rawMsg, key) + case "authorizationScopeFilter": + err = unpopulate(val, "AuthorizationScopeFilter", &q.AuthorizationScopeFilter) + delete(rawMsg, key) + case "resultFormat": + err = unpopulate(val, "ResultFormat", &q.ResultFormat) + delete(rawMsg, key) + case "$skip": + err = unpopulate(val, "Skip", &q.Skip) + delete(rawMsg, key) + case "$skipToken": + err = unpopulate(val, "SkipToken", &q.SkipToken) + delete(rawMsg, key) + case "$top": + err = unpopulate(val, "Top", &q.Top) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", q, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type QueryResponse. +func (q QueryResponse) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "count", q.Count) + populate(objectMap, "data", &q.Data) + populate(objectMap, "facets", q.Facets) + populate(objectMap, "resultTruncated", q.ResultTruncated) + populate(objectMap, "$skipToken", q.SkipToken) + populate(objectMap, "totalRecords", q.TotalRecords) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type QueryResponse. +func (q *QueryResponse) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", q, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "count": + err = unpopulate(val, "Count", &q.Count) + delete(rawMsg, key) + case "data": + err = unpopulate(val, "Data", &q.Data) + delete(rawMsg, key) + case "facets": + q.Facets, err = unmarshalFacetClassificationArray(val) + delete(rawMsg, key) + case "resultTruncated": + err = unpopulate(val, "ResultTruncated", &q.ResultTruncated) + delete(rawMsg, key) + case "$skipToken": + err = unpopulate(val, "SkipToken", &q.SkipToken) + delete(rawMsg, key) + case "totalRecords": + err = unpopulate(val, "TotalRecords", &q.TotalRecords) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", q, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type ResourceChangeData. +func (r ResourceChangeData) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "afterSnapshot", r.AfterSnapshot) + populate(objectMap, "beforeSnapshot", r.BeforeSnapshot) + populate(objectMap, "changeId", r.ChangeID) + populate(objectMap, "changeType", r.ChangeType) + populate(objectMap, "propertyChanges", r.PropertyChanges) + populate(objectMap, "resourceId", r.ResourceID) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type ResourceChangeData. +func (r *ResourceChangeData) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", r, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "afterSnapshot": + err = unpopulate(val, "AfterSnapshot", &r.AfterSnapshot) + delete(rawMsg, key) + case "beforeSnapshot": + err = unpopulate(val, "BeforeSnapshot", &r.BeforeSnapshot) + delete(rawMsg, key) + case "changeId": + err = unpopulate(val, "ChangeID", &r.ChangeID) + delete(rawMsg, key) + case "changeType": + err = unpopulate(val, "ChangeType", &r.ChangeType) + delete(rawMsg, key) + case "propertyChanges": + err = unpopulate(val, "PropertyChanges", &r.PropertyChanges) + delete(rawMsg, key) + case "resourceId": + err = unpopulate(val, "ResourceID", &r.ResourceID) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", r, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type ResourceChangeDataAfterSnapshot. +func (r ResourceChangeDataAfterSnapshot) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "content", &r.Content) + populate(objectMap, "snapshotId", r.SnapshotID) + populateTimeRFC3339(objectMap, "timestamp", r.Timestamp) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type ResourceChangeDataAfterSnapshot. +func (r *ResourceChangeDataAfterSnapshot) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", r, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "content": + err = unpopulate(val, "Content", &r.Content) + delete(rawMsg, key) + case "snapshotId": + err = unpopulate(val, "SnapshotID", &r.SnapshotID) + delete(rawMsg, key) + case "timestamp": + err = unpopulateTimeRFC3339(val, "Timestamp", &r.Timestamp) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", r, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type ResourceChangeDataBeforeSnapshot. +func (r ResourceChangeDataBeforeSnapshot) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "content", &r.Content) + populate(objectMap, "snapshotId", r.SnapshotID) + populateTimeRFC3339(objectMap, "timestamp", r.Timestamp) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type ResourceChangeDataBeforeSnapshot. +func (r *ResourceChangeDataBeforeSnapshot) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", r, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "content": + err = unpopulate(val, "Content", &r.Content) + delete(rawMsg, key) + case "snapshotId": + err = unpopulate(val, "SnapshotID", &r.SnapshotID) + delete(rawMsg, key) + case "timestamp": + err = unpopulateTimeRFC3339(val, "Timestamp", &r.Timestamp) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", r, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type ResourceChangeDetailsRequestParameters. +func (r ResourceChangeDetailsRequestParameters) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "changeIds", r.ChangeIDs) + populate(objectMap, "resourceIds", r.ResourceIDs) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type ResourceChangeDetailsRequestParameters. +func (r *ResourceChangeDetailsRequestParameters) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", r, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "changeIds": + err = unpopulate(val, "ChangeIDs", &r.ChangeIDs) + delete(rawMsg, key) + case "resourceIds": + err = unpopulate(val, "ResourceIDs", &r.ResourceIDs) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", r, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type ResourceChangeList. +func (r ResourceChangeList) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "changes", r.Changes) + populate(objectMap, "$skipToken", &r.SkipToken) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type ResourceChangeList. +func (r *ResourceChangeList) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", r, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "changes": + err = unpopulate(val, "Changes", &r.Changes) + delete(rawMsg, key) + case "$skipToken": + err = unpopulate(val, "SkipToken", &r.SkipToken) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", r, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type ResourceChangesRequestParameters. +func (r ResourceChangesRequestParameters) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "fetchPropertyChanges", r.FetchPropertyChanges) + populate(objectMap, "fetchSnapshots", r.FetchSnapshots) + populate(objectMap, "interval", r.Interval) + populate(objectMap, "resourceIds", r.ResourceIDs) + populate(objectMap, "$skipToken", r.SkipToken) + populate(objectMap, "subscriptionId", r.SubscriptionID) + populate(objectMap, "table", r.Table) + populate(objectMap, "$top", r.Top) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type ResourceChangesRequestParameters. +func (r *ResourceChangesRequestParameters) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", r, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "fetchPropertyChanges": + err = unpopulate(val, "FetchPropertyChanges", &r.FetchPropertyChanges) + delete(rawMsg, key) + case "fetchSnapshots": + err = unpopulate(val, "FetchSnapshots", &r.FetchSnapshots) + delete(rawMsg, key) + case "interval": + err = unpopulate(val, "Interval", &r.Interval) + delete(rawMsg, key) + case "resourceIds": + err = unpopulate(val, "ResourceIDs", &r.ResourceIDs) + delete(rawMsg, key) + case "$skipToken": + err = unpopulate(val, "SkipToken", &r.SkipToken) + delete(rawMsg, key) + case "subscriptionId": + err = unpopulate(val, "SubscriptionID", &r.SubscriptionID) + delete(rawMsg, key) + case "table": + err = unpopulate(val, "Table", &r.Table) + delete(rawMsg, key) + case "$top": + err = unpopulate(val, "Top", &r.Top) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", r, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type ResourceChangesRequestParametersInterval. +func (r ResourceChangesRequestParametersInterval) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populateTimeRFC3339(objectMap, "end", r.End) + populateTimeRFC3339(objectMap, "start", r.Start) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type ResourceChangesRequestParametersInterval. +func (r *ResourceChangesRequestParametersInterval) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", r, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "end": + err = unpopulateTimeRFC3339(val, "End", &r.End) + delete(rawMsg, key) + case "start": + err = unpopulateTimeRFC3339(val, "Start", &r.Start) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", r, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type ResourcePropertyChange. +func (r ResourcePropertyChange) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "afterValue", r.AfterValue) + populate(objectMap, "beforeValue", r.BeforeValue) + populate(objectMap, "changeCategory", r.ChangeCategory) + populate(objectMap, "propertyChangeType", r.PropertyChangeType) + populate(objectMap, "propertyName", r.PropertyName) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type ResourcePropertyChange. +func (r *ResourcePropertyChange) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", r, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "afterValue": + err = unpopulate(val, "AfterValue", &r.AfterValue) + delete(rawMsg, key) + case "beforeValue": + err = unpopulate(val, "BeforeValue", &r.BeforeValue) + delete(rawMsg, key) + case "changeCategory": + err = unpopulate(val, "ChangeCategory", &r.ChangeCategory) + delete(rawMsg, key) + case "propertyChangeType": + err = unpopulate(val, "PropertyChangeType", &r.PropertyChangeType) + delete(rawMsg, key) + case "propertyName": + err = unpopulate(val, "PropertyName", &r.PropertyName) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", r, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type ResourceSnapshotData. +func (r ResourceSnapshotData) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "content", &r.Content) + populate(objectMap, "snapshotId", r.SnapshotID) + populateTimeRFC3339(objectMap, "timestamp", r.Timestamp) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type ResourceSnapshotData. +func (r *ResourceSnapshotData) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", r, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "content": + err = unpopulate(val, "Content", &r.Content) + delete(rawMsg, key) + case "snapshotId": + err = unpopulate(val, "SnapshotID", &r.SnapshotID) + delete(rawMsg, key) + case "timestamp": + err = unpopulateTimeRFC3339(val, "Timestamp", &r.Timestamp) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", r, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type ResourcesHistoryRequest. +func (r ResourcesHistoryRequest) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "managementGroups", r.ManagementGroups) + populate(objectMap, "options", r.Options) + populate(objectMap, "query", r.Query) + populate(objectMap, "subscriptions", r.Subscriptions) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type ResourcesHistoryRequest. +func (r *ResourcesHistoryRequest) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", r, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "managementGroups": + err = unpopulate(val, "ManagementGroups", &r.ManagementGroups) + delete(rawMsg, key) + case "options": + err = unpopulate(val, "Options", &r.Options) + delete(rawMsg, key) + case "query": + err = unpopulate(val, "Query", &r.Query) + delete(rawMsg, key) + case "subscriptions": + err = unpopulate(val, "Subscriptions", &r.Subscriptions) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", r, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type ResourcesHistoryRequestOptions. +func (r ResourcesHistoryRequestOptions) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "interval", r.Interval) + populate(objectMap, "resultFormat", r.ResultFormat) + populate(objectMap, "$skip", r.Skip) + populate(objectMap, "$skipToken", r.SkipToken) + populate(objectMap, "$top", r.Top) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type ResourcesHistoryRequestOptions. +func (r *ResourcesHistoryRequestOptions) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", r, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "interval": + err = unpopulate(val, "Interval", &r.Interval) + delete(rawMsg, key) + case "resultFormat": + err = unpopulate(val, "ResultFormat", &r.ResultFormat) + delete(rawMsg, key) + case "$skip": + err = unpopulate(val, "Skip", &r.Skip) + delete(rawMsg, key) + case "$skipToken": + err = unpopulate(val, "SkipToken", &r.SkipToken) + delete(rawMsg, key) + case "$top": + err = unpopulate(val, "Top", &r.Top) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", r, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type Table. +func (t Table) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "columns", t.Columns) + populate(objectMap, "rows", t.Rows) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type Table. +func (t *Table) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", t, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "columns": + err = unpopulate(val, "Columns", &t.Columns) + delete(rawMsg, key) + case "rows": + err = unpopulate(val, "Rows", &t.Rows) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", t, err) + } + } + return nil +} + +func populate(m map[string]interface{}, k string, v interface{}) { + if v == nil { + return + } else if azcore.IsNullValue(v) { + m[k] = nil + } else if !reflect.ValueOf(v).IsNil() { + m[k] = v + } +} + +func unpopulate(data json.RawMessage, fn string, v interface{}) error { + if data == nil { + return nil + } + if err := json.Unmarshal(data, v); err != nil { + return fmt.Errorf("struct field %s: %v", fn, err) + } + return nil +} diff --git a/sdk/resourcemanager/resourcegraph/armresourcegraph/zz_generated_operations_client.go b/sdk/resourcemanager/resourcegraph/armresourcegraph/operations_client.go similarity index 95% rename from sdk/resourcemanager/resourcegraph/armresourcegraph/zz_generated_operations_client.go rename to sdk/resourcemanager/resourcegraph/armresourcegraph/operations_client.go index 11a9ba1a279b..aa56df4912eb 100644 --- a/sdk/resourcemanager/resourcegraph/armresourcegraph/zz_generated_operations_client.go +++ b/sdk/resourcemanager/resourcegraph/armresourcegraph/operations_client.go @@ -5,6 +5,7 @@ // Licensed under the MIT License. See License.txt in the project root for license information. // Code generated by Microsoft (R) AutoRest Code Generator. // Changes may cause incorrect behavior and will be lost if the code is regenerated. +// DO NOT EDIT. package armresourcegraph @@ -49,8 +50,7 @@ func NewOperationsClient(credential azcore.TokenCredential, options *arm.ClientO } // NewListPager - Lists all of the available REST API operations. -// If the operation fails it returns an *azcore.ResponseError type. -// Generated from API version 2021-06-01-preview +// Generated from API version 2022-10-01 // options - OperationsClientListOptions contains the optional parameters for the OperationsClient.List method. func (client *OperationsClient) NewListPager(options *OperationsClientListOptions) *runtime.Pager[OperationsClientListResponse] { return runtime.NewPager(runtime.PagingHandler[OperationsClientListResponse]{ @@ -82,7 +82,7 @@ func (client *OperationsClient) listCreateRequest(ctx context.Context, options * return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "2021-06-01-preview") + reqQP.Set("api-version", "2022-10-01") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header["Accept"] = []string{"application/json"} return req, nil diff --git a/sdk/resourcemanager/resourcegraph/armresourcegraph/zz_generated_polymorphic_helpers.go b/sdk/resourcemanager/resourcegraph/armresourcegraph/polymorphic_helpers.go similarity index 98% rename from sdk/resourcemanager/resourcegraph/armresourcegraph/zz_generated_polymorphic_helpers.go rename to sdk/resourcemanager/resourcegraph/armresourcegraph/polymorphic_helpers.go index 4f307d65cd4d..23a06c9d0c76 100644 --- a/sdk/resourcemanager/resourcegraph/armresourcegraph/zz_generated_polymorphic_helpers.go +++ b/sdk/resourcemanager/resourcegraph/armresourcegraph/polymorphic_helpers.go @@ -5,6 +5,7 @@ // Licensed under the MIT License. See License.txt in the project root for license information. // Code generated by Microsoft (R) AutoRest Code Generator. // Changes may cause incorrect behavior and will be lost if the code is regenerated. +// DO NOT EDIT. package armresourcegraph diff --git a/sdk/resourcemanager/resourcegraph/armresourcegraph/zz_generated_response_types.go b/sdk/resourcemanager/resourcegraph/armresourcegraph/response_types.go similarity index 64% rename from sdk/resourcemanager/resourcegraph/armresourcegraph/zz_generated_response_types.go rename to sdk/resourcemanager/resourcegraph/armresourcegraph/response_types.go index a3dd8f08c514..fac52df2d3fc 100644 --- a/sdk/resourcemanager/resourcegraph/armresourcegraph/zz_generated_response_types.go +++ b/sdk/resourcemanager/resourcegraph/armresourcegraph/response_types.go @@ -5,9 +5,21 @@ // Licensed under the MIT License. See License.txt in the project root for license information. // Code generated by Microsoft (R) AutoRest Code Generator. // Changes may cause incorrect behavior and will be lost if the code is regenerated. +// DO NOT EDIT. package armresourcegraph +// ClientResourceChangeDetailsResponse contains the response from method Client.ResourceChangeDetails. +type ClientResourceChangeDetailsResponse struct { + // A list of change details associated with a resource over a specific time interval. + ResourceChangeDataArray []*ResourceChangeData +} + +// ClientResourceChangesResponse contains the response from method Client.ResourceChanges. +type ClientResourceChangesResponse struct { + ResourceChangeList +} + // ClientResourcesHistoryResponse contains the response from method Client.ResourcesHistory. type ClientResourcesHistoryResponse struct { // Anything diff --git a/sdk/resourcemanager/resourcegraph/armresourcegraph/zz_generated_time_rfc3339.go b/sdk/resourcemanager/resourcegraph/armresourcegraph/time_rfc3339.go similarity index 99% rename from sdk/resourcemanager/resourcegraph/armresourcegraph/zz_generated_time_rfc3339.go rename to sdk/resourcemanager/resourcegraph/armresourcegraph/time_rfc3339.go index 86337010a8d9..0abef344a61a 100644 --- a/sdk/resourcemanager/resourcegraph/armresourcegraph/zz_generated_time_rfc3339.go +++ b/sdk/resourcemanager/resourcegraph/armresourcegraph/time_rfc3339.go @@ -5,6 +5,7 @@ // Licensed under the MIT License. See License.txt in the project root for license information. // Code generated by Microsoft (R) AutoRest Code Generator. // Changes may cause incorrect behavior and will be lost if the code is regenerated. +// DO NOT EDIT. package armresourcegraph diff --git a/sdk/resourcemanager/resourcegraph/armresourcegraph/ze_generated_example_operations_client_test.go b/sdk/resourcemanager/resourcegraph/armresourcegraph/ze_generated_example_operations_client_test.go deleted file mode 100644 index bf1b82d44f5d..000000000000 --- a/sdk/resourcemanager/resourcegraph/armresourcegraph/ze_generated_example_operations_client_test.go +++ /dev/null @@ -1,41 +0,0 @@ -//go:build go1.18 -// +build go1.18 - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -package armresourcegraph_test - -import ( - "context" - "log" - - "github.com/Azure/azure-sdk-for-go/sdk/azidentity" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph" -) - -// Generated from example definition: https://github.com/Azure/azure-rest-api-specs/tree/main/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/preview/2021-06-01-preview/examples/OperationsList.json -func ExampleOperationsClient_NewListPager() { - cred, err := azidentity.NewDefaultAzureCredential(nil) - if err != nil { - log.Fatalf("failed to obtain a credential: %v", err) - } - ctx := context.Background() - client, err := armresourcegraph.NewOperationsClient(cred, nil) - if err != nil { - log.Fatalf("failed to create client: %v", err) - } - pager := client.NewListPager(nil) - for pager.More() { - nextResult, err := pager.NextPage(ctx) - if err != nil { - log.Fatalf("failed to advance page: %v", err) - } - for _, v := range nextResult.Value { - // TODO: use page item - _ = v - } - } -} diff --git a/sdk/resourcemanager/resourcegraph/armresourcegraph/ze_generated_example_resourcegraphclient_client_test.go b/sdk/resourcemanager/resourcegraph/armresourcegraph/ze_generated_example_resourcegraphclient_client_test.go deleted file mode 100644 index 3297c70d39b5..000000000000 --- a/sdk/resourcemanager/resourcegraph/armresourcegraph/ze_generated_example_resourcegraphclient_client_test.go +++ /dev/null @@ -1,77 +0,0 @@ -//go:build go1.18 -// +build go1.18 - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -package armresourcegraph_test - -import ( - "context" - "log" - - "time" - - "github.com/Azure/azure-sdk-for-go/sdk/azcore/to" - "github.com/Azure/azure-sdk-for-go/sdk/azidentity" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph" -) - -// Generated from example definition: https://github.com/Azure/azure-rest-api-specs/tree/main/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/preview/2021-06-01-preview/examples/ResourcesPropertiesQuery.json -func ExampleClient_Resources() { - cred, err := azidentity.NewDefaultAzureCredential(nil) - if err != nil { - log.Fatalf("failed to obtain a credential: %v", err) - } - ctx := context.Background() - client, err := armresourcegraph.NewClient(cred, nil) - if err != nil { - log.Fatalf("failed to create client: %v", err) - } - res, err := client.Resources(ctx, - armresourcegraph.QueryRequest{ - Query: to.Ptr("Resources | where type =~ 'Microsoft.Compute/virtualMachines' | summarize count() by tostring(properties.storageProfile.osDisk.osType)"), - Subscriptions: []*string{ - to.Ptr("cfbbd179-59d2-4052-aa06-9270a38aa9d6")}, - }, - nil) - if err != nil { - log.Fatalf("failed to finish the request: %v", err) - } - // TODO: use response item - _ = res -} - -// Generated from example definition: https://github.com/Azure/azure-rest-api-specs/tree/main/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/preview/2021-06-01-preview/examples/ResourcesHistoryMgsGet.json -func ExampleClient_ResourcesHistory() { - cred, err := azidentity.NewDefaultAzureCredential(nil) - if err != nil { - log.Fatalf("failed to obtain a credential: %v", err) - } - ctx := context.Background() - client, err := armresourcegraph.NewClient(cred, nil) - if err != nil { - log.Fatalf("failed to create client: %v", err) - } - res, err := client.ResourcesHistory(ctx, - armresourcegraph.ResourcesHistoryRequest{ - ManagementGroups: []*string{ - to.Ptr("e927f598-c1d4-4f72-8541-95d83a6a4ac8"), - to.Ptr("ProductionMG")}, - Options: &armresourcegraph.ResourcesHistoryRequestOptions{ - Interval: &armresourcegraph.DateTimeInterval{ - End: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2020-11-12T01:25:00.0000000Z"); return t }()), - Start: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2020-11-12T01:00:00.0000000Z"); return t }()), - }, - }, - Query: to.Ptr("where name =~ 'cpu-utilization' | project id, name, properties"), - }, - nil) - if err != nil { - log.Fatalf("failed to finish the request: %v", err) - } - // TODO: use response item - _ = res -} diff --git a/sdk/resourcemanager/resourcegraph/armresourcegraph/zz_generated_models_serde.go b/sdk/resourcemanager/resourcegraph/armresourcegraph/zz_generated_models_serde.go deleted file mode 100644 index 623c97a8ddaa..000000000000 --- a/sdk/resourcemanager/resourcegraph/armresourcegraph/zz_generated_models_serde.go +++ /dev/null @@ -1,214 +0,0 @@ -//go:build go1.18 -// +build go1.18 - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -package armresourcegraph - -import ( - "encoding/json" - "fmt" - "github.com/Azure/azure-sdk-for-go/sdk/azcore" - "reflect" -) - -// MarshalJSON implements the json.Marshaller interface for type DateTimeInterval. -func (d DateTimeInterval) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populateTimeRFC3339(objectMap, "end", d.End) - populateTimeRFC3339(objectMap, "start", d.Start) - return json.Marshal(objectMap) -} - -// UnmarshalJSON implements the json.Unmarshaller interface for type DateTimeInterval. -func (d *DateTimeInterval) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return fmt.Errorf("unmarshalling type %T: %v", d, err) - } - for key, val := range rawMsg { - var err error - switch key { - case "end": - err = unpopulateTimeRFC3339(val, "End", &d.End) - delete(rawMsg, key) - case "start": - err = unpopulateTimeRFC3339(val, "Start", &d.Start) - delete(rawMsg, key) - } - if err != nil { - return fmt.Errorf("unmarshalling type %T: %v", d, err) - } - } - return nil -} - -// UnmarshalJSON implements the json.Unmarshaller interface for type ErrorDetails. -func (e *ErrorDetails) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return fmt.Errorf("unmarshalling type %T: %v", e, err) - } - for key, val := range rawMsg { - var err error - switch key { - case "code": - err = unpopulate(val, "Code", &e.Code) - delete(rawMsg, key) - case "message": - err = unpopulate(val, "Message", &e.Message) - delete(rawMsg, key) - default: - if e.AdditionalProperties == nil { - e.AdditionalProperties = map[string]interface{}{} - } - if val != nil { - var aux interface{} - err = json.Unmarshal(val, &aux) - e.AdditionalProperties[key] = aux - } - delete(rawMsg, key) - } - if err != nil { - return fmt.Errorf("unmarshalling type %T: %v", e, err) - } - } - return nil -} - -// UnmarshalJSON implements the json.Unmarshaller interface for type FacetError. -func (f *FacetError) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return fmt.Errorf("unmarshalling type %T: %v", f, err) - } - for key, val := range rawMsg { - var err error - switch key { - case "errors": - err = unpopulate(val, "Errors", &f.Errors) - delete(rawMsg, key) - case "expression": - err = unpopulate(val, "Expression", &f.Expression) - delete(rawMsg, key) - case "resultType": - err = unpopulate(val, "ResultType", &f.ResultType) - delete(rawMsg, key) - } - if err != nil { - return fmt.Errorf("unmarshalling type %T: %v", f, err) - } - } - return nil -} - -// UnmarshalJSON implements the json.Unmarshaller interface for type FacetResult. -func (f *FacetResult) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return fmt.Errorf("unmarshalling type %T: %v", f, err) - } - for key, val := range rawMsg { - var err error - switch key { - case "count": - err = unpopulate(val, "Count", &f.Count) - delete(rawMsg, key) - case "data": - err = unpopulate(val, "Data", &f.Data) - delete(rawMsg, key) - case "expression": - err = unpopulate(val, "Expression", &f.Expression) - delete(rawMsg, key) - case "resultType": - err = unpopulate(val, "ResultType", &f.ResultType) - delete(rawMsg, key) - case "totalRecords": - err = unpopulate(val, "TotalRecords", &f.TotalRecords) - delete(rawMsg, key) - } - if err != nil { - return fmt.Errorf("unmarshalling type %T: %v", f, err) - } - } - return nil -} - -// MarshalJSON implements the json.Marshaller interface for type QueryRequest. -func (q QueryRequest) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "facets", q.Facets) - populate(objectMap, "managementGroups", q.ManagementGroups) - populate(objectMap, "options", q.Options) - populate(objectMap, "query", q.Query) - populate(objectMap, "subscriptions", q.Subscriptions) - return json.Marshal(objectMap) -} - -// UnmarshalJSON implements the json.Unmarshaller interface for type QueryResponse. -func (q *QueryResponse) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return fmt.Errorf("unmarshalling type %T: %v", q, err) - } - for key, val := range rawMsg { - var err error - switch key { - case "count": - err = unpopulate(val, "Count", &q.Count) - delete(rawMsg, key) - case "data": - err = unpopulate(val, "Data", &q.Data) - delete(rawMsg, key) - case "facets": - q.Facets, err = unmarshalFacetClassificationArray(val) - delete(rawMsg, key) - case "resultTruncated": - err = unpopulate(val, "ResultTruncated", &q.ResultTruncated) - delete(rawMsg, key) - case "$skipToken": - err = unpopulate(val, "SkipToken", &q.SkipToken) - delete(rawMsg, key) - case "totalRecords": - err = unpopulate(val, "TotalRecords", &q.TotalRecords) - delete(rawMsg, key) - } - if err != nil { - return fmt.Errorf("unmarshalling type %T: %v", q, err) - } - } - return nil -} - -// MarshalJSON implements the json.Marshaller interface for type ResourcesHistoryRequest. -func (r ResourcesHistoryRequest) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "managementGroups", r.ManagementGroups) - populate(objectMap, "options", r.Options) - populate(objectMap, "query", r.Query) - populate(objectMap, "subscriptions", r.Subscriptions) - return json.Marshal(objectMap) -} - -func populate(m map[string]interface{}, k string, v interface{}) { - if v == nil { - return - } else if azcore.IsNullValue(v) { - m[k] = nil - } else if !reflect.ValueOf(v).IsNil() { - m[k] = v - } -} - -func unpopulate(data json.RawMessage, fn string, v interface{}) error { - if data == nil { - return nil - } - if err := json.Unmarshal(data, v); err != nil { - return fmt.Errorf("struct field %s: %v", fn, err) - } - return nil -}