github.com/newrelic/newrelic-client-go@v1.1.0/.tutone.yml (about)

     1  ---
     2  # Log level for running tutone
     3  # Default: info
     4  log_level: debug
     5  
     6  # Cache for storing a GraphQL schema
     7  cache:
     8    # Default: schema.json
     9    schema_file: schema.json
    10  
    11  # GraphQL endpoint to query for schema
    12  # Required
    13  endpoint: https://api.newrelic.com/graphql
    14  
    15  # How to authenticate to the API
    16  auth:
    17    # Header set with the API key for authentication
    18    # Default: Api-Key
    19    header: Api-Key
    20  
    21    # Environment variable to get the API key from
    22    # Default: TUTONE_API_KEY
    23    api_key_env_var: NEW_RELIC_API_KEY
    24  
    25  packages:
    26    - name: synthetics
    27      path: pkg/synthetics
    28      import_path: github.com/newrelic/newrelic-client-go/pkg/synthetics
    29      generators:
    30        - typegen
    31        - nerdgraphclient
    32      imports:
    33        - github.com/newrelic/newrelic-client-go/pkg/nrtime
    34      queries:
    35        - path: ["actor", "account", "synthetics"]
    36          endpoints:
    37            - name: "script"
    38              max_query_field_depth: 1
    39            - name: "steps"
    40              max_query_field_depth: 1
    41  
    42      mutations:
    43        - name: syntheticsCreateSecureCredential
    44          max_query_field_depth: 2
    45        - name: syntheticsDeleteSecureCredential
    46          max_query_field_depth: 2
    47        - name: syntheticsUpdateSecureCredential
    48          max_query_field_depth: 2
    49        - name: syntheticsCreateScriptApiMonitor
    50          max_query_field_depth: 2
    51        - name: syntheticsUpdateScriptApiMonitor
    52          max_query_field_depth: 2
    53        - name: syntheticsCreateScriptBrowserMonitor
    54          max_query_field_depth: 2
    55        - name: syntheticsUpdateScriptBrowserMonitor
    56          max_query_field_depth: 2
    57        - name: syntheticsCreateSimpleBrowserMonitor
    58          max_query_field_depth: 2
    59        - name: syntheticsUpdateSimpleBrowserMonitor
    60          max_query_field_depth: 2
    61        - name: syntheticsCreateSimpleMonitor
    62          max_query_field_depth: 2
    63        - name: syntheticsUpdateSimpleMonitor
    64          max_query_field_depth: 2
    65        - name: syntheticsCreateBrokenLinksMonitor
    66          max_query_field_depth: 2
    67        - name: syntheticsUpdateBrokenLinksMonitor
    68          max_query_field_depth: 2
    69        - name: syntheticsCreateCertCheckMonitor
    70          max_query_field_depth: 2
    71        - name: syntheticsUpdateCertCheckMonitor
    72          max_query_field_depth: 2
    73        - name: syntheticsCreateStepMonitor
    74          max_query_field_depth: 2
    75        - name: syntheticsUpdateStepMonitor
    76          max_query_field_depth: 2
    77        - name: syntheticsDeleteMonitor
    78          max_query_field_depth: 2
    79        - name: syntheticsCreatePrivateLocation
    80          max_query_field_depth: 2
    81        - name: syntheticsDeletePrivateLocation
    82          max_query_field_depth: 2
    83        - name: syntheticsUpdatePrivateLocation
    84          max_query_field_depth: 2
    85        - name: syntheticsPurgePrivateLocationQueue
    86          max_query_field_depth: 2
    87  
    88      types:
    89        - name: EpochMilliseconds
    90          field_type_override: nrtime.EpochMilliseconds
    91          skip_type_create: true
    92        # This must be a string, as where ID is used the type is a string...
    93        - name: ID
    94          field_type_override: string
    95          skip_type_create: true
    96  
    97    - name: common
    98      path: pkg/common
    99      import_path: github.com/newrelic/newrelic-client-go/pkg/common
   100      generators:
   101        - typegen
   102      types:
   103        - name: EntityGUID
   104          field_type_override: string
   105  
   106    - name: accounts
   107      path: pkg/accounts
   108      import_path: github.com/newrelic/newrelic-client-go/pkg/accounts
   109      generators:
   110        - typegen
   111      imports:
   112        - github.com/newrelic/newrelic-client-go/pkg/nrtime
   113      types:
   114        - name: AccountOutline
   115        - name: AccountReference
   116        - name: RegionScope
   117  
   118        #
   119        # Types that we should auto-detect are in another package someday
   120        #
   121        - name: EpochMilliseconds
   122          field_type_override: nrtime.EpochMilliseconds
   123          skip_type_create: true
   124        - name: TimeWindowInput
   125          field_type_override: nrtime.TimeWindowInput
   126          skip_type_create: true
   127  
   128  
   129    - name: alerts
   130      path: pkg/alerts
   131      import_path: github.com/newrelic/newrelic-client-go/pkg/alerts
   132      generators:
   133        - typegen
   134      imports:
   135        - github.com/newrelic/newrelic-client-go/pkg/apiaccess
   136      types:
   137        - name: AlertsMutingRuleConditionInput
   138        - name: AlertsMutingRuleInput
   139        - name: AlertsMutingRuleScheduleInput
   140        - name: AlertsNrqlConditionTermsOperator
   141        - name: AlertsPoliciesSearchCriteriaInput
   142        - name: AlertsPoliciesSearchResultSet
   143        - name: AlertsPolicy
   144        - name: AlertsPolicyInput
   145        - name: AlertsPolicyUpdateInput
   146        - name: ID
   147          field_type_override: string
   148          skip_type_create: true
   149  
   150        #
   151        # Types that we should auto-detect are in another package someday
   152        #
   153        - name: NaiveDateTime
   154          field_type_override: nrtime.NaiveDateTime
   155          skip_type_create: true
   156  
   157  
   158    - name: apiaccess
   159      path: pkg/apiaccess
   160      import_path: github.com/newrelic/newrelic-client-go/pkg/apiaccess
   161      generators:
   162        - typegen
   163      imports:
   164        - github.com/newrelic/newrelic-client-go/pkg/accounts
   165      types:
   166        - name: ApiAccessActorStitchedFields
   167        - name: ApiAccessCreateIngestKeyInput
   168        - name: ApiAccessCreateInput
   169        - name: ApiAccessCreateKeyResponse
   170        - name: ApiAccessCreateUserKeyInput
   171        - name: ApiAccessDeleteInput
   172        - name: ApiAccessDeleteKeyResponse
   173        - name: ApiAccessIngestKeyErrorType
   174        - name: ApiAccessIngestKeyType
   175        - name: ApiAccessKey # gql interface
   176        - name: APIAccessKeyError
   177          interface_methods:
   178            - "GetError() error"
   179        - name: ApiAccessKeySearchQuery
   180        - name: ApiAccessKeySearchResult
   181        - name: ApiAccessKeySearchScope
   182        - name: ApiAccessKeyType
   183        - name: ApiAccessUpdateIngestKeyInput
   184        - name: ApiAccessUpdateInput
   185        - name: ApiAccessUpdateKeyResponse
   186        - name: ApiAccessUpdateUserKeyInput
   187        - name: ApiAccessUserKeyErrorType
   188        # This must be a string, as where ID is used the type is a string...
   189        - name: ID
   190          field_type_override: string
   191          skip_type_create: true
   192  
   193        #
   194        # Types that we should auto-detect are in another package someday
   195        #
   196        - name: AccountReference
   197          field_type_override: accounts.AccountReference
   198          skip_type_create: true
   199        - name: UserReference
   200          field_type_override: users.UserReference
   201          skip_type_create: true
   202  
   203  
   204    - name: cloud
   205      path: pkg/cloud
   206      imports:
   207        - github.com/newrelic/newrelic-client-go/pkg/nrtime
   208        - encoding/json
   209        - fmt
   210      generators:
   211        - typegen
   212        - nerdgraphclient
   213      queries:
   214        - path: ["actor", "cloud"]
   215          endpoints:
   216            - name: linkedAccounts
   217              max_query_field_depth: 2
   218              include_arguments:
   219                - "provider"
   220              argument_type_overrides:
   221                - accountId: "Int!"
   222        - path: ["actor", "account", "cloud"]
   223          endpoints:
   224            - name: "linkedAccount"
   225              max_query_field_depth: 2
   226              include_arguments:
   227                - "id"
   228              argument_type_overrides:
   229                - accountId: "Int!"
   230                - id: "Int!"
   231      mutations:
   232        - name: cloudConfigureIntegration
   233          max_query_field_depth: 1
   234        - name: cloudDisableIntegration
   235          max_query_field_depth: 1
   236        - name: cloudLinkAccount
   237          max_query_field_depth: 1
   238          argument_type_overrides:
   239            accountId: "Int!"
   240            accounts: "CloudLinkCloudAccountsInput!"
   241        - name: cloudRenameAccount
   242          max_query_field_depth: 1
   243          argument_type_overrides:
   244            accountId: "Int!"
   245            accounts: "[CloudRenameAccountsInput!]!"
   246        - name: cloudUnlinkAccount
   247          max_query_field_depth: 1
   248          argument_type_overrides:
   249            accountId: "Int!"
   250            accounts: "[CloudUnlinkAccountsInput!]!"
   251      types:
   252        #
   253        # Types that we should auto-detect are in another package someday
   254        #
   255        - name: EpochSeconds
   256          field_type_override: nrtime.EpochSeconds
   257          skip_type_create: true
   258        - name: EpochMilliseconds
   259          field_type_override: nrtime.EpochMilliseconds
   260          skip_type_create: true
   261  
   262    - name: dashboards
   263      path: pkg/dashboards
   264      import_path: github.com/newrelic/newrelic-client-go/pkg/dashboards
   265      generators:
   266        - typegen
   267        - nerdgraphclient
   268      imports:
   269        - github.com/newrelic/newrelic-client-go/pkg/common
   270        - github.com/newrelic/newrelic-client-go/pkg/entities
   271        - github.com/newrelic/newrelic-client-go/pkg/nrdb
   272      mutations:
   273        - name: dashboardCreate
   274          max_query_field_depth: 10
   275          # These fields are currently not returned correctly and error
   276          # out, so we'll filter them off 6/14/2021 JT
   277          exclude_fields:
   278            - goldenMetrics
   279            - goldenTags
   280        - name: dashboardDelete
   281          max_query_field_depth: 10
   282        - name: dashboardUpdate
   283          max_query_field_depth: 10
   284          # These fields are currently not returned correctly and error
   285          # out, so we'll filter them off 6/14/2021 JT
   286          exclude_fields:
   287            - goldenMetrics
   288            - goldenTags
   289      types:
   290        # This must be a string, as where ID is used the type is a string...
   291        - name: ID
   292          field_type_override: string
   293          skip_type_create: true
   294        - name: EntityGuid
   295          field_type_override: common.EntityGUID
   296          skip_type_create: true
   297  
   298        # These need to be pointers within DashboardWidgetConfigurationInput, so
   299        # they can be nullable
   300        - name: DashboardAreaWidgetConfigurationInput
   301          field_type_override: "*DashboardAreaWidgetConfigurationInput"
   302        - name: DashboardBarWidgetConfigurationInput
   303          field_type_override: "*DashboardBarWidgetConfigurationInput"
   304        - name: DashboardBillboardWidgetConfigurationInput
   305          field_type_override: "*DashboardBillboardWidgetConfigurationInput"
   306        - name: DashboardLineWidgetConfigurationInput
   307          field_type_override: "*DashboardLineWidgetConfigurationInput"
   308        - name: DashboardMarkdownWidgetConfigurationInput
   309          field_type_override: "*DashboardMarkdownWidgetConfigurationInput"
   310        - name: DashboardPieWidgetConfigurationInput
   311          field_type_override: "*DashboardPieWidgetConfigurationInput"
   312        - name: DashboardTableWidgetConfigurationInput
   313          field_type_override: "*DashboardTableWidgetConfigurationInput"
   314  
   315        # Override this in type_overrides.go
   316        - name: DashboardBillboardWidgetThresholdInput
   317          skip_type_create: true
   318  
   319        #
   320        # Types that we should auto-detect are in another package someday
   321        #
   322        - name: DashboardAlertSeverity
   323          field_type_override: entities.DashboardAlertSeverity
   324          skip_type_create: true
   325        - name: DashboardEntity
   326          field_type_override: entities.DashboardEntity
   327          skip_type_create: true
   328        - name: DashboardEntityOutline
   329          field_type_override: entities.DashboardEntityOutline
   330          skip_type_create: true
   331        - name: DashboardOwnerInfo
   332          field_type_override: entities.DashboardOwnerInfo
   333          skip_type_create: true
   334        - name: DashboardPage
   335          field_type_override: entities.DashboardPage
   336          skip_type_create: true
   337        - name: DashboardPermissions
   338          field_type_override: entities.DashboardPermissions
   339          skip_type_create: true
   340        - name: DashboardWidget
   341          field_type_override: entities.DashboardWidget
   342          skip_type_create: true
   343        - name: DashboardWidgetRawConfiguration
   344          field_type_override: entities.DashboardWidgetRawConfiguration
   345          skip_type_create: true
   346        - name: DateTime
   347          field_type_override: nrtime.DateTime
   348          skip_type_create: true
   349        - name: Entity
   350          field_type_override: entities.Entity
   351          skip_type_create: true
   352        - name: EntityGuid
   353          field_type_override: common.EntityGUID
   354          skip_type_create: true
   355        - name: EntityOutline
   356          field_type_override: entities.EntityOutline
   357          skip_type_create: true
   358        - name: EntityResult
   359          field_type_override: entities.EntityResult
   360          skip_type_create: true
   361        - name: EpochMilliseconds
   362          field_type_override: nrtime.EpochMilliseconds
   363          skip_type_create: true
   364        - name: GenericEntityOutline
   365          field_type_override: entities.GenericEntityOutline
   366          skip_type_create: true
   367        - name: Milliseconds
   368          field_type_override: nrtime.Milliseconds
   369          skip_type_create: true
   370        - name: Nrql
   371          field_type_override: nrdb.NRQL
   372          skip_type_create: true
   373  
   374  
   375    - name: edge
   376      path: pkg/edge
   377      import_path: github.com/newrelic/newrelic-client-go/pkg/edge
   378      generators:
   379        - typegen
   380      types:
   381        - name: EdgeAccountStitchedFields
   382        - name: EdgeAgentEndpointDetail
   383        - name: EdgeCreateTraceObserverInput
   384        - name: EdgeCreateTraceObserverResponse
   385        - name: EdgeCreateTraceObserverResponseError
   386        - name: EdgeCreateTraceObserverResponseErrorType
   387        - name: EdgeCreateTraceObserverResponses
   388        - name: EdgeDeleteTraceObserverInput
   389        - name: EdgeDeleteTraceObserverResponse
   390        - name: EdgeDeleteTraceObserverResponseError
   391        - name: EdgeDeleteTraceObserverResponseErrorType
   392        - name: EdgeDeleteTraceObserverResponses
   393        - name: EdgeEndpoint
   394        - name: EdgeEndpointStatus
   395        - name: EdgeEndpointType
   396        - name: EdgeHttpsEndpointDetail
   397        - name: EdgeProviderRegion
   398        - name: EdgeTraceObserver
   399        - name: EdgeTraceObserverResponse
   400        - name: EdgeTraceObserverResponseError
   401        - name: EdgeTraceObserverResponseErrorType
   402        - name: EdgeTraceObserverStatus
   403        - name: EdgeTracing
   404  
   405  
   406    - name: entities
   407      path: pkg/entities
   408      import_path: github.com/newrelic/newrelic-client-go/pkg/entities
   409      generators:
   410        - typegen
   411        - nerdgraphclient
   412      imports:
   413        - github.com/newrelic/newrelic-client-go/pkg/accounts
   414        - github.com/newrelic/newrelic-client-go/pkg/ai
   415        - github.com/newrelic/newrelic-client-go/pkg/common
   416        - github.com/newrelic/newrelic-client-go/pkg/nrdb
   417        - github.com/newrelic/newrelic-client-go/pkg/nrtime
   418        - github.com/newrelic/newrelic-client-go/pkg/users
   419      queries:
   420        - path: ["actor"]
   421          endpoints:
   422            - name: entities
   423              max_query_field_depth: 2
   424              exclude_fields:
   425                - slug
   426            - name: entity
   427              max_query_field_depth: 2
   428              exclude_fields:
   429                - slug
   430            - name: entitySearch
   431              max_query_field_depth: 2
   432              exclude_fields:
   433                - slug
   434              include_arguments:
   435                - "queryBuilder"
   436      mutations:
   437        - name: taggingAddTagsToEntity
   438          max_query_field_depth: 1
   439        - name: taggingDeleteTagFromEntity
   440          max_query_field_depth: 1
   441        - name: taggingDeleteTagValuesFromEntity
   442          max_query_field_depth: 1
   443        - name: taggingReplaceTagsOnEntity
   444          max_query_field_depth: 1
   445  
   446      types:
   447        # Overrides for types this package owns
   448        - name: AttributeMap
   449          create_as: "map[string]interface{}"
   450        # This must be a string, as where ID is used the type is a string...
   451        - name: ID
   452          field_type_override: string
   453          skip_type_create: true
   454        - name: EntityGuid
   455          field_type_override: common.EntityGUID
   456          skip_type_create: true
   457  
   458        - name: DashboardWidgetRawConfiguration
   459          create_as: "[]byte"
   460  
   461        # Types this package owns
   462        - name: EntityRelationship
   463        - name: EntityRelationshipFilter
   464        - name: EntityRelationshipNode
   465        - name: EntityRelationshipType
   466        - name: EntitySearch
   467        - name: EntitySearchCounts
   468        - name: EntitySearchCountsFacet
   469        - name: EntitySearchOptions
   470        - name: EntitySearchQueryBuilder
   471        - name: EntitySearchResult
   472        - name: EntitySearchSortCriteria
   473        - name: EntitySearchTypes
   474        - name: EntityTag
   475        - name: EntityTagValueWithMetadata
   476        - name: EntityTagWithMetadata
   477        - name: EntityType
   478  
   479        # List of entities
   480        - name: Entity
   481          interface_methods:
   482            - "GetAccountID() int"
   483            - "GetDomain() string"
   484            - "GetGUID() common.EntityGUID"
   485            - "GetName() string"
   486            - "GetTags() []EntityTag"
   487            - "GetType() string"
   488            - "GetServiceLevel() ServiceLevelDefinition"
   489        - name: AlertableEntity
   490          generate_struct_getters: true
   491        - name: ApmApplicationEntity
   492          generate_struct_getters: true
   493        - name: ApmBrowserApplicationEntity
   494          generate_struct_getters: true
   495        - name: ApmDatabaseInstanceEntity
   496          generate_struct_getters: true
   497        - name: ApmExternalServiceEntity
   498          generate_struct_getters: true
   499        - name: BrowserApplicationEntity
   500          generate_struct_getters: true
   501        - name: CollectionEntity
   502          generate_struct_getters: true
   503        - name: DashboardEntity
   504          generate_struct_getters: true
   505        - name: ExternalEntity
   506          generate_struct_getters: true
   507        - name: GenericEntity
   508          generate_struct_getters: true
   509        - name: GenericInfrastructureEntity
   510          generate_struct_getters: true
   511        - name: InfrastructureAwsLambdaFunctionEntity
   512          generate_struct_getters: true
   513        - name: InfrastructureHostEntity
   514          generate_struct_getters: true
   515        - name: InfrastructureIntegrationEntity
   516          generate_struct_getters: true
   517        - name: MobileApplicationEntity
   518          generate_struct_getters: true
   519        - name: SecureCredentialEntity
   520          generate_struct_getters: true
   521        - name: SyntheticMonitorEntity
   522          generate_struct_getters: true
   523        - name: ThirdPartyServiceEntity
   524          generate_struct_getters: true
   525        - name: UnavailableEntity
   526          generate_struct_getters: true
   527        - name: WorkloadEntity
   528          generate_struct_getters: true
   529  
   530  
   531        # New Entity types
   532        - name: ApmAgentInstrumentedServiceEntity
   533          generate_struct_getters: true
   534        - name: GenericServiceEntity
   535          generate_struct_getters: true
   536        - name: ServiceEntity
   537          generate_struct_getters: true
   538        # End new Entity types
   539  
   540  
   541        # Entity Outlines contain the summary of an Entity's data
   542        - name: EntityOutline
   543          interface_methods:
   544            - "GetAccountID() int"
   545            - "GetDomain() string"
   546            - "GetGUID() common.EntityGUID"
   547            - "GetName() string"
   548            - "GetType() string"
   549  
   550  
   551        # Start new EntityOutline types
   552        - name: ApmAgentInstrumentedServiceEntityOutline
   553          generate_struct_getters: true
   554        - name: GenericServiceEntityOutline
   555          generate_struct_getters: true
   556        - name: ServiceEntityOutline
   557          generate_struct_getters: true
   558        - name: GenericServiceEntityOutline
   559          generate_struct_getters: true
   560        # End new EntityOutline types
   561  
   562  
   563        - name: AlertableEntityOutline
   564          generate_struct_getters: true
   565        - name: ApmApplicationEntityOutline
   566          generate_struct_getters: true
   567        - name: ApmBrowserApplicationEntityOutline
   568          generate_struct_getters: true
   569        - name: ApmDatabaseInstanceEntityOutline
   570          generate_struct_getters: true
   571        - name: ApmExternalServiceEntityOutline
   572          generate_struct_getters: true
   573        - name: BrowserApplicationEntityOutline
   574          generate_struct_getters: true
   575        - name: CollectionEntityOutline
   576          generate_struct_getters: true
   577        - name: DashboardEntityOutline
   578          generate_struct_getters: true
   579        - name: ExternalEntityOutline
   580          generate_struct_getters: true
   581        - name: GenericEntityOutline
   582          generate_struct_getters: true
   583        - name: GenericInfrastructureEntityOutline
   584          generate_struct_getters: true
   585        - name: InfrastructureAwsLambdaFunctionEntityOutline
   586          generate_struct_getters: true
   587        - name: InfrastructureHostEntityOutline
   588          generate_struct_getters: true
   589        - name: InfrastructureIntegrationEntityOutline
   590          generate_struct_getters: true
   591        - name: MobileApplicationEntityOutline
   592          generate_struct_getters: true
   593        - name: SecureCredentialEntityOutline
   594          generate_struct_getters: true
   595        - name: SyntheticMonitorEntityOutline
   596          generate_struct_getters: true
   597        - name: ThirdPartyServiceEntityOutline
   598          generate_struct_getters: true
   599        - name: UnavailableEntityOutline
   600          generate_struct_getters: true
   601        - name: WorkloadEntityOutline
   602          generate_struct_getters: true
   603  
   604        #
   605        # Types that our other packages define
   606        #   TODO: Fix tutone to figure this out for us
   607        #
   608  
   609        # accounts imports
   610        - name: AccountOutline
   611          field_type_override: accounts.AccountOutline
   612          skip_type_create: true
   613        - name: AccountReference
   614          field_type_override: accounts.AccountReference
   615          skip_type_create: true
   616  
   617        # nrtime imports
   618        - name: DateTime
   619          field_type_override: nrtime.DateTime
   620          skip_type_create: true
   621        - name: EpochSeconds
   622          field_type_override: nrtime.EpochSeconds
   623          skip_type_create: true
   624        - name: EpochMilliseconds
   625          field_type_override: "*nrtime.EpochMilliseconds"
   626          skip_type_create: true
   627        - name: Minutes
   628          field_type_override: nrtime.Minutes
   629          skip_type_create: true
   630        - name: Seconds
   631          field_type_override: nrtime.Seconds
   632          skip_type_create: true
   633  
   634        # nrdb imports
   635        - name: EventDefinition
   636          field_type_override: nrdb.EventDefinition
   637          skip_type_create: true
   638        - name: NrdbMetadataTimeWindow
   639          field_type_override: nrdb.NRDBMetadataTimeWindow
   640          skip_type_create: true
   641        - name: NrdbResult
   642          field_type_override: nrdb.NRDBResult
   643          skip_type_create: true
   644        - name: NrdbResultContainer
   645          field_type_override: nrdb.NRDBResultContainer
   646          skip_type_create: true
   647        - name: Nrql
   648          field_type_override: nrdb.NRQL
   649          skip_type_create: true
   650        - name: NrqlHistoricalQuery
   651          field_type_override: nrdb.NrqlHistoricalQuery
   652          skip_type_create: true
   653        - name: NrqlFacetSuggestion
   654          field_type_override: nrdb.NRQLFacetSuggestion
   655          skip_type_create: true
   656        - name: SuggestedNrqlQuery
   657          field_type_override: nrdb.SuggestedNRQLQuery
   658          skip_type_create: true
   659        - name: SuggestedAnomalyBasedNRQLQuery
   660          field_type_override: nrdb.SuggestedAnomalyBasedNRQLQuery
   661          skip_type_create: true
   662        - name: SuggestedHistoryBasedNRQLQuery
   663          field_type_override: nrdb.SuggestedHistoryBasedNRQLQuery
   664          skip_type_create: true
   665        - name: SuggestedNRQLQueryAnomaly
   666          field_type_override: nrdb.SuggestedNRQLQueryAnomaly
   667          skip_type_create: true
   668        - name: ServiceLevelIndicator
   669          field_type_override: servicelevel.ServiceLevelIndicator
   670          skip_type_create: true
   671  
   672        # users imports
   673        - name: UserReference
   674          field_type_override: users.UserReference
   675          skip_type_create: true
   676  
   677  
   678    - name: eventstometrics
   679      path: pkg/eventstometrics
   680      import_path: github.com/newrelic/newrelic-client-go/pkg/eventstometrics
   681      generators:
   682        - typegen
   683      imports:
   684        - github.com/newrelic/newrelic-client-go/pkg/nrtime
   685      types:
   686        - name: EventsToMetricsAccountStitchedFields
   687        - name: EventsToMetricsCreateRuleFailure
   688        - name: EventsToMetricsCreateRuleInput
   689        - name: EventsToMetricsCreateRuleResult
   690        - name: EventsToMetricsCreateRuleSubmission
   691        - name: EventsToMetricsDeleteRuleFailure
   692        - name: EventsToMetricsDeleteRuleInput
   693        - name: EventsToMetricsDeleteRuleResult
   694        - name: EventsToMetricsDeleteRuleSubmission
   695        - name: EventsToMetricsErrorReason
   696        - name: EventsToMetricsListRuleResult
   697        - name: EventsToMetricsRule
   698        - name: EventsToMetricsUpdateRuleFailure
   699        - name: EventsToMetricsUpdateRuleInput
   700        - name: EventsToMetricsUpdateRuleResult
   701        - name: EventsToMetricsUpdateRuleSubmission
   702        - name: ID
   703          field_type_override: string
   704          skip_type_create: true
   705  
   706        #
   707        # Types that we should auto-detect are in another package someday
   708        #
   709        - name: DateTime
   710          field_type_override: nrtime.DateTime
   711          skip_type_create: true
   712  
   713    - name: installevents
   714      path: pkg/installevents
   715      import_path: github.com/newrelic/newrelic-client-go/pkg/installevents
   716      generators:
   717        - typegen
   718        - nerdgraphclient
   719      imports:
   720        - github.com/newrelic/newrelic-client-go/pkg/common
   721        - github.com/newrelic/newrelic-client-go/pkg/entities
   722        - github.com/newrelic/newrelic-client-go/pkg/nrtime
   723      types:
   724        - name: Timestamp
   725          field_type_override: nrtime.DateTime
   726          skip_type_create: true
   727        - name: ValidationDurationMilliseconds
   728          field_type_override: nrtime.EpochMilliseconds
   729          skip_type_create: true
   730        - name: EpochMilliseconds
   731          field_type_override: int64
   732          skip_type_create: true
   733        - name: EpochSeconds
   734          field_type_override: nrtime.EpochSeconds
   735          skip_type_create: true
   736        - name: EntityGuid
   737          field_type_override: common.EntityGUID
   738          skip_type_create: true
   739        - name: SemVer
   740          field_type_override: string
   741          skip_type_create: true
   742        - name: ID
   743          field_type_override: string
   744          skip_type_create: true
   745        - name: InstallationRawMetadata
   746          field_type_override: map[string]interface{}
   747          skip_type_create: true
   748      mutations:
   749        - name: installationCreateRecipeEvent
   750          max_query_field_depth: 1
   751        - name: installationCreateInstallStatus
   752          max_query_field_depth: 1
   753  
   754    - name: nerdstorage
   755      path: pkg/nerdstorage
   756      import_path: github.com/newrelic/newrelic-client-go/pkg/nerdstorage
   757      generators:
   758        - typegen
   759      types:
   760        - name: NerdStorageCollectionMember
   761        - name: NerdStorageDocument
   762        - name: NerdStorageEntityScope
   763        - name: NerdStorageScope
   764        - name: NerdStorageScopeInput
   765  
   766  
   767    - name: notifications
   768      path: pkg/notifications
   769      import_path: github.com/newrelic/newrelic-client-go/pkg/notifications
   770      generators:
   771        - typegen
   772        - nerdgraphclient
   773      imports:
   774        - github.com/newrelic/newrelic-client-go/pkg/nrtime
   775      queries:
   776        - path: [ "actor", "account", "aiNotifications" ]
   777          endpoints:
   778            - name: destinations
   779              max_query_field_depth: 4
   780            - name: channels
   781              max_query_field_depth: 4
   782      mutations:
   783        - name: aiNotificationsCreateDestination
   784          max_query_field_depth: 3
   785        - name: aiNotificationsUpdateDestination
   786          max_query_field_depth: 3
   787        - name: aiNotificationsDeleteDestination
   788          max_query_field_depth: 3
   789        - name: aiNotificationsCreateChannel
   790          max_query_field_depth: 3
   791        - name: aiNotificationsUpdateChannel
   792          max_query_field_depth: 3
   793        - name: aiNotificationsDeleteChannel
   794          max_query_field_depth: 3
   795      types:
   796        - name: AiNotificationsDestinationSorter
   797        - name: AiNotificationsDestinationFilter
   798          field_type_override: "ai.AiNotificationsDestinationFilter"
   799        - name: AiNotificationsChannelFilter
   800          field_type_override: "ai.AiNotificationsChannelFilter"
   801        - name: AiNotificationsChannelSorter
   802        - name: AiNotificationsAuthType
   803        - name: AiNotificationsDestination
   804        - name: AiNotificationsCredentialsInput
   805          field_type_override: "*AiNotificationsCredentialsInput"
   806        - name: AiNotificationsAuth
   807          field_type_override: "ai.AiNotificationsAuth"
   808        - name: AiNotificationsError
   809          field_type_override: "ai.AiNotificationsError"
   810        - name: ID
   811          field_type_override: string
   812          skip_type_create: true
   813  
   814        # nrtime imports
   815        - name: DateTime
   816          field_type_override: nrtime.DateTime
   817          skip_type_create: true
   818  
   819  
   820    - name: nrdb
   821      path: pkg/nrdb
   822      import_path: github.com/newrelic/newrelic-client-go/pkg/nrdb
   823      generators:
   824        - typegen
   825      imports:
   826        - github.com/newrelic/newrelic-client-go/pkg/nrtime
   827      types:
   828        - name: Nrql
   829          create_as: string
   830        - name: NRDBMetadataTimeWindow
   831        - name: NRDBResult
   832          create_as: map[string]interface{}
   833        - name: NrqlHistoricalQuery
   834        - name: SuggestedNRQLQuery
   835        - name: NrdbResultContainer
   836        - name: EventDefinition
   837  
   838        #
   839        # Types that we should auto-detect are in another package someday
   840        #
   841        - name: EpochSeconds
   842          field_type_override: nrtime.EpochSeconds
   843          skip_type_create: true
   844        - name: EpochMilliseconds
   845          field_type_override: nrtime.EpochMilliseconds
   846          skip_type_create: true
   847        - name: TimeWindowInput
   848          field_type_override: nrtime.TimeWindowInput
   849          skip_type_create: true
   850  
   851  
   852    - name: nrqldroprules
   853      path: pkg/nrqldroprules
   854      import_path: github.com/newrelic/newrelic-client-go/pkg/nrqldroprules
   855      generators:
   856        - typegen
   857        - nerdgraphclient
   858      imports:
   859        - github.com/newrelic/newrelic-client-go/pkg/nrdb
   860        - github.com/newrelic/newrelic-client-go/pkg/nrtime
   861      queries:
   862        - path: ["actor", "account", "nrqlDropRules"]
   863          endpoints:
   864            - name: "list"
   865              max_query_field_depth: 2
   866      mutations:
   867        - name: nrqlDropRulesCreate
   868          max_query_field_depth: 1
   869        - name: nrqlDropRulesDelete
   870          max_query_field_depth: 1
   871      types:
   872        - name: NRQLDropRulesAccountStitchedFields
   873        - name: NrqlDropRulesAction
   874        - name: NrqlDropRulesCreateDropRuleFailure
   875        - name: NrqlDropRulesCreateDropRuleInput
   876        - name: NrqlDropRulesCreateDropRuleResult
   877        - name: NrqlDropRulesCreateDropRuleSubmission
   878        - name: NrqlDropRulesDeleteDropRuleFailure
   879        - name: NrqlDropRulesDeleteDropRuleResult
   880        - name: NrqlDropRulesDeleteDropRuleSubmission
   881        - name: NrqlDropRulesDropRule
   882        - name: NrqlDropRulesDropRule
   883        - name: NrqlDropRulesError
   884        - name: NrqlDropRulesErrorReason
   885        - name: NrqlDropRulesListDropRulesResult
   886        # All of the IDs are created as ints, yet this unused type is being created.
   887        - name: ID
   888          field_type_override: string
   889          skip_type_create: true
   890  
   891  
   892        #
   893        # Types that we should auto-detect are in another package someday
   894        #
   895        - name: DateTime
   896          field_type_override: nrtime.DateTime
   897          skip_type_create: true
   898        # TODO: This doesn't appear to be working for THIS package, but does for others
   899        - name: NRQL
   900          field_type_override: nrdb.NRQL
   901          skip_type_create: true
   902  
   903  
   904    - name: nrtime
   905      path: pkg/nrtime
   906      import_path: github.com/newrelic/newrelic-client-go/pkg/nrtime
   907      generators:
   908        - typegen
   909      imports:
   910        - github.com/newrelic/newrelic-client-go/internal/serialization
   911      types:
   912        - name: DateTime
   913          create_as: string
   914        - name: EpochMilliseconds
   915          create_as: serialization.EpochTime
   916        - name: EpochSeconds
   917          create_as: serialization.EpochTime
   918        - name: Milliseconds
   919          create_as: int
   920        - name: Minutes
   921          create_as: int
   922        - name: NaiveDateTime
   923          create_as: string
   924        - name: Seconds
   925          create_as: string
   926        - name: TimeWindowInput
   927  
   928  
   929    - name: users
   930      path: pkg/users
   931      import_path: github.com/newrelic/newrelic-client-go/pkg/users
   932      generators:
   933        - typegen
   934        - nerdgraphclient
   935      queries:
   936        - path: ["actor"]
   937          endpoints:
   938            - name: user
   939              max_query_field_depth: 2
   940      types:
   941        - name: User
   942        - name: UserReference
   943  
   944  
   945    - name: workflows
   946      path: pkg/workflows
   947      import_path: github.com/newrelic/newrelic-client-go/pkg/workflows
   948      generators:
   949        - typegen
   950        - nerdgraphclient
   951      imports:
   952        - github.com/newrelic/newrelic-client-go/pkg/nrtime
   953      queries:
   954        - path: [ "actor", "account", "aiWorkflows" ]
   955          endpoints:
   956            - name: workflows
   957              max_query_field_depth: 4
   958      mutations:
   959        - name: aiWorkflowsCreateWorkflow
   960          max_query_field_depth: 3
   961        - name: aiWorkflowsUpdateWorkflow
   962          max_query_field_depth: 3
   963        - name: aiWorkflowsDeleteWorkflow
   964          max_query_field_depth: 3
   965      types:
   966        - name: AiWorkflowsFilters
   967          field_type_override: "ai.AiWorkflowsFilters"
   968        - name: AiWorkflowsConfiguration
   969          field_type_override: "ai.AiWorkflowsConfiguration"
   970        - name: AiWorkflowsUpdateEnrichmentsInput
   971          field_type_override: "*AiWorkflowsUpdateEnrichmentsInput"
   972        - name: AiWorkflowsEnrichmentsInput
   973          field_type_override: "*AiWorkflowsEnrichmentsInput"
   974        - name: ID
   975          field_type_override: string
   976          skip_type_create: true
   977  
   978        # nrtime imports
   979        - name: DateTime
   980          field_type_override: nrtime.DateTime
   981          skip_type_create: true
   982  
   983  
   984    - name: workloads
   985      path: pkg/workloads
   986      import_path: github.com/newrelic/newrelic-client-go/pkg/workloads
   987      generators:
   988        - typegen
   989        - nerdgraphclient
   990      imports:
   991        - github.com/newrelic/newrelic-client-go/pkg/accounts
   992        - github.com/newrelic/newrelic-client-go/pkg/common
   993        - github.com/newrelic/newrelic-client-go/pkg/nrtime
   994        - github.com/newrelic/newrelic-client-go/pkg/users
   995      queries:
   996        - path: ["actor", "account", "workload"]
   997          endpoints:
   998            - name: collection
   999              max_query_field_depth: 6
  1000      mutations:
  1001        - name: workloadCreate
  1002          max_query_field_depth: 6
  1003        - name: workloadDelete
  1004          max_query_field_depth: 6
  1005        - name: workloadDuplicate
  1006          max_query_field_depth: 6
  1007        - name: workloadUpdate
  1008          max_query_field_depth: 6
  1009      types:
  1010        - name: WorkloadCreateInput
  1011        - name: WorkloadDuplicateInput
  1012  
  1013        # Some overrides we need
  1014        - name: WorkloadStatusConfigInput
  1015          field_type_override: "*WorkloadStatusConfigInput"
  1016        - name: WorkloadScopeAccountsInput
  1017          field_type_override: "*WorkloadScopeAccountsInput"
  1018        - name: WorkloadUpdateStatusConfigInput
  1019          field_type_override: "*WorkloadUpdateStatusConfigInput"
  1020        # Status config overrides
  1021        - name: WorkloadAutomaticStatusInput
  1022          field_type_override: "*WorkloadAutomaticStatusInput"
  1023        - name: WorkloadUpdateAutomaticStatusInput
  1024          field_type_override: "*WorkloadUpdateAutomaticStatusInput"
  1025        - name: WorkloadRemainingEntitiesRuleInput
  1026          field_type_override: "*WorkloadRemainingEntitiesRuleInput"
  1027        - name: WorkloadRemainingEntitiesRuleRollupInput
  1028          field_type_override: "*WorkloadRemainingEntitiesRuleRollupInput"
  1029        - name: WorkloadRollupInput
  1030          field_type_override: "*WorkloadRollupInput"
  1031        - name: WorkloadRuleThresholdType
  1032        # Types owned by other packages
  1033        - name: AccountReference
  1034          field_type_override: accounts.AccountReference
  1035          skip_type_create: true
  1036        - name: EntityGuid
  1037          field_type_override: common.EntityGUID
  1038          skip_type_create: true
  1039        # UpdateAt returns `null`, so this needs to be a ptr (can't override just the UpdatedAt field)
  1040        - name: EpochMilliseconds
  1041          field_type_override: "*nrtime.EpochMilliseconds"
  1042          skip_type_create: true
  1043        - name: UserReference
  1044          field_type_override: users.UserReference
  1045          skip_type_create: true
  1046  
  1047    - name: servicelevel
  1048      path: pkg/servicelevel
  1049      import_path: github.com/newrelic/newrelic-client-go/pkg/servicelevel
  1050      generators:
  1051        - typegen
  1052        - nerdgraphclient
  1053      imports:
  1054        - github.com/newrelic/newrelic-client-go/pkg/accounts
  1055        - github.com/newrelic/newrelic-client-go/pkg/common
  1056        - github.com/newrelic/newrelic-client-go/pkg/entities
  1057        - github.com/newrelic/newrelic-client-go/pkg/nrtime
  1058        - github.com/newrelic/newrelic-client-go/pkg/users
  1059      # Custom query to fetch SLIs from the entity API
  1060      queries:
  1061        - path: ["actor", "entity", "serviceLevel"]
  1062          endpoints:
  1063            - name: "indicators"
  1064              max_query_field_depth: 3
  1065              exclude_fields:
  1066                - slug
  1067                - resultQueries
  1068      mutations:
  1069        - name: serviceLevelCreate
  1070          exclude_fields:
  1071            - slug
  1072            - resultQueries
  1073          max_query_field_depth: 3
  1074        - name: serviceLevelDelete
  1075          exclude_fields:
  1076            - slug
  1077            - resultQueries
  1078          max_query_field_depth: 3
  1079        - name: serviceLevelUpdate
  1080          exclude_fields:
  1081            - slug
  1082            - resultQueries
  1083          max_query_field_depth: 3
  1084      types:
  1085        - name: User
  1086        - name: UserReference
  1087        - name: ID
  1088          field_type_override: string
  1089        - name: ServiceLevelIndicator
  1090          skip_fields:
  1091            - Slug
  1092            - ResultQueries
  1093        - name: ServiceLevelIndicatorCreateInput
  1094          skip_fields:
  1095            - Slug
  1096        - name: ServiceLevelObjective
  1097          skip_fields:
  1098            - ResultQueries
  1099  
  1100        # Overrides needed
  1101        - name: ServiceLevelEventsQuery
  1102          field_type_override: "*ServiceLevelEventsQuery"
  1103        - name: ServiceLevelEventsQueryCreateInput
  1104          field_type_override: "*ServiceLevelEventsQueryCreateInput"
  1105        - name: ServiceLevelEventsQueryUpdateInput
  1106          field_type_override: "*ServiceLevelEventsQueryUpdateInput"
  1107        - name: ServiceLevelEventsUpdateInput
  1108          field_type_override: "*ServiceLevelEventsUpdateInput"
  1109        - name: ServiceLevelEventsQuerySelectCreateInput
  1110          field_type_override: "*ServiceLevelEventsQuerySelectCreateInput"
  1111        - name: ServiceLevelEventsQuerySelectUpdateInput
  1112          field_type_override: "*ServiceLevelEventsQuerySelectUpdateInput"
  1113  
  1114  
  1115        #
  1116        # Types owned by other packages
  1117        #
  1118        # UpdateAt returns `null`, so this needs to be a ptr (can't override just the UpdatedAt field)
  1119        - name: EpochMilliseconds
  1120          field_type_override: "*nrtime.EpochMilliseconds"
  1121          skip_type_create: true
  1122        - name: AccountReference
  1123          field_type_override: accounts.AccountReference
  1124          skip_type_create: true
  1125        - name: EntityGuid
  1126          field_type_override: common.EntityGUID
  1127          skip_type_create: true
  1128  
  1129  generators:
  1130    - name: typegen
  1131      fileName: "types.go"
  1132    - name: nerdgraphclient
  1133      fileName: "{{.PackageName}}_api.go"