github.com/newrelic/newrelic-client-go@v1.1.0/pkg/cloud/cloud_api.go (about)

     1  // Code generated by tutone: DO NOT EDIT
     2  package cloud
     3  
     4  import (
     5  	"context"
     6  
     7  	"github.com/newrelic/newrelic-client-go/pkg/errors"
     8  )
     9  
    10  // Create or modify a cloud integration.
    11  //
    12  // For details and mutation examples visit
    13  // [our docs](https://docs.newrelic.com/docs/apis/graphql-api/tutorials/manage-your-aws-azure-google-cloud-integrations-graphql-api).
    14  func (a *Cloud) CloudConfigureIntegration(
    15  	accountID int,
    16  	integrations CloudIntegrationsInput,
    17  ) (*CloudConfigureIntegrationPayload, error) {
    18  	return a.CloudConfigureIntegrationWithContext(context.Background(),
    19  		accountID,
    20  		integrations,
    21  	)
    22  }
    23  
    24  // Create or modify a cloud integration.
    25  //
    26  // For details and mutation examples visit
    27  // [our docs](https://docs.newrelic.com/docs/apis/graphql-api/tutorials/manage-your-aws-azure-google-cloud-integrations-graphql-api).
    28  func (a *Cloud) CloudConfigureIntegrationWithContext(
    29  	ctx context.Context,
    30  	accountID int,
    31  	integrations CloudIntegrationsInput,
    32  ) (*CloudConfigureIntegrationPayload, error) {
    33  
    34  	resp := CloudConfigureIntegrationQueryResponse{}
    35  	vars := map[string]interface{}{
    36  		"accountId":    accountID,
    37  		"integrations": integrations,
    38  	}
    39  
    40  	if err := a.client.NerdGraphQueryWithContext(ctx, CloudConfigureIntegrationMutation, vars, &resp); err != nil {
    41  		return nil, err
    42  	}
    43  
    44  	return &resp.CloudConfigureIntegrationPayload, nil
    45  }
    46  
    47  type CloudConfigureIntegrationQueryResponse struct {
    48  	CloudConfigureIntegrationPayload CloudConfigureIntegrationPayload `json:"CloudConfigureIntegration"`
    49  }
    50  
    51  const CloudConfigureIntegrationMutation = `mutation(
    52  	$accountId: Int!,
    53  	$integrations: CloudIntegrationsInput!,
    54  ) { cloudConfigureIntegration(
    55  	accountId: $accountId,
    56  	integrations: $integrations,
    57  ) {
    58  	errors {
    59  		integrationSlug
    60  		linkedAccountId
    61  		message
    62  		nrAccountId
    63  		type
    64  	}
    65  	integrations {
    66  		__typename
    67  		createdAt
    68  		id
    69  		name
    70  		nrAccountId
    71  		updatedAt
    72  		... on CloudAlbIntegration {
    73  			__typename
    74  			awsRegions
    75  			fetchExtendedInventory
    76  			fetchTags
    77  			inventoryPollingInterval
    78  			loadBalancerPrefixes
    79  			metricsPollingInterval
    80  			tagKey
    81  			tagValue
    82  		}
    83  		... on CloudApigatewayIntegration {
    84  			__typename
    85  			awsRegions
    86  			inventoryPollingInterval
    87  			metricsPollingInterval
    88  			stagePrefixes
    89  			tagKey
    90  			tagValue
    91  		}
    92  		... on CloudAutoscalingIntegration {
    93  			__typename
    94  			awsRegions
    95  			inventoryPollingInterval
    96  			metricsPollingInterval
    97  		}
    98  		... on CloudAwsAppsyncIntegration {
    99  			__typename
   100  			awsRegions
   101  			inventoryPollingInterval
   102  			metricsPollingInterval
   103  		}
   104  		... on CloudAwsAthenaIntegration {
   105  			__typename
   106  			awsRegions
   107  			inventoryPollingInterval
   108  			metricsPollingInterval
   109  		}
   110  		... on CloudAwsCognitoIntegration {
   111  			__typename
   112  			awsRegions
   113  			inventoryPollingInterval
   114  			metricsPollingInterval
   115  		}
   116  		... on CloudAwsConnectIntegration {
   117  			__typename
   118  			awsRegions
   119  			inventoryPollingInterval
   120  			metricsPollingInterval
   121  		}
   122  		... on CloudAwsDirectconnectIntegration {
   123  			__typename
   124  			awsRegions
   125  			inventoryPollingInterval
   126  			metricsPollingInterval
   127  		}
   128  		... on CloudAwsDocdbIntegration {
   129  			__typename
   130  			awsRegions
   131  			inventoryPollingInterval
   132  			metricsPollingInterval
   133  		}
   134  		... on CloudAwsFsxIntegration {
   135  			__typename
   136  			awsRegions
   137  			inventoryPollingInterval
   138  			metricsPollingInterval
   139  		}
   140  		... on CloudAwsGlueIntegration {
   141  			__typename
   142  			awsRegions
   143  			inventoryPollingInterval
   144  			metricsPollingInterval
   145  		}
   146  		... on CloudAwsKinesisanalyticsIntegration {
   147  			__typename
   148  			awsRegions
   149  			inventoryPollingInterval
   150  			metricsPollingInterval
   151  		}
   152  		... on CloudAwsMediaconvertIntegration {
   153  			__typename
   154  			awsRegions
   155  			inventoryPollingInterval
   156  			metricsPollingInterval
   157  		}
   158  		... on CloudAwsMediapackagevodIntegration {
   159  			__typename
   160  			awsRegions
   161  			inventoryPollingInterval
   162  			metricsPollingInterval
   163  		}
   164  		... on CloudAwsMetadataIntegration {
   165  			__typename
   166  			inventoryPollingInterval
   167  			metricsPollingInterval
   168  		}
   169  		... on CloudAwsMqIntegration {
   170  			__typename
   171  			awsRegions
   172  			inventoryPollingInterval
   173  			metricsPollingInterval
   174  		}
   175  		... on CloudAwsMskIntegration {
   176  			__typename
   177  			awsRegions
   178  			inventoryPollingInterval
   179  			metricsPollingInterval
   180  		}
   181  		... on CloudAwsNeptuneIntegration {
   182  			__typename
   183  			awsRegions
   184  			inventoryPollingInterval
   185  			metricsPollingInterval
   186  		}
   187  		... on CloudAwsQldbIntegration {
   188  			__typename
   189  			awsRegions
   190  			inventoryPollingInterval
   191  			metricsPollingInterval
   192  		}
   193  		... on CloudAwsRoute53resolverIntegration {
   194  			__typename
   195  			awsRegions
   196  			inventoryPollingInterval
   197  			metricsPollingInterval
   198  		}
   199  		... on CloudAwsStatesIntegration {
   200  			__typename
   201  			awsRegions
   202  			inventoryPollingInterval
   203  			metricsPollingInterval
   204  		}
   205  		... on CloudAwsTagsGlobalIntegration {
   206  			__typename
   207  			inventoryPollingInterval
   208  			metricsPollingInterval
   209  		}
   210  		... on CloudAwsTransitgatewayIntegration {
   211  			__typename
   212  			awsRegions
   213  			inventoryPollingInterval
   214  			metricsPollingInterval
   215  		}
   216  		... on CloudAwsWafIntegration {
   217  			__typename
   218  			awsRegions
   219  			inventoryPollingInterval
   220  			metricsPollingInterval
   221  		}
   222  		... on CloudAwsWafv2Integration {
   223  			__typename
   224  			awsRegions
   225  			inventoryPollingInterval
   226  			metricsPollingInterval
   227  		}
   228  		... on CloudAwsXrayIntegration {
   229  			__typename
   230  			awsRegions
   231  			inventoryPollingInterval
   232  			metricsPollingInterval
   233  		}
   234  		... on CloudAzureApimanagementIntegration {
   235  			__typename
   236  			inventoryPollingInterval
   237  			metricsPollingInterval
   238  			resourceGroups
   239  		}
   240  		... on CloudAzureAppgatewayIntegration {
   241  			__typename
   242  			inventoryPollingInterval
   243  			metricsPollingInterval
   244  			resourceGroups
   245  		}
   246  		... on CloudAzureAppserviceIntegration {
   247  			__typename
   248  			inventoryPollingInterval
   249  			metricsPollingInterval
   250  			resourceGroups
   251  		}
   252  		... on CloudAzureContainersIntegration {
   253  			__typename
   254  			inventoryPollingInterval
   255  			metricsPollingInterval
   256  			resourceGroups
   257  		}
   258  		... on CloudAzureCosmosdbIntegration {
   259  			__typename
   260  			inventoryPollingInterval
   261  			metricsPollingInterval
   262  			resourceGroups
   263  		}
   264  		... on CloudAzureCostmanagementIntegration {
   265  			__typename
   266  			inventoryPollingInterval
   267  			metricsPollingInterval
   268  			tagKeys
   269  		}
   270  		... on CloudAzureDatafactoryIntegration {
   271  			__typename
   272  			inventoryPollingInterval
   273  			metricsPollingInterval
   274  			resourceGroups
   275  		}
   276  		... on CloudAzureEventhubIntegration {
   277  			__typename
   278  			inventoryPollingInterval
   279  			metricsPollingInterval
   280  			resourceGroups
   281  		}
   282  		... on CloudAzureExpressrouteIntegration {
   283  			__typename
   284  			inventoryPollingInterval
   285  			metricsPollingInterval
   286  			resourceGroups
   287  		}
   288  		... on CloudAzureFirewallsIntegration {
   289  			__typename
   290  			inventoryPollingInterval
   291  			metricsPollingInterval
   292  			resourceGroups
   293  		}
   294  		... on CloudAzureFrontdoorIntegration {
   295  			__typename
   296  			inventoryPollingInterval
   297  			metricsPollingInterval
   298  			resourceGroups
   299  		}
   300  		... on CloudAzureFunctionsIntegration {
   301  			__typename
   302  			inventoryPollingInterval
   303  			metricsPollingInterval
   304  			resourceGroups
   305  		}
   306  		... on CloudAzureKeyvaultIntegration {
   307  			__typename
   308  			inventoryPollingInterval
   309  			metricsPollingInterval
   310  			resourceGroups
   311  		}
   312  		... on CloudAzureLoadbalancerIntegration {
   313  			__typename
   314  			inventoryPollingInterval
   315  			metricsPollingInterval
   316  			resourceGroups
   317  		}
   318  		... on CloudAzureLogicappsIntegration {
   319  			__typename
   320  			inventoryPollingInterval
   321  			metricsPollingInterval
   322  			resourceGroups
   323  		}
   324  		... on CloudAzureMachinelearningIntegration {
   325  			__typename
   326  			inventoryPollingInterval
   327  			metricsPollingInterval
   328  			resourceGroups
   329  		}
   330  		... on CloudAzureMariadbIntegration {
   331  			__typename
   332  			inventoryPollingInterval
   333  			metricsPollingInterval
   334  			resourceGroups
   335  		}
   336  		... on CloudAzureMysqlIntegration {
   337  			__typename
   338  			inventoryPollingInterval
   339  			metricsPollingInterval
   340  			resourceGroups
   341  		}
   342  		... on CloudAzurePostgresqlIntegration {
   343  			__typename
   344  			inventoryPollingInterval
   345  			metricsPollingInterval
   346  			resourceGroups
   347  		}
   348  		... on CloudAzurePowerbidedicatedIntegration {
   349  			__typename
   350  			inventoryPollingInterval
   351  			metricsPollingInterval
   352  			resourceGroups
   353  		}
   354  		... on CloudAzureRediscacheIntegration {
   355  			__typename
   356  			inventoryPollingInterval
   357  			metricsPollingInterval
   358  			resourceGroups
   359  		}
   360  		... on CloudAzureServicebusIntegration {
   361  			__typename
   362  			inventoryPollingInterval
   363  			metricsPollingInterval
   364  			resourceGroups
   365  		}
   366  		... on CloudAzureSqlIntegration {
   367  			__typename
   368  			inventoryPollingInterval
   369  			metricsPollingInterval
   370  			resourceGroups
   371  		}
   372  		... on CloudAzureSqlmanagedIntegration {
   373  			__typename
   374  			inventoryPollingInterval
   375  			metricsPollingInterval
   376  			resourceGroups
   377  		}
   378  		... on CloudAzureStorageIntegration {
   379  			__typename
   380  			inventoryPollingInterval
   381  			metricsPollingInterval
   382  			resourceGroups
   383  		}
   384  		... on CloudAzureVirtualmachineIntegration {
   385  			__typename
   386  			inventoryPollingInterval
   387  			metricsPollingInterval
   388  			resourceGroups
   389  		}
   390  		... on CloudAzureVirtualnetworksIntegration {
   391  			__typename
   392  			inventoryPollingInterval
   393  			metricsPollingInterval
   394  			resourceGroups
   395  		}
   396  		... on CloudAzureVmsIntegration {
   397  			__typename
   398  			inventoryPollingInterval
   399  			metricsPollingInterval
   400  			resourceGroups
   401  		}
   402  		... on CloudAzureVpngatewaysIntegration {
   403  			__typename
   404  			inventoryPollingInterval
   405  			metricsPollingInterval
   406  			resourceGroups
   407  		}
   408  		... on CloudBaseIntegration {
   409  			__typename
   410  		}
   411  		... on CloudBillingIntegration {
   412  			__typename
   413  			inventoryPollingInterval
   414  			metricsPollingInterval
   415  		}
   416  		... on CloudCloudfrontIntegration {
   417  			__typename
   418  			fetchLambdasAtEdge
   419  			fetchTags
   420  			inventoryPollingInterval
   421  			metricsPollingInterval
   422  			tagKey
   423  			tagValue
   424  		}
   425  		... on CloudCloudtrailIntegration {
   426  			__typename
   427  			awsRegions
   428  			inventoryPollingInterval
   429  			metricsPollingInterval
   430  		}
   431  		... on CloudDynamodbIntegration {
   432  			__typename
   433  			awsRegions
   434  			fetchExtendedInventory
   435  			fetchTags
   436  			inventoryPollingInterval
   437  			metricsPollingInterval
   438  			tagKey
   439  			tagValue
   440  		}
   441  		... on CloudEbsIntegration {
   442  			__typename
   443  			awsRegions
   444  			fetchExtendedInventory
   445  			inventoryPollingInterval
   446  			metricsPollingInterval
   447  			tagKey
   448  			tagValue
   449  		}
   450  		... on CloudEc2Integration {
   451  			__typename
   452  			awsRegions
   453  			fetchIpAddresses
   454  			inventoryPollingInterval
   455  			metricsPollingInterval
   456  			tagKey
   457  			tagValue
   458  		}
   459  		... on CloudEcsIntegration {
   460  			__typename
   461  			awsRegions
   462  			fetchTags
   463  			inventoryPollingInterval
   464  			metricsPollingInterval
   465  			tagKey
   466  			tagValue
   467  		}
   468  		... on CloudEfsIntegration {
   469  			__typename
   470  			awsRegions
   471  			fetchTags
   472  			inventoryPollingInterval
   473  			metricsPollingInterval
   474  			tagKey
   475  			tagValue
   476  		}
   477  		... on CloudElasticacheIntegration {
   478  			__typename
   479  			awsRegions
   480  			fetchTags
   481  			inventoryPollingInterval
   482  			metricsPollingInterval
   483  			tagKey
   484  			tagValue
   485  		}
   486  		... on CloudElasticbeanstalkIntegration {
   487  			__typename
   488  			awsRegions
   489  			fetchExtendedInventory
   490  			fetchTags
   491  			inventoryPollingInterval
   492  			metricsPollingInterval
   493  			tagKey
   494  			tagValue
   495  		}
   496  		... on CloudElasticsearchIntegration {
   497  			__typename
   498  			awsRegions
   499  			fetchNodes
   500  			inventoryPollingInterval
   501  			metricsPollingInterval
   502  			tagKey
   503  			tagValue
   504  		}
   505  		... on CloudElbIntegration {
   506  			__typename
   507  			awsRegions
   508  			fetchExtendedInventory
   509  			fetchTags
   510  			inventoryPollingInterval
   511  			metricsPollingInterval
   512  		}
   513  		... on CloudEmrIntegration {
   514  			__typename
   515  			awsRegions
   516  			fetchTags
   517  			inventoryPollingInterval
   518  			metricsPollingInterval
   519  			tagKey
   520  			tagValue
   521  		}
   522  		... on CloudGcpAppengineIntegration {
   523  			__typename
   524  			inventoryPollingInterval
   525  			metricsPollingInterval
   526  		}
   527  		... on CloudGcpBigqueryIntegration {
   528  			__typename
   529  			fetchTags
   530  			inventoryPollingInterval
   531  			metricsPollingInterval
   532  		}
   533  		... on CloudGcpBigtableIntegration {
   534  			__typename
   535  			inventoryPollingInterval
   536  			metricsPollingInterval
   537  		}
   538  		... on CloudGcpComposerIntegration {
   539  			__typename
   540  			inventoryPollingInterval
   541  			metricsPollingInterval
   542  		}
   543  		... on CloudGcpDataflowIntegration {
   544  			__typename
   545  			inventoryPollingInterval
   546  			metricsPollingInterval
   547  		}
   548  		... on CloudGcpDataprocIntegration {
   549  			__typename
   550  			inventoryPollingInterval
   551  			metricsPollingInterval
   552  		}
   553  		... on CloudGcpDatastoreIntegration {
   554  			__typename
   555  			inventoryPollingInterval
   556  			metricsPollingInterval
   557  		}
   558  		... on CloudGcpFirebasedatabaseIntegration {
   559  			__typename
   560  			inventoryPollingInterval
   561  			metricsPollingInterval
   562  		}
   563  		... on CloudGcpFirebasehostingIntegration {
   564  			__typename
   565  			inventoryPollingInterval
   566  			metricsPollingInterval
   567  		}
   568  		... on CloudGcpFirebasestorageIntegration {
   569  			__typename
   570  			inventoryPollingInterval
   571  			metricsPollingInterval
   572  		}
   573  		... on CloudGcpFirestoreIntegration {
   574  			__typename
   575  			inventoryPollingInterval
   576  			metricsPollingInterval
   577  		}
   578  		... on CloudGcpFunctionsIntegration {
   579  			__typename
   580  			inventoryPollingInterval
   581  			metricsPollingInterval
   582  		}
   583  		... on CloudGcpInterconnectIntegration {
   584  			__typename
   585  			inventoryPollingInterval
   586  			metricsPollingInterval
   587  		}
   588  		... on CloudGcpKubernetesIntegration {
   589  			__typename
   590  			inventoryPollingInterval
   591  			metricsPollingInterval
   592  		}
   593  		... on CloudGcpLoadbalancingIntegration {
   594  			__typename
   595  			inventoryPollingInterval
   596  			metricsPollingInterval
   597  		}
   598  		... on CloudGcpMemcacheIntegration {
   599  			__typename
   600  			inventoryPollingInterval
   601  			metricsPollingInterval
   602  		}
   603  		... on CloudGcpPubsubIntegration {
   604  			__typename
   605  			fetchTags
   606  			inventoryPollingInterval
   607  			metricsPollingInterval
   608  		}
   609  		... on CloudGcpRedisIntegration {
   610  			__typename
   611  			inventoryPollingInterval
   612  			metricsPollingInterval
   613  		}
   614  		... on CloudGcpRouterIntegration {
   615  			__typename
   616  			inventoryPollingInterval
   617  			metricsPollingInterval
   618  		}
   619  		... on CloudGcpRunIntegration {
   620  			__typename
   621  			inventoryPollingInterval
   622  			metricsPollingInterval
   623  		}
   624  		... on CloudGcpSpannerIntegration {
   625  			__typename
   626  			fetchTags
   627  			inventoryPollingInterval
   628  			metricsPollingInterval
   629  		}
   630  		... on CloudGcpSqlIntegration {
   631  			__typename
   632  			inventoryPollingInterval
   633  			metricsPollingInterval
   634  		}
   635  		... on CloudGcpStorageIntegration {
   636  			__typename
   637  			fetchTags
   638  			inventoryPollingInterval
   639  			metricsPollingInterval
   640  		}
   641  		... on CloudGcpVmsIntegration {
   642  			__typename
   643  			inventoryPollingInterval
   644  			metricsPollingInterval
   645  		}
   646  		... on CloudGcpVpcaccessIntegration {
   647  			__typename
   648  			inventoryPollingInterval
   649  			metricsPollingInterval
   650  		}
   651  		... on CloudHealthIntegration {
   652  			__typename
   653  			inventoryPollingInterval
   654  			metricsPollingInterval
   655  		}
   656  		... on CloudIamIntegration {
   657  			__typename
   658  			inventoryPollingInterval
   659  			metricsPollingInterval
   660  			tagKey
   661  			tagValue
   662  		}
   663  		... on CloudIotIntegration {
   664  			__typename
   665  			awsRegions
   666  			inventoryPollingInterval
   667  			metricsPollingInterval
   668  		}
   669  		... on CloudKinesisFirehoseIntegration {
   670  			__typename
   671  			awsRegions
   672  			inventoryPollingInterval
   673  			metricsPollingInterval
   674  		}
   675  		... on CloudKinesisIntegration {
   676  			__typename
   677  			awsRegions
   678  			fetchShards
   679  			fetchTags
   680  			inventoryPollingInterval
   681  			metricsPollingInterval
   682  			tagKey
   683  			tagValue
   684  		}
   685  		... on CloudLambdaIntegration {
   686  			__typename
   687  			awsRegions
   688  			fetchTags
   689  			inventoryPollingInterval
   690  			metricsPollingInterval
   691  			tagKey
   692  			tagValue
   693  		}
   694  		... on CloudRdsIntegration {
   695  			__typename
   696  			awsRegions
   697  			fetchTags
   698  			inventoryPollingInterval
   699  			metricsPollingInterval
   700  			tagKey
   701  			tagValue
   702  		}
   703  		... on CloudRedshiftIntegration {
   704  			__typename
   705  			awsRegions
   706  			inventoryPollingInterval
   707  			metricsPollingInterval
   708  			tagKey
   709  			tagValue
   710  		}
   711  		... on CloudRoute53Integration {
   712  			__typename
   713  			fetchExtendedInventory
   714  			inventoryPollingInterval
   715  			metricsPollingInterval
   716  		}
   717  		... on CloudS3Integration {
   718  			__typename
   719  			fetchExtendedInventory
   720  			fetchTags
   721  			inventoryPollingInterval
   722  			metricsPollingInterval
   723  			tagKey
   724  			tagValue
   725  		}
   726  		... on CloudSesIntegration {
   727  			__typename
   728  			awsRegions
   729  			inventoryPollingInterval
   730  			metricsPollingInterval
   731  		}
   732  		... on CloudSnsIntegration {
   733  			__typename
   734  			awsRegions
   735  			fetchExtendedInventory
   736  			inventoryPollingInterval
   737  			metricsPollingInterval
   738  		}
   739  		... on CloudSqsIntegration {
   740  			__typename
   741  			awsRegions
   742  			fetchExtendedInventory
   743  			fetchTags
   744  			inventoryPollingInterval
   745  			metricsPollingInterval
   746  			queuePrefixes
   747  			tagKey
   748  			tagValue
   749  		}
   750  		... on CloudTrustedadvisorIntegration {
   751  			__typename
   752  			inventoryPollingInterval
   753  			metricsPollingInterval
   754  		}
   755  		... on CloudVpcIntegration {
   756  			__typename
   757  			awsRegions
   758  			fetchNatGateway
   759  			fetchVpn
   760  			inventoryPollingInterval
   761  			metricsPollingInterval
   762  			tagKey
   763  			tagValue
   764  		}
   765  	}
   766  } }`
   767  
   768  // Disable a cloud integration. Stops collecting data for the specified integration.
   769  //
   770  // For details and mutation examples visit
   771  // [our docs](https://docs.newrelic.com/docs/apis/graphql-api/tutorials/manage-your-aws-azure-google-cloud-integrations-graphql-api).
   772  func (a *Cloud) CloudDisableIntegration(
   773  	accountID int,
   774  	integrations CloudDisableIntegrationsInput,
   775  ) (*CloudDisableIntegrationPayload, error) {
   776  	return a.CloudDisableIntegrationWithContext(context.Background(),
   777  		accountID,
   778  		integrations,
   779  	)
   780  }
   781  
   782  // Disable a cloud integration. Stops collecting data for the specified integration.
   783  //
   784  // For details and mutation examples visit
   785  // [our docs](https://docs.newrelic.com/docs/apis/graphql-api/tutorials/manage-your-aws-azure-google-cloud-integrations-graphql-api).
   786  func (a *Cloud) CloudDisableIntegrationWithContext(
   787  	ctx context.Context,
   788  	accountID int,
   789  	integrations CloudDisableIntegrationsInput,
   790  ) (*CloudDisableIntegrationPayload, error) {
   791  
   792  	resp := CloudDisableIntegrationQueryResponse{}
   793  	vars := map[string]interface{}{
   794  		"accountId":    accountID,
   795  		"integrations": integrations,
   796  	}
   797  
   798  	if err := a.client.NerdGraphQueryWithContext(ctx, CloudDisableIntegrationMutation, vars, &resp); err != nil {
   799  		return nil, err
   800  	}
   801  
   802  	return &resp.CloudDisableIntegrationPayload, nil
   803  }
   804  
   805  type CloudDisableIntegrationQueryResponse struct {
   806  	CloudDisableIntegrationPayload CloudDisableIntegrationPayload `json:"CloudDisableIntegration"`
   807  }
   808  
   809  const CloudDisableIntegrationMutation = `mutation(
   810  	$accountId: Int!,
   811  	$integrations: CloudDisableIntegrationsInput!,
   812  ) { cloudDisableIntegration(
   813  	accountId: $accountId,
   814  	integrations: $integrations,
   815  ) {
   816  	disabledIntegrations {
   817  		__typename
   818  		createdAt
   819  		id
   820  		name
   821  		nrAccountId
   822  		updatedAt
   823  		... on CloudAlbIntegration {
   824  			__typename
   825  			awsRegions
   826  			fetchExtendedInventory
   827  			fetchTags
   828  			inventoryPollingInterval
   829  			loadBalancerPrefixes
   830  			metricsPollingInterval
   831  			tagKey
   832  			tagValue
   833  		}
   834  		... on CloudApigatewayIntegration {
   835  			__typename
   836  			awsRegions
   837  			inventoryPollingInterval
   838  			metricsPollingInterval
   839  			stagePrefixes
   840  			tagKey
   841  			tagValue
   842  		}
   843  		... on CloudAutoscalingIntegration {
   844  			__typename
   845  			awsRegions
   846  			inventoryPollingInterval
   847  			metricsPollingInterval
   848  		}
   849  		... on CloudAwsAppsyncIntegration {
   850  			__typename
   851  			awsRegions
   852  			inventoryPollingInterval
   853  			metricsPollingInterval
   854  		}
   855  		... on CloudAwsAthenaIntegration {
   856  			__typename
   857  			awsRegions
   858  			inventoryPollingInterval
   859  			metricsPollingInterval
   860  		}
   861  		... on CloudAwsCognitoIntegration {
   862  			__typename
   863  			awsRegions
   864  			inventoryPollingInterval
   865  			metricsPollingInterval
   866  		}
   867  		... on CloudAwsConnectIntegration {
   868  			__typename
   869  			awsRegions
   870  			inventoryPollingInterval
   871  			metricsPollingInterval
   872  		}
   873  		... on CloudAwsDirectconnectIntegration {
   874  			__typename
   875  			awsRegions
   876  			inventoryPollingInterval
   877  			metricsPollingInterval
   878  		}
   879  		... on CloudAwsDocdbIntegration {
   880  			__typename
   881  			awsRegions
   882  			inventoryPollingInterval
   883  			metricsPollingInterval
   884  		}
   885  		... on CloudAwsFsxIntegration {
   886  			__typename
   887  			awsRegions
   888  			inventoryPollingInterval
   889  			metricsPollingInterval
   890  		}
   891  		... on CloudAwsGlueIntegration {
   892  			__typename
   893  			awsRegions
   894  			inventoryPollingInterval
   895  			metricsPollingInterval
   896  		}
   897  		... on CloudAwsKinesisanalyticsIntegration {
   898  			__typename
   899  			awsRegions
   900  			inventoryPollingInterval
   901  			metricsPollingInterval
   902  		}
   903  		... on CloudAwsMediaconvertIntegration {
   904  			__typename
   905  			awsRegions
   906  			inventoryPollingInterval
   907  			metricsPollingInterval
   908  		}
   909  		... on CloudAwsMediapackagevodIntegration {
   910  			__typename
   911  			awsRegions
   912  			inventoryPollingInterval
   913  			metricsPollingInterval
   914  		}
   915  		... on CloudAwsMetadataIntegration {
   916  			__typename
   917  			inventoryPollingInterval
   918  			metricsPollingInterval
   919  		}
   920  		... on CloudAwsMqIntegration {
   921  			__typename
   922  			awsRegions
   923  			inventoryPollingInterval
   924  			metricsPollingInterval
   925  		}
   926  		... on CloudAwsMskIntegration {
   927  			__typename
   928  			awsRegions
   929  			inventoryPollingInterval
   930  			metricsPollingInterval
   931  		}
   932  		... on CloudAwsNeptuneIntegration {
   933  			__typename
   934  			awsRegions
   935  			inventoryPollingInterval
   936  			metricsPollingInterval
   937  		}
   938  		... on CloudAwsQldbIntegration {
   939  			__typename
   940  			awsRegions
   941  			inventoryPollingInterval
   942  			metricsPollingInterval
   943  		}
   944  		... on CloudAwsRoute53resolverIntegration {
   945  			__typename
   946  			awsRegions
   947  			inventoryPollingInterval
   948  			metricsPollingInterval
   949  		}
   950  		... on CloudAwsStatesIntegration {
   951  			__typename
   952  			awsRegions
   953  			inventoryPollingInterval
   954  			metricsPollingInterval
   955  		}
   956  		... on CloudAwsTagsGlobalIntegration {
   957  			__typename
   958  			inventoryPollingInterval
   959  			metricsPollingInterval
   960  		}
   961  		... on CloudAwsTransitgatewayIntegration {
   962  			__typename
   963  			awsRegions
   964  			inventoryPollingInterval
   965  			metricsPollingInterval
   966  		}
   967  		... on CloudAwsWafIntegration {
   968  			__typename
   969  			awsRegions
   970  			inventoryPollingInterval
   971  			metricsPollingInterval
   972  		}
   973  		... on CloudAwsWafv2Integration {
   974  			__typename
   975  			awsRegions
   976  			inventoryPollingInterval
   977  			metricsPollingInterval
   978  		}
   979  		... on CloudAwsXrayIntegration {
   980  			__typename
   981  			awsRegions
   982  			inventoryPollingInterval
   983  			metricsPollingInterval
   984  		}
   985  		... on CloudAzureApimanagementIntegration {
   986  			__typename
   987  			inventoryPollingInterval
   988  			metricsPollingInterval
   989  			resourceGroups
   990  		}
   991  		... on CloudAzureAppgatewayIntegration {
   992  			__typename
   993  			inventoryPollingInterval
   994  			metricsPollingInterval
   995  			resourceGroups
   996  		}
   997  		... on CloudAzureAppserviceIntegration {
   998  			__typename
   999  			inventoryPollingInterval
  1000  			metricsPollingInterval
  1001  			resourceGroups
  1002  		}
  1003  		... on CloudAzureContainersIntegration {
  1004  			__typename
  1005  			inventoryPollingInterval
  1006  			metricsPollingInterval
  1007  			resourceGroups
  1008  		}
  1009  		... on CloudAzureCosmosdbIntegration {
  1010  			__typename
  1011  			inventoryPollingInterval
  1012  			metricsPollingInterval
  1013  			resourceGroups
  1014  		}
  1015  		... on CloudAzureCostmanagementIntegration {
  1016  			__typename
  1017  			inventoryPollingInterval
  1018  			metricsPollingInterval
  1019  			tagKeys
  1020  		}
  1021  		... on CloudAzureDatafactoryIntegration {
  1022  			__typename
  1023  			inventoryPollingInterval
  1024  			metricsPollingInterval
  1025  			resourceGroups
  1026  		}
  1027  		... on CloudAzureEventhubIntegration {
  1028  			__typename
  1029  			inventoryPollingInterval
  1030  			metricsPollingInterval
  1031  			resourceGroups
  1032  		}
  1033  		... on CloudAzureExpressrouteIntegration {
  1034  			__typename
  1035  			inventoryPollingInterval
  1036  			metricsPollingInterval
  1037  			resourceGroups
  1038  		}
  1039  		... on CloudAzureFirewallsIntegration {
  1040  			__typename
  1041  			inventoryPollingInterval
  1042  			metricsPollingInterval
  1043  			resourceGroups
  1044  		}
  1045  		... on CloudAzureFrontdoorIntegration {
  1046  			__typename
  1047  			inventoryPollingInterval
  1048  			metricsPollingInterval
  1049  			resourceGroups
  1050  		}
  1051  		... on CloudAzureFunctionsIntegration {
  1052  			__typename
  1053  			inventoryPollingInterval
  1054  			metricsPollingInterval
  1055  			resourceGroups
  1056  		}
  1057  		... on CloudAzureKeyvaultIntegration {
  1058  			__typename
  1059  			inventoryPollingInterval
  1060  			metricsPollingInterval
  1061  			resourceGroups
  1062  		}
  1063  		... on CloudAzureLoadbalancerIntegration {
  1064  			__typename
  1065  			inventoryPollingInterval
  1066  			metricsPollingInterval
  1067  			resourceGroups
  1068  		}
  1069  		... on CloudAzureLogicappsIntegration {
  1070  			__typename
  1071  			inventoryPollingInterval
  1072  			metricsPollingInterval
  1073  			resourceGroups
  1074  		}
  1075  		... on CloudAzureMachinelearningIntegration {
  1076  			__typename
  1077  			inventoryPollingInterval
  1078  			metricsPollingInterval
  1079  			resourceGroups
  1080  		}
  1081  		... on CloudAzureMariadbIntegration {
  1082  			__typename
  1083  			inventoryPollingInterval
  1084  			metricsPollingInterval
  1085  			resourceGroups
  1086  		}
  1087  		... on CloudAzureMysqlIntegration {
  1088  			__typename
  1089  			inventoryPollingInterval
  1090  			metricsPollingInterval
  1091  			resourceGroups
  1092  		}
  1093  		... on CloudAzurePostgresqlIntegration {
  1094  			__typename
  1095  			inventoryPollingInterval
  1096  			metricsPollingInterval
  1097  			resourceGroups
  1098  		}
  1099  		... on CloudAzurePowerbidedicatedIntegration {
  1100  			__typename
  1101  			inventoryPollingInterval
  1102  			metricsPollingInterval
  1103  			resourceGroups
  1104  		}
  1105  		... on CloudAzureRediscacheIntegration {
  1106  			__typename
  1107  			inventoryPollingInterval
  1108  			metricsPollingInterval
  1109  			resourceGroups
  1110  		}
  1111  		... on CloudAzureServicebusIntegration {
  1112  			__typename
  1113  			inventoryPollingInterval
  1114  			metricsPollingInterval
  1115  			resourceGroups
  1116  		}
  1117  		... on CloudAzureSqlIntegration {
  1118  			__typename
  1119  			inventoryPollingInterval
  1120  			metricsPollingInterval
  1121  			resourceGroups
  1122  		}
  1123  		... on CloudAzureSqlmanagedIntegration {
  1124  			__typename
  1125  			inventoryPollingInterval
  1126  			metricsPollingInterval
  1127  			resourceGroups
  1128  		}
  1129  		... on CloudAzureStorageIntegration {
  1130  			__typename
  1131  			inventoryPollingInterval
  1132  			metricsPollingInterval
  1133  			resourceGroups
  1134  		}
  1135  		... on CloudAzureVirtualmachineIntegration {
  1136  			__typename
  1137  			inventoryPollingInterval
  1138  			metricsPollingInterval
  1139  			resourceGroups
  1140  		}
  1141  		... on CloudAzureVirtualnetworksIntegration {
  1142  			__typename
  1143  			inventoryPollingInterval
  1144  			metricsPollingInterval
  1145  			resourceGroups
  1146  		}
  1147  		... on CloudAzureVmsIntegration {
  1148  			__typename
  1149  			inventoryPollingInterval
  1150  			metricsPollingInterval
  1151  			resourceGroups
  1152  		}
  1153  		... on CloudAzureVpngatewaysIntegration {
  1154  			__typename
  1155  			inventoryPollingInterval
  1156  			metricsPollingInterval
  1157  			resourceGroups
  1158  		}
  1159  		... on CloudBaseIntegration {
  1160  			__typename
  1161  		}
  1162  		... on CloudBillingIntegration {
  1163  			__typename
  1164  			inventoryPollingInterval
  1165  			metricsPollingInterval
  1166  		}
  1167  		... on CloudCloudfrontIntegration {
  1168  			__typename
  1169  			fetchLambdasAtEdge
  1170  			fetchTags
  1171  			inventoryPollingInterval
  1172  			metricsPollingInterval
  1173  			tagKey
  1174  			tagValue
  1175  		}
  1176  		... on CloudCloudtrailIntegration {
  1177  			__typename
  1178  			awsRegions
  1179  			inventoryPollingInterval
  1180  			metricsPollingInterval
  1181  		}
  1182  		... on CloudDynamodbIntegration {
  1183  			__typename
  1184  			awsRegions
  1185  			fetchExtendedInventory
  1186  			fetchTags
  1187  			inventoryPollingInterval
  1188  			metricsPollingInterval
  1189  			tagKey
  1190  			tagValue
  1191  		}
  1192  		... on CloudEbsIntegration {
  1193  			__typename
  1194  			awsRegions
  1195  			fetchExtendedInventory
  1196  			inventoryPollingInterval
  1197  			metricsPollingInterval
  1198  			tagKey
  1199  			tagValue
  1200  		}
  1201  		... on CloudEc2Integration {
  1202  			__typename
  1203  			awsRegions
  1204  			fetchIpAddresses
  1205  			inventoryPollingInterval
  1206  			metricsPollingInterval
  1207  			tagKey
  1208  			tagValue
  1209  		}
  1210  		... on CloudEcsIntegration {
  1211  			__typename
  1212  			awsRegions
  1213  			fetchTags
  1214  			inventoryPollingInterval
  1215  			metricsPollingInterval
  1216  			tagKey
  1217  			tagValue
  1218  		}
  1219  		... on CloudEfsIntegration {
  1220  			__typename
  1221  			awsRegions
  1222  			fetchTags
  1223  			inventoryPollingInterval
  1224  			metricsPollingInterval
  1225  			tagKey
  1226  			tagValue
  1227  		}
  1228  		... on CloudElasticacheIntegration {
  1229  			__typename
  1230  			awsRegions
  1231  			fetchTags
  1232  			inventoryPollingInterval
  1233  			metricsPollingInterval
  1234  			tagKey
  1235  			tagValue
  1236  		}
  1237  		... on CloudElasticbeanstalkIntegration {
  1238  			__typename
  1239  			awsRegions
  1240  			fetchExtendedInventory
  1241  			fetchTags
  1242  			inventoryPollingInterval
  1243  			metricsPollingInterval
  1244  			tagKey
  1245  			tagValue
  1246  		}
  1247  		... on CloudElasticsearchIntegration {
  1248  			__typename
  1249  			awsRegions
  1250  			fetchNodes
  1251  			inventoryPollingInterval
  1252  			metricsPollingInterval
  1253  			tagKey
  1254  			tagValue
  1255  		}
  1256  		... on CloudElbIntegration {
  1257  			__typename
  1258  			awsRegions
  1259  			fetchExtendedInventory
  1260  			fetchTags
  1261  			inventoryPollingInterval
  1262  			metricsPollingInterval
  1263  		}
  1264  		... on CloudEmrIntegration {
  1265  			__typename
  1266  			awsRegions
  1267  			fetchTags
  1268  			inventoryPollingInterval
  1269  			metricsPollingInterval
  1270  			tagKey
  1271  			tagValue
  1272  		}
  1273  		... on CloudGcpAppengineIntegration {
  1274  			__typename
  1275  			inventoryPollingInterval
  1276  			metricsPollingInterval
  1277  		}
  1278  		... on CloudGcpBigqueryIntegration {
  1279  			__typename
  1280  			fetchTags
  1281  			inventoryPollingInterval
  1282  			metricsPollingInterval
  1283  		}
  1284  		... on CloudGcpBigtableIntegration {
  1285  			__typename
  1286  			inventoryPollingInterval
  1287  			metricsPollingInterval
  1288  		}
  1289  		... on CloudGcpComposerIntegration {
  1290  			__typename
  1291  			inventoryPollingInterval
  1292  			metricsPollingInterval
  1293  		}
  1294  		... on CloudGcpDataflowIntegration {
  1295  			__typename
  1296  			inventoryPollingInterval
  1297  			metricsPollingInterval
  1298  		}
  1299  		... on CloudGcpDataprocIntegration {
  1300  			__typename
  1301  			inventoryPollingInterval
  1302  			metricsPollingInterval
  1303  		}
  1304  		... on CloudGcpDatastoreIntegration {
  1305  			__typename
  1306  			inventoryPollingInterval
  1307  			metricsPollingInterval
  1308  		}
  1309  		... on CloudGcpFirebasedatabaseIntegration {
  1310  			__typename
  1311  			inventoryPollingInterval
  1312  			metricsPollingInterval
  1313  		}
  1314  		... on CloudGcpFirebasehostingIntegration {
  1315  			__typename
  1316  			inventoryPollingInterval
  1317  			metricsPollingInterval
  1318  		}
  1319  		... on CloudGcpFirebasestorageIntegration {
  1320  			__typename
  1321  			inventoryPollingInterval
  1322  			metricsPollingInterval
  1323  		}
  1324  		... on CloudGcpFirestoreIntegration {
  1325  			__typename
  1326  			inventoryPollingInterval
  1327  			metricsPollingInterval
  1328  		}
  1329  		... on CloudGcpFunctionsIntegration {
  1330  			__typename
  1331  			inventoryPollingInterval
  1332  			metricsPollingInterval
  1333  		}
  1334  		... on CloudGcpInterconnectIntegration {
  1335  			__typename
  1336  			inventoryPollingInterval
  1337  			metricsPollingInterval
  1338  		}
  1339  		... on CloudGcpKubernetesIntegration {
  1340  			__typename
  1341  			inventoryPollingInterval
  1342  			metricsPollingInterval
  1343  		}
  1344  		... on CloudGcpLoadbalancingIntegration {
  1345  			__typename
  1346  			inventoryPollingInterval
  1347  			metricsPollingInterval
  1348  		}
  1349  		... on CloudGcpMemcacheIntegration {
  1350  			__typename
  1351  			inventoryPollingInterval
  1352  			metricsPollingInterval
  1353  		}
  1354  		... on CloudGcpPubsubIntegration {
  1355  			__typename
  1356  			fetchTags
  1357  			inventoryPollingInterval
  1358  			metricsPollingInterval
  1359  		}
  1360  		... on CloudGcpRedisIntegration {
  1361  			__typename
  1362  			inventoryPollingInterval
  1363  			metricsPollingInterval
  1364  		}
  1365  		... on CloudGcpRouterIntegration {
  1366  			__typename
  1367  			inventoryPollingInterval
  1368  			metricsPollingInterval
  1369  		}
  1370  		... on CloudGcpRunIntegration {
  1371  			__typename
  1372  			inventoryPollingInterval
  1373  			metricsPollingInterval
  1374  		}
  1375  		... on CloudGcpSpannerIntegration {
  1376  			__typename
  1377  			fetchTags
  1378  			inventoryPollingInterval
  1379  			metricsPollingInterval
  1380  		}
  1381  		... on CloudGcpSqlIntegration {
  1382  			__typename
  1383  			inventoryPollingInterval
  1384  			metricsPollingInterval
  1385  		}
  1386  		... on CloudGcpStorageIntegration {
  1387  			__typename
  1388  			fetchTags
  1389  			inventoryPollingInterval
  1390  			metricsPollingInterval
  1391  		}
  1392  		... on CloudGcpVmsIntegration {
  1393  			__typename
  1394  			inventoryPollingInterval
  1395  			metricsPollingInterval
  1396  		}
  1397  		... on CloudGcpVpcaccessIntegration {
  1398  			__typename
  1399  			inventoryPollingInterval
  1400  			metricsPollingInterval
  1401  		}
  1402  		... on CloudHealthIntegration {
  1403  			__typename
  1404  			inventoryPollingInterval
  1405  			metricsPollingInterval
  1406  		}
  1407  		... on CloudIamIntegration {
  1408  			__typename
  1409  			inventoryPollingInterval
  1410  			metricsPollingInterval
  1411  			tagKey
  1412  			tagValue
  1413  		}
  1414  		... on CloudIotIntegration {
  1415  			__typename
  1416  			awsRegions
  1417  			inventoryPollingInterval
  1418  			metricsPollingInterval
  1419  		}
  1420  		... on CloudKinesisFirehoseIntegration {
  1421  			__typename
  1422  			awsRegions
  1423  			inventoryPollingInterval
  1424  			metricsPollingInterval
  1425  		}
  1426  		... on CloudKinesisIntegration {
  1427  			__typename
  1428  			awsRegions
  1429  			fetchShards
  1430  			fetchTags
  1431  			inventoryPollingInterval
  1432  			metricsPollingInterval
  1433  			tagKey
  1434  			tagValue
  1435  		}
  1436  		... on CloudLambdaIntegration {
  1437  			__typename
  1438  			awsRegions
  1439  			fetchTags
  1440  			inventoryPollingInterval
  1441  			metricsPollingInterval
  1442  			tagKey
  1443  			tagValue
  1444  		}
  1445  		... on CloudRdsIntegration {
  1446  			__typename
  1447  			awsRegions
  1448  			fetchTags
  1449  			inventoryPollingInterval
  1450  			metricsPollingInterval
  1451  			tagKey
  1452  			tagValue
  1453  		}
  1454  		... on CloudRedshiftIntegration {
  1455  			__typename
  1456  			awsRegions
  1457  			inventoryPollingInterval
  1458  			metricsPollingInterval
  1459  			tagKey
  1460  			tagValue
  1461  		}
  1462  		... on CloudRoute53Integration {
  1463  			__typename
  1464  			fetchExtendedInventory
  1465  			inventoryPollingInterval
  1466  			metricsPollingInterval
  1467  		}
  1468  		... on CloudS3Integration {
  1469  			__typename
  1470  			fetchExtendedInventory
  1471  			fetchTags
  1472  			inventoryPollingInterval
  1473  			metricsPollingInterval
  1474  			tagKey
  1475  			tagValue
  1476  		}
  1477  		... on CloudSesIntegration {
  1478  			__typename
  1479  			awsRegions
  1480  			inventoryPollingInterval
  1481  			metricsPollingInterval
  1482  		}
  1483  		... on CloudSnsIntegration {
  1484  			__typename
  1485  			awsRegions
  1486  			fetchExtendedInventory
  1487  			inventoryPollingInterval
  1488  			metricsPollingInterval
  1489  		}
  1490  		... on CloudSqsIntegration {
  1491  			__typename
  1492  			awsRegions
  1493  			fetchExtendedInventory
  1494  			fetchTags
  1495  			inventoryPollingInterval
  1496  			metricsPollingInterval
  1497  			queuePrefixes
  1498  			tagKey
  1499  			tagValue
  1500  		}
  1501  		... on CloudTrustedadvisorIntegration {
  1502  			__typename
  1503  			inventoryPollingInterval
  1504  			metricsPollingInterval
  1505  		}
  1506  		... on CloudVpcIntegration {
  1507  			__typename
  1508  			awsRegions
  1509  			fetchNatGateway
  1510  			fetchVpn
  1511  			inventoryPollingInterval
  1512  			metricsPollingInterval
  1513  			tagKey
  1514  			tagValue
  1515  		}
  1516  	}
  1517  	errors {
  1518  		integrationSlug
  1519  		linkedAccountId
  1520  		message
  1521  		nrAccountId
  1522  		type
  1523  	}
  1524  } }`
  1525  
  1526  // Link a cloud provider account to a New Relic Account.
  1527  //
  1528  // For details and mutation examples visit
  1529  // [our docs](https://docs.newrelic.com/docs/apis/graphql-api/tutorials/manage-your-aws-azure-google-cloud-integrations-graphql-api).
  1530  func (a *Cloud) CloudLinkAccount(
  1531  	accountID int,
  1532  	accounts CloudLinkCloudAccountsInput,
  1533  ) (*CloudLinkAccountPayload, error) {
  1534  	return a.CloudLinkAccountWithContext(context.Background(),
  1535  		accountID,
  1536  		accounts,
  1537  	)
  1538  }
  1539  
  1540  // Link a cloud provider account to a New Relic Account.
  1541  //
  1542  // For details and mutation examples visit
  1543  // [our docs](https://docs.newrelic.com/docs/apis/graphql-api/tutorials/manage-your-aws-azure-google-cloud-integrations-graphql-api).
  1544  func (a *Cloud) CloudLinkAccountWithContext(
  1545  	ctx context.Context,
  1546  	accountID int,
  1547  	accounts CloudLinkCloudAccountsInput,
  1548  ) (*CloudLinkAccountPayload, error) {
  1549  
  1550  	resp := CloudLinkAccountQueryResponse{}
  1551  	vars := map[string]interface{}{
  1552  		"accountId": accountID,
  1553  		"accounts":  accounts,
  1554  	}
  1555  
  1556  	if err := a.client.NerdGraphQueryWithContext(ctx, CloudLinkAccountMutation, vars, &resp); err != nil {
  1557  		return nil, err
  1558  	}
  1559  
  1560  	return &resp.CloudLinkAccountPayload, nil
  1561  }
  1562  
  1563  type CloudLinkAccountQueryResponse struct {
  1564  	CloudLinkAccountPayload CloudLinkAccountPayload `json:"CloudLinkAccount"`
  1565  }
  1566  
  1567  const CloudLinkAccountMutation = `mutation(
  1568  	$accountId: Int!,
  1569  	$accounts: CloudLinkCloudAccountsInput!,
  1570  ) { cloudLinkAccount(
  1571  	accountId: $accountId,
  1572  	accounts: $accounts,
  1573  ) {
  1574  	errors {
  1575  		linkedAccountId
  1576  		message
  1577  		nrAccountId
  1578  		providerSlug
  1579  		type
  1580  	}
  1581  	linkedAccounts {
  1582  		authLabel
  1583  		createdAt
  1584  		disabled
  1585  		externalId
  1586  		id
  1587  		metricCollectionMode
  1588  		name
  1589  		nrAccountId
  1590  		updatedAt
  1591  	}
  1592  } }`
  1593  
  1594  // Rename one or more linked cloud provider accounts.
  1595  //
  1596  // For details and mutation examples visit
  1597  // [our docs](https://docs.newrelic.com/docs/apis/graphql-api/tutorials/manage-your-aws-azure-google-cloud-integrations-graphql-api).
  1598  func (a *Cloud) CloudRenameAccount(
  1599  	accountID int,
  1600  	accounts []CloudRenameAccountsInput,
  1601  ) (*CloudRenameAccountPayload, error) {
  1602  	return a.CloudRenameAccountWithContext(context.Background(),
  1603  		accountID,
  1604  		accounts,
  1605  	)
  1606  }
  1607  
  1608  // Rename one or more linked cloud provider accounts.
  1609  //
  1610  // For details and mutation examples visit
  1611  // [our docs](https://docs.newrelic.com/docs/apis/graphql-api/tutorials/manage-your-aws-azure-google-cloud-integrations-graphql-api).
  1612  func (a *Cloud) CloudRenameAccountWithContext(
  1613  	ctx context.Context,
  1614  	accountID int,
  1615  	accounts []CloudRenameAccountsInput,
  1616  ) (*CloudRenameAccountPayload, error) {
  1617  
  1618  	resp := CloudRenameAccountQueryResponse{}
  1619  	vars := map[string]interface{}{
  1620  		"accountId": accountID,
  1621  		"accounts":  accounts,
  1622  	}
  1623  
  1624  	if err := a.client.NerdGraphQueryWithContext(ctx, CloudRenameAccountMutation, vars, &resp); err != nil {
  1625  		return nil, err
  1626  	}
  1627  
  1628  	return &resp.CloudRenameAccountPayload, nil
  1629  }
  1630  
  1631  type CloudRenameAccountQueryResponse struct {
  1632  	CloudRenameAccountPayload CloudRenameAccountPayload `json:"CloudRenameAccount"`
  1633  }
  1634  
  1635  const CloudRenameAccountMutation = `mutation(
  1636  	$accountId: Int!,
  1637  	$accounts: [CloudRenameAccountsInput!]!,
  1638  ) { cloudRenameAccount(
  1639  	accountId: $accountId,
  1640  	accounts: $accounts,
  1641  ) {
  1642  	errors {
  1643  		linkedAccountId
  1644  		message
  1645  		nrAccountId
  1646  		providerSlug
  1647  		type
  1648  	}
  1649  	linkedAccounts {
  1650  		authLabel
  1651  		createdAt
  1652  		disabled
  1653  		externalId
  1654  		id
  1655  		metricCollectionMode
  1656  		name
  1657  		nrAccountId
  1658  		updatedAt
  1659  	}
  1660  } }`
  1661  
  1662  // Unlink one or more cloud provider accounts.
  1663  // Stops collecting data for all the associated integrations.
  1664  //
  1665  // For details and mutation examples visit
  1666  // [our docs](https://docs.newrelic.com/docs/apis/graphql-api/tutorials/manage-your-aws-azure-google-cloud-integrations-graphql-api).
  1667  func (a *Cloud) CloudUnlinkAccount(
  1668  	accountID int,
  1669  	accounts []CloudUnlinkAccountsInput,
  1670  ) (*CloudUnlinkAccountPayload, error) {
  1671  	return a.CloudUnlinkAccountWithContext(context.Background(),
  1672  		accountID,
  1673  		accounts,
  1674  	)
  1675  }
  1676  
  1677  // Unlink one or more cloud provider accounts.
  1678  // Stops collecting data for all the associated integrations.
  1679  //
  1680  // For details and mutation examples visit
  1681  // [our docs](https://docs.newrelic.com/docs/apis/graphql-api/tutorials/manage-your-aws-azure-google-cloud-integrations-graphql-api).
  1682  func (a *Cloud) CloudUnlinkAccountWithContext(
  1683  	ctx context.Context,
  1684  	accountID int,
  1685  	accounts []CloudUnlinkAccountsInput,
  1686  ) (*CloudUnlinkAccountPayload, error) {
  1687  
  1688  	resp := CloudUnlinkAccountQueryResponse{}
  1689  	vars := map[string]interface{}{
  1690  		"accountId": accountID,
  1691  		"accounts":  accounts,
  1692  	}
  1693  
  1694  	if err := a.client.NerdGraphQueryWithContext(ctx, CloudUnlinkAccountMutation, vars, &resp); err != nil {
  1695  		return nil, err
  1696  	}
  1697  
  1698  	return &resp.CloudUnlinkAccountPayload, nil
  1699  }
  1700  
  1701  type CloudUnlinkAccountQueryResponse struct {
  1702  	CloudUnlinkAccountPayload CloudUnlinkAccountPayload `json:"CloudUnlinkAccount"`
  1703  }
  1704  
  1705  const CloudUnlinkAccountMutation = `mutation(
  1706  	$accountId: Int!,
  1707  	$accounts: [CloudUnlinkAccountsInput!]!,
  1708  ) { cloudUnlinkAccount(
  1709  	accountId: $accountId,
  1710  	accounts: $accounts,
  1711  ) {
  1712  	errors {
  1713  		linkedAccountId
  1714  		message
  1715  		nrAccountId
  1716  		providerSlug
  1717  		type
  1718  	}
  1719  	unlinkedAccounts {
  1720  		authLabel
  1721  		createdAt
  1722  		disabled
  1723  		externalId
  1724  		id
  1725  		metricCollectionMode
  1726  		name
  1727  		nrAccountId
  1728  		updatedAt
  1729  	}
  1730  } }`
  1731  
  1732  // Get one linked provider account.
  1733  func (a *Cloud) GetLinkedAccount(
  1734  	accountID int,
  1735  	iD int,
  1736  ) (*CloudLinkedAccount, error) {
  1737  	return a.GetLinkedAccountWithContext(context.Background(),
  1738  		accountID,
  1739  		iD,
  1740  	)
  1741  }
  1742  
  1743  // Get one linked provider account.
  1744  func (a *Cloud) GetLinkedAccountWithContext(
  1745  	ctx context.Context,
  1746  	accountID int,
  1747  	iD int,
  1748  ) (*CloudLinkedAccount, error) {
  1749  
  1750  	resp := linkedAccountResponse{}
  1751  	vars := map[string]interface{}{
  1752  		"accountID": accountID,
  1753  		"id":        iD,
  1754  	}
  1755  
  1756  	if err := a.client.NerdGraphQueryWithContext(ctx, getLinkedAccountQuery, vars, &resp); err != nil {
  1757  		return nil, err
  1758  	}
  1759  
  1760  	return &resp.Actor.Account.Cloud.LinkedAccount, nil
  1761  }
  1762  
  1763  const getLinkedAccountQuery = `query(
  1764  	$accountID: Int!,
  1765  	$id: Int!,
  1766  ) { actor { account(id: $accountID) { cloud { linkedAccount(
  1767  	id: $id,
  1768  ) {
  1769  	authLabel
  1770  	createdAt
  1771  	disabled
  1772  	externalId
  1773  	id
  1774  	integrations {
  1775  		__typename
  1776  		createdAt
  1777  		id
  1778  		linkedAccount {
  1779  			authLabel
  1780  			createdAt
  1781  			disabled
  1782  			externalId
  1783  			id
  1784  			metricCollectionMode
  1785  			name
  1786  			nrAccountId
  1787  			updatedAt
  1788  		}
  1789  		name
  1790  		nrAccountId
  1791  		service {
  1792  			createdAt
  1793  			icon
  1794  			id
  1795  			isEnabled
  1796  			name
  1797  			slug
  1798  			updatedAt
  1799  		}
  1800  		updatedAt
  1801  		... on CloudAlbIntegration {
  1802  			__typename
  1803  			awsRegions
  1804  			fetchExtendedInventory
  1805  			fetchTags
  1806  			inventoryPollingInterval
  1807  			loadBalancerPrefixes
  1808  			metricsPollingInterval
  1809  			tagKey
  1810  			tagValue
  1811  		}
  1812  		... on CloudApigatewayIntegration {
  1813  			__typename
  1814  			awsRegions
  1815  			inventoryPollingInterval
  1816  			metricsPollingInterval
  1817  			stagePrefixes
  1818  			tagKey
  1819  			tagValue
  1820  		}
  1821  		... on CloudAutoscalingIntegration {
  1822  			__typename
  1823  			awsRegions
  1824  			inventoryPollingInterval
  1825  			metricsPollingInterval
  1826  		}
  1827  		... on CloudAwsAppsyncIntegration {
  1828  			__typename
  1829  			awsRegions
  1830  			inventoryPollingInterval
  1831  			metricsPollingInterval
  1832  		}
  1833  		... on CloudAwsAthenaIntegration {
  1834  			__typename
  1835  			awsRegions
  1836  			inventoryPollingInterval
  1837  			metricsPollingInterval
  1838  		}
  1839  		... on CloudAwsCognitoIntegration {
  1840  			__typename
  1841  			awsRegions
  1842  			inventoryPollingInterval
  1843  			metricsPollingInterval
  1844  		}
  1845  		... on CloudAwsConnectIntegration {
  1846  			__typename
  1847  			awsRegions
  1848  			inventoryPollingInterval
  1849  			metricsPollingInterval
  1850  		}
  1851  		... on CloudAwsDirectconnectIntegration {
  1852  			__typename
  1853  			awsRegions
  1854  			inventoryPollingInterval
  1855  			metricsPollingInterval
  1856  		}
  1857  		... on CloudAwsDocdbIntegration {
  1858  			__typename
  1859  			awsRegions
  1860  			inventoryPollingInterval
  1861  			metricsPollingInterval
  1862  		}
  1863  		... on CloudAwsFsxIntegration {
  1864  			__typename
  1865  			awsRegions
  1866  			inventoryPollingInterval
  1867  			metricsPollingInterval
  1868  		}
  1869  		... on CloudAwsGlueIntegration {
  1870  			__typename
  1871  			awsRegions
  1872  			inventoryPollingInterval
  1873  			metricsPollingInterval
  1874  		}
  1875  		... on CloudAwsKinesisanalyticsIntegration {
  1876  			__typename
  1877  			awsRegions
  1878  			inventoryPollingInterval
  1879  			metricsPollingInterval
  1880  		}
  1881  		... on CloudAwsMediaconvertIntegration {
  1882  			__typename
  1883  			awsRegions
  1884  			inventoryPollingInterval
  1885  			metricsPollingInterval
  1886  		}
  1887  		... on CloudAwsMediapackagevodIntegration {
  1888  			__typename
  1889  			awsRegions
  1890  			inventoryPollingInterval
  1891  			metricsPollingInterval
  1892  		}
  1893  		... on CloudAwsMetadataIntegration {
  1894  			__typename
  1895  			inventoryPollingInterval
  1896  			metricsPollingInterval
  1897  		}
  1898  		... on CloudAwsMqIntegration {
  1899  			__typename
  1900  			awsRegions
  1901  			inventoryPollingInterval
  1902  			metricsPollingInterval
  1903  		}
  1904  		... on CloudAwsMskIntegration {
  1905  			__typename
  1906  			awsRegions
  1907  			inventoryPollingInterval
  1908  			metricsPollingInterval
  1909  		}
  1910  		... on CloudAwsNeptuneIntegration {
  1911  			__typename
  1912  			awsRegions
  1913  			inventoryPollingInterval
  1914  			metricsPollingInterval
  1915  		}
  1916  		... on CloudAwsQldbIntegration {
  1917  			__typename
  1918  			awsRegions
  1919  			inventoryPollingInterval
  1920  			metricsPollingInterval
  1921  		}
  1922  		... on CloudAwsRoute53resolverIntegration {
  1923  			__typename
  1924  			awsRegions
  1925  			inventoryPollingInterval
  1926  			metricsPollingInterval
  1927  		}
  1928  		... on CloudAwsStatesIntegration {
  1929  			__typename
  1930  			awsRegions
  1931  			inventoryPollingInterval
  1932  			metricsPollingInterval
  1933  		}
  1934  		... on CloudAwsTagsGlobalIntegration {
  1935  			__typename
  1936  			inventoryPollingInterval
  1937  			metricsPollingInterval
  1938  		}
  1939  		... on CloudAwsTransitgatewayIntegration {
  1940  			__typename
  1941  			awsRegions
  1942  			inventoryPollingInterval
  1943  			metricsPollingInterval
  1944  		}
  1945  		... on CloudAwsWafIntegration {
  1946  			__typename
  1947  			awsRegions
  1948  			inventoryPollingInterval
  1949  			metricsPollingInterval
  1950  		}
  1951  		... on CloudAwsWafv2Integration {
  1952  			__typename
  1953  			awsRegions
  1954  			inventoryPollingInterval
  1955  			metricsPollingInterval
  1956  		}
  1957  		... on CloudAwsXrayIntegration {
  1958  			__typename
  1959  			awsRegions
  1960  			inventoryPollingInterval
  1961  			metricsPollingInterval
  1962  		}
  1963  		... on CloudAzureApimanagementIntegration {
  1964  			__typename
  1965  			inventoryPollingInterval
  1966  			metricsPollingInterval
  1967  			resourceGroups
  1968  		}
  1969  		... on CloudAzureAppgatewayIntegration {
  1970  			__typename
  1971  			inventoryPollingInterval
  1972  			metricsPollingInterval
  1973  			resourceGroups
  1974  		}
  1975  		... on CloudAzureAppserviceIntegration {
  1976  			__typename
  1977  			inventoryPollingInterval
  1978  			metricsPollingInterval
  1979  			resourceGroups
  1980  		}
  1981  		... on CloudAzureContainersIntegration {
  1982  			__typename
  1983  			inventoryPollingInterval
  1984  			metricsPollingInterval
  1985  			resourceGroups
  1986  		}
  1987  		... on CloudAzureCosmosdbIntegration {
  1988  			__typename
  1989  			inventoryPollingInterval
  1990  			metricsPollingInterval
  1991  			resourceGroups
  1992  		}
  1993  		... on CloudAzureCostmanagementIntegration {
  1994  			__typename
  1995  			inventoryPollingInterval
  1996  			metricsPollingInterval
  1997  			tagKeys
  1998  		}
  1999  		... on CloudAzureDatafactoryIntegration {
  2000  			__typename
  2001  			inventoryPollingInterval
  2002  			metricsPollingInterval
  2003  			resourceGroups
  2004  		}
  2005  		... on CloudAzureEventhubIntegration {
  2006  			__typename
  2007  			inventoryPollingInterval
  2008  			metricsPollingInterval
  2009  			resourceGroups
  2010  		}
  2011  		... on CloudAzureExpressrouteIntegration {
  2012  			__typename
  2013  			inventoryPollingInterval
  2014  			metricsPollingInterval
  2015  			resourceGroups
  2016  		}
  2017  		... on CloudAzureFirewallsIntegration {
  2018  			__typename
  2019  			inventoryPollingInterval
  2020  			metricsPollingInterval
  2021  			resourceGroups
  2022  		}
  2023  		... on CloudAzureFrontdoorIntegration {
  2024  			__typename
  2025  			inventoryPollingInterval
  2026  			metricsPollingInterval
  2027  			resourceGroups
  2028  		}
  2029  		... on CloudAzureFunctionsIntegration {
  2030  			__typename
  2031  			inventoryPollingInterval
  2032  			metricsPollingInterval
  2033  			resourceGroups
  2034  		}
  2035  		... on CloudAzureKeyvaultIntegration {
  2036  			__typename
  2037  			inventoryPollingInterval
  2038  			metricsPollingInterval
  2039  			resourceGroups
  2040  		}
  2041  		... on CloudAzureLoadbalancerIntegration {
  2042  			__typename
  2043  			inventoryPollingInterval
  2044  			metricsPollingInterval
  2045  			resourceGroups
  2046  		}
  2047  		... on CloudAzureLogicappsIntegration {
  2048  			__typename
  2049  			inventoryPollingInterval
  2050  			metricsPollingInterval
  2051  			resourceGroups
  2052  		}
  2053  		... on CloudAzureMachinelearningIntegration {
  2054  			__typename
  2055  			inventoryPollingInterval
  2056  			metricsPollingInterval
  2057  			resourceGroups
  2058  		}
  2059  		... on CloudAzureMariadbIntegration {
  2060  			__typename
  2061  			inventoryPollingInterval
  2062  			metricsPollingInterval
  2063  			resourceGroups
  2064  		}
  2065  		... on CloudAzureMysqlIntegration {
  2066  			__typename
  2067  			inventoryPollingInterval
  2068  			metricsPollingInterval
  2069  			resourceGroups
  2070  		}
  2071  		... on CloudAzurePostgresqlIntegration {
  2072  			__typename
  2073  			inventoryPollingInterval
  2074  			metricsPollingInterval
  2075  			resourceGroups
  2076  		}
  2077  		... on CloudAzurePowerbidedicatedIntegration {
  2078  			__typename
  2079  			inventoryPollingInterval
  2080  			metricsPollingInterval
  2081  			resourceGroups
  2082  		}
  2083  		... on CloudAzureRediscacheIntegration {
  2084  			__typename
  2085  			inventoryPollingInterval
  2086  			metricsPollingInterval
  2087  			resourceGroups
  2088  		}
  2089  		... on CloudAzureServicebusIntegration {
  2090  			__typename
  2091  			inventoryPollingInterval
  2092  			metricsPollingInterval
  2093  			resourceGroups
  2094  		}
  2095  		... on CloudAzureSqlIntegration {
  2096  			__typename
  2097  			inventoryPollingInterval
  2098  			metricsPollingInterval
  2099  			resourceGroups
  2100  		}
  2101  		... on CloudAzureSqlmanagedIntegration {
  2102  			__typename
  2103  			inventoryPollingInterval
  2104  			metricsPollingInterval
  2105  			resourceGroups
  2106  		}
  2107  		... on CloudAzureStorageIntegration {
  2108  			__typename
  2109  			inventoryPollingInterval
  2110  			metricsPollingInterval
  2111  			resourceGroups
  2112  		}
  2113  		... on CloudAzureVirtualmachineIntegration {
  2114  			__typename
  2115  			inventoryPollingInterval
  2116  			metricsPollingInterval
  2117  			resourceGroups
  2118  		}
  2119  		... on CloudAzureVirtualnetworksIntegration {
  2120  			__typename
  2121  			inventoryPollingInterval
  2122  			metricsPollingInterval
  2123  			resourceGroups
  2124  		}
  2125  		... on CloudAzureVmsIntegration {
  2126  			__typename
  2127  			inventoryPollingInterval
  2128  			metricsPollingInterval
  2129  			resourceGroups
  2130  		}
  2131  		... on CloudAzureVpngatewaysIntegration {
  2132  			__typename
  2133  			inventoryPollingInterval
  2134  			metricsPollingInterval
  2135  			resourceGroups
  2136  		}
  2137  		... on CloudBaseIntegration {
  2138  			__typename
  2139  		}
  2140  		... on CloudBillingIntegration {
  2141  			__typename
  2142  			inventoryPollingInterval
  2143  			metricsPollingInterval
  2144  		}
  2145  		... on CloudCloudfrontIntegration {
  2146  			__typename
  2147  			fetchLambdasAtEdge
  2148  			fetchTags
  2149  			inventoryPollingInterval
  2150  			metricsPollingInterval
  2151  			tagKey
  2152  			tagValue
  2153  		}
  2154  		... on CloudCloudtrailIntegration {
  2155  			__typename
  2156  			awsRegions
  2157  			inventoryPollingInterval
  2158  			metricsPollingInterval
  2159  		}
  2160  		... on CloudDynamodbIntegration {
  2161  			__typename
  2162  			awsRegions
  2163  			fetchExtendedInventory
  2164  			fetchTags
  2165  			inventoryPollingInterval
  2166  			metricsPollingInterval
  2167  			tagKey
  2168  			tagValue
  2169  		}
  2170  		... on CloudEbsIntegration {
  2171  			__typename
  2172  			awsRegions
  2173  			fetchExtendedInventory
  2174  			inventoryPollingInterval
  2175  			metricsPollingInterval
  2176  			tagKey
  2177  			tagValue
  2178  		}
  2179  		... on CloudEc2Integration {
  2180  			__typename
  2181  			awsRegions
  2182  			fetchIpAddresses
  2183  			inventoryPollingInterval
  2184  			metricsPollingInterval
  2185  			tagKey
  2186  			tagValue
  2187  		}
  2188  		... on CloudEcsIntegration {
  2189  			__typename
  2190  			awsRegions
  2191  			fetchTags
  2192  			inventoryPollingInterval
  2193  			metricsPollingInterval
  2194  			tagKey
  2195  			tagValue
  2196  		}
  2197  		... on CloudEfsIntegration {
  2198  			__typename
  2199  			awsRegions
  2200  			fetchTags
  2201  			inventoryPollingInterval
  2202  			metricsPollingInterval
  2203  			tagKey
  2204  			tagValue
  2205  		}
  2206  		... on CloudElasticacheIntegration {
  2207  			__typename
  2208  			awsRegions
  2209  			fetchTags
  2210  			inventoryPollingInterval
  2211  			metricsPollingInterval
  2212  			tagKey
  2213  			tagValue
  2214  		}
  2215  		... on CloudElasticbeanstalkIntegration {
  2216  			__typename
  2217  			awsRegions
  2218  			fetchExtendedInventory
  2219  			fetchTags
  2220  			inventoryPollingInterval
  2221  			metricsPollingInterval
  2222  			tagKey
  2223  			tagValue
  2224  		}
  2225  		... on CloudElasticsearchIntegration {
  2226  			__typename
  2227  			awsRegions
  2228  			fetchNodes
  2229  			inventoryPollingInterval
  2230  			metricsPollingInterval
  2231  			tagKey
  2232  			tagValue
  2233  		}
  2234  		... on CloudElbIntegration {
  2235  			__typename
  2236  			awsRegions
  2237  			fetchExtendedInventory
  2238  			fetchTags
  2239  			inventoryPollingInterval
  2240  			metricsPollingInterval
  2241  		}
  2242  		... on CloudEmrIntegration {
  2243  			__typename
  2244  			awsRegions
  2245  			fetchTags
  2246  			inventoryPollingInterval
  2247  			metricsPollingInterval
  2248  			tagKey
  2249  			tagValue
  2250  		}
  2251  		... on CloudGcpAppengineIntegration {
  2252  			__typename
  2253  			inventoryPollingInterval
  2254  			metricsPollingInterval
  2255  		}
  2256  		... on CloudGcpBigqueryIntegration {
  2257  			__typename
  2258  			fetchTags
  2259  			inventoryPollingInterval
  2260  			metricsPollingInterval
  2261  		}
  2262  		... on CloudGcpBigtableIntegration {
  2263  			__typename
  2264  			inventoryPollingInterval
  2265  			metricsPollingInterval
  2266  		}
  2267  		... on CloudGcpComposerIntegration {
  2268  			__typename
  2269  			inventoryPollingInterval
  2270  			metricsPollingInterval
  2271  		}
  2272  		... on CloudGcpDataflowIntegration {
  2273  			__typename
  2274  			inventoryPollingInterval
  2275  			metricsPollingInterval
  2276  		}
  2277  		... on CloudGcpDataprocIntegration {
  2278  			__typename
  2279  			inventoryPollingInterval
  2280  			metricsPollingInterval
  2281  		}
  2282  		... on CloudGcpDatastoreIntegration {
  2283  			__typename
  2284  			inventoryPollingInterval
  2285  			metricsPollingInterval
  2286  		}
  2287  		... on CloudGcpFirebasedatabaseIntegration {
  2288  			__typename
  2289  			inventoryPollingInterval
  2290  			metricsPollingInterval
  2291  		}
  2292  		... on CloudGcpFirebasehostingIntegration {
  2293  			__typename
  2294  			inventoryPollingInterval
  2295  			metricsPollingInterval
  2296  		}
  2297  		... on CloudGcpFirebasestorageIntegration {
  2298  			__typename
  2299  			inventoryPollingInterval
  2300  			metricsPollingInterval
  2301  		}
  2302  		... on CloudGcpFirestoreIntegration {
  2303  			__typename
  2304  			inventoryPollingInterval
  2305  			metricsPollingInterval
  2306  		}
  2307  		... on CloudGcpFunctionsIntegration {
  2308  			__typename
  2309  			inventoryPollingInterval
  2310  			metricsPollingInterval
  2311  		}
  2312  		... on CloudGcpInterconnectIntegration {
  2313  			__typename
  2314  			inventoryPollingInterval
  2315  			metricsPollingInterval
  2316  		}
  2317  		... on CloudGcpKubernetesIntegration {
  2318  			__typename
  2319  			inventoryPollingInterval
  2320  			metricsPollingInterval
  2321  		}
  2322  		... on CloudGcpLoadbalancingIntegration {
  2323  			__typename
  2324  			inventoryPollingInterval
  2325  			metricsPollingInterval
  2326  		}
  2327  		... on CloudGcpMemcacheIntegration {
  2328  			__typename
  2329  			inventoryPollingInterval
  2330  			metricsPollingInterval
  2331  		}
  2332  		... on CloudGcpPubsubIntegration {
  2333  			__typename
  2334  			fetchTags
  2335  			inventoryPollingInterval
  2336  			metricsPollingInterval
  2337  		}
  2338  		... on CloudGcpRedisIntegration {
  2339  			__typename
  2340  			inventoryPollingInterval
  2341  			metricsPollingInterval
  2342  		}
  2343  		... on CloudGcpRouterIntegration {
  2344  			__typename
  2345  			inventoryPollingInterval
  2346  			metricsPollingInterval
  2347  		}
  2348  		... on CloudGcpRunIntegration {
  2349  			__typename
  2350  			inventoryPollingInterval
  2351  			metricsPollingInterval
  2352  		}
  2353  		... on CloudGcpSpannerIntegration {
  2354  			__typename
  2355  			fetchTags
  2356  			inventoryPollingInterval
  2357  			metricsPollingInterval
  2358  		}
  2359  		... on CloudGcpSqlIntegration {
  2360  			__typename
  2361  			inventoryPollingInterval
  2362  			metricsPollingInterval
  2363  		}
  2364  		... on CloudGcpStorageIntegration {
  2365  			__typename
  2366  			fetchTags
  2367  			inventoryPollingInterval
  2368  			metricsPollingInterval
  2369  		}
  2370  		... on CloudGcpVmsIntegration {
  2371  			__typename
  2372  			inventoryPollingInterval
  2373  			metricsPollingInterval
  2374  		}
  2375  		... on CloudGcpVpcaccessIntegration {
  2376  			__typename
  2377  			inventoryPollingInterval
  2378  			metricsPollingInterval
  2379  		}
  2380  		... on CloudHealthIntegration {
  2381  			__typename
  2382  			inventoryPollingInterval
  2383  			metricsPollingInterval
  2384  		}
  2385  		... on CloudIamIntegration {
  2386  			__typename
  2387  			inventoryPollingInterval
  2388  			metricsPollingInterval
  2389  			tagKey
  2390  			tagValue
  2391  		}
  2392  		... on CloudIotIntegration {
  2393  			__typename
  2394  			awsRegions
  2395  			inventoryPollingInterval
  2396  			metricsPollingInterval
  2397  		}
  2398  		... on CloudKinesisFirehoseIntegration {
  2399  			__typename
  2400  			awsRegions
  2401  			inventoryPollingInterval
  2402  			metricsPollingInterval
  2403  		}
  2404  		... on CloudKinesisIntegration {
  2405  			__typename
  2406  			awsRegions
  2407  			fetchShards
  2408  			fetchTags
  2409  			inventoryPollingInterval
  2410  			metricsPollingInterval
  2411  			tagKey
  2412  			tagValue
  2413  		}
  2414  		... on CloudLambdaIntegration {
  2415  			__typename
  2416  			awsRegions
  2417  			fetchTags
  2418  			inventoryPollingInterval
  2419  			metricsPollingInterval
  2420  			tagKey
  2421  			tagValue
  2422  		}
  2423  		... on CloudRdsIntegration {
  2424  			__typename
  2425  			awsRegions
  2426  			fetchTags
  2427  			inventoryPollingInterval
  2428  			metricsPollingInterval
  2429  			tagKey
  2430  			tagValue
  2431  		}
  2432  		... on CloudRedshiftIntegration {
  2433  			__typename
  2434  			awsRegions
  2435  			inventoryPollingInterval
  2436  			metricsPollingInterval
  2437  			tagKey
  2438  			tagValue
  2439  		}
  2440  		... on CloudRoute53Integration {
  2441  			__typename
  2442  			fetchExtendedInventory
  2443  			inventoryPollingInterval
  2444  			metricsPollingInterval
  2445  		}
  2446  		... on CloudS3Integration {
  2447  			__typename
  2448  			fetchExtendedInventory
  2449  			fetchTags
  2450  			inventoryPollingInterval
  2451  			metricsPollingInterval
  2452  			tagKey
  2453  			tagValue
  2454  		}
  2455  		... on CloudSesIntegration {
  2456  			__typename
  2457  			awsRegions
  2458  			inventoryPollingInterval
  2459  			metricsPollingInterval
  2460  		}
  2461  		... on CloudSnsIntegration {
  2462  			__typename
  2463  			awsRegions
  2464  			fetchExtendedInventory
  2465  			inventoryPollingInterval
  2466  			metricsPollingInterval
  2467  		}
  2468  		... on CloudSqsIntegration {
  2469  			__typename
  2470  			awsRegions
  2471  			fetchExtendedInventory
  2472  			fetchTags
  2473  			inventoryPollingInterval
  2474  			metricsPollingInterval
  2475  			queuePrefixes
  2476  			tagKey
  2477  			tagValue
  2478  		}
  2479  		... on CloudTrustedadvisorIntegration {
  2480  			__typename
  2481  			inventoryPollingInterval
  2482  			metricsPollingInterval
  2483  		}
  2484  		... on CloudVpcIntegration {
  2485  			__typename
  2486  			awsRegions
  2487  			fetchNatGateway
  2488  			fetchVpn
  2489  			inventoryPollingInterval
  2490  			metricsPollingInterval
  2491  			tagKey
  2492  			tagValue
  2493  		}
  2494  	}
  2495  	metricCollectionMode
  2496  	name
  2497  	nrAccountId
  2498  	provider {
  2499  		__typename
  2500  		createdAt
  2501  		icon
  2502  		id
  2503  		name
  2504  		services {
  2505  			createdAt
  2506  			icon
  2507  			id
  2508  			isEnabled
  2509  			name
  2510  			slug
  2511  			updatedAt
  2512  		}
  2513  		slug
  2514  		updatedAt
  2515  		... on CloudAwsGovCloudProvider {
  2516  			__typename
  2517  			awsAccountId
  2518  		}
  2519  		... on CloudAwsProvider {
  2520  			__typename
  2521  			roleAccountId
  2522  			roleExternalId
  2523  		}
  2524  		... on CloudBaseProvider {
  2525  			__typename
  2526  		}
  2527  		... on CloudGcpProvider {
  2528  			__typename
  2529  			serviceAccountId
  2530  		}
  2531  	}
  2532  	updatedAt
  2533  } } } } }`
  2534  
  2535  // Get all linked cloud provider accounts scoped to the Actor.
  2536  func (a *Cloud) GetLinkedAccounts(
  2537  	provider string,
  2538  ) (*[]CloudLinkedAccount, error) {
  2539  	return a.GetLinkedAccountsWithContext(context.Background(),
  2540  		provider,
  2541  	)
  2542  }
  2543  
  2544  // Get all linked cloud provider accounts scoped to the Actor.
  2545  func (a *Cloud) GetLinkedAccountsWithContext(
  2546  	ctx context.Context,
  2547  	provider string,
  2548  ) (*[]CloudLinkedAccount, error) {
  2549  
  2550  	resp := linkedAccountsResponse{}
  2551  	vars := map[string]interface{}{
  2552  		"provider": provider,
  2553  	}
  2554  
  2555  	if err := a.client.NerdGraphQueryWithContext(ctx, getLinkedAccountsQuery, vars, &resp); err != nil {
  2556  		return nil, err
  2557  	}
  2558  
  2559  	if len(resp.Actor.Cloud.LinkedAccounts) == 0 {
  2560  		return nil, errors.NewNotFound("")
  2561  	}
  2562  
  2563  	return &resp.Actor.Cloud.LinkedAccounts, nil
  2564  }
  2565  
  2566  const getLinkedAccountsQuery = `query(
  2567  	$provider: String,
  2568  ) { actor { cloud { linkedAccounts(
  2569  	provider: $provider,
  2570  ) {
  2571  	authLabel
  2572  	createdAt
  2573  	disabled
  2574  	externalId
  2575  	id
  2576  	metricCollectionMode
  2577  	name
  2578  	nrAccountId
  2579  	provider {
  2580  		__typename
  2581  		createdAt
  2582  		icon
  2583  		id
  2584  		name
  2585  		services {
  2586  			createdAt
  2587  			icon
  2588  			id
  2589  			isEnabled
  2590  			name
  2591  			slug
  2592  			updatedAt
  2593  		}
  2594  		slug
  2595  		updatedAt
  2596  		... on CloudAwsGovCloudProvider {
  2597  			__typename
  2598  			awsAccountId
  2599  		}
  2600  		... on CloudAwsProvider {
  2601  			__typename
  2602  			roleAccountId
  2603  			roleExternalId
  2604  		}
  2605  		... on CloudBaseProvider {
  2606  			__typename
  2607  		}
  2608  		... on CloudGcpProvider {
  2609  			__typename
  2610  			serviceAccountId
  2611  		}
  2612  	}
  2613  	updatedAt
  2614  } } } }`