objects_generated.go raw

   1  // Code generated by "infoblox-go-client-generator"; DO NOT EDIT.
   2  
   3  package ibclient
   4  
   5  // WAPI_VERSION is a version of WAPI, which was used to generate infoblox-go-client.
   6  const WAPI_VERSION = "2.12.1"
   7  
   8  // AdAuthService represents Infoblox object ad_auth_service.
   9  // This object allows you to specify an Active Directory (AD) authentication
  10  // method and the AD authentication servers that Infoblox uses to authenticate
  11  // administrators.
  12  type AdAuthService struct {
  13  	IBBase `json:"-"`
  14  
  15  	Ref string `json:"_ref,omitempty"`
  16  
  17  	// The Active Directory domain to which this server belongs.
  18  	AdDomain *string `json:"ad_domain,omitempty"`
  19  
  20  	// The unordered list of additional search paths for nested group querying.
  21  	AdditionalSearchPaths []string `json:"additional_search_paths,omitempty"`
  22  
  23  	// The descriptive comment for the AD authentication service.
  24  	Comment *string `json:"comment,omitempty"`
  25  
  26  	// Determines whether the default search path for nested group querying is
  27  	// used.
  28  	DisableDefaultSearchPath *bool `json:"disable_default_search_path,omitempty"`
  29  
  30  	// Determines if Active Directory Authentication Service is disabled.
  31  	Disabled *bool `json:"disabled,omitempty"`
  32  
  33  	// The AD authentication server list.
  34  	DomainControllers []*AdAuthServer `json:"domain_controllers,omitempty"`
  35  
  36  	// The AD authentication service name.
  37  	Name *string `json:"name,omitempty"`
  38  
  39  	// Determines whether the nested group querying is enabled.
  40  	NestedGroupQuerying *bool `json:"nested_group_querying,omitempty"`
  41  
  42  	// The number of seconds that the appliance waits for a response from the AD
  43  	// server.
  44  	Timeout *uint32 `json:"timeout,omitempty"`
  45  }
  46  
  47  func (AdAuthService) ObjectType() string {
  48  	return "ad_auth_service"
  49  }
  50  
  51  func (obj AdAuthService) ReturnFields() []string {
  52  	if obj.returnFields == nil {
  53  		obj.returnFields = []string{"name"}
  54  	}
  55  	return obj.returnFields
  56  }
  57  
  58  // Admingroup represents Infoblox object admingroup.
  59  // An Admin Group object creates and manages a local admin group on the
  60  // Infoblox appliance. The privileges and properties that are set for the group
  61  // apply to all the admin accounts that are assigned to the group.
  62  type Admingroup struct {
  63  	IBBase `json:"-"`
  64  
  65  	Ref string `json:"_ref,omitempty"`
  66  
  67  	// Access methods specify whether an admin group can use the GUI and the API to
  68  	// access the appliance or to send Taxii messages to the appliance. Note that
  69  	// API includes both the Perl API and RESTful API.
  70  	AccessMethod []string `json:"access_method,omitempty"`
  71  
  72  	// Admin set commands for the admin command group.
  73  	AdminSetCommands *AdmingroupAdminsetcommands `json:"admin_set_commands,omitempty"`
  74  
  75  	// Admin show commands for the admin command group.
  76  	AdminShowCommands *AdmingroupAdminshowcommands `json:"admin_show_commands,omitempty"`
  77  
  78  	// Admin_toplevel commands for the admin command group
  79  	AdminToplevelCommands *AdmingroupAdmintoplevelcommands `json:"admin_toplevel_commands,omitempty"`
  80  
  81  	// Cloud set commands for the cloud command group.
  82  	CloudSetCommands *AdmingroupCloudsetcommands `json:"cloud_set_commands,omitempty"`
  83  
  84  	// Cloud show commands for admin group
  85  	CloudShowCommands *AdmingroupCloudshowcommands `json:"cloud_show_commands,omitempty"`
  86  
  87  	// Comment for the Admin Group; maximum 256 characters.
  88  	Comment *string `json:"comment,omitempty"`
  89  
  90  	// Database show commands for admin group.
  91  	DatabaseSetCommands *AdmingroupDatabasesetcommands `json:"database_set_commands,omitempty"`
  92  
  93  	// Database show commands for the database command
  94  	DatabaseShowCommands *AdmingroupDatabaseshowcommands `json:"database_show_commands,omitempty"`
  95  
  96  	// Dhcp set commands for the dhcp command group.
  97  	DhcpSetCommands *AdmingroupDhcpsetcommands `json:"dhcp_set_commands,omitempty"`
  98  
  99  	// Dhcp show commands for the dhcp command group.
 100  	DhcpShowCommands *AdmingroupDhcpshowcommands `json:"dhcp_show_commands,omitempty"`
 101  
 102  	// Determines whether the Admin Group is disabled or not. When this is set to
 103  	// False, the Admin Group is enabled.
 104  	Disable *bool `json:"disable,omitempty"`
 105  
 106  	// Disable concurrent login feature
 107  	DisableConcurrentLogin *bool `json:"disable_concurrent_login,omitempty"`
 108  
 109  	// Dns set commands for the dns command group.
 110  	DnsSetCommands *AdmingroupDnssetcommands `json:"dns_set_commands,omitempty"`
 111  
 112  	// Dns show commands for the dns command group.
 113  	DnsShowCommands *AdmingroupDnsshowcommands `json:"dns_show_commands,omitempty"`
 114  
 115  	// Dns toplevel commands for the dns command group.
 116  	DnsToplevelCommands *AdmingroupDnstoplevelcommands `json:"dns_toplevel_commands,omitempty"`
 117  
 118  	// Docker set commands for the dcoker command group.
 119  	DockerSetCommands *AdmingroupDockersetcommands `json:"docker_set_commands,omitempty"`
 120  
 121  	// Docker show commands for the dcoker command group.
 122  	DockerShowCommands *AdmingroupDockershowcommands `json:"docker_show_commands,omitempty"`
 123  
 124  	// The e-mail addresses for the Admin Group.
 125  	EmailAddresses []string `json:"email_addresses,omitempty"`
 126  
 127  	// Determines whether the restrictions will be applied to the admin connector
 128  	// level for users of this Admin Group.
 129  	EnableRestrictedUserAccess *bool `json:"enable_restricted_user_access,omitempty"`
 130  
 131  	// Extensible attributes associated with the object. For valid values for
 132  	// extensible attributes, see {extattrs:values}.
 133  	Ea EA `json:"extattrs"`
 134  
 135  	// Grid set commands for the grid command group.
 136  	GridSetCommands *AdmingroupGridsetcommands `json:"grid_set_commands,omitempty"`
 137  
 138  	// Show commands for the grid command group.
 139  	GridShowCommands *AdmingroupGridshowcommands `json:"grid_show_commands,omitempty"`
 140  
 141  	// The Admin group inactivity lockout settings.
 142  	InactivityLockoutSetting *SettingInactivelockout `json:"inactivity_lockout_setting,omitempty"`
 143  
 144  	// Set commands for the licensing command group.
 145  	LicensingSetCommands *AdmingroupLicensingsetcommands `json:"licensing_set_commands,omitempty"`
 146  
 147  	// Show commands for the licensing command group.
 148  	LicensingShowCommands *AdmingroupLicensingshowcommands `json:"licensing_show_commands,omitempty"`
 149  
 150  	// This struct specifies security policy settings in admin group.
 151  	LockoutSetting *AdmingroupLockoutsetting `json:"lockout_setting,omitempty"`
 152  
 153  	// Machine control toplevel commands for the machine control command group.
 154  	MachineControlToplevelCommands *AdmingroupMachinecontroltoplevelcommands `json:"machine_control_toplevel_commands,omitempty"`
 155  
 156  	// The name of the Admin Group.
 157  	Name *string `json:"name,omitempty"`
 158  
 159  	// Set commands for the networking command group.
 160  	NetworkingSetCommands *AdmingroupNetworkingsetcommands `json:"networking_set_commands,omitempty"`
 161  
 162  	// Show commands for the networking command group.
 163  	NetworkingShowCommands *AdmingroupNetworkingshowcommands `json:"networking_show_commands,omitempty"`
 164  
 165  	// The Admin Group password settings.
 166  	PasswordSetting *AdmingroupPasswordsetting `json:"password_setting,omitempty"`
 167  
 168  	// The names of roles this Admin Group applies to.
 169  	Roles []string `json:"roles,omitempty"`
 170  
 171  	// The Admin Group SAML settings.
 172  	SamlSetting *AdmingroupSamlsetting `json:"saml_setting,omitempty"`
 173  
 174  	// Set commands for the security command group.
 175  	SecuritySetCommands *AdmingroupSecuritysetcommands `json:"security_set_commands,omitempty"`
 176  
 177  	// Show commands for the security command group.
 178  	SecurityShowCommands *AdmingroupSecurityshowcommands `json:"security_show_commands,omitempty"`
 179  
 180  	// Determines whether this Admin Group is a superuser group. A superuser group
 181  	// can perform all operations on the appliance, and can view and configure all
 182  	// types of data.
 183  	Superuser *bool `json:"superuser,omitempty"`
 184  
 185  	// Toplevel commands for the troubleshooting command group.
 186  	TroubleShootingToplevelCommands *AdmingroupTroubleshootingtoplevelcommands `json:"trouble_shooting_toplevel_commands,omitempty"`
 187  
 188  	// This is the use flag for account inactivity lockout settings.
 189  	UseAccountInactivityLockoutEnable *bool `json:"use_account_inactivity_lockout_enable,omitempty"`
 190  
 191  	// Whether to override grid concurrent login
 192  	UseDisableConcurrentLogin *bool `json:"use_disable_concurrent_login,omitempty"`
 193  
 194  	// Whether to override grid sequential lockout setting
 195  	UseLockoutSetting *bool `json:"use_lockout_setting,omitempty"`
 196  
 197  	// Whether grid password expiry setting should be override.
 198  	UsePasswordSetting *bool `json:"use_password_setting,omitempty"`
 199  
 200  	// The access control items for this Admin Group.
 201  	UserAccess []*Addressac `json:"user_access,omitempty"`
 202  }
 203  
 204  func (Admingroup) ObjectType() string {
 205  	return "admingroup"
 206  }
 207  
 208  func (obj Admingroup) ReturnFields() []string {
 209  	if obj.returnFields == nil {
 210  		obj.returnFields = []string{"comment", "name"}
 211  	}
 212  	return obj.returnFields
 213  }
 214  
 215  // Adminrole represents Infoblox object adminrole.
 216  // An Admin Role object creates and manages a local admin role on the Infoblox
 217  // appliance. A Role object is used to aggregate a set of permissions
 218  // (represented by Permission objects).
 219  type Adminrole struct {
 220  	IBBase `json:"-"`
 221  
 222  	Ref string `json:"_ref,omitempty"`
 223  
 224  	// The descriptive comment of the Admin Role object.
 225  	Comment *string `json:"comment,omitempty"`
 226  
 227  	// The disable flag.
 228  	Disable *bool `json:"disable,omitempty"`
 229  
 230  	// Extensible attributes associated with the object. For valid values for
 231  	// extensible attributes, see {extattrs:values}.
 232  	Ea EA `json:"extattrs"`
 233  
 234  	// The name of an admin role.
 235  	Name *string `json:"name,omitempty"`
 236  }
 237  
 238  func (Adminrole) ObjectType() string {
 239  	return "adminrole"
 240  }
 241  
 242  func (obj Adminrole) ReturnFields() []string {
 243  	if obj.returnFields == nil {
 244  		obj.returnFields = []string{"comment", "name"}
 245  	}
 246  	return obj.returnFields
 247  }
 248  
 249  // Adminuser represents Infoblox object adminuser.
 250  // An admin account provides access to the Infoblox appliance. An admin account
 251  // inherits the privileges and properties of the group to which it belongs.
 252  type Adminuser struct {
 253  	IBBase `json:"-"`
 254  
 255  	Ref string `json:"_ref,omitempty"`
 256  
 257  	// The names of the Admin Groups to which this Admin User belongs. Currently,
 258  	// this is limited to only one Admin Group.
 259  	AdminGroups []string `json:"admin_groups,omitempty"`
 260  
 261  	// Determines the way of authentication
 262  	AuthMethod string `json:"auth_method,omitempty"`
 263  
 264  	// The authentication type for the admin user.
 265  	AuthType string `json:"auth_type,omitempty"`
 266  
 267  	// The CA certificate that is used for user lookup during authentication.
 268  	CaCertificateIssuer *string `json:"ca_certificate_issuer,omitempty"`
 269  
 270  	// The serial number of the client certificate.
 271  	ClientCertificateSerialNumber *string `json:"client_certificate_serial_number,omitempty"`
 272  
 273  	// Comment for the admin user; maximum 256 characters.
 274  	Comment *string `json:"comment,omitempty"`
 275  
 276  	// Determines whether the admin user is disabled or not. When this is set to
 277  	// False, the admin user is enabled.
 278  	Disable *bool `json:"disable,omitempty"`
 279  
 280  	// The e-mail address for the admin user.
 281  	Email *string `json:"email,omitempty"`
 282  
 283  	// Determines whether the user is allowed to log in only with the certificate.
 284  	// Regular username/password authentication will be disabled for this user.
 285  	EnableCertificateAuthentication *bool `json:"enable_certificate_authentication,omitempty"`
 286  
 287  	// Extensible attributes associated with the object. For valid values for
 288  	// extensible attributes, see {extattrs:values}.
 289  	Ea EA `json:"extattrs"`
 290  
 291  	// The name of the admin user.
 292  	Name *string `json:"name,omitempty"`
 293  
 294  	// The password for the administrator to use when logging in.
 295  	Password *string `json:"password,omitempty"`
 296  
 297  	// List of ssh keys for a particular user.
 298  	SshKeys []*SshKey `json:"ssh_keys,omitempty"`
 299  
 300  	// Status of the user account.
 301  	Status string `json:"status,omitempty"`
 302  
 303  	// The time zone for this admin user.
 304  	TimeZone string `json:"time_zone,omitempty"`
 305  
 306  	// \, Enable/disable the ssh keypair authentication.
 307  	UseSshKeys *bool `json:"use_ssh_keys,omitempty"`
 308  
 309  	// Use flag for: time_zone
 310  	UseTimeZone *bool `json:"use_time_zone,omitempty"`
 311  }
 312  
 313  func (Adminuser) ObjectType() string {
 314  	return "adminuser"
 315  }
 316  
 317  func (obj Adminuser) ReturnFields() []string {
 318  	if obj.returnFields == nil {
 319  		obj.returnFields = []string{"admin_groups", "comment", "name"}
 320  	}
 321  	return obj.returnFields
 322  }
 323  
 324  // Allendpoints represents Infoblox object allendpoints.
 325  // The object provides information about all thrid-party servers configured on
 326  // the Grid.
 327  type Allendpoints struct {
 328  	IBBase `json:"-"`
 329  
 330  	Ref string `json:"_ref,omitempty"`
 331  
 332  	// The Grid endpoint IPv4 Address or IPv6 Address or Fully-Qualified Domain
 333  	// Name (FQDN).
 334  	Address string `json:"address,omitempty"`
 335  
 336  	// The Grid endpoint descriptive comment.
 337  	Comment string `json:"comment,omitempty"`
 338  
 339  	// Determines whether a Grid endpoint is disabled or not. When this is set to
 340  	// False, the Grid endpoint is enabled.
 341  	Disable bool `json:"disable,omitempty"`
 342  
 343  	// The name of the Grid Member object that is serving Grid endpoint.
 344  	SubscribingMember string `json:"subscribing_member,omitempty"`
 345  
 346  	// The Grid endpoint type.
 347  	Type string `json:"type,omitempty"`
 348  
 349  	// The Grid endpoint version.
 350  	Version string `json:"version,omitempty"`
 351  }
 352  
 353  func (Allendpoints) ObjectType() string {
 354  	return "allendpoints"
 355  }
 356  
 357  func (obj Allendpoints) ReturnFields() []string {
 358  	if obj.returnFields == nil {
 359  		obj.returnFields = []string{}
 360  	}
 361  	return obj.returnFields
 362  }
 363  
 364  // Allnsgroup represents Infoblox object allnsgroup.
 365  // The All NS Groups object is a generic name server group object that provides
 366  // information about all name server groups.
 367  type Allnsgroup struct {
 368  	IBBase `json:"-"`
 369  
 370  	Ref string `json:"_ref,omitempty"`
 371  
 372  	// The comment for the name server group.
 373  	Comment string `json:"comment,omitempty"`
 374  
 375  	// The name of the name server group.
 376  	Name string `json:"name,omitempty"`
 377  
 378  	// The type of the name server group.
 379  	Type string `json:"type,omitempty"`
 380  }
 381  
 382  func (Allnsgroup) ObjectType() string {
 383  	return "allnsgroup"
 384  }
 385  
 386  func (obj Allnsgroup) ReturnFields() []string {
 387  	if obj.returnFields == nil {
 388  		obj.returnFields = []string{"name", "type"}
 389  	}
 390  	return obj.returnFields
 391  }
 392  
 393  // Allrecords represents Infoblox object allrecords.
 394  // The allrecords object is a read-only synthetic object used to retrieve
 395  // records that belong to a particular zone.
 396  type Allrecords struct {
 397  	IBBase `json:"-"`
 398  
 399  	Ref string `json:"_ref,omitempty"`
 400  
 401  	// The record address.
 402  	Address string `json:"address,omitempty"`
 403  
 404  	// The record comment.
 405  	Comment string `json:"comment,omitempty"`
 406  
 407  	// The record creator.
 408  	Creator string `json:"creator,omitempty"`
 409  
 410  	// The GSS-TSIG principal that owns this record.
 411  	DdnsPrincipal string `json:"ddns_principal,omitempty"`
 412  
 413  	// Determines if the DDNS updates for this record are allowed or not.
 414  	DdnsProtected bool `json:"ddns_protected,omitempty"`
 415  
 416  	// The disable value determines if the record is disabled or not. "False" means
 417  	// the record is enabled.
 418  	Disable bool `json:"disable,omitempty"`
 419  
 420  	// The specific LBDN record.
 421  	DtcObscured string `json:"dtc_obscured,omitempty"`
 422  
 423  	// The name of the record.
 424  	Name string `json:"name,omitempty"`
 425  
 426  	// Determines if the record is reclaimable or not.
 427  	Reclaimable bool `json:"reclaimable,omitempty"`
 428  
 429  	// The record object, if supported by the WAPI. Otherwise, the value is "None".
 430  	Record string `json:"record,omitempty"`
 431  
 432  	// The Time To Live (TTL) value for which the record is valid or being cached.
 433  	// The 32-bit unsigned integer represents the duration in seconds. Zero
 434  	// indicates that the record should not be cached.
 435  	Ttl uint32 `json:"ttl,omitempty"`
 436  
 437  	// The record type. When searching for an unspecified record type, the search
 438  	// is performed for all records. On retrieval, the appliance returns
 439  	// "UNSUPPORTED" for unsupported records.
 440  	Type string `json:"type,omitempty"`
 441  
 442  	// Name of the DNS View in which the record resides.
 443  	View string `json:"view,omitempty"`
 444  
 445  	// Name of the zone in which the record resides.
 446  	Zone string `json:"zone,omitempty"`
 447  }
 448  
 449  func (Allrecords) ObjectType() string {
 450  	return "allrecords"
 451  }
 452  
 453  func (obj Allrecords) ReturnFields() []string {
 454  	if obj.returnFields == nil {
 455  		obj.returnFields = []string{"comment", "name", "type", "view", "zone"}
 456  	}
 457  	return obj.returnFields
 458  }
 459  
 460  // Allrpzrecords represents Infoblox object allrpzrecords.
 461  // A synthetic object used to return record object types that belong to a
 462  // Response Policy Zone.
 463  type Allrpzrecords struct {
 464  	IBBase `json:"-"`
 465  
 466  	Ref string `json:"_ref,omitempty"`
 467  
 468  	// The alert type of the record associated with the allrpzrecords object.
 469  	AlertType string `json:"alert_type,omitempty"`
 470  
 471  	// The descriptive comment of the record associated with the allrpzrecords
 472  	// object.
 473  	Comment string `json:"comment,omitempty"`
 474  
 475  	// The disable flag of the record associated with the allrpzrecords object (if
 476  	// present).
 477  	Disable bool `json:"disable,omitempty"`
 478  
 479  	// The expiration time of the record associated with the allrpzrecords object.
 480  	ExpirationTime uint32 `json:"expiration_time,omitempty"`
 481  
 482  	// The time when the record associated with the allrpzrecords object was last
 483  	// updated.
 484  	LastUpdated uint32 `json:"last_updated,omitempty"`
 485  
 486  	// The name of the record associated with the allrpzrecords object. Note that
 487  	// this value might be different than the value of the name field for the
 488  	// associated record.
 489  	Name string `json:"name,omitempty"`
 490  
 491  	// The record object associated with the allrpzrecords object.
 492  	Record string `json:"record,omitempty"`
 493  
 494  	// The RPZ rule type of the record associated with the allrpzrecrods object.
 495  	RpzRule string `json:"rpz_rule,omitempty"`
 496  
 497  	// The TTL value of the record associated with the allrpzrecords object (if
 498  	// present).
 499  	Ttl uint32 `json:"ttl,omitempty"`
 500  
 501  	// The type of record associated with the allrpzrecords object. This is a
 502  	// descriptive string that identifies the record to which this allrpzrecords
 503  	// object refers. (Examples: 'record:rpz:a', 'record:rpz:mx', etc.)
 504  	Type string `json:"type,omitempty"`
 505  
 506  	// The DNS view name of the record associated with the allrpzrecords object.
 507  	View string `json:"view,omitempty"`
 508  
 509  	// The Response Policy Zone name of the record associated with the
 510  	// allrpzrecords object.
 511  	Zone string `json:"zone,omitempty"`
 512  }
 513  
 514  func (Allrpzrecords) ObjectType() string {
 515  	return "allrpzrecords"
 516  }
 517  
 518  func (obj Allrpzrecords) ReturnFields() []string {
 519  	if obj.returnFields == nil {
 520  		obj.returnFields = []string{"comment", "name", "type", "view", "zone"}
 521  	}
 522  	return obj.returnFields
 523  }
 524  
 525  // Approvalworkflow represents Infoblox object approvalworkflow.
 526  // The approval workflow object supports routing certain core network service
 527  // tasks submitted by an admin group to another approval. You can add an admin
 528  // group to an approval workflow and define the group as a submitter or an
 529  // approver group. You can also define when and to whom e-mail notifications
 530  // must be sent, and configure options such as whether the submitters or
 531  // approvers must enter a comment or a ticket number when they submit tasks for
 532  // approval. Approval workflows are useful when you want to control tasks that
 533  // require reviews.
 534  type Approvalworkflow struct {
 535  	IBBase `json:"-"`
 536  
 537  	Ref string `json:"_ref,omitempty"`
 538  
 539  	// The approval administration group.
 540  	ApprovalGroup *string `json:"approval_group,omitempty"`
 541  
 542  	// The destination for approval task notifications.
 543  	ApprovalNotifyTo string `json:"approval_notify_to,omitempty"`
 544  
 545  	// The destination for approved task notifications.
 546  	ApprovedNotifyTo string `json:"approved_notify_to,omitempty"`
 547  
 548  	// The requirement for the comment when an approver approves a submitted task.
 549  	ApproverComment string `json:"approver_comment,omitempty"`
 550  
 551  	// Determines whether approval task notifications are enabled.
 552  	EnableApprovalNotify *bool `json:"enable_approval_notify,omitempty"`
 553  
 554  	// Determines whether approved task notifications are enabled.
 555  	EnableApprovedNotify *bool `json:"enable_approved_notify,omitempty"`
 556  
 557  	// Determines whether failed task notifications are enabled.
 558  	EnableFailedNotify *bool `json:"enable_failed_notify,omitempty"`
 559  
 560  	// Determines whether e-mail notifications to admin group's e-mail address are
 561  	// enabled.
 562  	EnableNotifyGroup *bool `json:"enable_notify_group,omitempty"`
 563  
 564  	// Determines whether e-mail notifications to an admin member's e-mail address
 565  	// are enabled.
 566  	EnableNotifyUser *bool `json:"enable_notify_user,omitempty"`
 567  
 568  	// Determines whether rejected task notifications are enabled.
 569  	EnableRejectedNotify *bool `json:"enable_rejected_notify,omitempty"`
 570  
 571  	// Determines whether rescheduled task notifications are enabled.
 572  	EnableRescheduledNotify *bool `json:"enable_rescheduled_notify,omitempty"`
 573  
 574  	// Determines whether succeeded task notifications are enabled.
 575  	EnableSucceededNotify *bool `json:"enable_succeeded_notify,omitempty"`
 576  
 577  	// Extensible attributes associated with the object. For valid values for
 578  	// extensible attributes, see {extattrs:values}.
 579  	Ea EA `json:"extattrs"`
 580  
 581  	// The destination for failed task notifications.
 582  	FailedNotifyTo string `json:"failed_notify_to,omitempty"`
 583  
 584  	// The destination for rejected task notifications.
 585  	RejectedNotifyTo string `json:"rejected_notify_to,omitempty"`
 586  
 587  	// The destination for rescheduled task notifications.
 588  	RescheduledNotifyTo string `json:"rescheduled_notify_to,omitempty"`
 589  
 590  	// The requirement for the comment when a submitter submits a task for
 591  	// approval.
 592  	SubmitterComment string `json:"submitter_comment,omitempty"`
 593  
 594  	// The submitter admininstration group.
 595  	SubmitterGroup string `json:"submitter_group,omitempty"`
 596  
 597  	// The destination for succeeded task notifications.
 598  	SucceededNotifyTo string `json:"succeeded_notify_to,omitempty"`
 599  
 600  	// The requirement for the ticket number when a submitter submits a task for
 601  	// approval.
 602  	TicketNumber string `json:"ticket_number,omitempty"`
 603  }
 604  
 605  func (Approvalworkflow) ObjectType() string {
 606  	return "approvalworkflow"
 607  }
 608  
 609  func (obj Approvalworkflow) ReturnFields() []string {
 610  	if obj.returnFields == nil {
 611  		obj.returnFields = []string{"approval_group", "submitter_group"}
 612  	}
 613  	return obj.returnFields
 614  }
 615  
 616  // Authpolicy represents Infoblox object authpolicy.
 617  // The authentication policy defines which authentication server groups the
 618  // appliance uses to authenticate admins and lists the local admin groups that
 619  // map to the remote admin groups.
 620  type Authpolicy struct {
 621  	IBBase `json:"-"`
 622  
 623  	Ref string `json:"_ref,omitempty"`
 624  
 625  	// List of names of local administration groups that are mapped to remote
 626  	// administration groups.
 627  	AdminGroups []string `json:"admin_groups,omitempty"`
 628  
 629  	// The array that contains an ordered list of refs to
 630  	// :doc:`localuser:authservice object </objects/localuser.authservice>`,
 631  	// ldap_auth_service object ldap_auth_service, :doc:`radius:authservice object
 632  	// </objects/radius.authservice>`, :doc:`tacacsplus:authservice object
 633  	// </objects/tacacsplus.authservice>`, ad_auth_service object ad_auth_service,
 634  	// :doc:`certificate:authservice object </objects/certificate.authservice>`.
 635  	// :doc:`saml:authservice object </objects/saml.authservice>`,
 636  	AuthServices []*LocaluserAuthservice `json:"auth_services,omitempty"`
 637  
 638  	// The default admin group that provides authentication in case no valid group
 639  	// is found.
 640  	DefaultGroup *string `json:"default_group,omitempty"`
 641  
 642  	// Remote policies usage.
 643  	UsageType string `json:"usage_type,omitempty"`
 644  }
 645  
 646  func (Authpolicy) ObjectType() string {
 647  	return "authpolicy"
 648  }
 649  
 650  func (obj Authpolicy) ReturnFields() []string {
 651  	if obj.returnFields == nil {
 652  		obj.returnFields = []string{"default_group", "usage_type"}
 653  	}
 654  	return obj.returnFields
 655  }
 656  
 657  // Awsrte53taskgroup represents Infoblox object awsrte53taskgroup.
 658  // An AWS Route53 task group is a collection of one or more tasks allowing you
 659  // to specify various zone filters to retrieve DNS zone data from AWS Route53
 660  // service using specified AWS user credentials. Grouping these tasks together
 661  // helps organize related groups of sync data, enable/disable these and manage
 662  // the grid member these run on.
 663  type Awsrte53taskgroup struct {
 664  	IBBase `json:"-"`
 665  
 666  	Ref string `json:"_ref,omitempty"`
 667  
 668  	// The AWS Account ID associated with this task group.
 669  	AccountId string `json:"account_id,omitempty"`
 670  
 671  	// Comment for the task group; maximum 256 characters.
 672  	Comment *string `json:"comment,omitempty"`
 673  
 674  	// Indicates if all zones need to be saved into a single view.
 675  	ConsolidateZones bool `json:"consolidate_zones,omitempty"`
 676  
 677  	// The name of the DNS view for consolidating zones.
 678  	ConsolidatedView string `json:"consolidated_view,omitempty"`
 679  
 680  	// Indicates if the task group is enabled or disabled.
 681  	Disabled *bool `json:"disabled,omitempty"`
 682  
 683  	// Member on which the tasks in this task group will be run.
 684  	GridMember *string `json:"grid_member,omitempty"`
 685  
 686  	// The name of this AWS Route53 sync task group.
 687  	Name *string `json:"name,omitempty"`
 688  
 689  	// The name of the tenant's network view.
 690  	NetworkView string `json:"network_view,omitempty"`
 691  
 692  	// The network view mapping policy.
 693  	NetworkViewMappingPolicy string `json:"network_view_mapping_policy,omitempty"`
 694  
 695  	// Indicate the overall sync status of this task group.
 696  	SyncStatus string `json:"sync_status,omitempty"`
 697  
 698  	// List of AWS Route53 tasks in this group.
 699  	TaskList []*Awsrte53task `json:"task_list,omitempty"`
 700  }
 701  
 702  func (Awsrte53taskgroup) ObjectType() string {
 703  	return "awsrte53taskgroup"
 704  }
 705  
 706  func (obj Awsrte53taskgroup) ReturnFields() []string {
 707  	if obj.returnFields == nil {
 708  		obj.returnFields = []string{"account_id", "comment", "disabled", "name", "sync_status"}
 709  	}
 710  	return obj.returnFields
 711  }
 712  
 713  // Awsuser represents Infoblox object awsuser.
 714  // An AWS user object represents a specific access key and secret key pair
 715  // credentials of an AWS user.
 716  type Awsuser struct {
 717  	IBBase `json:"-"`
 718  
 719  	Ref string `json:"_ref,omitempty"`
 720  
 721  	// The unique Access Key ID of this AWS user. Maximum 255 characters.
 722  	AccessKeyId *string `json:"access_key_id,omitempty"`
 723  
 724  	// The AWS Account ID of this AWS user. Maximum 64 characters.
 725  	AccountId *string `json:"account_id,omitempty"`
 726  
 727  	// The timestamp when this AWS user credentials was last used.
 728  	LastUsed *UnixTime `json:"last_used,omitempty"`
 729  
 730  	// The AWS user name. Maximum 64 characters.
 731  	Name *string `json:"name,omitempty"`
 732  
 733  	// The NIOS user name mapped to this AWS user. Maximum 64 characters.
 734  	NiosUserName *string `json:"nios_user_name,omitempty"`
 735  
 736  	// The Secret Access Key for the Access Key ID of this user. Maximum 255
 737  	// characters.
 738  	SecretAccessKey *string `json:"secret_access_key,omitempty"`
 739  
 740  	// Indicate the validity status of this AWS user.
 741  	Status string `json:"status,omitempty"`
 742  }
 743  
 744  func (Awsuser) ObjectType() string {
 745  	return "awsuser"
 746  }
 747  
 748  func (obj Awsuser) ReturnFields() []string {
 749  	if obj.returnFields == nil {
 750  		obj.returnFields = []string{"access_key_id", "account_id", "name"}
 751  	}
 752  	return obj.returnFields
 753  }
 754  
 755  // Bfdtemplate represents Infoblox object bfdtemplate.
 756  // The Bidirectional Forwarding Detection (BFD) template contains a
 757  // configuration of advanced BFD settings such as authentication and timer
 758  // intervals.
 759  type Bfdtemplate struct {
 760  	IBBase `json:"-"`
 761  
 762  	Ref string `json:"_ref,omitempty"`
 763  
 764  	// The authentication key for BFD protocol message-digest authentication.
 765  	AuthenticationKey *string `json:"authentication_key,omitempty"`
 766  
 767  	// The authentication key identifier for BFD protocol authentication. Valid
 768  	// values are between 1 and 255.
 769  	AuthenticationKeyId *uint32 `json:"authentication_key_id,omitempty"`
 770  
 771  	// The authentication type for BFD protocol.
 772  	AuthenticationType string `json:"authentication_type,omitempty"`
 773  
 774  	// The detection time multiplier value for BFD protocol. The negotiated
 775  	// transmit interval, multiplied by this value, provides the detection time for
 776  	// the receiving system in asynchronous BFD mode. Valid values are between 3
 777  	// and 50.
 778  	DetectionMultiplier *uint32 `json:"detection_multiplier,omitempty"`
 779  
 780  	// The minimum receive time (in seconds) for BFD protocol. Valid values are
 781  	// between 50 and 9999.
 782  	MinRxInterval *uint32 `json:"min_rx_interval,omitempty"`
 783  
 784  	// The minimum transmission time (in seconds) for BFD protocol. Valid values
 785  	// are between 50 and 9999.
 786  	MinTxInterval *uint32 `json:"min_tx_interval,omitempty"`
 787  
 788  	// The name of the BFD template object.
 789  	Name *string `json:"name,omitempty"`
 790  }
 791  
 792  func (Bfdtemplate) ObjectType() string {
 793  	return "bfdtemplate"
 794  }
 795  
 796  func (obj Bfdtemplate) ReturnFields() []string {
 797  	if obj.returnFields == nil {
 798  		obj.returnFields = []string{"name"}
 799  	}
 800  	return obj.returnFields
 801  }
 802  
 803  // Bulkhost represents Infoblox object bulkhost.
 804  // If you need to add a large number of hosts, you can have the Infoblox
 805  // appliance add them as a group and automatically assign host names based on a
 806  // range of IP addresses and name format applied to it. This group of hosts is
 807  // referred to as a BulkHost. The Infoblox appliance uses the name space
 808  // bulk-xx-xx-xx-xx for bulk host, so this name should not be used for CNAMEs
 809  // and host aliases because doing so causes conflicts. Before adding a bulk
 810  // host, make sure that no CNAMEs or host aliases uses this name.
 811  type Bulkhost struct {
 812  	IBBase `json:"-"`
 813  
 814  	Ref string `json:"_ref,omitempty"`
 815  
 816  	// The cloud API related information.
 817  	CloudInfo *GridCloudapiInfo `json:"cloud_info,omitempty"`
 818  
 819  	// The descriptive comment.
 820  	Comment *string `json:"comment,omitempty"`
 821  
 822  	// The disable flag of a DNS BulkHost record.
 823  	Disable *bool `json:"disable,omitempty"`
 824  
 825  	// The prefix, in punycode format, for the bulk host.
 826  	DnsPrefix string `json:"dns_prefix,omitempty"`
 827  
 828  	// The last IP address in the address range for the bulk host.
 829  	EndAddr *string `json:"end_addr,omitempty"`
 830  
 831  	// Extensible attributes associated with the object. For valid values for
 832  	// extensible attributes, see {extattrs:values}.
 833  	Ea EA `json:"extattrs"`
 834  
 835  	// The time of the last DNS query in Epoch seconds format.
 836  	LastQueried *UnixTime `json:"last_queried,omitempty"`
 837  
 838  	// The bulk host name template.
 839  	NameTemplate *string `json:"name_template,omitempty"`
 840  
 841  	// The network view associated with the bulk host view.
 842  	NetworkView string `json:"network_view,omitempty"`
 843  
 844  	// The hostname policy for records under the bulk host parent zone.
 845  	Policy string `json:"policy,omitempty"`
 846  
 847  	// The prefix for the bulk host. The prefix is the name (or a series of
 848  	// characters) inserted at the beginning of each host name.
 849  	Prefix *string `json:"prefix,omitempty"`
 850  
 851  	// The reverse flag of the BulkHost record.
 852  	Reverse *bool `json:"reverse,omitempty"`
 853  
 854  	// The first IP address in the address range for the bulk host.
 855  	StartAddr *string `json:"start_addr,omitempty"`
 856  
 857  	// The bulk host name template format.
 858  	TemplateFormat string `json:"template_format,omitempty"`
 859  
 860  	// The Time to Live (TTL) value.
 861  	Ttl *uint32 `json:"ttl,omitempty"`
 862  
 863  	// Use flag for: name_template
 864  	UseNameTemplate *bool `json:"use_name_template,omitempty"`
 865  
 866  	// Use flag for: ttl
 867  	UseTtl *bool `json:"use_ttl,omitempty"`
 868  
 869  	// The view for the bulk host.
 870  	View *string `json:"view,omitempty"`
 871  
 872  	// The zone name.
 873  	Zone *string `json:"zone,omitempty"`
 874  }
 875  
 876  func (Bulkhost) ObjectType() string {
 877  	return "bulkhost"
 878  }
 879  
 880  func (obj Bulkhost) ReturnFields() []string {
 881  	if obj.returnFields == nil {
 882  		obj.returnFields = []string{"comment", "prefix"}
 883  	}
 884  	return obj.returnFields
 885  }
 886  
 887  // Bulkhostnametemplate represents Infoblox object bulkhostnametemplate.
 888  // The object manages the DNS bulk host name formats defined at the Grid level.
 889  type Bulkhostnametemplate struct {
 890  	IBBase `json:"-"`
 891  
 892  	Ref string `json:"_ref,omitempty"`
 893  
 894  	// True if this template is Grid default.
 895  	IsGridDefault bool `json:"is_grid_default,omitempty"`
 896  
 897  	// True if this is a pre-defined template, False otherwise.
 898  	PreDefined bool `json:"pre_defined,omitempty"`
 899  
 900  	// The format of bulk host name template. It should follow certain rules
 901  	// (please use Administration Guide as reference).
 902  	TemplateFormat *string `json:"template_format,omitempty"`
 903  
 904  	// The name of bulk host name template.
 905  	TemplateName *string `json:"template_name,omitempty"`
 906  }
 907  
 908  func (Bulkhostnametemplate) ObjectType() string {
 909  	return "bulkhostnametemplate"
 910  }
 911  
 912  func (obj Bulkhostnametemplate) ReturnFields() []string {
 913  	if obj.returnFields == nil {
 914  		obj.returnFields = []string{"is_grid_default", "template_format", "template_name"}
 915  	}
 916  	return obj.returnFields
 917  }
 918  
 919  // Cacertificate represents Infoblox object cacertificate.
 920  // An CA Certificate object represents a CA certificate description.
 921  type Cacertificate struct {
 922  	IBBase `json:"-"`
 923  
 924  	Ref string `json:"_ref,omitempty"`
 925  
 926  	// The certificate subject name.
 927  	DistinguishedName string `json:"distinguished_name,omitempty"`
 928  
 929  	// The certificate issuer subject name.
 930  	Issuer string `json:"issuer,omitempty"`
 931  
 932  	// The certificate serial number in hex format.
 933  	Serial string `json:"serial,omitempty"`
 934  
 935  	// Information about the CA certificate usage.
 936  	UsedBy string `json:"used_by,omitempty"`
 937  
 938  	// The date after which the certificate becomes invalid.
 939  	ValidNotAfter *UnixTime `json:"valid_not_after,omitempty"`
 940  
 941  	// The date before which the certificate is not valid.
 942  	ValidNotBefore *UnixTime `json:"valid_not_before,omitempty"`
 943  }
 944  
 945  func (Cacertificate) ObjectType() string {
 946  	return "cacertificate"
 947  }
 948  
 949  func (obj Cacertificate) ReturnFields() []string {
 950  	if obj.returnFields == nil {
 951  		obj.returnFields = []string{"distinguished_name", "issuer", "serial", "used_by", "valid_not_after", "valid_not_before"}
 952  	}
 953  	return obj.returnFields
 954  }
 955  
 956  // CapacityReport represents Infoblox object capacityreport.
 957  // The capacity report object provides information about the object count,
 958  // interface count, and other memory usage statistics for a Grid member.
 959  type CapacityReport struct {
 960  	IBBase `json:"-"`
 961  
 962  	Ref string `json:"_ref,omitempty"`
 963  
 964  	// Hardware type of a Grid member.
 965  	HardwareType string `json:"hardware_type,omitempty"`
 966  
 967  	// The maximum amount of capacity available for the Grid member.
 968  	MaxCapacity uint32 `json:"max_capacity,omitempty"`
 969  
 970  	// The Grid member name.
 971  	Name string `json:"name,omitempty"`
 972  
 973  	// A list of instance counts for object types created on the Grid member.
 974  	ObjectCounts []*CapacityreportObjectcount `json:"object_counts,omitempty"`
 975  
 976  	// The percentage of the capacity in use by the Grid member.
 977  	PercentUsed uint32 `json:"percent_used,omitempty"`
 978  
 979  	// The Grid member role.
 980  	Role string `json:"role,omitempty"`
 981  
 982  	// The total number of objects created by the Grid member.
 983  	TotalObjects uint32 `json:"total_objects,omitempty"`
 984  }
 985  
 986  func (CapacityReport) ObjectType() string {
 987  	return "capacityreport"
 988  }
 989  
 990  func (obj CapacityReport) ReturnFields() []string {
 991  	if obj.returnFields == nil {
 992  		obj.returnFields = []string{"name", "percent_used", "role"}
 993  	}
 994  	return obj.returnFields
 995  }
 996  
 997  func NewCapcityReport(capReport CapacityReport) *CapacityReport {
 998  	res := capReport
 999  	returnFields := []string{"name", "hardware_type", "max_capacity", "object_counts", "percent_used", "role", "total_objects"}
1000  	res.returnFields = returnFields
1001  	return &res
1002  }
1003  
1004  // Captiveportal represents Infoblox object captiveportal.
1005  // This object represents the captive portal configuration.
1006  type Captiveportal struct {
1007  	IBBase `json:"-"`
1008  
1009  	Ref string `json:"_ref,omitempty"`
1010  
1011  	// The authentication server group assigned to this captive portal.
1012  	AuthnServerGroup *string `json:"authn_server_group,omitempty"`
1013  
1014  	// The company name that appears in the guest registration page.
1015  	CompanyName *string `json:"company_name,omitempty"`
1016  
1017  	// Determines if authentication failures are logged to syslog or not.
1018  	EnableSyslogAuthFailure *bool `json:"enable_syslog_auth_failure,omitempty"`
1019  
1020  	// Determines if successful authentications are logged to syslog or not.
1021  	EnableSyslogAuthSuccess *bool `json:"enable_syslog_auth_success,omitempty"`
1022  
1023  	// The type of user to be enabled for the captive portal.
1024  	EnableUserType string `json:"enable_user_type,omitempty"`
1025  
1026  	// The encryption the captive portal uses.
1027  	Encryption string `json:"encryption,omitempty"`
1028  
1029  	// The list of files associated with the captive portal.
1030  	Files []*CaptiveportalFile `json:"files,omitempty"`
1031  
1032  	// The name of the custom field that you are adding to the guest registration
1033  	// page.
1034  	GuestCustomField1Name *string `json:"guest_custom_field1_name,omitempty"`
1035  
1036  	// Determines if the custom field is required or not.
1037  	GuestCustomField1Required *bool `json:"guest_custom_field1_required,omitempty"`
1038  
1039  	// The name of the custom field that you are adding to the guest registration
1040  	// page.
1041  	GuestCustomField2Name *string `json:"guest_custom_field2_name,omitempty"`
1042  
1043  	// Determines if the custom field is required or not.
1044  	GuestCustomField2Required *bool `json:"guest_custom_field2_required,omitempty"`
1045  
1046  	// The name of the custom field that you are adding to the guest registration
1047  	// page.
1048  	GuestCustomField3Name *string `json:"guest_custom_field3_name,omitempty"`
1049  
1050  	// Determines if the custom field is required or not.
1051  	GuestCustomField3Required *bool `json:"guest_custom_field3_required,omitempty"`
1052  
1053  	// The name of the custom field that you are adding to the guest registration
1054  	// page.
1055  	GuestCustomField4Name *string `json:"guest_custom_field4_name,omitempty"`
1056  
1057  	// Determines if the custom field is required or not.
1058  	GuestCustomField4Required *bool `json:"guest_custom_field4_required,omitempty"`
1059  
1060  	// Determines if the email address of the guest is required or not.
1061  	GuestEmailRequired *bool `json:"guest_email_required,omitempty"`
1062  
1063  	// Determines if the first name of the guest is required or not.
1064  	GuestFirstNameRequired *bool `json:"guest_first_name_required,omitempty"`
1065  
1066  	// Determines if the last name of the guest is required or not.
1067  	GuestLastNameRequired *bool `json:"guest_last_name_required,omitempty"`
1068  
1069  	// Determines if the middle name of the guest is required or not.
1070  	GuestMiddleNameRequired *bool `json:"guest_middle_name_required,omitempty"`
1071  
1072  	// Determines if the phone number of the guest is required or not.
1073  	GuestPhoneRequired *bool `json:"guest_phone_required,omitempty"`
1074  
1075  	// The helpdesk message that appears in the guest registration page.
1076  	HelpdeskMessage *string `json:"helpdesk_message,omitempty"`
1077  
1078  	// Determines the IP address on which the captive portal listens. Valid if
1079  	// listen address type is 'IP'.
1080  	ListenAddressIp *string `json:"listen_address_ip,omitempty"`
1081  
1082  	// Determines the type of the IP address on which the captive portal listens.
1083  	ListenAddressType string `json:"listen_address_type,omitempty"`
1084  
1085  	// The hostname of the Grid member that hosts the captive portal.
1086  	Name string `json:"name,omitempty"`
1087  
1088  	// The network view of the captive portal.
1089  	NetworkView *string `json:"network_view,omitempty"`
1090  
1091  	// The TCP port used by the Captive Portal service. The port is required when
1092  	// the Captive Portal service is enabled. Valid values are between 1 and 63999.
1093  	// Please note that setting the port number to 80 or 443 might impact
1094  	// performance.
1095  	Port *uint32 `json:"port,omitempty"`
1096  
1097  	// Determines if the captive portal service is enabled or not.
1098  	ServiceEnabled *bool `json:"service_enabled,omitempty"`
1099  
1100  	// The syslog level at which authentication failures are logged.
1101  	SyslogAuthFailureLevel string `json:"syslog_auth_failure_level,omitempty"`
1102  
1103  	// The syslog level at which successful authentications are logged.
1104  	SyslogAuthSuccessLevel string `json:"syslog_auth_success_level,omitempty"`
1105  
1106  	// The welcome message that appears in the guest registration page.
1107  	WelcomeMessage *string `json:"welcome_message,omitempty"`
1108  }
1109  
1110  func (Captiveportal) ObjectType() string {
1111  	return "captiveportal"
1112  }
1113  
1114  func (obj Captiveportal) ReturnFields() []string {
1115  	if obj.returnFields == nil {
1116  		obj.returnFields = []string{"name"}
1117  	}
1118  	return obj.returnFields
1119  }
1120  
1121  // CertificateAuthservice represents Infoblox object certificate:authservice.
1122  // This object represents an certificate authentication service.
1123  type CertificateAuthservice struct {
1124  	IBBase `json:"-"`
1125  
1126  	Ref string `json:"_ref,omitempty"`
1127  
1128  	// Specifies the value of the client certificate for automatically populating
1129  	// the NIOS login name.
1130  	AutoPopulateLogin string `json:"auto_populate_login,omitempty"`
1131  
1132  	// The list of CA certificates.
1133  	CaCertificates []*Cacertificate `json:"ca_certificates,omitempty"`
1134  
1135  	// The descriptive comment for the certificate authentication service.
1136  	Comment *string `json:"comment,omitempty"`
1137  
1138  	// Determines if this certificate authentication service is enabled or
1139  	// disabled.
1140  	Disabled *bool `json:"disabled,omitempty"`
1141  
1142  	// Determines if username/password authentication together with client
1143  	// certificate authentication is enabled or disabled.
1144  	EnablePasswordRequest *bool `json:"enable_password_request,omitempty"`
1145  
1146  	// Determines if the lookup for user group membership information on remote
1147  	// services is enabled or disabled.
1148  	EnableRemoteLookup *bool `json:"enable_remote_lookup,omitempty"`
1149  
1150  	// The number of validation attempts before the appliance contacts the next
1151  	// responder.
1152  	MaxRetries *uint32 `json:"max_retries,omitempty"`
1153  
1154  	// The name of the certificate authentication service.
1155  	Name *string `json:"name,omitempty"`
1156  
1157  	// Specifies the source of OCSP settings.
1158  	OcspCheck string `json:"ocsp_check,omitempty"`
1159  
1160  	// An ordered list of OCSP responders that are part of the certificate
1161  	// authentication service.
1162  	OcspResponders []*OcspResponder `json:"ocsp_responders,omitempty"`
1163  
1164  	// The period of time the appliance waits before it attempts to contact a
1165  	// responder that is out of service again. The value must be between 1 and 600
1166  	// seconds.
1167  	RecoveryInterval *uint32 `json:"recovery_interval,omitempty"`
1168  
1169  	// The password for the service account.
1170  	RemoteLookupPassword *string `json:"remote_lookup_password,omitempty"`
1171  
1172  	// The service that will be used for remote lookup.
1173  	RemoteLookupService *string `json:"remote_lookup_service,omitempty"`
1174  
1175  	// The username for the service account.
1176  	RemoteLookupUsername *string `json:"remote_lookup_username,omitempty"`
1177  
1178  	// The validation timeout period in milliseconds.
1179  	ResponseTimeout *uint32 `json:"response_timeout,omitempty"`
1180  
1181  	// The OCSP trust model.
1182  	TrustModel string `json:"trust_model,omitempty"`
1183  
1184  	// Specifies how to search for a user.
1185  	UserMatchType string `json:"user_match_type,omitempty"`
1186  }
1187  
1188  func (CertificateAuthservice) ObjectType() string {
1189  	return "certificate:authservice"
1190  }
1191  
1192  func (obj CertificateAuthservice) ReturnFields() []string {
1193  	if obj.returnFields == nil {
1194  		obj.returnFields = []string{"name"}
1195  	}
1196  	return obj.returnFields
1197  }
1198  
1199  // CiscoiseEndpoint represents Infoblox object ciscoise:endpoint.
1200  // The object contains information and configuration for third-party Cisco ISE
1201  // servers integration, configuration for Cisco ISE publishing and
1202  // subscription.
1203  type CiscoiseEndpoint struct {
1204  	IBBase `json:"-"`
1205  
1206  	Ref string `json:"_ref,omitempty"`
1207  
1208  	// The Cisco ISE endpoint IPv4 Address or IPv6 Address or Fully-Qualified
1209  	// Domain Name (FQDN)
1210  	Address *string `json:"address,omitempty"`
1211  
1212  	// The Cisco ISE bulk download certificate subject.
1213  	BulkDownloadCertificateSubject string `json:"bulk_download_certificate_subject,omitempty"`
1214  
1215  	// The token returned by the uploadinit function call in object fileop for
1216  	// Cisco ISE bulk download certificate.
1217  	BulkDownloadCertificateToken *string `json:"bulk_download_certificate_token,omitempty"`
1218  
1219  	// The Cisco ISE bulk download certificate valid from.
1220  	BulkDownloadCertificateValidFrom *UnixTime `json:"bulk_download_certificate_valid_from,omitempty"`
1221  
1222  	// The Cisco ISE bulk download certificate valid to.
1223  	BulkDownloadCertificateValidTo *UnixTime `json:"bulk_download_certificate_valid_to,omitempty"`
1224  
1225  	// The Cisco ISE client certificate subject.
1226  	ClientCertificateSubject string `json:"client_certificate_subject,omitempty"`
1227  
1228  	// The token returned by the uploadinit function call in object fileop for
1229  	// Cisco ISE client certificate.
1230  	ClientCertificateToken *string `json:"client_certificate_token,omitempty"`
1231  
1232  	// The Cisco ISE client certificate valid from.
1233  	ClientCertificateValidFrom *UnixTime `json:"client_certificate_valid_from,omitempty"`
1234  
1235  	// The Cisco ISE client certificate valid to.
1236  	ClientCertificateValidTo *UnixTime `json:"client_certificate_valid_to,omitempty"`
1237  
1238  	// The Cisco ISE endpoint descriptive comment.
1239  	Comment *string `json:"comment,omitempty"`
1240  
1241  	// The Cisco ISE connection status.
1242  	ConnectionStatus string `json:"connection_status,omitempty"`
1243  
1244  	// The Cisco ISE connection timeout.
1245  	ConnectionTimeout *uint32 `json:"connection_timeout,omitempty"`
1246  
1247  	// Determines whether a Cisco ISE endpoint is disabled or not. When this is set
1248  	// to False, the Cisco ISE endpoint is enabled.
1249  	Disable *bool `json:"disable,omitempty"`
1250  
1251  	// Extensible attributes associated with the object. For valid values for
1252  	// extensible attributes, see {extattrs:values}.
1253  	Ea EA `json:"extattrs"`
1254  
1255  	// The Cisco ISE network view name.
1256  	NetworkView *string `json:"network_view,omitempty"`
1257  
1258  	// The Cisco ISE publish settings.
1259  	PublishSettings *CiscoisePublishsetting `json:"publish_settings,omitempty"`
1260  
1261  	// The resolved IPv4 Address or IPv6 Address of the Cisco ISE endpoint.
1262  	ResolvedAddress string `json:"resolved_address,omitempty"`
1263  
1264  	// The resolved IPv4 Address or IPv6 Address of the Cisco ISE endpoint.
1265  	ResolvedSecondaryAddress string `json:"resolved_secondary_address,omitempty"`
1266  
1267  	// The Cisco ISE endpoint secondary IPv4 Address or IPv6 Address or
1268  	// Fully-Qualified Domain Name (FQDN)
1269  	SecondaryAddress *string `json:"secondary_address,omitempty"`
1270  
1271  	// The Cisco ISE subscribe settings.
1272  	SubscribeSettings *CiscoiseSubscribesetting `json:"subscribe_settings,omitempty"`
1273  
1274  	// The name of the Grid Member object that is serving Cisco ISE endpoint.
1275  	SubscribingMember *string `json:"subscribing_member,omitempty"`
1276  
1277  	// The Cisco ISE endpoint type.
1278  	Type string `json:"type,omitempty"`
1279  
1280  	// The Cisco ISE endpoint version.
1281  	Version string `json:"version,omitempty"`
1282  }
1283  
1284  func (CiscoiseEndpoint) ObjectType() string {
1285  	return "ciscoise:endpoint"
1286  }
1287  
1288  func (obj CiscoiseEndpoint) ReturnFields() []string {
1289  	if obj.returnFields == nil {
1290  		obj.returnFields = []string{"address", "disable", "resolved_address", "type", "version"}
1291  	}
1292  	return obj.returnFields
1293  }
1294  
1295  // Csvimporttask represents Infoblox object csvimporttask.
1296  // This object represents a CSV import task, if the task was created but not
1297  // started by an import operation, it can be started by modifying it and
1298  // assigning the value ‘START’ to the ‘action’ field.
1299  type Csvimporttask struct {
1300  	IBBase `json:"-"`
1301  
1302  	Ref string `json:"_ref,omitempty"`
1303  
1304  	// The action to execute.
1305  	Action string `json:"action,omitempty"`
1306  
1307  	// The login name of the administrator.
1308  	AdminName string `json:"admin_name,omitempty"`
1309  
1310  	// The end time of this import operation.
1311  	EndTime *UnixTime `json:"end_time,omitempty"`
1312  
1313  	// The name of the file used for the import operation.
1314  	FileName string `json:"file_name,omitempty"`
1315  
1316  	// The size of the file used for the import operation.
1317  	FileSize uint32 `json:"file_size,omitempty"`
1318  
1319  	// The ID of the current import task.
1320  	ImportId uint32 `json:"import_id,omitempty"`
1321  
1322  	// The number of lines that encountered an error.
1323  	LinesFailed uint32 `json:"lines_failed,omitempty"`
1324  
1325  	// The number of lines that have been processed.
1326  	LinesProcessed uint32 `json:"lines_processed,omitempty"`
1327  
1328  	// The number of lines that encountered a warning.
1329  	LinesWarning uint32 `json:"lines_warning,omitempty"`
1330  
1331  	// The action to take when an error is encountered.
1332  	OnError string `json:"on_error,omitempty"`
1333  
1334  	// The operation to execute.
1335  	Operation string `json:"operation,omitempty"`
1336  
1337  	// The separator to be used for the data in the CSV file.
1338  	Separator string `json:"separator,omitempty"`
1339  
1340  	// The start time of the import operation.
1341  	StartTime *UnixTime `json:"start_time,omitempty"`
1342  
1343  	// The status of the import operation
1344  	Status string `json:"status,omitempty"`
1345  
1346  	// The update method to be used for the operation.
1347  	UpdateMethod string `json:"update_method,omitempty"`
1348  }
1349  
1350  func (Csvimporttask) ObjectType() string {
1351  	return "csvimporttask"
1352  }
1353  
1354  func (obj Csvimporttask) ReturnFields() []string {
1355  	if obj.returnFields == nil {
1356  		obj.returnFields = []string{"action", "admin_name", "end_time", "file_name", "file_size", "import_id", "lines_failed", "lines_processed", "lines_warning", "on_error", "operation", "separator", "start_time", "status", "update_method"}
1357  	}
1358  	return obj.returnFields
1359  }
1360  
1361  // DbObjects represents Infoblox object db_objects.
1362  // The DB Objects object is used to search for changes in objects of the
1363  // Infoblox Grid.
1364  type DbObjects struct {
1365  	IBBase `json:"-"`
1366  
1367  	Ref string `json:"_ref,omitempty"`
1368  
1369  	// The last returned sequence ID.
1370  	LastSequenceId string `json:"last_sequence_id,omitempty"`
1371  
1372  	// The record object when supported by WAPI. Otherwise, the value is "None".
1373  	Object string `json:"object,omitempty"`
1374  
1375  	// The object type. This is undefined if the object is not supported.
1376  	ObjectTypeField string `json:"object_type,omitempty"`
1377  
1378  	// The unique ID of the requested object.
1379  	UniqueId string `json:"unique_id,omitempty"`
1380  }
1381  
1382  func (DbObjects) ObjectType() string {
1383  	return "db_objects"
1384  }
1385  
1386  func (obj DbObjects) ReturnFields() []string {
1387  	if obj.returnFields == nil {
1388  		obj.returnFields = []string{"last_sequence_id", "object", "object_type", "unique_id"}
1389  	}
1390  	return obj.returnFields
1391  }
1392  
1393  // Dbsnapshot represents Infoblox object dbsnapshot.
1394  // The object provides information about the OneDB snapshot, the last time it
1395  // was taken and the descriptive comment.
1396  type Dbsnapshot struct {
1397  	IBBase `json:"-"`
1398  
1399  	Ref string `json:"_ref,omitempty"`
1400  
1401  	// The descriptive comment.
1402  	Comment string `json:"comment,omitempty"`
1403  
1404  	// The time when the latest OneDB snapshot was taken in Epoch seconds format.
1405  	Timestamp *UnixTime `json:"timestamp,omitempty"`
1406  }
1407  
1408  func (Dbsnapshot) ObjectType() string {
1409  	return "dbsnapshot"
1410  }
1411  
1412  func (obj Dbsnapshot) ReturnFields() []string {
1413  	if obj.returnFields == nil {
1414  		obj.returnFields = []string{"comment", "timestamp"}
1415  	}
1416  	return obj.returnFields
1417  }
1418  
1419  // DdnsPrincipalcluster represents Infoblox object ddns:principalcluster.
1420  // The DDNS Principal Cluster object represents a set of principals such that
1421  // any principal in a DDNS Principal Cluster can update records created by any
1422  // other principal in the same cluster.
1423  type DdnsPrincipalcluster struct {
1424  	IBBase `json:"-"`
1425  
1426  	Ref string `json:"_ref,omitempty"`
1427  
1428  	// Comment for the DDNS Principal Cluster.
1429  	Comment *string `json:"comment,omitempty"`
1430  
1431  	// The DDNS Principal cluster group name.
1432  	Group *string `json:"group,omitempty"`
1433  
1434  	// The name of this DDNS Principal Cluster.
1435  	Name *string `json:"name,omitempty"`
1436  
1437  	// The list of equivalent principals.
1438  	Principals []string `json:"principals,omitempty"`
1439  }
1440  
1441  func (DdnsPrincipalcluster) ObjectType() string {
1442  	return "ddns:principalcluster"
1443  }
1444  
1445  func (obj DdnsPrincipalcluster) ReturnFields() []string {
1446  	if obj.returnFields == nil {
1447  		obj.returnFields = []string{"comment", "group", "name", "principals"}
1448  	}
1449  	return obj.returnFields
1450  }
1451  
1452  // DdnsPrincipalclusterGroup represents Infoblox object ddns:principalcluster:group.
1453  // The DDNS Principal Cluster Group object represents a set of DDNS Principal
1454  // Clusters. A single group can be active at any time.
1455  type DdnsPrincipalclusterGroup struct {
1456  	IBBase `json:"-"`
1457  
1458  	Ref string `json:"_ref,omitempty"`
1459  
1460  	// The list of equivalent DDNS principal clusters.
1461  	Clusters []*DdnsPrincipalcluster `json:"clusters,omitempty"`
1462  
1463  	// Comment for the DDNS Principal Cluster Group.
1464  	Comment *string `json:"comment,omitempty"`
1465  
1466  	// The name of this DDNS Principal Cluster Group.
1467  	Name *string `json:"name,omitempty"`
1468  }
1469  
1470  func (DdnsPrincipalclusterGroup) ObjectType() string {
1471  	return "ddns:principalcluster:group"
1472  }
1473  
1474  func (obj DdnsPrincipalclusterGroup) ReturnFields() []string {
1475  	if obj.returnFields == nil {
1476  		obj.returnFields = []string{"comment", "name"}
1477  	}
1478  	return obj.returnFields
1479  }
1480  
1481  // DeletedObjects represents Infoblox object deleted_objects.
1482  // The Deleted Objects object is used to display information about deleted
1483  // objects. You can retrieve it from the appliance only as a part of DB Objects
1484  // response.
1485  type DeletedObjects struct {
1486  	IBBase `json:"-"`
1487  
1488  	Ref string `json:"_ref,omitempty"`
1489  
1490  	// The object type of the deleted object. This is undefined if the object is
1491  	// not supported.
1492  	ObjectTypeField string `json:"object_type,omitempty"`
1493  }
1494  
1495  func (DeletedObjects) ObjectType() string {
1496  	return "deleted_objects"
1497  }
1498  
1499  func (obj DeletedObjects) ReturnFields() []string {
1500  	if obj.returnFields == nil {
1501  		obj.returnFields = []string{"object_type"}
1502  	}
1503  	return obj.returnFields
1504  }
1505  
1506  // DhcpStatistics represents Infoblox object dhcp:statistics.
1507  // DHCP Statistics object is used to display information about DHCP utilization
1508  // status, number of static and dynamic hosts, overall DHCP utilization in
1509  // percentage. DHCP Statistics object supports references on following objects:
1510  // network, range, sharednetwork, msserver:dhcp, member:dhcpproperties.
1511  type DhcpStatistics struct {
1512  	IBBase `json:"-"`
1513  
1514  	Ref string `json:"_ref,omitempty"`
1515  
1516  	// The percentage of the total DHCP utilization of DHCP objects multiplied by
1517  	// 1000. This is the percentage of the total number of available IP addresses
1518  	// belonging to the object versus the total number of all IP addresses in
1519  	// object.
1520  	DhcpUtilization uint32 `json:"dhcp_utilization,omitempty"`
1521  
1522  	// A string describing the utilization level of the DHCP object.
1523  	DhcpUtilizationStatus string `json:"dhcp_utilization_status,omitempty"`
1524  
1525  	// The total number of DHCP leases issued for the DHCP object.
1526  	DynamicHosts uint32 `json:"dynamic_hosts,omitempty"`
1527  
1528  	// The number of static DHCP addresses configured in the DHCP object.
1529  	StaticHosts uint32 `json:"static_hosts,omitempty"`
1530  
1531  	// The total number of DHCP addresses configured in the DHCP object.
1532  	TotalHosts uint32 `json:"total_hosts,omitempty"`
1533  }
1534  
1535  func (DhcpStatistics) ObjectType() string {
1536  	return "dhcp:statistics"
1537  }
1538  
1539  func (obj DhcpStatistics) ReturnFields() []string {
1540  	if obj.returnFields == nil {
1541  		obj.returnFields = []string{"dhcp_utilization", "dhcp_utilization_status", "dynamic_hosts", "static_hosts", "total_hosts"}
1542  	}
1543  	return obj.returnFields
1544  }
1545  
1546  // Dhcpfailover represents Infoblox object dhcpfailover.
1547  // DHCP failover is a protocol designed to allow a backup DHCP server to take
1548  // over for a main server if the main server is taken off the network for any
1549  // reason. DHCP failover can be used to configure two DHCP servers to operate
1550  // as a redundant pair.
1551  type Dhcpfailover struct {
1552  	IBBase `json:"-"`
1553  
1554  	Ref string `json:"_ref,omitempty"`
1555  
1556  	// The value indicating whether the failover assoctaion is Microsoft or Grid
1557  	// based. This is a read-only attribute.
1558  	AssociationType string `json:"association_type,omitempty"`
1559  
1560  	// A descriptive comment about a DHCP failover object.
1561  	Comment *string `json:"comment,omitempty"`
1562  
1563  	// Extensible attributes associated with the object. For valid values for
1564  	// extensible attributes, see {extattrs:values}.
1565  	Ea EA `json:"extattrs"`
1566  
1567  	// Determines the TCP port on which the server should listen for connections
1568  	// from its failover peer. Valid values are between 1 and 63999.
1569  	FailoverPort *uint32 `json:"failover_port,omitempty"`
1570  
1571  	// A load balancing split value of a DHCP failover object. Specify the value of
1572  	// the maximum load balancing delay in a 8-bit integer format (range from 0 to
1573  	// 256).
1574  	LoadBalanceSplit *uint32 `json:"load_balance_split,omitempty"`
1575  
1576  	// The maximum client lead time value of a DHCP failover object. Specify the
1577  	// value of the maximum client lead time in a 32-bit integer format (range from
1578  	// 0 to 4294967295) that represents the duration in seconds. Valid values are
1579  	// between 1 and 4294967295.
1580  	MaxClientLeadTime *uint32 `json:"max_client_lead_time,omitempty"`
1581  
1582  	// The maximum load balancing delay value of a DHCP failover object. Specify
1583  	// the value of the maximum load balancing delay in a 32-bit integer format
1584  	// (range from 0 to 4294967295) that represents the duration in seconds. Valid
1585  	// values are between 1 and 4294967295.
1586  	MaxLoadBalanceDelay *uint32 `json:"max_load_balance_delay,omitempty"`
1587  
1588  	// The maximum response delay value of a DHCP failover object. Specify the
1589  	// value of the maximum response delay in a 32-bit integer format (range from 0
1590  	// to 4294967295) that represents the duration in seconds. Valid values are
1591  	// between 1 and 4294967295.
1592  	MaxResponseDelay *uint32 `json:"max_response_delay,omitempty"`
1593  
1594  	// The maximum number of unacked updates value of a DHCP failover object.
1595  	// Specify the value of the maximum number of unacked updates in a 32-bit
1596  	// integer format (range from 0 to 4294967295) that represents the number of
1597  	// messages. Valid values are between 1 and 4294967295.
1598  	MaxUnackedUpdates *uint32 `json:"max_unacked_updates,omitempty"`
1599  
1600  	// The value that indicates whether the failover association is read-write or
1601  	// read-only. This is a read-only attribute.
1602  	MsAssociationMode string `json:"ms_association_mode,omitempty"`
1603  
1604  	// Determines if the authentication for the failover association is enabled or
1605  	// not.
1606  	MsEnableAuthentication *bool `json:"ms_enable_authentication,omitempty"`
1607  
1608  	// Determines if the switchover interval is enabled or not.
1609  	MsEnableSwitchoverInterval *bool `json:"ms_enable_switchover_interval,omitempty"`
1610  
1611  	// The mode for the failover association.
1612  	MsFailoverMode string `json:"ms_failover_mode,omitempty"`
1613  
1614  	// Failover partner defined in the association with the Microsoft Server.
1615  	MsFailoverPartner string `json:"ms_failover_partner,omitempty"`
1616  
1617  	// The partner role in the case of HotStandby.
1618  	MsHotstandbyPartnerRole string `json:"ms_hotstandby_partner_role,omitempty"`
1619  
1620  	// Determines if the matching Microsfot failover association (if any) is in
1621  	// synchronization (False) or not (True). If there is no matching failover
1622  	// association the returned values is False. This is a read-only attribute.
1623  	MsIsConflict bool `json:"ms_is_conflict,omitempty"`
1624  
1625  	// The previous failover association state. This is a read-only attribute.
1626  	MsPreviousState string `json:"ms_previous_state,omitempty"`
1627  
1628  	// The primary Microsoft Server.
1629  	MsServer string `json:"ms_server,omitempty"`
1630  
1631  	// The failover association authentication. This is a write-only attribute.
1632  	MsSharedSecret *string `json:"ms_shared_secret,omitempty"`
1633  
1634  	// The failover association state. This is a read-only attribute.
1635  	MsState string `json:"ms_state,omitempty"`
1636  
1637  	// The time (in seconds) that DHCPv4 server will wait before transitioning the
1638  	// server from the COMMUNICATION-INT state to PARTNER-DOWN state.
1639  	MsSwitchoverInterval *uint32 `json:"ms_switchover_interval,omitempty"`
1640  
1641  	// The name of a DHCP failover object.
1642  	Name *string `json:"name,omitempty"`
1643  
1644  	// The primary server of a DHCP failover object.
1645  	Primary *string `json:"primary,omitempty"`
1646  
1647  	// The type of the primary server of DHCP Failover association object.
1648  	PrimaryServerType string `json:"primary_server_type,omitempty"`
1649  
1650  	// The primary server status of a DHCP failover object.
1651  	PrimaryState string `json:"primary_state,omitempty"`
1652  
1653  	// Determines if the leases are kept in recycle bin until one week after
1654  	// expiration or not.
1655  	RecycleLeases *bool `json:"recycle_leases,omitempty"`
1656  
1657  	// The secondary server of a DHCP failover object.
1658  	Secondary *string `json:"secondary,omitempty"`
1659  
1660  	// The type of the secondary server of DHCP Failover association object.
1661  	SecondaryServerType string `json:"secondary_server_type,omitempty"`
1662  
1663  	// The secondary server status of a DHCP failover object.
1664  	SecondaryState string `json:"secondary_state,omitempty"`
1665  
1666  	// Use flag for: failover_port
1667  	UseFailoverPort *bool `json:"use_failover_port,omitempty"`
1668  
1669  	// Use flag for: ms_switchover_interval
1670  	UseMsSwitchoverInterval *bool `json:"use_ms_switchover_interval,omitempty"`
1671  
1672  	// Use flag for: recycle_leases
1673  	UseRecycleLeases *bool `json:"use_recycle_leases,omitempty"`
1674  }
1675  
1676  func (Dhcpfailover) ObjectType() string {
1677  	return "dhcpfailover"
1678  }
1679  
1680  func (obj Dhcpfailover) ReturnFields() []string {
1681  	if obj.returnFields == nil {
1682  		obj.returnFields = []string{"name"}
1683  	}
1684  	return obj.returnFields
1685  }
1686  
1687  // Dhcpoptiondefinition represents Infoblox object dhcpoptiondefinition.
1688  // An option definition defines a DHCP option within a specific option space. A
1689  // custom option can be defined in the predefined DHCP option space or in the
1690  // user-defined vendor option space. To define an option, add the option
1691  // definition to the required option space.
1692  type Dhcpoptiondefinition struct {
1693  	IBBase `json:"-"`
1694  
1695  	Ref string `json:"_ref,omitempty"`
1696  
1697  	// The code of a DHCP option definition object. An option code number is used
1698  	// to identify the DHCP option.
1699  	Code *uint32 `json:"code,omitempty"`
1700  
1701  	// The name of a DHCP option definition object.
1702  	Name *string `json:"name,omitempty"`
1703  
1704  	// The space of a DHCP option definition object.
1705  	Space *string `json:"space,omitempty"`
1706  
1707  	// The data type of the Grid DHCP option.
1708  	Type string `json:"type,omitempty"`
1709  }
1710  
1711  func (Dhcpoptiondefinition) ObjectType() string {
1712  	return "dhcpoptiondefinition"
1713  }
1714  
1715  func (obj Dhcpoptiondefinition) ReturnFields() []string {
1716  	if obj.returnFields == nil {
1717  		obj.returnFields = []string{"code", "name", "type"}
1718  	}
1719  	return obj.returnFields
1720  }
1721  
1722  // Dhcpoptionspace represents Infoblox object dhcpoptionspace.
1723  // An Option Space defines a namespace in which vendor options can be defined.
1724  // To define a specific vendor option space, add an option space to DHCP.
1725  type Dhcpoptionspace struct {
1726  	IBBase `json:"-"`
1727  
1728  	Ref string `json:"_ref,omitempty"`
1729  
1730  	// A descriptive comment of a DHCP option space object.
1731  	Comment *string `json:"comment,omitempty"`
1732  
1733  	// The name of a DHCP option space object.
1734  	Name *string `json:"name,omitempty"`
1735  
1736  	// The list of DHCP option definition objects.
1737  	OptionDefinitions []string `json:"option_definitions,omitempty"`
1738  
1739  	// The type of a DHCP option space object.
1740  	SpaceType string `json:"space_type,omitempty"`
1741  }
1742  
1743  func (Dhcpoptionspace) ObjectType() string {
1744  	return "dhcpoptionspace"
1745  }
1746  
1747  func (obj Dhcpoptionspace) ReturnFields() []string {
1748  	if obj.returnFields == nil {
1749  		obj.returnFields = []string{"comment", "name"}
1750  	}
1751  	return obj.returnFields
1752  }
1753  
1754  // Discovery represents Infoblox object discovery.
1755  // This object can be used to control the Network Insight functionality of the
1756  // appliance.
1757  type Discovery struct {
1758  	IBBase `json:"-"`
1759  
1760  	Ref string `json:"_ref,omitempty"`
1761  }
1762  
1763  func (Discovery) ObjectType() string {
1764  	return "discovery"
1765  }
1766  
1767  func (obj Discovery) ReturnFields() []string {
1768  	if obj.returnFields == nil {
1769  		obj.returnFields = []string{}
1770  	}
1771  	return obj.returnFields
1772  }
1773  
1774  // DiscoveryCredentialgroup represents Infoblox object discovery:credentialgroup.
1775  // This object provides information about the Credential group.
1776  type DiscoveryCredentialgroup struct {
1777  	IBBase `json:"-"`
1778  
1779  	Ref string `json:"_ref,omitempty"`
1780  
1781  	// The name of the Credential group.
1782  	Name *string `json:"name,omitempty"`
1783  }
1784  
1785  func (DiscoveryCredentialgroup) ObjectType() string {
1786  	return "discovery:credentialgroup"
1787  }
1788  
1789  func (obj DiscoveryCredentialgroup) ReturnFields() []string {
1790  	if obj.returnFields == nil {
1791  		obj.returnFields = []string{"name"}
1792  	}
1793  	return obj.returnFields
1794  }
1795  
1796  // DiscoveryDevice represents Infoblox object discovery:device.
1797  // The devices discovered by Network Automation
1798  type DiscoveryDevice struct {
1799  	IBBase `json:"-"`
1800  
1801  	Ref string `json:"_ref,omitempty"`
1802  
1803  	// The IPv4 Address or IPv6 Address of the device.
1804  	Address string `json:"address,omitempty"`
1805  
1806  	// The ref to management IP address of the device.
1807  	AddressRef string `json:"address_ref,omitempty"`
1808  
1809  	// The list of available management IPs for the device.
1810  	AvailableMgmtIps []string `json:"available_mgmt_ips,omitempty"`
1811  
1812  	// Determines whether to modify the admin status of an interface of the device.
1813  	CapAdminStatusInd bool `json:"cap_admin_status_ind,omitempty"`
1814  
1815  	// The reason that the edit admin status action is not available.
1816  	CapAdminStatusNaReason string `json:"cap_admin_status_na_reason,omitempty"`
1817  
1818  	// Determines whether to modify the description of an interface on the device.
1819  	CapDescriptionInd bool `json:"cap_description_ind,omitempty"`
1820  
1821  	// The reason that the edit description action is not available.
1822  	CapDescriptionNaReason string `json:"cap_description_na_reason,omitempty"`
1823  
1824  	// Determines whether to deprovision a network from interfaces of the device.
1825  	CapNetDeprovisioningInd bool `json:"cap_net_deprovisioning_ind,omitempty"`
1826  
1827  	// The reason that the deprovision a network from interfaces of this device is
1828  	// not available.
1829  	CapNetDeprovisioningNaReason string `json:"cap_net_deprovisioning_na_reason,omitempty"`
1830  
1831  	// Determines whether to modify the network associated to an interface of the
1832  	// device.
1833  	CapNetProvisioningInd bool `json:"cap_net_provisioning_ind,omitempty"`
1834  
1835  	// The reason that network provisioning is not available.
1836  	CapNetProvisioningNaReason string `json:"cap_net_provisioning_na_reason,omitempty"`
1837  
1838  	// Determines whether to create a VLAN and then provision a network to the
1839  	// interface of the device.
1840  	CapNetVlanProvisioningInd bool `json:"cap_net_vlan_provisioning_ind,omitempty"`
1841  
1842  	// The reason that network provisioning on VLAN is not available.
1843  	CapNetVlanProvisioningNaReason string `json:"cap_net_vlan_provisioning_na_reason,omitempty"`
1844  
1845  	// Determines whether to modify the VLAN assignement of an interface of the
1846  	// device.
1847  	CapVlanAssignmentInd bool `json:"cap_vlan_assignment_ind,omitempty"`
1848  
1849  	// The reason that VLAN assignment action is not available.
1850  	CapVlanAssignmentNaReason string `json:"cap_vlan_assignment_na_reason,omitempty"`
1851  
1852  	// Determines whether to modify the voice VLAN assignment of an interface of
1853  	// the device.
1854  	CapVoiceVlanInd bool `json:"cap_voice_vlan_ind,omitempty"`
1855  
1856  	// The reason that voice VLAN assignment action is not available.
1857  	CapVoiceVlanNaReason string `json:"cap_voice_vlan_na_reason,omitempty"`
1858  
1859  	// The device chassis serial number.
1860  	ChassisSerialNumber string `json:"chassis_serial_number,omitempty"`
1861  
1862  	// The description of the device.
1863  	Description string `json:"description,omitempty"`
1864  
1865  	// Extensible attributes associated with the object. For valid values for
1866  	// extensible attributes, see {extattrs:values}.
1867  	Ea EA `json:"extattrs"`
1868  
1869  	// List of the device interfaces.
1870  	Interfaces []*DiscoveryDeviceinterface `json:"interfaces,omitempty"`
1871  
1872  	// The location of the device.
1873  	Location string `json:"location,omitempty"`
1874  
1875  	// The model name of the device.
1876  	Model string `json:"model,omitempty"`
1877  
1878  	// The Microsoft Active Directory user related information.
1879  	MsAdUserData *MsserverAduserData `json:"ms_ad_user_data,omitempty"`
1880  
1881  	// The name of the device.
1882  	Name string `json:"name,omitempty"`
1883  
1884  	// List of the device neighbors.
1885  	Neighbors []*DiscoveryDeviceneighbor `json:"neighbors,omitempty"`
1886  
1887  	// The ref to the network to which belongs the management IP address belongs.
1888  	Network string `json:"network,omitempty"`
1889  
1890  	// The list of networks to which the device interfaces belong.
1891  	NetworkInfos []*DiscoveryNetworkinfo `json:"network_infos,omitempty"`
1892  
1893  	// The name of the network view in which this device resides.
1894  	NetworkView string `json:"network_view,omitempty"`
1895  
1896  	// The list of networks to which the device interfaces belong.
1897  	Networks []*Ipv4Network `json:"networks,omitempty"`
1898  
1899  	// The Operating System version running on the device.
1900  	OsVersion string `json:"os_version,omitempty"`
1901  
1902  	// The port statistics of the device.
1903  	PortStats *DiscoveryDevicePortstatistics `json:"port_stats,omitempty"`
1904  
1905  	// A flag indicated that NI should send enable command when interacting with
1906  	// device.
1907  	PrivilegedPolling *bool `json:"privileged_polling,omitempty"`
1908  
1909  	// The type of the device.
1910  	Type string `json:"type,omitempty"`
1911  
1912  	// User-defined management IP address of the device.
1913  	UserDefinedMgmtIp *string `json:"user_defined_mgmt_ip,omitempty"`
1914  
1915  	// The vendor name of the device.
1916  	Vendor string `json:"vendor,omitempty"`
1917  
1918  	// The list of VLAN information associated with the device.
1919  	VlanInfos []*DiscoveryVlaninfo `json:"vlan_infos,omitempty"`
1920  }
1921  
1922  func (DiscoveryDevice) ObjectType() string {
1923  	return "discovery:device"
1924  }
1925  
1926  func (obj DiscoveryDevice) ReturnFields() []string {
1927  	if obj.returnFields == nil {
1928  		obj.returnFields = []string{"address", "name", "network_view"}
1929  	}
1930  	return obj.returnFields
1931  }
1932  
1933  // DiscoveryDevicecomponent represents Infoblox object discovery:devicecomponent.
1934  // The device components discovered by Network Automation.
1935  type DiscoveryDevicecomponent struct {
1936  	IBBase `json:"-"`
1937  
1938  	Ref string `json:"_ref,omitempty"`
1939  
1940  	// The component name.
1941  	ComponentName string `json:"component_name,omitempty"`
1942  
1943  	// The description of the device component.
1944  	Description string `json:"description,omitempty"`
1945  
1946  	// A reference to a device, to which this component belongs to.
1947  	Device string `json:"device,omitempty"`
1948  
1949  	// The model of the device component.
1950  	Model string `json:"model,omitempty"`
1951  
1952  	// The serial number of the device component.
1953  	Serial string `json:"serial,omitempty"`
1954  
1955  	// The type of device component.
1956  	Type string `json:"type,omitempty"`
1957  }
1958  
1959  func (DiscoveryDevicecomponent) ObjectType() string {
1960  	return "discovery:devicecomponent"
1961  }
1962  
1963  func (obj DiscoveryDevicecomponent) ReturnFields() []string {
1964  	if obj.returnFields == nil {
1965  		obj.returnFields = []string{"component_name", "description", "model", "serial", "type"}
1966  	}
1967  	return obj.returnFields
1968  }
1969  
1970  // DiscoveryDeviceinterface represents Infoblox object discovery:deviceinterface.
1971  // Interfaces on devices discovered by Network Automation
1972  type DiscoveryDeviceinterface struct {
1973  	IBBase `json:"-"`
1974  
1975  	Ref string `json:"_ref,omitempty"`
1976  
1977  	// Administrative state of the interface.
1978  	AdminStatus string `json:"admin_status,omitempty"`
1979  
1980  	// The configured admin status task info of the interface.
1981  	AdminStatusTaskInfo *DiscoveryPortConfigAdminstatus `json:"admin_status_task_info,omitempty"`
1982  
1983  	// Name of the port channel current interface belongs to.
1984  	AggrInterfaceName string `json:"aggr_interface_name,omitempty"`
1985  
1986  	// Determines whether to modify the admin status of the interface.
1987  	CapIfAdminStatusInd bool `json:"cap_if_admin_status_ind,omitempty"`
1988  
1989  	// The reason that the edit admin status action is not available.
1990  	CapIfAdminStatusNaReason string `json:"cap_if_admin_status_na_reason,omitempty"`
1991  
1992  	// Determines whether to modify the description of the interface.
1993  	CapIfDescriptionInd bool `json:"cap_if_description_ind,omitempty"`
1994  
1995  	// The reason that the edit description action is not available.
1996  	CapIfDescriptionNaReason string `json:"cap_if_description_na_reason,omitempty"`
1997  
1998  	// Determines whether to deprovision a IPv4 network from the interfaces.
1999  	CapIfNetDeprovisioningIpv4Ind bool `json:"cap_if_net_deprovisioning_ipv4_ind,omitempty"`
2000  
2001  	// The reason that the deprovision a IPv4 network from the interface.
2002  	CapIfNetDeprovisioningIpv4NaReason string `json:"cap_if_net_deprovisioning_ipv4_na_reason,omitempty"`
2003  
2004  	// Determines whether to deprovision a IPv6 network from the interfaces.
2005  	CapIfNetDeprovisioningIpv6Ind bool `json:"cap_if_net_deprovisioning_ipv6_ind,omitempty"`
2006  
2007  	// The reason that the deprovision a IPv6 network from the interface.
2008  	CapIfNetDeprovisioningIpv6NaReason string `json:"cap_if_net_deprovisioning_ipv6_na_reason,omitempty"`
2009  
2010  	// Determines whether to modify the IPv4 network associated to the interface.
2011  	CapIfNetProvisioningIpv4Ind bool `json:"cap_if_net_provisioning_ipv4_ind,omitempty"`
2012  
2013  	// The reason that IPv4 network provisioning is not available.
2014  	CapIfNetProvisioningIpv4NaReason string `json:"cap_if_net_provisioning_ipv4_na_reason,omitempty"`
2015  
2016  	// Determines whether to modify the IPv6 network associated to the interface.
2017  	CapIfNetProvisioningIpv6Ind bool `json:"cap_if_net_provisioning_ipv6_ind,omitempty"`
2018  
2019  	// The reason that IPv6 network provisioning is not available.
2020  	CapIfNetProvisioningIpv6NaReason string `json:"cap_if_net_provisioning_ipv6_na_reason,omitempty"`
2021  
2022  	// Determines whether to modify the VLAN assignement of the interface.
2023  	CapIfVlanAssignmentInd bool `json:"cap_if_vlan_assignment_ind,omitempty"`
2024  
2025  	// The reason that VLAN assignment action is not available.
2026  	CapIfVlanAssignmentNaReason string `json:"cap_if_vlan_assignment_na_reason,omitempty"`
2027  
2028  	// Determines whether to modify the voice VLAN assignement of the interface.
2029  	CapIfVoiceVlanInd bool `json:"cap_if_voice_vlan_ind,omitempty"`
2030  
2031  	// The reason that voice VLAN assignment action is not available.
2032  	CapIfVoiceVlanNaReason string `json:"cap_if_voice_vlan_na_reason,omitempty"`
2033  
2034  	// The description of the interface.
2035  	Description string `json:"description,omitempty"`
2036  
2037  	// The configured description task info of the interface.
2038  	DescriptionTaskInfo *DiscoveryPortConfigDescription `json:"description_task_info,omitempty"`
2039  
2040  	// The ref to the device to which the interface belongs.
2041  	Device string `json:"device,omitempty"`
2042  
2043  	// The duplex state of the interface.
2044  	Duplex string `json:"duplex,omitempty"`
2045  
2046  	// Extensible attributes associated with the object. For valid values for
2047  	// extensible attributes, see {extattrs:values}.
2048  	Ea EA `json:"extattrs"`
2049  
2050  	// List of IFaddr information associated with the interface.
2051  	IfaddrInfos []*DiscoveryIfaddrinfo `json:"ifaddr_infos,omitempty"`
2052  
2053  	// The interface index number, as reported by SNMP.
2054  	Index int `json:"index,omitempty"`
2055  
2056  	// Timestamp of the last interface property change detected.
2057  	LastChange *UnixTime `json:"last_change,omitempty"`
2058  
2059  	// This field indicates if this is a link aggregation interface.
2060  	LinkAggregation bool `json:"link_aggregation,omitempty"`
2061  
2062  	// The MAC address of the interface.
2063  	Mac string `json:"mac,omitempty"`
2064  
2065  	// The Microsoft Active Directory user related information.
2066  	MsAdUserData *MsserverAduserData `json:"ms_ad_user_data,omitempty"`
2067  
2068  	// The interface system name.
2069  	Name string `json:"name,omitempty"`
2070  
2071  	// Th name of the network view.
2072  	NetworkView string `json:"network_view,omitempty"`
2073  
2074  	// Operating state of the interface.
2075  	OperStatus string `json:"oper_status,omitempty"`
2076  
2077  	// The Port Fast status of the interface.
2078  	PortFast string `json:"port_fast,omitempty"`
2079  
2080  	// The reference to object(Host/FixedAddress/GridMember) to which this port is
2081  	// reserved.
2082  	ReservedObject string `json:"reserved_object,omitempty"`
2083  
2084  	// The interface speed in bps.
2085  	Speed uint32 `json:"speed,omitempty"`
2086  
2087  	// Indicates if the interface is tagged as a VLAN trunk or not.
2088  	TrunkStatus string `json:"trunk_status,omitempty"`
2089  
2090  	// The type of interface.
2091  	Type string `json:"type,omitempty"`
2092  
2093  	// The configured VLAN status task info of the interface.
2094  	VlanInfoTaskInfo *DiscoveryPortConfigVlaninfo `json:"vlan_info_task_info,omitempty"`
2095  
2096  	// The list of VLAN information associated with the interface.
2097  	VlanInfos []*DiscoveryVlaninfo `json:"vlan_infos,omitempty"`
2098  
2099  	// Aggregated interface name of vPC peer device current port is connected to.
2100  	VpcPeer string `json:"vpc_peer,omitempty"`
2101  
2102  	// The reference to vPC peer device.
2103  	VpcPeerDevice string `json:"vpc_peer_device,omitempty"`
2104  
2105  	// The description of the Virtual Routing and Forwarding (VRF) associated with
2106  	// the interface.
2107  	VrfDescription string `json:"vrf_description,omitempty"`
2108  
2109  	// The name of the Virtual Routing and Forwarding (VRF) associated with the
2110  	// interface.
2111  	VrfName string `json:"vrf_name,omitempty"`
2112  
2113  	// The route distinguisher of the Virtual Routing and Forwarding (VRF)
2114  	// associated with the interface.
2115  	VrfRd string `json:"vrf_rd,omitempty"`
2116  }
2117  
2118  func (DiscoveryDeviceinterface) ObjectType() string {
2119  	return "discovery:deviceinterface"
2120  }
2121  
2122  func (obj DiscoveryDeviceinterface) ReturnFields() []string {
2123  	if obj.returnFields == nil {
2124  		obj.returnFields = []string{"name", "type"}
2125  	}
2126  	return obj.returnFields
2127  }
2128  
2129  // DiscoveryDeviceneighbor represents Infoblox object discovery:deviceneighbor.
2130  // The neighbor associated with the device discovered by Network Automation.
2131  type DiscoveryDeviceneighbor struct {
2132  	IBBase `json:"-"`
2133  
2134  	Ref string `json:"_ref,omitempty"`
2135  
2136  	// The IPv4 Address or IPv6 Address of the device neighbor.
2137  	Address string `json:"address,omitempty"`
2138  
2139  	// The ref to the management IP address of the device neighbor.
2140  	AddressRef string `json:"address_ref,omitempty"`
2141  
2142  	// The ref to the device to which the device neighbor belongs.
2143  	Device string `json:"device,omitempty"`
2144  
2145  	// The ref to the interface to which the device neighbor belongs.
2146  	Interface string `json:"interface,omitempty"`
2147  
2148  	// The MAC address of the device neighbor.
2149  	Mac string `json:"mac,omitempty"`
2150  
2151  	// The name of the device neighbor.
2152  	Name string `json:"name,omitempty"`
2153  
2154  	// The list of VLAN information associated with the device neighbor.
2155  	VlanInfos []*DiscoveryVlaninfo `json:"vlan_infos,omitempty"`
2156  }
2157  
2158  func (DiscoveryDeviceneighbor) ObjectType() string {
2159  	return "discovery:deviceneighbor"
2160  }
2161  
2162  func (obj DiscoveryDeviceneighbor) ReturnFields() []string {
2163  	if obj.returnFields == nil {
2164  		obj.returnFields = []string{"address", "address_ref", "mac", "name"}
2165  	}
2166  	return obj.returnFields
2167  }
2168  
2169  // DiscoveryDevicesupportbundle represents Infoblox object discovery:devicesupportbundle.
2170  // Infoblox frequently provides support files for additional network devices
2171  // that may not have previously been supported by discovery, and updates to
2172  // support new operating system versions of existing devices.
2173  type DiscoveryDevicesupportbundle struct {
2174  	IBBase `json:"-"`
2175  
2176  	Ref string `json:"_ref,omitempty"`
2177  
2178  	// The developer of the device support bundle.
2179  	Author string `json:"author,omitempty"`
2180  
2181  	// Determines whether the device support bundle is integrated or imported. Note
2182  	// that integrated support bundles cannot be removed.
2183  	IntegratedInd bool `json:"integrated_ind,omitempty"`
2184  
2185  	// The descriptive device name for the device support bundle.
2186  	Name string `json:"name,omitempty"`
2187  
2188  	// The version of the currently active device support bundle.
2189  	Version string `json:"version,omitempty"`
2190  }
2191  
2192  func (DiscoveryDevicesupportbundle) ObjectType() string {
2193  	return "discovery:devicesupportbundle"
2194  }
2195  
2196  func (obj DiscoveryDevicesupportbundle) ReturnFields() []string {
2197  	if obj.returnFields == nil {
2198  		obj.returnFields = []string{"author", "integrated_ind", "name", "version"}
2199  	}
2200  	return obj.returnFields
2201  }
2202  
2203  // DiscoveryDiagnostictask represents Infoblox object discovery:diagnostictask.
2204  // The object provides information about the discovery diagnostic task.
2205  type DiscoveryDiagnostictask struct {
2206  	IBBase `json:"-"`
2207  
2208  	Ref string `json:"_ref,omitempty"`
2209  
2210  	// The SNMP community string of the discovery diagnostic task.
2211  	CommunityString *string `json:"community_string,omitempty"`
2212  
2213  	// The SNMP debug flag of the discovery diagnostic task.
2214  	DebugSnmp *bool `json:"debug_snmp,omitempty"`
2215  
2216  	// The force test flag of the discovery diagnostic task.
2217  	ForceTest *bool `json:"force_test,omitempty"`
2218  
2219  	// The IP address of the discovery diagnostic task.
2220  	IpAddress *string `json:"ip_address,omitempty"`
2221  
2222  	// The network view name of the discovery diagnostic task.
2223  	NetworkView *string `json:"network_view,omitempty"`
2224  
2225  	// The time when the discovery diagnostic task was started.
2226  	StartTime *UnixTime `json:"start_time,omitempty"`
2227  
2228  	// The ID of the discovery diagnostic task.
2229  	TaskId *string `json:"task_id,omitempty"`
2230  }
2231  
2232  func (DiscoveryDiagnostictask) ObjectType() string {
2233  	return "discovery:diagnostictask"
2234  }
2235  
2236  func (obj DiscoveryDiagnostictask) ReturnFields() []string {
2237  	if obj.returnFields == nil {
2238  		obj.returnFields = []string{"ip_address", "network_view", "task_id"}
2239  	}
2240  	return obj.returnFields
2241  }
2242  
2243  // DiscoveryGridproperties represents Infoblox object discovery:gridproperties.
2244  // The object provides information about the Grid discovery properties.
2245  type DiscoveryGridproperties struct {
2246  	IBBase `json:"-"`
2247  
2248  	Ref string `json:"_ref,omitempty"`
2249  
2250  	// Discovery advanced polling settings.
2251  	AdvancedPollingSettings *DiscoveryAdvancedpollsetting `json:"advanced_polling_settings,omitempty"`
2252  
2253  	// Discovery advanced polling settings.
2254  	AdvancedSdnPollingSettings *DiscoveryAdvancedsdnpollsettings `json:"advanced_sdn_polling_settings,omitempty"`
2255  
2256  	// Advisor settings.
2257  	AdvisorSettings *DiscoveryAdvisorsetting `json:"advisor_settings,omitempty"`
2258  
2259  	// Automatic conversion settings.
2260  	AutoConversionSettings []*DiscoveryAutoconversionsetting `json:"auto_conversion_settings,omitempty"`
2261  
2262  	// Discovery basic polling settings.
2263  	BasicPollingSettings *DiscoveryBasicpollsettings `json:"basic_polling_settings,omitempty"`
2264  
2265  	// Discovery basic polling settings.
2266  	BasicSdnPollingSettings *DiscoveryBasicsdnpollsettings `json:"basic_sdn_polling_settings,omitempty"`
2267  
2268  	// Discovery CLI credentials.
2269  	CliCredentials []*DiscoveryClicredential `json:"cli_credentials,omitempty"`
2270  
2271  	// Discovery blackout setting.
2272  	DiscoveryBlackoutSetting *PropertiesBlackoutsetting `json:"discovery_blackout_setting,omitempty"`
2273  
2274  	// The type of the devices the DNS processor operates on.
2275  	DnsLookupOption string `json:"dns_lookup_option,omitempty"`
2276  
2277  	// The percentage of available capacity the DNS processor operates at. Valid
2278  	// values are unsigned integer between 1 and 100, inclusive.
2279  	DnsLookupThrottle *uint32 `json:"dns_lookup_throttle,omitempty"`
2280  
2281  	// Advisor application enabled/disabled.
2282  	EnableAdvisor *bool `json:"enable_advisor,omitempty"`
2283  
2284  	// The flag that enables automatic conversion of discovered data.
2285  	EnableAutoConversion *bool `json:"enable_auto_conversion,omitempty"`
2286  
2287  	// The flag that enables updating discovered data for managed objects.
2288  	EnableAutoUpdates *bool `json:"enable_auto_updates,omitempty"`
2289  
2290  	// The Grid name.
2291  	GridName string `json:"grid_name,omitempty"`
2292  
2293  	// Determines the timeout to ignore the discovery conflict duration (in
2294  	// seconds).
2295  	IgnoreConflictDuration *uint32 `json:"ignore_conflict_duration,omitempty"`
2296  
2297  	// Port control blackout setting.
2298  	PortControlBlackoutSetting *PropertiesBlackoutsetting `json:"port_control_blackout_setting,omitempty"`
2299  
2300  	// Ports to scan.
2301  	Ports []*DiscoveryPort `json:"ports,omitempty"`
2302  
2303  	// Determines if the same port control is used for discovery blackout.
2304  	SamePortControlDiscoveryBlackout *bool `json:"same_port_control_discovery_blackout,omitempty"`
2305  
2306  	// Discovery SNMP v1 and v2 credentials.
2307  	Snmpv1v2Credentials []*DiscoverySnmpcredential `json:"snmpv1v2_credentials,omitempty"`
2308  
2309  	// Discovery SNMP v3 credentials.
2310  	Snmpv3Credentials []*DiscoverySnmp3credential `json:"snmpv3_credentials,omitempty"`
2311  
2312  	// Limit of discovered unmanaged IP address which determines how frequently the
2313  	// user is notified about the new unmanaged IP address in a particular network.
2314  	UnmanagedIpsLimit *uint32 `json:"unmanaged_ips_limit,omitempty"`
2315  
2316  	// Determines the timeout between two notifications (in seconds) about the new
2317  	// unmanaged IP address in a particular network. The value must be between 60
2318  	// seconds and the number of seconds remaining to Jan 2038.
2319  	UnmanagedIpsTimeout *uint32 `json:"unmanaged_ips_timeout,omitempty"`
2320  
2321  	// The policy type used to define the behavior of the VRF mapping.
2322  	VrfMappingPolicy string `json:"vrf_mapping_policy,omitempty"`
2323  
2324  	// VRF mapping rules.
2325  	VrfMappingRules []*DiscoveryVrfmappingrule `json:"vrf_mapping_rules,omitempty"`
2326  }
2327  
2328  func (DiscoveryGridproperties) ObjectType() string {
2329  	return "discovery:gridproperties"
2330  }
2331  
2332  func (obj DiscoveryGridproperties) ReturnFields() []string {
2333  	if obj.returnFields == nil {
2334  		obj.returnFields = []string{"grid_name"}
2335  	}
2336  	return obj.returnFields
2337  }
2338  
2339  // DiscoveryMemberproperties represents Infoblox object discovery:memberproperties.
2340  // The object provides information about the Grid member discovery properties.
2341  type DiscoveryMemberproperties struct {
2342  	IBBase `json:"-"`
2343  
2344  	Ref string `json:"_ref,omitempty"`
2345  
2346  	// The Grid member address IP address.
2347  	Address string `json:"address,omitempty"`
2348  
2349  	// Discovery CLI credentials.
2350  	CliCredentials []*DiscoveryClicredential `json:"cli_credentials,omitempty"`
2351  
2352  	// Default seed routers.
2353  	DefaultSeedRouters []*DiscoverySeedrouter `json:"default_seed_routers,omitempty"`
2354  
2355  	// The name of the network discovery Grid member.
2356  	DiscoveryMember string `json:"discovery_member,omitempty"`
2357  
2358  	// Determines if the discovery service is enabled.
2359  	EnableService *bool `json:"enable_service,omitempty"`
2360  
2361  	// Gateway seed routers.
2362  	GatewaySeedRouters []*DiscoverySeedrouter `json:"gateway_seed_routers,omitempty"`
2363  
2364  	// Determines if the standalone mode for discovery network monitor is enabled
2365  	// or not.
2366  	IsSa *bool `json:"is_sa,omitempty"`
2367  
2368  	// Discovery member role.
2369  	Role string `json:"role,omitempty"`
2370  
2371  	// Discovery networks to which the member is assigned.
2372  	ScanInterfaces []*DiscoveryScaninterface `json:"scan_interfaces,omitempty"`
2373  
2374  	// List of SDN/SDWAN controller configurations.
2375  	SdnConfigs []*DiscoverySdnconfig `json:"sdn_configs,omitempty"`
2376  
2377  	// Seed routers.
2378  	SeedRouters []*DiscoverySeedrouter `json:"seed_routers,omitempty"`
2379  
2380  	// Discovery SNMP v1 and v2 credentials.
2381  	Snmpv1v2Credentials []*DiscoverySnmpcredential `json:"snmpv1v2_credentials,omitempty"`
2382  
2383  	// Discovery SNMP v3 credentials.
2384  	Snmpv3Credentials []*DiscoverySnmp3credential `json:"snmpv3_credentials,omitempty"`
2385  
2386  	// Use flag for: cli_credentials
2387  	UseCliCredentials *bool `json:"use_cli_credentials,omitempty"`
2388  
2389  	// Use flag for: snmpv1v2_credentials
2390  	UseSnmpv1v2Credentials *bool `json:"use_snmpv1v2_credentials,omitempty"`
2391  
2392  	// Use flag for: snmpv3_credentials
2393  	UseSnmpv3Credentials *bool `json:"use_snmpv3_credentials,omitempty"`
2394  }
2395  
2396  func (DiscoveryMemberproperties) ObjectType() string {
2397  	return "discovery:memberproperties"
2398  }
2399  
2400  func (obj DiscoveryMemberproperties) ReturnFields() []string {
2401  	if obj.returnFields == nil {
2402  		obj.returnFields = []string{"discovery_member"}
2403  	}
2404  	return obj.returnFields
2405  }
2406  
2407  // DiscoverySdnnetwork represents Infoblox object discovery:sdnnetwork.
2408  // This object provides information about the SDN networks. They are the
2409  // elements of address space hierarchy discovered on SDN/SDWAN controllers
2410  type DiscoverySdnnetwork struct {
2411  	IBBase `json:"-"`
2412  
2413  	Ref string `json:"_ref,omitempty"`
2414  
2415  	// Timestamp when this SDN network was first discovered.
2416  	FirstSeen *UnixTime `json:"first_seen,omitempty"`
2417  
2418  	// The name of the SDN network.
2419  	Name string `json:"name,omitempty"`
2420  
2421  	// The name of the network view assigned to this SDN network.
2422  	NetworkView string `json:"network_view,omitempty"`
2423  
2424  	// Name of SDN configuration this network belongs to.
2425  	SourceSdnConfig string `json:"source_sdn_config,omitempty"`
2426  }
2427  
2428  func (DiscoverySdnnetwork) ObjectType() string {
2429  	return "discovery:sdnnetwork"
2430  }
2431  
2432  func (obj DiscoverySdnnetwork) ReturnFields() []string {
2433  	if obj.returnFields == nil {
2434  		obj.returnFields = []string{"name", "network_view", "source_sdn_config"}
2435  	}
2436  	return obj.returnFields
2437  }
2438  
2439  // DiscoveryStatus represents Infoblox object discovery:status.
2440  // The discovery status of discovered data
2441  type DiscoveryStatus struct {
2442  	IBBase `json:"-"`
2443  
2444  	Ref string `json:"_ref,omitempty"`
2445  
2446  	// The IPv4 Address or IPv6 Address of the device.
2447  	Address string `json:"address,omitempty"`
2448  
2449  	// Indicates if CLI collection is enabled.
2450  	CliCollectionEnabled bool `json:"cli_collection_enabled,omitempty"`
2451  
2452  	// The CLI credential status information of the device.
2453  	CliCredentialInfo *DiscoveryStatusinfo `json:"cli_credential_info,omitempty"`
2454  
2455  	// The existence status information of the device.
2456  	ExistenceInfo *DiscoveryStatusinfo `json:"existence_info,omitempty"`
2457  
2458  	// Indicates if DHCP finterprinting is enabled.
2459  	FingerprintEnabled bool `json:"fingerprint_enabled,omitempty"`
2460  
2461  	// This DHCP finterprinting status information of the device.
2462  	FingerprintInfo *DiscoveryStatusinfo `json:"fingerprint_info,omitempty"`
2463  
2464  	// The timestamp when the device was first discovered.
2465  	FirstSeen *UnixTime `json:"first_seen,omitempty"`
2466  
2467  	// The timestamp of the last detected interface property change.
2468  	LastAction string `json:"last_action,omitempty"`
2469  
2470  	// The timestamp when the device was last discovered.
2471  	LastSeen *UnixTime `json:"last_seen,omitempty"`
2472  
2473  	// The timestamp of the last executed action for the device.
2474  	LastTimestamp *UnixTime `json:"last_timestamp,omitempty"`
2475  
2476  	// The name of the device.
2477  	Name string `json:"name,omitempty"`
2478  
2479  	// The name of the network view in which this device resides.
2480  	NetworkView string `json:"network_view,omitempty"`
2481  
2482  	// The reachable status information of the device.
2483  	ReachableInfo *DiscoveryStatusinfo `json:"reachable_info,omitempty"`
2484  
2485  	// Indicate whether SDN collection enabled for the device.
2486  	SdnCollectionEnabled bool `json:"sdn_collection_enabled,omitempty"`
2487  
2488  	// Device SDN collection status information.
2489  	SdnCollectionInfo *DiscoveryStatusinfo `json:"sdn_collection_info,omitempty"`
2490  
2491  	// Indicates if SNMP collection is enabled.
2492  	SnmpCollectionEnabled bool `json:"snmp_collection_enabled,omitempty"`
2493  
2494  	// The SNMP collection status information of the device.
2495  	SnmpCollectionInfo *DiscoveryStatusinfo `json:"snmp_collection_info,omitempty"`
2496  
2497  	// The SNMP credential status information of the device.
2498  	SnmpCredentialInfo *DiscoveryStatusinfo `json:"snmp_credential_info,omitempty"`
2499  
2500  	// The overall status of the device.
2501  	Status string `json:"status,omitempty"`
2502  
2503  	// The type of device.
2504  	Type string `json:"type,omitempty"`
2505  }
2506  
2507  func (DiscoveryStatus) ObjectType() string {
2508  	return "discovery:status"
2509  }
2510  
2511  func (obj DiscoveryStatus) ReturnFields() []string {
2512  	if obj.returnFields == nil {
2513  		obj.returnFields = []string{"address", "name", "network_view", "status"}
2514  	}
2515  	return obj.returnFields
2516  }
2517  
2518  // DiscoveryVrf represents Infoblox object discovery:vrf.
2519  // This object provides information about the virtual network membership (VRF).
2520  type DiscoveryVrf struct {
2521  	IBBase `json:"-"`
2522  
2523  	Ref string `json:"_ref,omitempty"`
2524  
2525  	// Additional information about the VRF.
2526  	Description string `json:"description,omitempty"`
2527  
2528  	// The device to which the VRF belongs.
2529  	Device string `json:"device,omitempty"`
2530  
2531  	// The name of the VRF.
2532  	Name string `json:"name,omitempty"`
2533  
2534  	// The name of the network view in which this VRF resides.
2535  	NetworkView string `json:"network_view,omitempty"`
2536  
2537  	// The route distinguisher associated with the VRF.
2538  	RouteDistinguisher string `json:"route_distinguisher,omitempty"`
2539  }
2540  
2541  func (DiscoveryVrf) ObjectType() string {
2542  	return "discovery:vrf"
2543  }
2544  
2545  func (obj DiscoveryVrf) ReturnFields() []string {
2546  	if obj.returnFields == nil {
2547  		obj.returnFields = []string{"device", "name", "network_view", "route_distinguisher"}
2548  	}
2549  	return obj.returnFields
2550  }
2551  
2552  // Discoverytask represents Infoblox object discoverytask.
2553  // Represents the configuration of network discovery jobs. Configuration
2554  // parameters have control over the behavior of network discovery jobs.
2555  type Discoverytask struct {
2556  	IBBase `json:"-"`
2557  
2558  	Ref string `json:"_ref,omitempty"`
2559  
2560  	// The network discovery CSV file name.
2561  	CsvFileName string `json:"csv_file_name,omitempty"`
2562  
2563  	// Determines whether IP scanning is disabled.
2564  	DisableIpScanning *bool `json:"disable_ip_scanning,omitempty"`
2565  
2566  	// Determines whether VMWare scanning is disabled.
2567  	DisableVmwareScanning *bool `json:"disable_vmware_scanning,omitempty"`
2568  
2569  	// The discovery task identifier.
2570  	DiscoveryTaskOid string `json:"discovery_task_oid,omitempty"`
2571  
2572  	// The Grid member that runs the discovery.
2573  	MemberName *string `json:"member_name,omitempty"`
2574  
2575  	// Determines whether to replace or merge new data with existing data.
2576  	MergeData *bool `json:"merge_data,omitempty"`
2577  
2578  	// Network discovery scanning mode.
2579  	Mode string `json:"mode,omitempty"`
2580  
2581  	// Name of the network view in which target networks for network discovery
2582  	// reside.
2583  	NetworkView *string `json:"network_view,omitempty"`
2584  
2585  	// The list of the networks on which the network discovery will be invoked.
2586  	Networks []*Ipv4Network `json:"networks,omitempty"`
2587  
2588  	// The number of times to perfrom ping for ICMP and FULL modes.
2589  	PingRetries *uint32 `json:"ping_retries,omitempty"`
2590  
2591  	// The ping timeout for ICMP and FULL modes.
2592  	PingTimeout *uint32 `json:"ping_timeout,omitempty"`
2593  
2594  	// The schedule setting for network discovery task.
2595  	ScheduledRun *SettingSchedule `json:"scheduled_run,omitempty"`
2596  
2597  	// The network discovery process state.
2598  	State string `json:"state,omitempty"`
2599  
2600  	// Time when the network discovery process state was last updated.
2601  	StateTime *UnixTime `json:"state_time,omitempty"`
2602  
2603  	// The network discovery process descriptive status.
2604  	Status string `json:"status,omitempty"`
2605  
2606  	// The time when the network discovery process status was last updated.
2607  	StatusTime *UnixTime `json:"status_time,omitempty"`
2608  
2609  	// The ports to scan for FULL and TCP modes.
2610  	TcpPorts []*Discoverytaskport `json:"tcp_ports,omitempty"`
2611  
2612  	// The TCP scan techinque for FULL and TCP modes.
2613  	TcpScanTechnique string `json:"tcp_scan_technique,omitempty"`
2614  
2615  	// Name of the network view in which target networks for VMWare scanning
2616  	// reside.
2617  	VNetworkView *string `json:"v_network_view,omitempty"`
2618  
2619  	// The list of VMware vSphere servers for VM discovery.
2620  	Vservers []*Discoverytaskvserver `json:"vservers,omitempty"`
2621  
2622  	// The network discovery process warning.
2623  	Warning string `json:"warning,omitempty"`
2624  }
2625  
2626  func (Discoverytask) ObjectType() string {
2627  	return "discoverytask"
2628  }
2629  
2630  func (obj Discoverytask) ReturnFields() []string {
2631  	if obj.returnFields == nil {
2632  		obj.returnFields = []string{"discovery_task_oid", "member_name"}
2633  	}
2634  	return obj.returnFields
2635  }
2636  
2637  // Distributionschedule represents Infoblox object distributionschedule.
2638  // Distributing the software upgrade files involves unpacking the software
2639  // files and loading the new software. When you distribute the files, the NIOS
2640  // appliance loads the new software code into an alternative disk partition
2641  // that overwrites any previously saved version of existing code. Therefore,
2642  // starting the distribution disables the appliance from reverting to a release
2643  // prior to the current version. The Grid Master distributes the software
2644  // upgrade to each member in the Grid including itself.
2645  type Distributionschedule struct {
2646  	IBBase `json:"-"`
2647  
2648  	Ref string `json:"_ref,omitempty"`
2649  
2650  	// Determines whether the distribution schedule is active.
2651  	Active *bool `json:"active,omitempty"`
2652  
2653  	// The start time of the distribution.
2654  	StartTime *UnixTime `json:"start_time,omitempty"`
2655  
2656  	// Time zone of the distribution start time.
2657  	TimeZone string `json:"time_zone,omitempty"`
2658  
2659  	// The upgrade groups scheduling settings.
2660  	UpgradeGroups []*UpgradegroupSchedule `json:"upgrade_groups,omitempty"`
2661  }
2662  
2663  func (Distributionschedule) ObjectType() string {
2664  	return "distributionschedule"
2665  }
2666  
2667  func (obj Distributionschedule) ReturnFields() []string {
2668  	if obj.returnFields == nil {
2669  		obj.returnFields = []string{"active", "start_time", "time_zone"}
2670  	}
2671  	return obj.returnFields
2672  }
2673  
2674  // Dns64group represents Infoblox object dns64group.
2675  // To support the increasing number of IPv6 and dual-stack networks, Infoblox
2676  // DNS servers now support DNS64, a mechanism that synthesizes AAAA records
2677  // from A records when no AAAA records exist.
2678  type Dns64group struct {
2679  	IBBase `json:"-"`
2680  
2681  	Ref string `json:"_ref,omitempty"`
2682  
2683  	// Access Control settings that contain IPv4 and IPv6 DNS clients and networks
2684  	// to which the DNS server is allowed to send synthesized AAAA records with the
2685  	// specified IPv6 prefix.
2686  	Clients []*Addressac `json:"clients,omitempty"`
2687  
2688  	// The descriptive comment for the DNS64 synthesis group object.
2689  	Comment *string `json:"comment,omitempty"`
2690  
2691  	// Determines whether the DNS64 synthesis group is disabled.
2692  	Disable *bool `json:"disable,omitempty"`
2693  
2694  	// Determines whether the DNS64 synthesis of AAAA records is enabled for DNS64
2695  	// synthesis groups that request DNSSEC data.
2696  	EnableDnssecDns64 *bool `json:"enable_dnssec_dns64,omitempty"`
2697  
2698  	// Access Control settings that contain IPv6 addresses or prefix ranges that
2699  	// cannot be used by IPv6-only hosts, such as IP addresses in the ::ffff:0:0/96
2700  	// network. When DNS server retrieves an AAAA record that contains an IPv6
2701  	// address that matches an excluded address, it does not return the AAAA
2702  	// record. Instead it synthesizes an AAAA record from the A record.
2703  	Exclude []*Addressac `json:"exclude,omitempty"`
2704  
2705  	// Extensible attributes associated with the object. For valid values for
2706  	// extensible attributes, see {extattrs:values}.
2707  	Ea EA `json:"extattrs"`
2708  
2709  	// Access Control settings that contain IPv4 addresses and networks for which
2710  	// the DNS server can synthesize AAAA records with the specified prefix.
2711  	Mapped []*Addressac `json:"mapped,omitempty"`
2712  
2713  	// The name of the DNS64 synthesis group object.
2714  	Name *string `json:"name,omitempty"`
2715  
2716  	// The IPv6 prefix used for the synthesized AAAA records. The prefix length
2717  	// must be /32, /40, /48, /56, /64 or /96, and all bits beyond the specified
2718  	// length must be zero.
2719  	Prefix *string `json:"prefix,omitempty"`
2720  }
2721  
2722  func (Dns64group) ObjectType() string {
2723  	return "dns64group"
2724  }
2725  
2726  func (obj Dns64group) ReturnFields() []string {
2727  	if obj.returnFields == nil {
2728  		obj.returnFields = []string{"comment", "disable", "name"}
2729  	}
2730  	return obj.returnFields
2731  }
2732  
2733  // Dtc represents Infoblox object dtc.
2734  // This object can be used to control the DTC functionality of the appliance.
2735  type Dtc struct {
2736  	IBBase `json:"-"`
2737  
2738  	Ref string `json:"_ref,omitempty"`
2739  }
2740  
2741  func (Dtc) ObjectType() string {
2742  	return "dtc"
2743  }
2744  
2745  func (obj Dtc) ReturnFields() []string {
2746  	if obj.returnFields == nil {
2747  		obj.returnFields = []string{}
2748  	}
2749  	return obj.returnFields
2750  }
2751  
2752  // DtcAllrecords represents Infoblox object dtc:allrecords.
2753  // The DTC AllRecords object is a read-only synthetic object used to retrieve
2754  // records that belong to a particular DTC server.
2755  type DtcAllrecords struct {
2756  	IBBase `json:"-"`
2757  
2758  	Ref string `json:"_ref,omitempty"`
2759  
2760  	// The record comment.
2761  	Comment string `json:"comment,omitempty"`
2762  
2763  	// The disable value determines if the record is disabled or not. "False" means
2764  	// the record is enabled.
2765  	Disable bool `json:"disable,omitempty"`
2766  
2767  	// The name of the DTC Server object with which the record is associated.
2768  	DtcServer string `json:"dtc_server,omitempty"`
2769  
2770  	// The record object, if supported by the WAPI. Otherwise, the value is "None".
2771  	Record string `json:"record,omitempty"`
2772  
2773  	// The TTL value of the record associated with the DTC AllRecords object.
2774  	Ttl *uint32 `json:"ttl,omitempty"`
2775  
2776  	// The record type. When searching for an unspecified record type, the search
2777  	// is performed for all records. On retrieval, the appliance returns
2778  	// "UNSUPPORTED" for unsupported records.
2779  	Type string `json:"type,omitempty"`
2780  }
2781  
2782  func (DtcAllrecords) ObjectType() string {
2783  	return "dtc:allrecords"
2784  }
2785  
2786  func (obj DtcAllrecords) ReturnFields() []string {
2787  	if obj.returnFields == nil {
2788  		obj.returnFields = []string{"comment", "dtc_server", "type"}
2789  	}
2790  	return obj.returnFields
2791  }
2792  
2793  // DtcCertificate represents Infoblox object dtc:certificate.
2794  // These are DTC health monitor certificates.
2795  type DtcCertificate struct {
2796  	IBBase `json:"-"`
2797  
2798  	Ref string `json:"_ref,omitempty"`
2799  
2800  	// Reference to underlying X509Certificate.
2801  	Certificate string `json:"certificate,omitempty"`
2802  
2803  	// Determines whether the certificate is in use or not.
2804  	InUse bool `json:"in_use,omitempty"`
2805  }
2806  
2807  func (DtcCertificate) ObjectType() string {
2808  	return "dtc:certificate"
2809  }
2810  
2811  func (obj DtcCertificate) ReturnFields() []string {
2812  	if obj.returnFields == nil {
2813  		obj.returnFields = []string{}
2814  	}
2815  	return obj.returnFields
2816  }
2817  
2818  // DtcLbdn represents Infoblox object dtc:lbdn.
2819  // Load Balanced Domain Name (LBDN) is a Load balanced domain name record type,
2820  // which is served by Infoblox Name Servers. LBDN is a qualified domain name
2821  // associated with a specific service such as ftp.abc.com or www.abc.com.
2822  type DtcLbdn struct {
2823  	IBBase `json:"-"`
2824  
2825  	Ref string `json:"_ref,omitempty"`
2826  
2827  	// List of linked auth zones.
2828  	AuthZones []*ZoneAuth `json:"auth_zones,omitempty"`
2829  
2830  	// Flag for enabling auto managing DTC Consolidated Monitors on related DTC
2831  	// Pools.
2832  	AutoConsolidatedMonitors *bool `json:"auto_consolidated_monitors,omitempty"`
2833  
2834  	// Comment for the DTC LBDN; maximum 256 characters.
2835  	Comment *string `json:"comment,omitempty"`
2836  
2837  	// Determines whether the DTC LBDN is disabled or not. When this is set to
2838  	// False, the fixed address is enabled.
2839  	Disable *bool `json:"disable,omitempty"`
2840  
2841  	// Extensible attributes associated with the object. For valid values for
2842  	// extensible attributes, see {extattrs:values}.
2843  	Ea EA `json:"extattrs"`
2844  
2845  	// The LBDN health information.
2846  	Health *DtcHealth `json:"health,omitempty"`
2847  
2848  	// The load balancing method. Used to select pool.
2849  	LbMethod string `json:"lb_method,omitempty"`
2850  
2851  	// The display name of the DTC LBDN, not DNS related.
2852  	Name *string `json:"name,omitempty"`
2853  
2854  	// LBDN wildcards for pattern match.
2855  	Patterns []string `json:"patterns,omitempty"`
2856  
2857  	// Maximum time, in seconds, for which client specific LBDN responses will be
2858  	// cached. Zero specifies no caching.
2859  	Persistence *uint32 `json:"persistence,omitempty"`
2860  
2861  	// The maximum time, in seconds, for which client specific LBDN responses will
2862  	// be cached. Zero specifies no caching.
2863  	Pools []*DtcPoolLink `json:"pools,omitempty"`
2864  
2865  	// The LBDN pattern match priority for "overlapping" DTC LBDN objects. LBDNs
2866  	// are "overlapping" if they are simultaneously assigned to a zone and have
2867  	// patterns that can match the same FQDN. The matching LBDN with highest
2868  	// priority (lowest ordinal) will be used.
2869  	Priority *uint32 `json:"priority,omitempty"`
2870  
2871  	// The topology rules for TOPOLOGY method.
2872  	Topology *string `json:"topology,omitempty"`
2873  
2874  	// The Time To Live (TTL) value for the DTC LBDN. A 32-bit unsigned integer
2875  	// that represents the duration, in seconds, for which the record is valid
2876  	// (cached). Zero indicates that the record should not be cached.
2877  	Ttl *uint32 `json:"ttl,omitempty"`
2878  
2879  	// The list of resource record types supported by LBDN.
2880  	Types []string `json:"types,omitempty"`
2881  
2882  	// Use flag for: ttl
2883  	UseTtl *bool `json:"use_ttl,omitempty"`
2884  }
2885  
2886  func (DtcLbdn) ObjectType() string {
2887  	return "dtc:lbdn"
2888  }
2889  
2890  func (obj DtcLbdn) ReturnFields() []string {
2891  	if obj.returnFields == nil {
2892  		obj.returnFields = []string{"comment", "name"}
2893  	}
2894  	return obj.returnFields
2895  }
2896  
2897  // DtcMonitor represents Infoblox object dtc:monitor.
2898  // The DTC Monitor object is used to determine the health of a server by
2899  // evaluating the response to a health request.
2900  type DtcMonitor struct {
2901  	IBBase `json:"-"`
2902  
2903  	Ref string `json:"_ref,omitempty"`
2904  
2905  	// Comment for this DTC monitor; maximum 256 characters.
2906  	Comment *string `json:"comment,omitempty"`
2907  
2908  	// Extensible attributes associated with the object. For valid values for
2909  	// extensible attributes, see {extattrs:values}.
2910  	Ea EA `json:"extattrs"`
2911  
2912  	// The interval for a health check.
2913  	Interval *uint32 `json:"interval,omitempty"`
2914  
2915  	// The actual monitor object.
2916  	Monitor *string `json:"monitor,omitempty"`
2917  
2918  	// The display name for this DTC monitor.
2919  	Name *string `json:"name,omitempty"`
2920  
2921  	// The health monitor port value.
2922  	Port *uint32 `json:"port,omitempty"`
2923  
2924  	// The number of how many times the server should appear as "DOWN" to be
2925  	// treated as dead after it was alive.
2926  	RetryDown *uint32 `json:"retry_down,omitempty"`
2927  
2928  	// The number of many times the server should appear as "UP" to be treated as
2929  	// alive after it was dead.
2930  	RetryUp *uint32 `json:"retry_up,omitempty"`
2931  
2932  	// The timeout for a health check.
2933  	Timeout *uint32 `json:"timeout,omitempty"`
2934  
2935  	// The request transport type.
2936  	Type string `json:"type,omitempty"`
2937  }
2938  
2939  func (DtcMonitor) ObjectType() string {
2940  	return "dtc:monitor"
2941  }
2942  
2943  func (obj DtcMonitor) ReturnFields() []string {
2944  	if obj.returnFields == nil {
2945  		obj.returnFields = []string{"comment", "name", "type"}
2946  	}
2947  	return obj.returnFields
2948  }
2949  
2950  // DtcMonitorHttp represents Infoblox object dtc:monitor:http.
2951  // The DTC HTTP monitor object is used to determine the health of a HTTP
2952  // service by first sending a specific http message to a server and then
2953  // examining the response received from the server. The validation is
2954  // successful if the received response matches the expected message.
2955  type DtcMonitorHttp struct {
2956  	IBBase `json:"-"`
2957  
2958  	Ref string `json:"_ref,omitempty"`
2959  
2960  	// An optional cipher list for a secure HTTP/S connection.
2961  	Ciphers *string `json:"ciphers,omitempty"`
2962  
2963  	// An optional client certificate, supplied in a secure HTTP/S mode if present.
2964  	ClientCert *string `json:"client_cert,omitempty"`
2965  
2966  	// Comment for this DTC monitor; maximum 256 characters.
2967  	Comment *string `json:"comment,omitempty"`
2968  
2969  	// The content check type.
2970  	ContentCheck string `json:"content_check,omitempty"`
2971  
2972  	// A portion of response to use as input for content check.
2973  	ContentCheckInput string `json:"content_check_input,omitempty"`
2974  
2975  	// A content check success criteria operator.
2976  	ContentCheckOp string `json:"content_check_op,omitempty"`
2977  
2978  	// A content check regular expression.
2979  	ContentCheckRegex *string `json:"content_check_regex,omitempty"`
2980  
2981  	// A content extraction sub-expression to extract.
2982  	ContentExtractGroup *uint32 `json:"content_extract_group,omitempty"`
2983  
2984  	// A content extraction expected type for the extracted data.
2985  	ContentExtractType string `json:"content_extract_type,omitempty"`
2986  
2987  	// A content extraction value to compare with extracted result.
2988  	ContentExtractValue *string `json:"content_extract_value,omitempty"`
2989  
2990  	// Determines whether the Server Name Indication (SNI) for HTTPS monitor is
2991  	// enabled.
2992  	EnableSni *bool `json:"enable_sni,omitempty"`
2993  
2994  	// Extensible attributes associated with the object. For valid values for
2995  	// extensible attributes, see {extattrs:values}.
2996  	Ea EA `json:"extattrs"`
2997  
2998  	// The interval for TCP health check.
2999  	Interval *uint32 `json:"interval,omitempty"`
3000  
3001  	// The display name for this DTC monitor.
3002  	Name *string `json:"name,omitempty"`
3003  
3004  	// Port for TCP requests.
3005  	Port *uint32 `json:"port,omitempty"`
3006  
3007  	// An HTTP request to send.
3008  	Request *string `json:"request,omitempty"`
3009  
3010  	// The type of an expected result.
3011  	Result string `json:"result,omitempty"`
3012  
3013  	// The expected return code.
3014  	ResultCode *uint32 `json:"result_code,omitempty"`
3015  
3016  	// The value of how many times the server should appear as down to be treated
3017  	// as dead after it was alive.
3018  	RetryDown *uint32 `json:"retry_down,omitempty"`
3019  
3020  	// The value of how many times the server should appear as up to be treated as
3021  	// alive after it was dead.
3022  	RetryUp *uint32 `json:"retry_up,omitempty"`
3023  
3024  	// The connection security status.
3025  	Secure *bool `json:"secure,omitempty"`
3026  
3027  	// The timeout for TCP health check in seconds.
3028  	Timeout *uint32 `json:"timeout,omitempty"`
3029  
3030  	// Determines whether the validation of the remote server's certificate is
3031  	// enabled.
3032  	ValidateCert *bool `json:"validate_cert,omitempty"`
3033  }
3034  
3035  func (DtcMonitorHttp) ObjectType() string {
3036  	return "dtc:monitor:http"
3037  }
3038  
3039  func (obj DtcMonitorHttp) ReturnFields() []string {
3040  	if obj.returnFields == nil {
3041  		obj.returnFields = []string{"comment", "name"}
3042  	}
3043  	return obj.returnFields
3044  }
3045  
3046  // DtcMonitorIcmp represents Infoblox object dtc:monitor:icmp.
3047  // The DTC ICMP monitor object is used to determine the health of a server by
3048  // monitoring the response to an ICMP ping.
3049  type DtcMonitorIcmp struct {
3050  	IBBase `json:"-"`
3051  
3052  	Ref string `json:"_ref,omitempty"`
3053  
3054  	// Comment for this DTC monitor; maximum 256 characters.
3055  	Comment *string `json:"comment,omitempty"`
3056  
3057  	// Extensible attributes associated with the object. For valid values for
3058  	// extensible attributes, see {extattrs:values}.
3059  	Ea EA `json:"extattrs"`
3060  
3061  	// The interval for TCP health check.
3062  	Interval *uint32 `json:"interval,omitempty"`
3063  
3064  	// The display name for this DTC monitor.
3065  	Name *string `json:"name,omitempty"`
3066  
3067  	// The value of how many times the server should appear as down to be treated
3068  	// as dead after it was alive.
3069  	RetryDown *uint32 `json:"retry_down,omitempty"`
3070  
3071  	// The value of how many times the server should appear as up to be treated as
3072  	// alive after it was dead.
3073  	RetryUp *uint32 `json:"retry_up,omitempty"`
3074  
3075  	// The timeout for TCP health check in seconds.
3076  	Timeout *uint32 `json:"timeout,omitempty"`
3077  }
3078  
3079  func (DtcMonitorIcmp) ObjectType() string {
3080  	return "dtc:monitor:icmp"
3081  }
3082  
3083  func (obj DtcMonitorIcmp) ReturnFields() []string {
3084  	if obj.returnFields == nil {
3085  		obj.returnFields = []string{"comment", "name"}
3086  	}
3087  	return obj.returnFields
3088  }
3089  
3090  // DtcMonitorPdp represents Infoblox object dtc:monitor:pdp.
3091  // The DTC PDP monitor object is used to determine the health of a server by
3092  // sending a PDP ECHO and considering a valid reply to mean that service is
3093  // available.
3094  type DtcMonitorPdp struct {
3095  	IBBase `json:"-"`
3096  
3097  	Ref string `json:"_ref,omitempty"`
3098  
3099  	// Comment for this DTC monitor; maximum 256 characters.
3100  	Comment *string `json:"comment,omitempty"`
3101  
3102  	// Extensible attributes associated with the object. For valid values for
3103  	// extensible attributes, see {extattrs:values}.
3104  	Ea EA `json:"extattrs"`
3105  
3106  	// The interval for TCP health check.
3107  	Interval *uint32 `json:"interval,omitempty"`
3108  
3109  	// The display name for this DTC monitor.
3110  	Name *string `json:"name,omitempty"`
3111  
3112  	// The port value for PDP requests.
3113  	Port *uint32 `json:"port,omitempty"`
3114  
3115  	// The value of how many times the server should appear as down to be treated
3116  	// as dead after it was alive.
3117  	RetryDown *uint32 `json:"retry_down,omitempty"`
3118  
3119  	// The value of how many times the server should appear as up to be treated as
3120  	// alive after it was dead.
3121  	RetryUp *uint32 `json:"retry_up,omitempty"`
3122  
3123  	// The timeout for TCP health check in seconds.
3124  	Timeout *uint32 `json:"timeout,omitempty"`
3125  }
3126  
3127  func (DtcMonitorPdp) ObjectType() string {
3128  	return "dtc:monitor:pdp"
3129  }
3130  
3131  func (obj DtcMonitorPdp) ReturnFields() []string {
3132  	if obj.returnFields == nil {
3133  		obj.returnFields = []string{"comment", "name"}
3134  	}
3135  	return obj.returnFields
3136  }
3137  
3138  // DtcMonitorSip represents Infoblox object dtc:monitor:sip.
3139  // The DTC SIP monitor object is used to determine the health of a SIP server
3140  // such as SIP Proxies and Session Border Controllers, and SIP gateways by
3141  // issuing SIP options to a server and examining the response provided by the
3142  // server. The service is considered available If the received response matches
3143  // the expected response.
3144  type DtcMonitorSip struct {
3145  	IBBase `json:"-"`
3146  
3147  	Ref string `json:"_ref,omitempty"`
3148  
3149  	// An optional cipher list for secure TLS/SIPS connection.
3150  	Ciphers *string `json:"ciphers,omitempty"`
3151  
3152  	// An optional client certificate, supplied in TLS and SIPS mode if present.
3153  	ClientCert *string `json:"client_cert,omitempty"`
3154  
3155  	// Comment for this DTC monitor; maximum 256 characters.
3156  	Comment *string `json:"comment,omitempty"`
3157  
3158  	// Extensible attributes associated with the object. For valid values for
3159  	// extensible attributes, see {extattrs:values}.
3160  	Ea EA `json:"extattrs"`
3161  
3162  	// The interval for TCP health check.
3163  	Interval *uint32 `json:"interval,omitempty"`
3164  
3165  	// The display name for this DTC monitor.
3166  	Name *string `json:"name,omitempty"`
3167  
3168  	// The port value for SIP requests.
3169  	Port *uint32 `json:"port,omitempty"`
3170  
3171  	// A SIP request to send
3172  	Request *string `json:"request,omitempty"`
3173  
3174  	// The type of an expected result.
3175  	Result string `json:"result,omitempty"`
3176  
3177  	// The expected return code value.
3178  	ResultCode *uint32 `json:"result_code,omitempty"`
3179  
3180  	// The value of how many times the server should appear as down to be treated
3181  	// as dead after it was alive.
3182  	RetryDown *uint32 `json:"retry_down,omitempty"`
3183  
3184  	// The value of how many times the server should appear as up to be treated as
3185  	// alive after it was dead.
3186  	RetryUp *uint32 `json:"retry_up,omitempty"`
3187  
3188  	// The timeout for TCP health check in seconds.
3189  	Timeout *uint32 `json:"timeout,omitempty"`
3190  
3191  	// The transport layer protocol to use for SIP check.
3192  	Transport string `json:"transport,omitempty"`
3193  
3194  	// Determines whether the validation of the remote server's certificate is
3195  	// enabled.
3196  	ValidateCert *bool `json:"validate_cert,omitempty"`
3197  }
3198  
3199  func (DtcMonitorSip) ObjectType() string {
3200  	return "dtc:monitor:sip"
3201  }
3202  
3203  func (obj DtcMonitorSip) ReturnFields() []string {
3204  	if obj.returnFields == nil {
3205  		obj.returnFields = []string{"comment", "name"}
3206  	}
3207  	return obj.returnFields
3208  }
3209  
3210  // DtcMonitorSnmp represents Infoblox object dtc:monitor:snmp.
3211  // The DTC SNMP Health Monitor determines the health of SNMP servers, such as
3212  // SNMP Proxies and Session Border Controllers, and SNMP gateways by issuing
3213  // SNMP options to a server and examining the response sent by the server. The
3214  // service is considered available if the returned response matches the
3215  // expected response.
3216  type DtcMonitorSnmp struct {
3217  	IBBase `json:"-"`
3218  
3219  	Ref string `json:"_ref,omitempty"`
3220  
3221  	// Comment for this DTC monitor; maximum 256 characters.
3222  	Comment *string `json:"comment,omitempty"`
3223  
3224  	// The SNMP community string for SNMP authentication.
3225  	Community *string `json:"community,omitempty"`
3226  
3227  	// The SNMPv3 context.
3228  	Context *string `json:"context,omitempty"`
3229  
3230  	// The SNMPv3 engine identifier.
3231  	EngineId *string `json:"engine_id,omitempty"`
3232  
3233  	// Extensible attributes associated with the object. For valid values for
3234  	// extensible attributes, see {extattrs:values}.
3235  	Ea EA `json:"extattrs"`
3236  
3237  	// The interval for TCP health check.
3238  	Interval *uint32 `json:"interval,omitempty"`
3239  
3240  	// The display name for this DTC monitor.
3241  	Name *string `json:"name,omitempty"`
3242  
3243  	// A list of OIDs for SNMP monitoring.
3244  	Oids []*DtcMonitorSnmpOid `json:"oids,omitempty"`
3245  
3246  	// The port value for SNMP requests.
3247  	Port *uint32 `json:"port,omitempty"`
3248  
3249  	// The value of how many times the server should appear as down to be treated
3250  	// as dead after it was alive.
3251  	RetryDown *uint32 `json:"retry_down,omitempty"`
3252  
3253  	// The value of how many times the server should appear as up to be treated as
3254  	// alive after it was dead.
3255  	RetryUp *uint32 `json:"retry_up,omitempty"`
3256  
3257  	// The timeout for TCP health check in seconds.
3258  	Timeout *uint32 `json:"timeout,omitempty"`
3259  
3260  	// The SNMPv3 user setting.
3261  	User *string `json:"user,omitempty"`
3262  
3263  	// The SNMP protocol version for the SNMP health check.
3264  	Version string `json:"version,omitempty"`
3265  }
3266  
3267  func (DtcMonitorSnmp) ObjectType() string {
3268  	return "dtc:monitor:snmp"
3269  }
3270  
3271  func (obj DtcMonitorSnmp) ReturnFields() []string {
3272  	if obj.returnFields == nil {
3273  		obj.returnFields = []string{"comment", "name"}
3274  	}
3275  	return obj.returnFields
3276  }
3277  
3278  // DtcMonitorTcp represents Infoblox object dtc:monitor:tcp.
3279  // The DTC TCP monitor object is used to determine the health of a server by
3280  // evaluating the response to a TCP request.
3281  type DtcMonitorTcp struct {
3282  	IBBase `json:"-"`
3283  
3284  	Ref string `json:"_ref,omitempty"`
3285  
3286  	// Comment for this DTC monitor; maximum 256 characters.
3287  	Comment *string `json:"comment,omitempty"`
3288  
3289  	// Extensible attributes associated with the object. For valid values for
3290  	// extensible attributes, see {extattrs:values}.
3291  	Ea EA `json:"extattrs"`
3292  
3293  	// The interval for TCP health check.
3294  	Interval *uint32 `json:"interval,omitempty"`
3295  
3296  	// The display name for this DTC monitor.
3297  	Name *string `json:"name,omitempty"`
3298  
3299  	// The port value for TCP requests.
3300  	Port *uint32 `json:"port,omitempty"`
3301  
3302  	// The value of how many times the server should appear as down to be treated
3303  	// as dead after it was alive.
3304  	RetryDown *uint32 `json:"retry_down,omitempty"`
3305  
3306  	// The value of how many times the server should appear as up to be treated as
3307  	// alive after it was dead.
3308  	RetryUp *uint32 `json:"retry_up,omitempty"`
3309  
3310  	// The timeout for TCP health check in seconds.
3311  	Timeout *uint32 `json:"timeout,omitempty"`
3312  }
3313  
3314  func (DtcMonitorTcp) ObjectType() string {
3315  	return "dtc:monitor:tcp"
3316  }
3317  
3318  func (obj DtcMonitorTcp) ReturnFields() []string {
3319  	if obj.returnFields == nil {
3320  		obj.returnFields = []string{"comment", "name"}
3321  	}
3322  	return obj.returnFields
3323  }
3324  
3325  // DtcObject represents Infoblox object dtc:object.
3326  // An object for all load balancer managed DTC objects.
3327  type DtcObject struct {
3328  	IBBase `json:"-"`
3329  
3330  	Ref string `json:"_ref,omitempty"`
3331  
3332  	// The abstract object type.
3333  	AbstractType string `json:"abstract_type,omitempty"`
3334  
3335  	// The comment for the DTC object; maximum 256 characters.
3336  	Comment string `json:"comment,omitempty"`
3337  
3338  	// The display object type.
3339  	DisplayType string `json:"display_type,omitempty"`
3340  
3341  	// Extensible attributes associated with the object. For valid values for
3342  	// extensible attributes, see {extattrs:values}.
3343  	Ea EA `json:"extattrs"`
3344  
3345  	// The list of IPv4 addresses.
3346  	Ipv4AddressList []string `json:"ipv4_address_list,omitempty"`
3347  
3348  	// The list of IPv6 addresses.
3349  	Ipv6AddressList []string `json:"ipv6_address_list,omitempty"`
3350  
3351  	// The display name of the DTC object.
3352  	Name string `json:"name,omitempty"`
3353  
3354  	// The specific DTC object.
3355  	Object string `json:"object,omitempty"`
3356  
3357  	// The availability color status.
3358  	Status string `json:"status,omitempty"`
3359  
3360  	// The timestamp when status or health was last determined.
3361  	StatusTime *UnixTime `json:"status_time,omitempty"`
3362  }
3363  
3364  func (DtcObject) ObjectType() string {
3365  	return "dtc:object"
3366  }
3367  
3368  func (obj DtcObject) ReturnFields() []string {
3369  	if obj.returnFields == nil {
3370  		obj.returnFields = []string{"abstract_type", "comment", "display_type", "name", "status"}
3371  	}
3372  	return obj.returnFields
3373  }
3374  
3375  // DtcPool represents Infoblox object dtc:pool.
3376  // The collection of IDNS resources (virtual servers).
3377  type DtcPool struct {
3378  	IBBase `json:"-"`
3379  
3380  	Ref string `json:"_ref,omitempty"`
3381  
3382  	// Flag for enabling auto managing DTC Consolidated Monitors in DTC Pool.
3383  	AutoConsolidatedMonitors *bool `json:"auto_consolidated_monitors,omitempty"`
3384  
3385  	// A resource in the pool is available if ANY, at least QUORUM, or ALL monitors
3386  	// for the pool say that it is up.
3387  	Availability string `json:"availability,omitempty"`
3388  
3389  	// The comment for the DTC Pool; maximum 256 characters.
3390  	Comment *string `json:"comment,omitempty"`
3391  
3392  	// List of monitors and associated members statuses of which are shared across
3393  	// members and consolidated in server availability determination.
3394  	ConsolidatedMonitors []*DtcPoolConsolidatedMonitorHealth `json:"consolidated_monitors,omitempty"`
3395  
3396  	// Determines whether the DTC Pool is disabled or not. When this is set to
3397  	// False, the fixed address is enabled.
3398  	Disable *bool `json:"disable,omitempty"`
3399  
3400  	// Extensible attributes associated with the object. For valid values for
3401  	// extensible attributes, see {extattrs:values}.
3402  	Ea EA `json:"extattrs"`
3403  
3404  	// The health status.
3405  	Health *DtcHealth `json:"health,omitempty"`
3406  
3407  	// The alternate load balancing method. Use this to select a method type from
3408  	// the pool if the preferred method does not return any results.
3409  	LbAlternateMethod string `json:"lb_alternate_method,omitempty"`
3410  
3411  	// The alternate topology for load balancing.
3412  	LbAlternateTopology *string `json:"lb_alternate_topology,omitempty"`
3413  
3414  	// The DTC Pool settings for dynamic ratio when it's selected as alternate
3415  	// method.
3416  	LbDynamicRatioAlternate *SettingDynamicratio `json:"lb_dynamic_ratio_alternate,omitempty"`
3417  
3418  	// The DTC Pool settings for dynamic ratio when it's selected as preferred
3419  	// method.
3420  	LbDynamicRatioPreferred *SettingDynamicratio `json:"lb_dynamic_ratio_preferred,omitempty"`
3421  
3422  	// The preferred load balancing method. Use this to select a method type from
3423  	// the pool.
3424  	LbPreferredMethod string `json:"lb_preferred_method,omitempty"`
3425  
3426  	// The preferred topology for load balancing.
3427  	LbPreferredTopology *string `json:"lb_preferred_topology,omitempty"`
3428  
3429  	// The monitors related to pool.
3430  	Monitors []*DtcMonitorHttp `json:"monitors,omitempty"`
3431  
3432  	// The DTC Pool display name.
3433  	Name *string `json:"name,omitempty"`
3434  
3435  	// For availability mode QUORUM, at least this many monitors must report the
3436  	// resource as up for it to be available
3437  	Quorum *uint32 `json:"quorum,omitempty"`
3438  
3439  	// The servers related to the pool.
3440  	Servers []*DtcServerLink `json:"servers,omitempty"`
3441  
3442  	// The Time To Live (TTL) value for the DTC Pool. A 32-bit unsigned integer
3443  	// that represents the duration, in seconds, for which the record is valid
3444  	// (cached). Zero indicates that the record should not be cached.
3445  	Ttl *uint32 `json:"ttl,omitempty"`
3446  
3447  	// Use flag for: ttl
3448  	UseTtl *bool `json:"use_ttl,omitempty"`
3449  }
3450  
3451  func (DtcPool) ObjectType() string {
3452  	return "dtc:pool"
3453  }
3454  
3455  func (obj DtcPool) ReturnFields() []string {
3456  	if obj.returnFields == nil {
3457  		obj.returnFields = []string{"comment", "name"}
3458  	}
3459  	return obj.returnFields
3460  }
3461  
3462  // DtcRecordA represents Infoblox object dtc:record:a.
3463  // A DTC A object represents a DNS Traffic Control Address (DTC A) resource
3464  // record. This resource record specifies mapping from domain name to IPv4
3465  // address.
3466  type DtcRecordA struct {
3467  	IBBase `json:"-"`
3468  
3469  	Ref string `json:"_ref,omitempty"`
3470  
3471  	// Flag that indicates whether this record was automatically created by NIOS.
3472  	AutoCreated string `json:"auto_created,omitempty"`
3473  
3474  	// Comment for the record; maximum 256 characters.
3475  	Comment *string `json:"comment,omitempty"`
3476  
3477  	// Determines if the record is disabled or not. False means that the record is
3478  	// enabled.
3479  	Disable *bool `json:"disable,omitempty"`
3480  
3481  	// The name of the DTC Server object with which the DTC record is associated.
3482  	DtcServer string `json:"dtc_server,omitempty"`
3483  
3484  	// The IPv4 Address of the domain name.
3485  	Ipv4Addr *string `json:"ipv4addr,omitempty"`
3486  
3487  	// The Time to Live (TTL) value.
3488  	Ttl *uint32 `json:"ttl,omitempty"`
3489  
3490  	// Use flag for: ttl
3491  	UseTtl *bool `json:"use_ttl,omitempty"`
3492  }
3493  
3494  func (DtcRecordA) ObjectType() string {
3495  	return "dtc:record:a"
3496  }
3497  
3498  func (obj DtcRecordA) ReturnFields() []string {
3499  	if obj.returnFields == nil {
3500  		obj.returnFields = []string{"dtc_server", "ipv4addr"}
3501  	}
3502  	return obj.returnFields
3503  }
3504  
3505  // DtcRecordAaaa represents Infoblox object dtc:record:aaaa.
3506  // A DTC AAAA object represents a DNS Traffic Control IPv6 Address (DTC AAAA)
3507  // resource record. This resource record specifies mapping from domain name to
3508  // IPv6 address.
3509  type DtcRecordAaaa struct {
3510  	IBBase `json:"-"`
3511  
3512  	Ref string `json:"_ref,omitempty"`
3513  
3514  	// Flag that indicates whether this record was automatically created by NIOS.
3515  	AutoCreated string `json:"auto_created,omitempty"`
3516  
3517  	// Comment for the record; maximum 256 characters.
3518  	Comment *string `json:"comment,omitempty"`
3519  
3520  	// Determines if the record is disabled or not. False means that the record is
3521  	// enabled.
3522  	Disable *bool `json:"disable,omitempty"`
3523  
3524  	// The name of the DTC Server object with which the DTC record is associated.
3525  	DtcServer string `json:"dtc_server,omitempty"`
3526  
3527  	// The IPv6 Address of the domain name.
3528  	Ipv6Addr *string `json:"ipv6addr,omitempty"`
3529  
3530  	// The Time to Live (TTL) value.
3531  	Ttl *uint32 `json:"ttl,omitempty"`
3532  
3533  	// Use flag for: ttl
3534  	UseTtl *bool `json:"use_ttl,omitempty"`
3535  }
3536  
3537  func (DtcRecordAaaa) ObjectType() string {
3538  	return "dtc:record:aaaa"
3539  }
3540  
3541  func (obj DtcRecordAaaa) ReturnFields() []string {
3542  	if obj.returnFields == nil {
3543  		obj.returnFields = []string{"dtc_server", "ipv6addr"}
3544  	}
3545  	return obj.returnFields
3546  }
3547  
3548  // DtcRecordCname represents Infoblox object dtc:record:cname.
3549  // A DTC CNAME object represents a DNS Traffic Control Canonical name (DTC
3550  // CNAME) resource record. DTC CNAME record maps domain name alias to its
3551  // canonical domain name.
3552  type DtcRecordCname struct {
3553  	IBBase `json:"-"`
3554  
3555  	Ref string `json:"_ref,omitempty"`
3556  
3557  	// Flag that indicates whether this record was automatically created by NIOS.
3558  	AutoCreated string `json:"auto_created,omitempty"`
3559  
3560  	// The canonical name of the host.
3561  	Canonical *string `json:"canonical,omitempty"`
3562  
3563  	// Comment for the record; maximum 256 characters.
3564  	Comment *string `json:"comment,omitempty"`
3565  
3566  	// Determines if the record is disabled or not. False means that the record is
3567  	// enabled.
3568  	Disable *bool `json:"disable,omitempty"`
3569  
3570  	// The canonical name as server by DNS protocol.
3571  	DnsCanonical string `json:"dns_canonical,omitempty"`
3572  
3573  	// The name of the DTC Server object with which the DTC record is associated.
3574  	DtcServer string `json:"dtc_server,omitempty"`
3575  
3576  	// The Time to Live (TTL) value.
3577  	Ttl *uint32 `json:"ttl,omitempty"`
3578  
3579  	// Use flag for: ttl
3580  	UseTtl *bool `json:"use_ttl,omitempty"`
3581  }
3582  
3583  func (DtcRecordCname) ObjectType() string {
3584  	return "dtc:record:cname"
3585  }
3586  
3587  func (obj DtcRecordCname) ReturnFields() []string {
3588  	if obj.returnFields == nil {
3589  		obj.returnFields = []string{"canonical", "dtc_server"}
3590  	}
3591  	return obj.returnFields
3592  }
3593  
3594  // DtcRecordNaptr represents Infoblox object dtc:record:naptr.
3595  // A DTC NAPTR object represents a DNS Traffic Control Naming Authority Pointer
3596  // (DTC NAPTR) resource record. This resource record specifies a regular
3597  // expression-based rewrite rule that, when applied to an existing string,
3598  // produces a new domain name or URI.
3599  type DtcRecordNaptr struct {
3600  	IBBase `json:"-"`
3601  
3602  	Ref string `json:"_ref,omitempty"`
3603  
3604  	// Comment for the record; maximum 256 characters.
3605  	Comment *string `json:"comment,omitempty"`
3606  
3607  	// Determines if the record is disabled or not. False means that the record is
3608  	// enabled.
3609  	Disable *bool `json:"disable,omitempty"`
3610  
3611  	// The name of the DTC Server object with which the DTC record is associated.
3612  	DtcServer string `json:"dtc_server,omitempty"`
3613  
3614  	// The flags used to control the interpretation of the fields for an NAPTR
3615  	// record object. Supported values for the flags field are "U", "S", "P" and
3616  	// "A".
3617  	Flags *string `json:"flags,omitempty"`
3618  
3619  	// The order parameter of the NAPTR records. This parameter specifies the order
3620  	// in which the NAPTR rules are applied when multiple rules are present. Valid
3621  	// values are from 0 to 65535 (inclusive), in 32-bit unsigned integer format.
3622  	Order *uint32 `json:"order,omitempty"`
3623  
3624  	// The preference of the NAPTR record. The preference field determines the
3625  	// order the NAPTR records are processed when multiple records with the same
3626  	// order parameter are present. Valid values are from 0 to 65535 (inclusive),
3627  	// in 32-bit unsigned integer format.
3628  	Preference *uint32 `json:"preference,omitempty"`
3629  
3630  	// The regular expression-based rewriting rule of the NAPTR record. This should
3631  	// be a POSIX compliant regular expression, including the substitution rule and
3632  	// flags. Refer to RFC 2915 for the field syntax details.
3633  	Regexp *string `json:"regexp,omitempty"`
3634  
3635  	// The replacement field of the NAPTR record object. For nonterminal NAPTR
3636  	// records, this field specifies the next domain name to look up. This value
3637  	// can be in unicode format.
3638  	Replacement *string `json:"replacement,omitempty"`
3639  
3640  	// The services field of the NAPTR record object; maximum 128 characters. The
3641  	// services field contains protocol and service identifiers, such as "http+E2U"
3642  	// or "SIPS+D2T".
3643  	Services *string `json:"services,omitempty"`
3644  
3645  	// The Time to Live (TTL) value.
3646  	Ttl *uint32 `json:"ttl,omitempty"`
3647  
3648  	// Use flag for: ttl
3649  	UseTtl *bool `json:"use_ttl,omitempty"`
3650  }
3651  
3652  func (DtcRecordNaptr) ObjectType() string {
3653  	return "dtc:record:naptr"
3654  }
3655  
3656  func (obj DtcRecordNaptr) ReturnFields() []string {
3657  	if obj.returnFields == nil {
3658  		obj.returnFields = []string{"dtc_server", "order", "preference", "regexp", "replacement", "services"}
3659  	}
3660  	return obj.returnFields
3661  }
3662  
3663  // DtcRecordSrv represents Infoblox object dtc:record:srv.
3664  // A DTC SRV object represents a DNS Traffic Control (DTC SRV) resource record.
3665  // This resource record provides information on available services.
3666  type DtcRecordSrv struct {
3667  	IBBase `json:"-"`
3668  
3669  	Ref string `json:"_ref,omitempty"`
3670  
3671  	// Comment for the record; maximum 256 characters.
3672  	Comment *string `json:"comment,omitempty"`
3673  
3674  	// Determines if the record is disabled or not. False means that the record is
3675  	// enabled.
3676  	Disable *bool `json:"disable,omitempty"`
3677  
3678  	// The name of the DTC Server object with which the DTC record is associated.
3679  	DtcServer string `json:"dtc_server,omitempty"`
3680  
3681  	// The name for an SRV record in unicode format.
3682  	Name *string `json:"name,omitempty"`
3683  
3684  	// The port of the SRV record. Valid values are from 0 to 65535 (inclusive), in
3685  	// 32-bit unsigned integer format.
3686  	Port *uint32 `json:"port,omitempty"`
3687  
3688  	// The priority of the SRV record. Valid values are from 0 to 65535
3689  	// (inclusive), in 32-bit unsigned integer format.
3690  	Priority *uint32 `json:"priority,omitempty"`
3691  
3692  	// The target of the SRV record in FQDN format. This value can be in unicode
3693  	// format.
3694  	Target *string `json:"target,omitempty"`
3695  
3696  	// The Time to Live (TTL) value.
3697  	Ttl *uint32 `json:"ttl,omitempty"`
3698  
3699  	// Use flag for: ttl
3700  	UseTtl *bool `json:"use_ttl,omitempty"`
3701  
3702  	// The weight of the SRV record. Valid values are from 0 to 65535 (inclusive),
3703  	// in 32-bit unsigned integer format.
3704  	Weight *uint32 `json:"weight,omitempty"`
3705  }
3706  
3707  func (DtcRecordSrv) ObjectType() string {
3708  	return "dtc:record:srv"
3709  }
3710  
3711  func (obj DtcRecordSrv) ReturnFields() []string {
3712  	if obj.returnFields == nil {
3713  		obj.returnFields = []string{"dtc_server", "name", "port", "priority", "target", "weight"}
3714  	}
3715  	return obj.returnFields
3716  }
3717  
3718  // DtcServer represents Infoblox object dtc:server.
3719  // This is a DTC Server. Aka resource, virtual server or pool member.
3720  type DtcServer struct {
3721  	IBBase `json:"-"`
3722  
3723  	Ref string `json:"_ref,omitempty"`
3724  
3725  	// Enabling this option will auto-create a single read-only A/AAAA/CNAME record
3726  	// corresponding to the configured hostname and update it if the hostname
3727  	// changes.
3728  	AutoCreateHostRecord *bool `json:"auto_create_host_record,omitempty"`
3729  
3730  	// Comment for the DTC Server; maximum 256 characters.
3731  	Comment *string `json:"comment,omitempty"`
3732  
3733  	// Determines whether the DTC Server is disabled or not. When this is set to
3734  	// False, the fixed address is enabled.
3735  	Disable *bool `json:"disable,omitempty"`
3736  
3737  	// Extensible attributes associated with the object. For valid values for
3738  	// extensible attributes, see {extattrs:values}.
3739  	Ea EA `json:"extattrs"`
3740  
3741  	// The health status.
3742  	Health *DtcHealth `json:"health,omitempty"`
3743  
3744  	// The address or FQDN of the server.
3745  	Host *string `json:"host,omitempty"`
3746  
3747  	// List of IP/FQDN and monitor pairs to be used for additional monitoring.
3748  	Monitors []*DtcServerMonitor `json:"monitors,omitempty"`
3749  
3750  	// The DTC Server display name.
3751  	Name *string `json:"name,omitempty"`
3752  
3753  	// The hostname for Server Name Indication (SNI) in FQDN format.
3754  	SniHostname *string `json:"sni_hostname,omitempty"`
3755  
3756  	// Use flag for: sni_hostname
3757  	UseSniHostname *bool `json:"use_sni_hostname,omitempty"`
3758  }
3759  
3760  func (DtcServer) ObjectType() string {
3761  	return "dtc:server"
3762  }
3763  
3764  func (obj DtcServer) ReturnFields() []string {
3765  	if obj.returnFields == nil {
3766  		obj.returnFields = []string{"comment", "host", "name"}
3767  	}
3768  	return obj.returnFields
3769  }
3770  
3771  // DtcTopology represents Infoblox object dtc:topology.
3772  // A topology is a named list of ordered topology rules. Topology rules map
3773  // client IPs to pools or resources. They require the Topology DB and named
3774  // labels refer to it.
3775  type DtcTopology struct {
3776  	IBBase `json:"-"`
3777  
3778  	Ref string `json:"_ref,omitempty"`
3779  
3780  	// The comment for the DTC TOPOLOGY monitor object; maximum 256 characters.
3781  	Comment *string `json:"comment,omitempty"`
3782  
3783  	// Extensible attributes associated with the object. For valid values for
3784  	// extensible attributes, see {extattrs:values}.
3785  	Ea EA `json:"extattrs"`
3786  
3787  	// Display name of the DTC Topology.
3788  	Name *string `json:"name,omitempty"`
3789  
3790  	// Topology rules.
3791  	Rules []*DtcTopologyRule `json:"rules,omitempty"`
3792  }
3793  
3794  func (DtcTopology) ObjectType() string {
3795  	return "dtc:topology"
3796  }
3797  
3798  func (obj DtcTopology) ReturnFields() []string {
3799  	if obj.returnFields == nil {
3800  		obj.returnFields = []string{"comment", "name"}
3801  	}
3802  	return obj.returnFields
3803  }
3804  
3805  // DtcTopologyLabel represents Infoblox object dtc:topology:label.
3806  // This is the label of the field in the Topology database.
3807  type DtcTopologyLabel struct {
3808  	IBBase `json:"-"`
3809  
3810  	Ref string `json:"_ref,omitempty"`
3811  
3812  	// The name of the field in the Topology database the label was obtained from.
3813  	Field string `json:"field,omitempty"`
3814  
3815  	// The DTC Topology label name.
3816  	Label string `json:"label,omitempty"`
3817  }
3818  
3819  func (DtcTopologyLabel) ObjectType() string {
3820  	return "dtc:topology:label"
3821  }
3822  
3823  func (obj DtcTopologyLabel) ReturnFields() []string {
3824  	if obj.returnFields == nil {
3825  		obj.returnFields = []string{"field", "label"}
3826  	}
3827  	return obj.returnFields
3828  }
3829  
3830  // DtcTopologyRule represents Infoblox object dtc:topology:rule.
3831  // Topology rules map client IPs to pools or resources. They require the
3832  // Topology DB and named labels refer to it. Can be created only as part of
3833  // topology.
3834  type DtcTopologyRule struct {
3835  	IBBase `json:"-"`
3836  
3837  	Ref string `json:"_ref,omitempty"`
3838  
3839  	// The type of the destination for this DTC Topology rule.
3840  	DestType string `json:"dest_type,omitempty"`
3841  
3842  	// The reference to the destination DTC pool or DTC server.
3843  	DestinationLink *string `json:"destination_link,omitempty"`
3844  
3845  	// Type of the DNS response for rule.
3846  	ReturnType string `json:"return_type,omitempty"`
3847  
3848  	// The conditions for matching sources. Should be empty to set rule as default
3849  	// destination.
3850  	Sources []*DtcTopologyRuleSource `json:"sources,omitempty"`
3851  
3852  	// The DTC Topology the rule belongs to.
3853  	Topology string `json:"topology,omitempty"`
3854  
3855  	// True if the label in the rule exists in the current Topology DB. Always true
3856  	// for SUBNET rules. Rules with non-existent labels may be configured but will
3857  	// never match.
3858  	Valid bool `json:"valid,omitempty"`
3859  }
3860  
3861  func (DtcTopologyRule) ObjectType() string {
3862  	return "dtc:topology:rule"
3863  }
3864  
3865  func (obj DtcTopologyRule) ReturnFields() []string {
3866  	if obj.returnFields == nil {
3867  		obj.returnFields = []string{}
3868  	}
3869  	return obj.returnFields
3870  }
3871  
3872  // DxlEndpoint represents Infoblox object dxl:endpoint.
3873  // The DXL endpoint object represents the settings of a particular DXL
3874  // endpoint.
3875  type DxlEndpoint struct {
3876  	IBBase `json:"-"`
3877  
3878  	Ref string `json:"_ref,omitempty"`
3879  
3880  	// The list of DXL endpoint brokers. Note that you cannot specify brokers and
3881  	// brokers_import_token at the same time.
3882  	Brokers []*DxlEndpointBroker `json:"brokers,omitempty"`
3883  
3884  	// The token returned by the uploadinit function call in object fileop for a
3885  	// DXL broker configuration file. Note that you cannot specify brokers and
3886  	// brokers_import_token at the same time.
3887  	BrokersImportToken *string `json:"brokers_import_token,omitempty"`
3888  
3889  	// The client certificate subject of a DXL endpoint.
3890  	ClientCertificateSubject string `json:"client_certificate_subject,omitempty"`
3891  
3892  	// The token returned by the uploadinit function call in object fileop for a
3893  	// DXL endpoint client certificate.
3894  	ClientCertificateToken *string `json:"client_certificate_token,omitempty"`
3895  
3896  	// The timestamp when client certificate for a DXL endpoint was created.
3897  	ClientCertificateValidFrom *UnixTime `json:"client_certificate_valid_from,omitempty"`
3898  
3899  	// The timestamp when the client certificate for a DXL endpoint expires.
3900  	ClientCertificateValidTo *UnixTime `json:"client_certificate_valid_to,omitempty"`
3901  
3902  	// The comment of a DXL endpoint.
3903  	Comment *string `json:"comment,omitempty"`
3904  
3905  	// Determines whether a DXL endpoint is disabled.
3906  	Disable *bool `json:"disable,omitempty"`
3907  
3908  	// Extensible attributes associated with the object. For valid values for
3909  	// extensible attributes, see {extattrs:values}.
3910  	Ea EA `json:"extattrs"`
3911  
3912  	// The log level for a DXL endpoint.
3913  	LogLevel string `json:"log_level,omitempty"`
3914  
3915  	// The name of a DXL endpoint.
3916  	Name *string `json:"name,omitempty"`
3917  
3918  	// The outbound member that will generate events.
3919  	OutboundMemberType string `json:"outbound_member_type,omitempty"`
3920  
3921  	// The list of members for outbound events.
3922  	OutboundMembers []string `json:"outbound_members,omitempty"`
3923  
3924  	// The DXL template instance. You cannot change the parameters of the DXL
3925  	// endpoint template instance.
3926  	TemplateInstance *NotificationRestTemplateinstance `json:"template_instance,omitempty"`
3927  
3928  	// The timeout of session management (in seconds).
3929  	Timeout *uint32 `json:"timeout,omitempty"`
3930  
3931  	// DXL topics
3932  	Topics []string `json:"topics,omitempty"`
3933  
3934  	// The vendor identifier.
3935  	VendorIdentifier *string `json:"vendor_identifier,omitempty"`
3936  
3937  	// The user name for WAPI integration.
3938  	WapiUserName *string `json:"wapi_user_name,omitempty"`
3939  
3940  	// The user password for WAPI integration.
3941  	WapiUserPassword *string `json:"wapi_user_password,omitempty"`
3942  }
3943  
3944  func (DxlEndpoint) ObjectType() string {
3945  	return "dxl:endpoint"
3946  }
3947  
3948  func (obj DxlEndpoint) ReturnFields() []string {
3949  	if obj.returnFields == nil {
3950  		obj.returnFields = []string{"disable", "name", "outbound_member_type"}
3951  	}
3952  	return obj.returnFields
3953  }
3954  
3955  // EADefinition represents Infoblox object extensibleattributedef.
3956  // The Extensible Attribute Definition object is used to retrieve the
3957  // definition of an extensible attribute.
3958  type EADefinition struct {
3959  	IBBase `json:"-"`
3960  
3961  	Ref string `json:"_ref,omitempty"`
3962  
3963  	// The object types this extensible attribute is allowed to associate with.
3964  	AllowedObjectTypes []string `json:"allowed_object_types,omitempty"`
3965  
3966  	// Comment for the Extensible Attribute Definition; maximum 256 characters.
3967  	Comment *string `json:"comment,omitempty"`
3968  
3969  	// Default value used to pre-populate the attribute value in the GUI. For
3970  	// email, URL, and string types, the value is a string with a maximum of 256
3971  	// characters. For an integer, the value is an integer from -2147483648 through
3972  	// 2147483647. For a date, the value is the number of seconds that have elapsed
3973  	// since January 1st, 1970 UTC.
3974  	DefaultValue *string `json:"default_value,omitempty"`
3975  
3976  	// This option describes the action that must be taken on the extensible
3977  	// attribute by its descendant in case the 'Inheritable' flag is set.
3978  	DescendantsAction *ExtensibleattributedefDescendants `json:"descendants_action,omitempty"`
3979  
3980  	// This field contains extensible attribute flags. Possible values: (A)udited,
3981  	// (C)loud API, Cloud (G)master, (I)nheritable, (L)isted, (M)andatory value,
3982  	// MGM (P)rivate, (R)ead Only, (S)ort enum values, Multiple (V)alues If there
3983  	// are two or more flags in the field, you must list them according to the
3984  	// order they are listed above. For example, 'CR' is a valid value for the
3985  	// 'flags' field because C = Cloud API is listed before R = Read only. However,
3986  	// the value 'RC' is invalid because the order for the 'flags' field is broken.
3987  	Flags *string `json:"flags,omitempty"`
3988  
3989  	// List of Values. Applicable if the extensible attribute type is ENUM.
3990  	ListValues []*EADefListValue `json:"list_values,omitempty"`
3991  
3992  	// Maximum allowed value of extensible attribute. Applicable if the extensible
3993  	// attribute type is INTEGER.
3994  	Max *uint32 `json:"max,omitempty"`
3995  
3996  	// Minimum allowed value of extensible attribute. Applicable if the extensible
3997  	// attribute type is INTEGER.
3998  	Min *uint32 `json:"min,omitempty"`
3999  
4000  	// The name of the Extensible Attribute Definition.
4001  	Name *string `json:"name,omitempty"`
4002  
4003  	// Namespace for the Extensible Attribute Definition.
4004  	Namespace string `json:"namespace,omitempty"`
4005  
4006  	// Type for the Extensible Attribute Definition.
4007  	Type string `json:"type,omitempty"`
4008  }
4009  
4010  func (EADefinition) ObjectType() string {
4011  	return "extensibleattributedef"
4012  }
4013  
4014  func (obj EADefinition) ReturnFields() []string {
4015  	if obj.returnFields == nil {
4016  		obj.returnFields = []string{"comment", "default_value", "name", "type"}
4017  	}
4018  	return obj.returnFields
4019  }
4020  
4021  func NewEADefinition(eadef EADefinition) *EADefinition {
4022  	res := eadef
4023  	res.returnFields = []string{"allowed_object_types", "comment", "flags", "list_values", "name", "type"}
4024  
4025  	return &res
4026  }
4027  
4028  // Fileop represents Infoblox object fileop.
4029  // This object controls uploading and downloading data from the appliance.
4030  type Fileop struct {
4031  	IBBase `json:"-"`
4032  
4033  	Ref string `json:"_ref,omitempty"`
4034  }
4035  
4036  func (Fileop) ObjectType() string {
4037  	return "fileop"
4038  }
4039  
4040  func (obj Fileop) ReturnFields() []string {
4041  	if obj.returnFields == nil {
4042  		obj.returnFields = []string{}
4043  	}
4044  	return obj.returnFields
4045  }
4046  
4047  // Filterfingerprint represents Infoblox object filterfingerprint.
4048  // The appliance can filter an address request by the DHCP fingerprint of a
4049  // requesting client. Depending on how you apply DHCP fingerprint filters, the
4050  // appliance can grant or deny the address request if the requesting client
4051  // matches the filter criteria.
4052  type Filterfingerprint struct {
4053  	IBBase `json:"-"`
4054  
4055  	Ref string `json:"_ref,omitempty"`
4056  
4057  	// The descriptive comment.
4058  	Comment *string `json:"comment,omitempty"`
4059  
4060  	// Extensible attributes associated with the object. For valid values for
4061  	// extensible attributes, see {extattrs:values}.
4062  	Ea EA `json:"extattrs"`
4063  
4064  	// The list of DHCP Fingerprint objects.
4065  	Fingerprint []string `json:"fingerprint,omitempty"`
4066  
4067  	// The name of a DHCP Fingerprint Filter object.
4068  	Name *string `json:"name,omitempty"`
4069  }
4070  
4071  func (Filterfingerprint) ObjectType() string {
4072  	return "filterfingerprint"
4073  }
4074  
4075  func (obj Filterfingerprint) ReturnFields() []string {
4076  	if obj.returnFields == nil {
4077  		obj.returnFields = []string{"comment", "name"}
4078  	}
4079  	return obj.returnFields
4080  }
4081  
4082  // Filtermac represents Infoblox object filtermac.
4083  // An Infoblox appliance can filter address requests by the MAC address and/or
4084  // vendor prefix (i.e., the first 6 hexadecimal characters of the MAC address)
4085  // of a requesting host. The filter instructs the appliance to either grant or
4086  // deny an address request if the requesting host matches the filter.
4087  type Filtermac struct {
4088  	IBBase `json:"-"`
4089  
4090  	Ref string `json:"_ref,omitempty"`
4091  
4092  	// The descriptive comment of a DHCP MAC Filter object.
4093  	Comment *string `json:"comment,omitempty"`
4094  
4095  	// The default MAC expiration time of the DHCP MAC Address Filter object. By
4096  	// default, the MAC address filter never expires; otherwise, it is the absolute
4097  	// interval when the MAC address filter expires. The maximum value can extend
4098  	// up to 4294967295 secs. The minimum value is 60 secs (1 min).
4099  	DefaultMacAddressExpiration *uint32 `json:"default_mac_address_expiration,omitempty"`
4100  
4101  	// Determines if the DHCP Fingerprint object is disabled or not.
4102  	Disable *bool `json:"disable,omitempty"`
4103  
4104  	// The flag to enforce MAC address expiration of the DHCP MAC Address Filter
4105  	// object.
4106  	EnforceExpirationTimes *bool `json:"enforce_expiration_times,omitempty"`
4107  
4108  	// Extensible attributes associated with the object. For valid values for
4109  	// extensible attributes, see {extattrs:values}.
4110  	Ea EA `json:"extattrs"`
4111  
4112  	// The length of time the DHCP server leases an IP address to a client. The
4113  	// lease time applies to hosts that meet the filter criteria.
4114  	LeaseTime *uint32 `json:"lease_time,omitempty"`
4115  
4116  	// The name of a DHCP MAC Filter object.
4117  	Name *string `json:"name,omitempty"`
4118  
4119  	// Determines if DHCP MAC Filter never expires or automatically expires.
4120  	NeverExpires *bool `json:"never_expires,omitempty"`
4121  
4122  	// An array of DHCP option dhcpoption structs that lists the DHCP options
4123  	// associated with the object.
4124  	Options []*Dhcpoption `json:"options,omitempty"`
4125  
4126  	// This is reserved for writing comments related to the particular MAC address
4127  	// filter. The length of comment cannot exceed 1024 bytes.
4128  	ReservedForInfoblox *string `json:"reserved_for_infoblox,omitempty"`
4129  }
4130  
4131  func (Filtermac) ObjectType() string {
4132  	return "filtermac"
4133  }
4134  
4135  func (obj Filtermac) ReturnFields() []string {
4136  	if obj.returnFields == nil {
4137  		obj.returnFields = []string{"comment", "name"}
4138  	}
4139  	return obj.returnFields
4140  }
4141  
4142  // Filternac represents Infoblox object filternac.
4143  // If NAC authentication is configured, the appliance receives authentication
4144  // responses from NAC authentication servers, and it grants or denies a lease
4145  // request if the authentication response matches conditions defined by the NAC
4146  // filters.
4147  type Filternac struct {
4148  	IBBase `json:"-"`
4149  
4150  	Ref string `json:"_ref,omitempty"`
4151  
4152  	// The descriptive comment of a DHCP NAC Filter object.
4153  	Comment *string `json:"comment,omitempty"`
4154  
4155  	// The conditional expression of a DHCP NAC Filter object.
4156  	Expression *string `json:"expression,omitempty"`
4157  
4158  	// Extensible attributes associated with the object. For valid values for
4159  	// extensible attributes, see {extattrs:values}.
4160  	Ea EA `json:"extattrs"`
4161  
4162  	// The length of time the DHCP server leases an IP address to a client. The
4163  	// lease time applies to hosts that meet the filter criteria.
4164  	LeaseTime *uint32 `json:"lease_time,omitempty"`
4165  
4166  	// The name of a DHCP NAC Filter object.
4167  	Name *string `json:"name,omitempty"`
4168  
4169  	// An array of DHCP option dhcpoption structs that lists the DHCP options
4170  	// associated with the object.
4171  	Options []*Dhcpoption `json:"options,omitempty"`
4172  }
4173  
4174  func (Filternac) ObjectType() string {
4175  	return "filternac"
4176  }
4177  
4178  func (obj Filternac) ReturnFields() []string {
4179  	if obj.returnFields == nil {
4180  		obj.returnFields = []string{"comment", "name"}
4181  	}
4182  	return obj.returnFields
4183  }
4184  
4185  // Filteroption represents Infoblox object filteroption.
4186  // In the ISC DHCP terms, it defines a class of clients that match a particular
4187  // (option, value) pair. To define an option filter, add Option to the DHCP
4188  // Filter object.
4189  type Filteroption struct {
4190  	IBBase `json:"-"`
4191  
4192  	Ref string `json:"_ref,omitempty"`
4193  
4194  	// Determines if apply as class is enabled or not. If this flag is set to
4195  	// "true" the filter is treated as global DHCP class, e.g it is written to
4196  	// dhcpd config file even if it is not present in any DHCP range.
4197  	ApplyAsClass *bool `json:"apply_as_class,omitempty"`
4198  
4199  	// A name of boot file of a DHCP filter option object.
4200  	Bootfile *string `json:"bootfile,omitempty"`
4201  
4202  	// Determines the boot server of a DHCP filter option object. You can specify
4203  	// the name and/or IP address of the boot server that host needs to boot.
4204  	Bootserver *string `json:"bootserver,omitempty"`
4205  
4206  	// The descriptive comment of a DHCP filter option object.
4207  	Comment *string `json:"comment,omitempty"`
4208  
4209  	// The conditional expression of a DHCP filter option object.
4210  	Expression *string `json:"expression,omitempty"`
4211  
4212  	// Extensible attributes associated with the object. For valid values for
4213  	// extensible attributes, see {extattrs:values}.
4214  	Ea EA `json:"extattrs"`
4215  
4216  	// Determines the lease time of a DHCP filter option object.
4217  	LeaseTime *uint32 `json:"lease_time,omitempty"`
4218  
4219  	// The name of a DHCP option filter object.
4220  	Name *string `json:"name,omitempty"`
4221  
4222  	// Determines the next server of a DHCP filter option object. You can specify
4223  	// the name and/or IP address of the next server that the host needs to boot.
4224  	NextServer *string `json:"next_server,omitempty"`
4225  
4226  	// An array of DHCP option dhcpoption structs that lists the DHCP options
4227  	// associated with the object.
4228  	OptionList []*Dhcpoption `json:"option_list,omitempty"`
4229  
4230  	// The option space of a DHCP filter option object.
4231  	OptionSpace *string `json:"option_space,omitempty"`
4232  
4233  	// Determines the PXE (Preboot Execution Environment) lease time of a DHCP
4234  	// filter option object. To specify the duration of time it takes a host to
4235  	// connect to a boot server, such as a TFTP server, and download the file it
4236  	// needs to boot.
4237  	PxeLeaseTime *uint32 `json:"pxe_lease_time,omitempty"`
4238  }
4239  
4240  func (Filteroption) ObjectType() string {
4241  	return "filteroption"
4242  }
4243  
4244  func (obj Filteroption) ReturnFields() []string {
4245  	if obj.returnFields == nil {
4246  		obj.returnFields = []string{"comment", "name"}
4247  	}
4248  	return obj.returnFields
4249  }
4250  
4251  // Filterrelayagent represents Infoblox object filterrelayagent.
4252  // The Infoblox appliance can screen address requests through relay agent
4253  // filters (DHCP option 82) that assist the agents in forwarding address
4254  // assignments across the proper circuit. When a relay agent receives the
4255  // DHCPDISCOVER message, it can add one or two agent IDs in the DHCP option 82
4256  // suboption fields to the message. If the agent ID strings match those defined
4257  // in a relay agent filter applied to a DHCP address range, the Infoblox
4258  // appliance either assigns addresses from that range or denies the request
4259  // (based on previously configured parameters; that is, the Grant lease and
4260  // Deny lease parameters).
4261  type Filterrelayagent struct {
4262  	IBBase `json:"-"`
4263  
4264  	Ref string `json:"_ref,omitempty"`
4265  
4266  	// The circuit_id_name of a DHCP relay agent filter object. This filter
4267  	// identifies the circuit between the remote host and the relay agent. For
4268  	// example, the identifier can be the ingress interface number of the circuit
4269  	// access unit, perhaps concatenated with the unit ID number and slot number.
4270  	// Also, the circuit ID can be an ATM virtual circuit ID or cable data virtual
4271  	// circuit ID.
4272  	CircuitIdName *string `json:"circuit_id_name,omitempty"`
4273  
4274  	// The circuit ID substring length.
4275  	CircuitIdSubstringLength *uint32 `json:"circuit_id_substring_length,omitempty"`
4276  
4277  	// The circuit ID substring offset.
4278  	CircuitIdSubstringOffset *uint32 `json:"circuit_id_substring_offset,omitempty"`
4279  
4280  	// A descriptive comment of a DHCP relay agent filter object.
4281  	Comment *string `json:"comment,omitempty"`
4282  
4283  	// Extensible attributes associated with the object. For valid values for
4284  	// extensible attributes, see {extattrs:values}.
4285  	Ea EA `json:"extattrs"`
4286  
4287  	// The circuit ID matching rule of a DHCP relay agent filter object. The
4288  	// circuit_id value takes effect only if the value is "MATCHES_VALUE".
4289  	IsCircuitId string `json:"is_circuit_id,omitempty"`
4290  
4291  	// Determines if the substring of circuit ID, instead of the full circuit ID,
4292  	// is matched.
4293  	IsCircuitIdSubstring *bool `json:"is_circuit_id_substring,omitempty"`
4294  
4295  	// The remote ID matching rule of a DHCP relay agent filter object. The
4296  	// remote_id value takes effect only if the value is Matches_Value.
4297  	IsRemoteId string `json:"is_remote_id,omitempty"`
4298  
4299  	// Determines if the substring of remote ID, instead of the full remote ID, is
4300  	// matched.
4301  	IsRemoteIdSubstring *bool `json:"is_remote_id_substring,omitempty"`
4302  
4303  	// The name of a DHCP relay agent filter object.
4304  	Name *string `json:"name,omitempty"`
4305  
4306  	// The remote ID name attribute of a relay agent filter object. This filter
4307  	// identifies the remote host. The remote ID name can represent many different
4308  	// things such as the caller ID telephone number for a dial-up connection, a
4309  	// user name for logging in to the ISP, a modem ID, etc. When the remote ID
4310  	// name is defined on the relay agent, the DHCP server will have a trusted
4311  	// relationship to identify the remote host. The remote ID name is considered
4312  	// as a trusted identifier.
4313  	RemoteIdName *string `json:"remote_id_name,omitempty"`
4314  
4315  	// The remote ID substring length.
4316  	RemoteIdSubstringLength *uint32 `json:"remote_id_substring_length,omitempty"`
4317  
4318  	// The remote ID substring offset.
4319  	RemoteIdSubstringOffset *uint32 `json:"remote_id_substring_offset,omitempty"`
4320  }
4321  
4322  func (Filterrelayagent) ObjectType() string {
4323  	return "filterrelayagent"
4324  }
4325  
4326  func (obj Filterrelayagent) ReturnFields() []string {
4327  	if obj.returnFields == nil {
4328  		obj.returnFields = []string{"comment", "name"}
4329  	}
4330  	return obj.returnFields
4331  }
4332  
4333  // Fingerprint represents Infoblox object fingerprint.
4334  // The DHCP Fingerprint object is part of the Fingerprint filter.
4335  type Fingerprint struct {
4336  	IBBase `json:"-"`
4337  
4338  	Ref string `json:"_ref,omitempty"`
4339  
4340  	// Comment for the Fingerprint; maximum 256 characters.
4341  	Comment *string `json:"comment,omitempty"`
4342  
4343  	// A class of DHCP Fingerprint object; maximum 256 characters.
4344  	DeviceClass *string `json:"device_class,omitempty"`
4345  
4346  	// Determines if the DHCP Fingerprint object is disabled or not.
4347  	Disable *bool `json:"disable,omitempty"`
4348  
4349  	// Extensible attributes associated with the object. For valid values for
4350  	// extensible attributes, see {extattrs:values}.
4351  	Ea EA `json:"extattrs"`
4352  
4353  	// A list (comma separated list) of IPv6 option number sequences of the device
4354  	// or operating system.
4355  	Ipv6OptionSequence []string `json:"ipv6_option_sequence,omitempty"`
4356  
4357  	// Name of the DHCP Fingerprint object.
4358  	Name *string `json:"name,omitempty"`
4359  
4360  	// A list (comma separated list) of IPv4 option number sequences of the device
4361  	// or operating system.
4362  	OptionSequence []string `json:"option_sequence,omitempty"`
4363  
4364  	// The type of the DHCP Fingerprint object.
4365  	Type string `json:"type,omitempty"`
4366  
4367  	// A list of vendor IDs of the device or operating system.
4368  	VendorId []string `json:"vendor_id,omitempty"`
4369  }
4370  
4371  func (Fingerprint) ObjectType() string {
4372  	return "fingerprint"
4373  }
4374  
4375  func (obj Fingerprint) ReturnFields() []string {
4376  	if obj.returnFields == nil {
4377  		obj.returnFields = []string{"comment", "device_class", "name"}
4378  	}
4379  	return obj.returnFields
4380  }
4381  
4382  // Ipv4FixedAddress represents Infoblox object fixedaddress.
4383  // A fixed address is a specific IP address that a DHCP server always assigns
4384  // when a lease request comes from a particular MAC address of the client.
4385  type Ipv4FixedAddress struct {
4386  	IBBase `json:"-"`
4387  
4388  	Ref string `json:"_ref,omitempty"`
4389  
4390  	// The agent circuit ID for the fixed address.
4391  	AgentCircuitId *string `json:"agent_circuit_id,omitempty"`
4392  
4393  	// The agent remote ID for the fixed address.
4394  	AgentRemoteId *string `json:"agent_remote_id,omitempty"`
4395  
4396  	// This field controls whether the credential is used for both the Telnet and
4397  	// SSH credentials. If set to False, the credential is used only for SSH.
4398  	AllowTelnet *bool `json:"allow_telnet,omitempty"`
4399  
4400  	// This field controls whether only the DHCP server is allowed to update DNS,
4401  	// regardless of the DHCP client requests.
4402  	AlwaysUpdateDns *bool `json:"always_update_dns,omitempty"`
4403  
4404  	// The bootfile name for the fixed address. You can configure the DHCP server
4405  	// to support clients that use the boot file name option in their DHCPREQUEST
4406  	// messages.
4407  	Bootfile *string `json:"bootfile,omitempty"`
4408  
4409  	// The bootserver address for the fixed address. You can specify the name
4410  	// and/or IP address of the boot server that the host needs to boot. The boot
4411  	// server IPv4 Address or name in FQDN format.
4412  	Bootserver *string `json:"bootserver,omitempty"`
4413  
4414  	// The CLI credentials for the fixed address.
4415  	CliCredentials []*DiscoveryClicredential `json:"cli_credentials,omitempty"`
4416  
4417  	// This field controls whether there is a prepend for the
4418  	// dhcp-client-identifier of a fixed address.
4419  	ClientIdentifierPrependZero *bool `json:"client_identifier_prepend_zero,omitempty"`
4420  
4421  	// Structure containing all cloud API related information for this object.
4422  	CloudInfo *GridCloudapiInfo `json:"cloud_info,omitempty"`
4423  
4424  	// Comment for the fixed address; maximum 256 characters.
4425  	Comment *string `json:"comment,omitempty"`
4426  
4427  	// The dynamic DNS domain name the appliance uses specifically for DDNS updates
4428  	// for this fixed address.
4429  	DdnsDomainname *string `json:"ddns_domainname,omitempty"`
4430  
4431  	// The DDNS host name for this fixed address.
4432  	DdnsHostname *string `json:"ddns_hostname,omitempty"`
4433  
4434  	// If set to true, BOOTP settings are disabled and BOOTP requests will be
4435  	// denied.
4436  	DenyBootp *bool `json:"deny_bootp,omitempty"`
4437  
4438  	// The description of the device.
4439  	DeviceDescription *string `json:"device_description,omitempty"`
4440  
4441  	// The location of the device.
4442  	DeviceLocation *string `json:"device_location,omitempty"`
4443  
4444  	// The type of the device.
4445  	DeviceType *string `json:"device_type,omitempty"`
4446  
4447  	// The vendor of the device.
4448  	DeviceVendor *string `json:"device_vendor,omitempty"`
4449  
4450  	// The DHCP client ID for the fixed address.
4451  	DhcpClientIdentifier *string `json:"dhcp_client_identifier,omitempty"`
4452  
4453  	// Determines whether a fixed address is disabled or not. When this is set to
4454  	// False, the fixed address is enabled.
4455  	Disable *bool `json:"disable,omitempty"`
4456  
4457  	// Determines if the discovery for this fixed address is disabled or not. False
4458  	// means that the discovery is enabled.
4459  	DisableDiscovery *bool `json:"disable_discovery,omitempty"`
4460  
4461  	// The discovery status of this fixed address.
4462  	DiscoverNowStatus string `json:"discover_now_status,omitempty"`
4463  
4464  	// The discovered data for this fixed address.
4465  	DiscoveredData *Discoverydata `json:"discovered_data,omitempty"`
4466  
4467  	// The dynamic DNS updates flag of a DHCP Fixed Address object. If set to True,
4468  	// the DHCP server sends DDNS updates to DNS servers in the same Grid, and to
4469  	// external DNS servers.
4470  	EnableDdns *bool `json:"enable_ddns,omitempty"`
4471  
4472  	// Determines if the discovery for the fixed address should be immediately
4473  	// enabled.
4474  	EnableImmediateDiscovery *bool `json:"enable_immediate_discovery,omitempty"`
4475  
4476  	// Set this to True if you want the DHCP server to use a different lease time
4477  	// for PXE clients.
4478  	EnablePxeLeaseTime *bool `json:"enable_pxe_lease_time,omitempty"`
4479  
4480  	// Extensible attributes associated with the object. For valid values for
4481  	// extensible attributes, see {extattrs:values}.
4482  	Ea EA `json:"extattrs"`
4483  
4484  	// If this field is set to False, the appliance returns all DHCP options the
4485  	// client is eligible to receive, rather than only the list of options the
4486  	// client has requested.
4487  	IgnoreDhcpOptionListRequest *bool `json:"ignore_dhcp_option_list_request,omitempty"`
4488  
4489  	// The IPv4 Address of the fixed address.
4490  	Ipv4Addr *string `json:"ipv4addr,omitempty"`
4491  
4492  	// This flag reflects whether the MAC address for this fixed address is
4493  	// invalid.
4494  	IsInvalidMac bool `json:"is_invalid_mac,omitempty"`
4495  
4496  	// This field contains the logic filters to be applied on the this fixed
4497  	// address. This list corresponds to the match rules that are written to the
4498  	// dhcpd configuration file.
4499  	LogicFilterRules []*Logicfilterrule `json:"logic_filter_rules,omitempty"`
4500  
4501  	// The MAC address value for this fixed address.
4502  	Mac *string `json:"mac,omitempty"`
4503  
4504  	// The match_client value for this fixed address. Valid values are:
4505  	// "MAC_ADDRESS": The fixed IP address is leased to the matching MAC address.
4506  	// "CLIENT_ID": The fixed IP address is leased to the matching DHCP client
4507  	// identifier. "RESERVED": The fixed IP address is reserved for later use with
4508  	// a MAC address that only has zeros. "CIRCUIT_ID": The fixed IP address is
4509  	// leased to the DHCP client with a matching circuit ID. Note that the
4510  	// "agent_circuit_id" field must be set in this case. "REMOTE_ID": The fixed IP
4511  	// address is leased to the DHCP client with a matching remote ID. Note that
4512  	// the "agent_remote_id" field must be set in this case.
4513  	MatchClient string `json:"match_client,omitempty"`
4514  
4515  	// The Microsoft Active Directory user related information.
4516  	MsAdUserData *MsserverAduserData `json:"ms_ad_user_data,omitempty"`
4517  
4518  	// This field contains the Microsoft DHCP options for this fixed address.
4519  	MsOptions []*Msdhcpoption `json:"ms_options,omitempty"`
4520  
4521  	// The Microsoft server associated with this fixed address.
4522  	MsServer *Msdhcpserver `json:"ms_server,omitempty"`
4523  
4524  	// This field contains the name of this fixed address.
4525  	Name *string `json:"name,omitempty"`
4526  
4527  	// The network to which this fixed address belongs, in IPv4 Address/CIDR
4528  	// format.
4529  	Network *string `json:"network,omitempty"`
4530  
4531  	// The name of the network view in which this fixed address resides.
4532  	NetworkView *string `json:"network_view,omitempty"`
4533  
4534  	// The name in FQDN and/or IPv4 Address format of the next server that the host
4535  	// needs to boot.
4536  	Nextserver *string `json:"nextserver,omitempty"`
4537  
4538  	// An array of DHCP option dhcpoption structs that lists the DHCP options
4539  	// associated with the object.
4540  	Options []*Dhcpoption `json:"options,omitempty"`
4541  
4542  	// The PXE lease time value for a DHCP Fixed Address object. Some hosts use PXE
4543  	// (Preboot Execution Environment) to boot remotely from a server. To better
4544  	// manage your IP resources, set a different lease time for PXE boot requests.
4545  	// You can configure the DHCP server to allocate an IP address with a shorter
4546  	// lease time to hosts that send PXE boot requests, so IP addresses are not
4547  	// leased longer than necessary. A 32-bit unsigned integer that represents the
4548  	// duration, in seconds, for which the update is cached. Zero indicates that
4549  	// the update is not cached.
4550  	PxeLeaseTime *uint32 `json:"pxe_lease_time,omitempty"`
4551  
4552  	// The ref to the reserved interface to which the device belongs.
4553  	ReservedInterface *string `json:"reserved_interface,omitempty"`
4554  
4555  	// Restarts the member service. The restart_if_needed flag can trigger a
4556  	// restart on DHCP services only when it is enabled on CP member.
4557  	RestartIfNeeded *bool `json:"restart_if_needed,omitempty"`
4558  
4559  	// The SNMPv3 credential for this fixed address.
4560  	Snmp3Credential *DiscoverySnmp3credential `json:"snmp3_credential,omitempty"`
4561  
4562  	// The SNMPv1 or SNMPv2 credential for this fixed address.
4563  	SnmpCredential *DiscoverySnmpcredential `json:"snmp_credential,omitempty"`
4564  
4565  	// If set on creation, the fixed address will be created according to the
4566  	// values specified in the named template.
4567  	Template string `json:"template,omitempty"`
4568  
4569  	// Use flag for: bootfile
4570  	UseBootfile *bool `json:"use_bootfile,omitempty"`
4571  
4572  	// Use flag for: bootserver
4573  	UseBootserver *bool `json:"use_bootserver,omitempty"`
4574  
4575  	// If set to true, the CLI credential will override member-level settings.
4576  	UseCliCredentials *bool `json:"use_cli_credentials,omitempty"`
4577  
4578  	// Use flag for: ddns_domainname
4579  	UseDdnsDomainname *bool `json:"use_ddns_domainname,omitempty"`
4580  
4581  	// Use flag for: deny_bootp
4582  	UseDenyBootp *bool `json:"use_deny_bootp,omitempty"`
4583  
4584  	// Use flag for: enable_ddns
4585  	UseEnableDdns *bool `json:"use_enable_ddns,omitempty"`
4586  
4587  	// Use flag for: ignore_dhcp_option_list_request
4588  	UseIgnoreDhcpOptionListRequest *bool `json:"use_ignore_dhcp_option_list_request,omitempty"`
4589  
4590  	// Use flag for: logic_filter_rules
4591  	UseLogicFilterRules *bool `json:"use_logic_filter_rules,omitempty"`
4592  
4593  	// Use flag for: ms_options
4594  	UseMsOptions *bool `json:"use_ms_options,omitempty"`
4595  
4596  	// Use flag for: nextserver
4597  	UseNextserver *bool `json:"use_nextserver,omitempty"`
4598  
4599  	// Use flag for: options
4600  	UseOptions *bool `json:"use_options,omitempty"`
4601  
4602  	// Use flag for: pxe_lease_time
4603  	UsePxeLeaseTime *bool `json:"use_pxe_lease_time,omitempty"`
4604  
4605  	// Determines if the SNMPv3 credential should be used for the fixed address.
4606  	UseSnmp3Credential *bool `json:"use_snmp3_credential,omitempty"`
4607  
4608  	// If set to true, the SNMP credential will override member-level settings.
4609  	UseSnmpCredential *bool `json:"use_snmp_credential,omitempty"`
4610  }
4611  
4612  func (Ipv4FixedAddress) ObjectType() string {
4613  	return "fixedaddress"
4614  }
4615  
4616  func (obj Ipv4FixedAddress) ReturnFields() []string {
4617  	if obj.returnFields == nil {
4618  		obj.returnFields = []string{"ipv4addr", "network_view"}
4619  	}
4620  	return obj.returnFields
4621  }
4622  
4623  // Fixedaddresstemplate represents Infoblox object fixedaddresstemplate.
4624  // The fixed address template used to create a fixed address objects in a quick
4625  // and consistent way. Fixed address object created from a fixed address
4626  // template will inherit most properties defined in fixed address template
4627  // object so most of the fixed address template properties are the same as the
4628  // fixed address object properties.
4629  type Fixedaddresstemplate struct {
4630  	IBBase `json:"-"`
4631  
4632  	Ref string `json:"_ref,omitempty"`
4633  
4634  	// The boot file name for the fixed address. You can configure the DHCP server
4635  	// to support clients that use the boot file name option in their DHCPREQUEST
4636  	// messages.
4637  	Bootfile *string `json:"bootfile,omitempty"`
4638  
4639  	// The boot server address for the fixed address. You can specify the name
4640  	// and/or IP address of the boot server that the host needs to boot. The boot
4641  	// server IPv4 Address or name in FQDN format.
4642  	Bootserver *string `json:"bootserver,omitempty"`
4643  
4644  	// A descriptive comment of a fixed address template object.
4645  	Comment *string `json:"comment,omitempty"`
4646  
4647  	// The dynamic DNS domain name the appliance uses specifically for DDNS updates
4648  	// for this fixed address.
4649  	DdnsDomainname *string `json:"ddns_domainname,omitempty"`
4650  
4651  	// The DDNS host name for this fixed address.
4652  	DdnsHostname *string `json:"ddns_hostname,omitempty"`
4653  
4654  	// Determines if BOOTP settings are disabled and BOOTP requests will be denied.
4655  	DenyBootp *bool `json:"deny_bootp,omitempty"`
4656  
4657  	// Determines if the DHCP server sends DDNS updates to DNS servers in the same
4658  	// Grid, and to external DNS servers.
4659  	EnableDdns *bool `json:"enable_ddns,omitempty"`
4660  
4661  	// Set this to True if you want the DHCP server to use a different lease time
4662  	// for PXE clients.
4663  	EnablePxeLeaseTime *bool `json:"enable_pxe_lease_time,omitempty"`
4664  
4665  	// Extensible attributes associated with the object. For valid values for
4666  	// extensible attributes, see {extattrs:values}.
4667  	Ea EA `json:"extattrs"`
4668  
4669  	// If this field is set to False, the appliance returns all DHCP options the
4670  	// client is eligible to receive, rather than only the list of options the
4671  	// client has requested.
4672  	IgnoreDhcpOptionListRequest *bool `json:"ignore_dhcp_option_list_request,omitempty"`
4673  
4674  	// This field contains the logic filters to be applied on this fixed address.
4675  	// This list corresponds to the match rules that are written to the dhcpd
4676  	// configuration file.
4677  	LogicFilterRules []*Logicfilterrule `json:"logic_filter_rules,omitempty"`
4678  
4679  	// The name of a fixed address template object.
4680  	Name *string `json:"name,omitempty"`
4681  
4682  	// The name in FQDN and/or IPv4 Address format of the next server that the host
4683  	// needs to boot.
4684  	Nextserver *string `json:"nextserver,omitempty"`
4685  
4686  	// The number of addresses for this fixed address.
4687  	NumberOfAddresses *uint32 `json:"number_of_addresses,omitempty"`
4688  
4689  	// The start address offset for this fixed address.
4690  	Offset *uint32 `json:"offset,omitempty"`
4691  
4692  	// An array of DHCP option dhcpoption structs that lists the DHCP options
4693  	// associated with the object.
4694  	Options []*Dhcpoption `json:"options,omitempty"`
4695  
4696  	// The PXE lease time value for a DHCP Fixed Address object. Some hosts use PXE
4697  	// (Preboot Execution Environment) to boot remotely from a server. To better
4698  	// manage your IP resources, set a different lease time for PXE boot requests.
4699  	// You can configure the DHCP server to allocate an IP address with a shorter
4700  	// lease time to hosts that send PXE boot requests, so IP addresses are not
4701  	// leased longer than necessary. A 32-bit unsigned integer that represents the
4702  	// duration, in seconds, for which the update is cached. Zero indicates that
4703  	// the update is not cached.
4704  	PxeLeaseTime *uint32 `json:"pxe_lease_time,omitempty"`
4705  
4706  	// Use flag for: bootfile
4707  	UseBootfile *bool `json:"use_bootfile,omitempty"`
4708  
4709  	// Use flag for: bootserver
4710  	UseBootserver *bool `json:"use_bootserver,omitempty"`
4711  
4712  	// Use flag for: ddns_domainname
4713  	UseDdnsDomainname *bool `json:"use_ddns_domainname,omitempty"`
4714  
4715  	// Use flag for: deny_bootp
4716  	UseDenyBootp *bool `json:"use_deny_bootp,omitempty"`
4717  
4718  	// Use flag for: enable_ddns
4719  	UseEnableDdns *bool `json:"use_enable_ddns,omitempty"`
4720  
4721  	// Use flag for: ignore_dhcp_option_list_request
4722  	UseIgnoreDhcpOptionListRequest *bool `json:"use_ignore_dhcp_option_list_request,omitempty"`
4723  
4724  	// Use flag for: logic_filter_rules
4725  	UseLogicFilterRules *bool `json:"use_logic_filter_rules,omitempty"`
4726  
4727  	// Use flag for: nextserver
4728  	UseNextserver *bool `json:"use_nextserver,omitempty"`
4729  
4730  	// Use flag for: options
4731  	UseOptions *bool `json:"use_options,omitempty"`
4732  
4733  	// Use flag for: pxe_lease_time
4734  	UsePxeLeaseTime *bool `json:"use_pxe_lease_time,omitempty"`
4735  }
4736  
4737  func (Fixedaddresstemplate) ObjectType() string {
4738  	return "fixedaddresstemplate"
4739  }
4740  
4741  func (obj Fixedaddresstemplate) ReturnFields() []string {
4742  	if obj.returnFields == nil {
4743  		obj.returnFields = []string{"comment", "name"}
4744  	}
4745  	return obj.returnFields
4746  }
4747  
4748  // Ftpuser represents Infoblox object ftpuser.
4749  // The FTP user represents the user accounts to be used with the FTP client.
4750  type Ftpuser struct {
4751  	IBBase `json:"-"`
4752  
4753  	Ref string `json:"_ref,omitempty"`
4754  
4755  	// Determines whether to create the home directory with the user name or to use
4756  	// the existing directory as the home directory.
4757  	CreateHomeDir bool `json:"create_home_dir,omitempty"`
4758  
4759  	// Extensible attributes associated with the object. For valid values for
4760  	// extensible attributes, see {extattrs:values}.
4761  	Ea EA `json:"extattrs"`
4762  
4763  	// The absolute path of the FTP user's home directory.
4764  	HomeDir string `json:"home_dir,omitempty"`
4765  
4766  	// The FTP user password.
4767  	Password *string `json:"password,omitempty"`
4768  
4769  	// The FTP user permission.
4770  	Permission string `json:"permission,omitempty"`
4771  
4772  	// The FTP user name.
4773  	Username string `json:"username,omitempty"`
4774  }
4775  
4776  func (Ftpuser) ObjectType() string {
4777  	return "ftpuser"
4778  }
4779  
4780  func (obj Ftpuser) ReturnFields() []string {
4781  	if obj.returnFields == nil {
4782  		obj.returnFields = []string{"username"}
4783  	}
4784  	return obj.returnFields
4785  }
4786  
4787  // Grid represents Infoblox object grid.
4788  // This object represents the Infoblox Grid.
4789  type Grid struct {
4790  	IBBase `json:"-"`
4791  
4792  	Ref string `json:"_ref,omitempty"`
4793  
4794  	// The property to allow recursive deletion. Determines the users who can
4795  	// choose to perform recursive deletion on networks or zones from the GUI only.
4796  	AllowRecursiveDeletion string `json:"allow_recursive_deletion,omitempty"`
4797  
4798  	// Determines the audit log format.
4799  	AuditLogFormat string `json:"audit_log_format,omitempty"`
4800  
4801  	// If set to True, audit log messages are also copied to the syslog.
4802  	AuditToSyslogEnable *bool `json:"audit_to_syslog_enable,omitempty"`
4803  
4804  	// The grid level settings for automated traffic capture.
4805  	AutomatedTrafficCaptureSetting *SettingAutomatedtrafficcapture `json:"automated_traffic_capture_setting,omitempty"`
4806  
4807  	// The Grid consent banner settings.
4808  	ConsentBannerSetting *GridConsentbannersetting `json:"consent_banner_setting,omitempty"`
4809  
4810  	// The Grid csp api config settings.
4811  	CspApiConfig *GridCspapiconfig `json:"csp_api_config,omitempty"`
4812  
4813  	// CSP settings at grid level
4814  	CspGridSetting *GridCspgridsetting `json:"csp_grid_setting,omitempty"`
4815  
4816  	// If set to True, the managed Grid will not send snapshots to the Multi-Grid
4817  	// Master.
4818  	DenyMgmSnapshots *bool `json:"deny_mgm_snapshots,omitempty"`
4819  
4820  	// The default actions for extensbile attributes that exist on descendants.
4821  	DescendantsAction *ExtensibleattributedefDescendants `json:"descendants_action,omitempty"`
4822  
4823  	// The DNS resolver setting.
4824  	DnsResolverSetting *SettingDnsresolver `json:"dns_resolver_setting,omitempty"`
4825  
4826  	// The DSCP value. Valid values are integers between 0 and 63 inclusive.
4827  	Dscp *uint32 `json:"dscp,omitempty"`
4828  
4829  	// The e-mail settings for the Grid.
4830  	EmailSetting *SettingEmail `json:"email_setting,omitempty"`
4831  
4832  	// If set to True, GUI and API access are enabled on the LAN/VIP port and MGMT
4833  	// port (if configured).
4834  	EnableGuiApiForLanVip *bool `json:"enable_gui_api_for_lan_vip,omitempty"`
4835  
4836  	// Determines if the LOM functionality is enabled or not.
4837  	EnableLom *bool `json:"enable_lom,omitempty"`
4838  
4839  	// Determines redirections is enabled or not for members.
4840  	EnableMemberRedirect *bool `json:"enable_member_redirect,omitempty"`
4841  
4842  	// Determines if the Recycle Bin is enabled or not.
4843  	EnableRecycleBin *bool `json:"enable_recycle_bin,omitempty"`
4844  
4845  	// Determines if the RIR/SWIP support is enabled or not.
4846  	EnableRirSwip *bool `json:"enable_rir_swip,omitempty"`
4847  
4848  	// The list of external backup syslog servers.
4849  	ExternalSyslogBackupServers []*Extsyslogbackupserver `json:"external_syslog_backup_servers,omitempty"`
4850  
4851  	// If set to True, external syslog servers are enabled.
4852  	ExternalSyslogServerEnable *bool `json:"external_syslog_server_enable,omitempty"`
4853  
4854  	// The Grid HTTP proxy server settings.
4855  	HttpProxyServerSetting *SettingHttpproxyserver `json:"http_proxy_server_setting,omitempty"`
4856  
4857  	// The Grid informational level banner settings.
4858  	InformationalBannerSetting *GridInformationalbannersetting `json:"informational_banner_setting,omitempty"`
4859  
4860  	// If set to True, graphical visualization of the Grid is enabled.
4861  	IsGridVisualizationVisible *bool `json:"is_grid_visualization_visible,omitempty"`
4862  
4863  	// Security Setting for Account lockout.
4864  	LockoutSetting *GridLockoutsetting `json:"lockout_setting,omitempty"`
4865  
4866  	// The list of LOM users.
4867  	LomUsers []*Lomuser `json:"lom_users,omitempty"`
4868  
4869  	// Determines if strict delegate mode for the Grid managed by the Master Grid
4870  	// is enabled or not.
4871  	MgmStrictDelegateMode *bool `json:"mgm_strict_delegate_mode,omitempty"`
4872  
4873  	// The settings for all Microsoft servers in the Grid.
4874  	MsSetting *SettingMsserver `json:"ms_setting,omitempty"`
4875  
4876  	// The grid name.
4877  	Name *string `json:"name,omitempty"`
4878  
4879  	// The list of all Network Address Translation (NAT) groups configured on the
4880  	// Grid.
4881  	NatGroups []string `json:"nat_groups,omitempty"`
4882  
4883  	// The Grid Network Time Protocol (NTP) settings.
4884  	NTPSetting *NTPSetting `json:"ntp_setting,omitempty"`
4885  
4886  	// Determines the object changes tracking settings.
4887  	ObjectsChangesTrackingSetting *Objectschangestrackingsetting `json:"objects_changes_tracking_setting,omitempty"`
4888  
4889  	// The Grid password settings.
4890  	PasswordSetting *SettingPassword `json:"password_setting,omitempty"`
4891  
4892  	// The setting for the Restart Banner.
4893  	RestartBannerSetting *GridRestartbannersetting `json:"restart_banner_setting,omitempty"`
4894  
4895  	// The restart status for the Grid.
4896  	RestartStatus string `json:"restart_status,omitempty"`
4897  
4898  	// The time interval (in seconds) that determines how often the appliance
4899  	// calculates the RPZ hit rate.
4900  	RpzHitRateInterval *uint32 `json:"rpz_hit_rate_interval,omitempty"`
4901  
4902  	// The maximum number of incoming queries between the RPZ hit rate checks.
4903  	RpzHitRateMaxQuery *uint32 `json:"rpz_hit_rate_max_query,omitempty"`
4904  
4905  	// The minimum number of incoming queries between the RPZ hit rate checks.
4906  	RpzHitRateMinQuery *uint32 `json:"rpz_hit_rate_min_query,omitempty"`
4907  
4908  	// The scheduled backup configuration.
4909  	ScheduledBackup *Scheduledbackup `json:"scheduled_backup,omitempty"`
4910  
4911  	// The shared secret of the Grid. This is a write-only attribute.
4912  	Secret *string `json:"secret,omitempty"`
4913  
4914  	// The Grid security banner settings.
4915  	SecurityBannerSetting *SettingSecuritybanner `json:"security_banner_setting,omitempty"`
4916  
4917  	// The Grid security settings.
4918  	SecuritySetting *SettingSecurity `json:"security_setting,omitempty"`
4919  
4920  	// Determines overall service status of the Grid.
4921  	ServiceStatus string `json:"service_status,omitempty"`
4922  
4923  	// The Grid SNMP settings.
4924  	SnmpSetting *SettingSnmp `json:"snmp_setting,omitempty"`
4925  
4926  	// Support bundle download timeout in seconds.
4927  	SupportBundleDownloadTimeout *uint32 `json:"support_bundle_download_timeout,omitempty"`
4928  
4929  	// If 'audit_to_syslog_enable' is set to True, the facility that determines the
4930  	// processes and daemons from which the log messages are generated.
4931  	SyslogFacility string `json:"syslog_facility,omitempty"`
4932  
4933  	// The list of external syslog servers.
4934  	SyslogServers []*Syslogserver `json:"syslog_servers,omitempty"`
4935  
4936  	// The maximum size for the syslog file expressed in megabytes.
4937  	SyslogSize *uint32 `json:"syslog_size,omitempty"`
4938  
4939  	// Determines the list of threshold traps. The user can only change the values
4940  	// for each trap or remove traps.
4941  	ThresholdTraps []*Thresholdtrap `json:"threshold_traps,omitempty"`
4942  
4943  	// The time zone of the Grid. The UTC string that represents the time zone,
4944  	// such as "(UTC - 5:00) Eastern Time (US and Canada)".
4945  	TimeZone *string `json:"time_zone,omitempty"`
4946  
4947  	// The delayed usage (in minutes) of a permission token.
4948  	TokenUsageDelay *uint32 `json:"token_usage_delay,omitempty"`
4949  
4950  	// Grid level settings for enabling authoritative DNS latency thresholds for
4951  	// automated traffic capture.
4952  	TrafficCaptureAuthDnsSetting *SettingTriggeruthdnslatency `json:"traffic_capture_auth_dns_setting,omitempty"`
4953  
4954  	// Grid level settings for enabling DNS cache hit ratio threshold for automated
4955  	// traffic capture.
4956  	TrafficCaptureChrSetting *SettingTrafficcapturechr `json:"traffic_capture_chr_setting,omitempty"`
4957  
4958  	// Grid level settings for enabling DNS query per second threshold for
4959  	// automated traffic capture.
4960  	TrafficCaptureQpsSetting *SettingTrafficcaptureqps `json:"traffic_capture_qps_setting,omitempty"`
4961  
4962  	// Grid level settings for enabling recursive DNS latency thresholds for
4963  	// automated traffic capture.
4964  	TrafficCaptureRecDnsSetting *SettingTriggerrecdnslatency `json:"traffic_capture_rec_dns_setting,omitempty"`
4965  
4966  	// Grid level settings for enabling count for concurrent outgoing recursive
4967  	// queries for automated traffic capture.
4968  	TrafficCaptureRecQueriesSetting *SettingTriggerrecqueries `json:"traffic_capture_rec_queries_setting,omitempty"`
4969  
4970  	// Determines configuration of the trap notifications.
4971  	TrapNotifications []*Trapnotification `json:"trap_notifications,omitempty"`
4972  
4973  	// The list of member configuration structures, which provides information and
4974  	// settings for configuring the member that is responsible for downloading
4975  	// updates.
4976  	UpdatesDownloadMemberConfig []*Updatesdownloadmemberconfig `json:"updates_download_member_config,omitempty"`
4977  
4978  	// The VPN port.
4979  	VpnPort *uint32 `json:"vpn_port,omitempty"`
4980  }
4981  
4982  func (Grid) ObjectType() string {
4983  	return "grid"
4984  }
4985  
4986  func (obj Grid) ReturnFields() []string {
4987  	if obj.returnFields == nil {
4988  		obj.returnFields = []string{}
4989  	}
4990  	return obj.returnFields
4991  }
4992  
4993  func NewGrid(grid Grid) *Grid {
4994  	result := grid
4995  	returnFields := []string{"name", "ntp_setting"}
4996  	result.returnFields = returnFields
4997  	return &result
4998  }
4999  
5000  // GridCloudapi represents Infoblox object grid:cloudapi.
5001  // This object represents the Cloud Grid.
5002  type GridCloudapi struct {
5003  	IBBase `json:"-"`
5004  
5005  	Ref string `json:"_ref,omitempty"`
5006  
5007  	// Defines administrators who can perform cloud API requests on the Grid
5008  	// Master. The valid value is NONE (no administrator), ALL (all
5009  	// administrators), or LIST (administrators on the ACL).
5010  	AllowApiAdmins string `json:"allow_api_admins,omitempty"`
5011  
5012  	// The list of administrators who can perform cloud API requests on the Cloud
5013  	// Platform Appliance.
5014  	AllowedApiAdmins []*GridCloudapiUser `json:"allowed_api_admins,omitempty"`
5015  
5016  	// Determines whether the recycle bin for deleted cloud objects is enabled or
5017  	// not on the Grid Master.
5018  	EnableRecycleBin *bool `json:"enable_recycle_bin,omitempty"`
5019  
5020  	// Structure containing all the information related to Gateway configuration
5021  	// for the Grid Master
5022  	GatewayConfig *GridCloudapiGatewayConfig `json:"gateway_config,omitempty"`
5023  }
5024  
5025  func (GridCloudapi) ObjectType() string {
5026  	return "grid:cloudapi"
5027  }
5028  
5029  func (obj GridCloudapi) ReturnFields() []string {
5030  	if obj.returnFields == nil {
5031  		obj.returnFields = []string{"allow_api_admins", "allowed_api_admins", "enable_recycle_bin"}
5032  	}
5033  	return obj.returnFields
5034  }
5035  
5036  // GridCloudapiCloudstatistics represents Infoblox object grid:cloudapi:cloudstatistics.
5037  // Represents the cloud statistics data.
5038  type GridCloudapiCloudstatistics struct {
5039  	IBBase `json:"-"`
5040  
5041  	Ref string `json:"_ref,omitempty"`
5042  
5043  	// Ratio of allocated vs. available IPs
5044  	AllocatedAvailableRatio uint32 `json:"allocated_available_ratio,omitempty"`
5045  
5046  	// Total number of IPs allocated by tenants.
5047  	AllocatedIpCount uint32 `json:"allocated_ip_count,omitempty"`
5048  
5049  	// The total number of IP addresses available to tenants. Only IP addresses in
5050  	// networks that are within a delegation scope are counted.
5051  	AvailableIpCount string `json:"available_ip_count,omitempty"`
5052  
5053  	// The total number of fixed IP addresses currently in use by all tenants in
5054  	// the system.
5055  	FixedIpCount uint32 `json:"fixed_ip_count,omitempty"`
5056  
5057  	// The total number of floating IP addresses currently in use by all tenants in
5058  	// the system.
5059  	FloatingIpCount uint32 `json:"floating_ip_count,omitempty"`
5060  
5061  	// Total number of tenant currently in the system.
5062  	TenantCount uint32 `json:"tenant_count,omitempty"`
5063  
5064  	// The total number of IP addresses currently in use by all tenants in the
5065  	// system.
5066  	TenantIpCount uint32 `json:"tenant_ip_count,omitempty"`
5067  
5068  	// The total number of VMs currently in use by all tenants in the system.
5069  	TenantVmCount uint32 `json:"tenant_vm_count,omitempty"`
5070  }
5071  
5072  func (GridCloudapiCloudstatistics) ObjectType() string {
5073  	return "grid:cloudapi:cloudstatistics"
5074  }
5075  
5076  func (obj GridCloudapiCloudstatistics) ReturnFields() []string {
5077  	if obj.returnFields == nil {
5078  		obj.returnFields = []string{"allocated_available_ratio", "allocated_ip_count", "available_ip_count", "fixed_ip_count", "floating_ip_count", "tenant_count", "tenant_ip_count", "tenant_vm_count"}
5079  	}
5080  	return obj.returnFields
5081  }
5082  
5083  // GridCloudapiTenant represents Infoblox object grid:cloudapi:tenant.
5084  // A Tenant object represents an abstract administrative concept in Cloud
5085  // Management Platforms, which encompasses all network elements such as
5086  // networks, zones, VMs, IP addresses (fixed and floating), network views,
5087  // default DNS view, and all related extensive attributes.
5088  type GridCloudapiTenant struct {
5089  	IBBase `json:"-"`
5090  
5091  	Ref string `json:"_ref,omitempty"`
5092  
5093  	// Structure containing all cloud API related information for this object.
5094  	CloudInfo *GridCloudapiInfo `json:"cloud_info,omitempty"`
5095  
5096  	// Comment for the Grid Cloud API Tenant object; maximum 256 characters.
5097  	Comment *string `json:"comment,omitempty"`
5098  
5099  	// The timestamp when the tenant was first created in the system.
5100  	CreatedTs *UnixTime `json:"created_ts,omitempty"`
5101  
5102  	// Unique ID associated with the tenant. This is set only when the tenant is
5103  	// first created.
5104  	Id string `json:"id,omitempty"`
5105  
5106  	// The timestamp when the last event associated with the tenant happened.
5107  	LastEventTs *UnixTime `json:"last_event_ts,omitempty"`
5108  
5109  	// Name of the tenant.
5110  	Name *string `json:"name,omitempty"`
5111  
5112  	// Number of Networks associated with the tenant.
5113  	NetworkCount uint32 `json:"network_count,omitempty"`
5114  
5115  	// Number of VMs associated with the tenant.
5116  	VmCount uint32 `json:"vm_count,omitempty"`
5117  }
5118  
5119  func (GridCloudapiTenant) ObjectType() string {
5120  	return "grid:cloudapi:tenant"
5121  }
5122  
5123  func (obj GridCloudapiTenant) ReturnFields() []string {
5124  	if obj.returnFields == nil {
5125  		obj.returnFields = []string{"comment", "id", "name"}
5126  	}
5127  	return obj.returnFields
5128  }
5129  
5130  // GridCloudapiVm represents Infoblox object grid:cloudapi:vm.
5131  // A vm object represents a virtual machine which encompasses network elements
5132  // such as IP addresses (fixed and floating, private and public), DNS names and
5133  // all related extensive attributes.
5134  type GridCloudapiVm struct {
5135  	IBBase `json:"-"`
5136  
5137  	Ref string `json:"_ref,omitempty"`
5138  
5139  	// Availability zone of the VM.
5140  	AvailabilityZone string `json:"availability_zone,omitempty"`
5141  
5142  	// Structure containing all the cloud API related information for this object.
5143  	CloudInfo *GridCloudapiInfo `json:"cloud_info,omitempty"`
5144  
5145  	// Comment for the vm object; maximum 1024 characters.
5146  	Comment *string `json:"comment,omitempty"`
5147  
5148  	// Elastic IP address associated with the VM's primary interface.
5149  	ElasticIpAddress string `json:"elastic_ip_address,omitempty"`
5150  
5151  	// Extensible attributes associated with the object. For valid values for
5152  	// extensible attributes, see {extattrs:values}.
5153  	Ea EA `json:"extattrs"`
5154  
5155  	// The timestamp when the VM was first seen in the system.
5156  	FirstSeen *UnixTime `json:"first_seen,omitempty"`
5157  
5158  	// Hostname part of the FQDN for the address associated with the VM's primary
5159  	// interface.
5160  	Hostname string `json:"hostname,omitempty"`
5161  
5162  	// Unique ID associated with the VM. This is set only when the VM is first
5163  	// created.
5164  	Id string `json:"id,omitempty"`
5165  
5166  	// Identifier of the kernel that this VM is running; maximum 128 characters.
5167  	KernelId *string `json:"kernel_id,omitempty"`
5168  
5169  	// The timestamp when the last event associated with the VM happened.
5170  	LastSeen *UnixTime `json:"last_seen,omitempty"`
5171  
5172  	// Name of the VM.
5173  	Name *string `json:"name,omitempty"`
5174  
5175  	// Number of Networks containing any address associated with this VM.
5176  	NetworkCount uint32 `json:"network_count,omitempty"`
5177  
5178  	// Guest Operating system that this VM is running; maximum 128 characters.
5179  	OperatingSystem *string `json:"operating_system,omitempty"`
5180  
5181  	// MAC address associated with the VM's primary interface.
5182  	PrimaryMacAddress string `json:"primary_mac_address,omitempty"`
5183  
5184  	// Address of the network that is the container of the address associated with
5185  	// the VM's primary interface.
5186  	SubnetAddress string `json:"subnet_address,omitempty"`
5187  
5188  	// CIDR of the network that is the container of the address associated with the
5189  	// VM's primary interface.
5190  	SubnetCidr uint32 `json:"subnet_cidr,omitempty"`
5191  
5192  	// Subnet ID of the network that is the container of the address associated
5193  	// with the VM's primary interface.
5194  	SubnetId string `json:"subnet_id,omitempty"`
5195  
5196  	// Name of the tenant associated with the VM.
5197  	TenantName string `json:"tenant_name,omitempty"`
5198  
5199  	// VM type; maximum 64 characters.
5200  	VmType *string `json:"vm_type,omitempty"`
5201  
5202  	// Network address of the parent VPC.
5203  	VpcAddress string `json:"vpc_address,omitempty"`
5204  
5205  	// Network CIDR of the parent VPC.
5206  	VpcCidr uint32 `json:"vpc_cidr,omitempty"`
5207  
5208  	// Identifier of the parent VPC.
5209  	VpcId string `json:"vpc_id,omitempty"`
5210  
5211  	// Name of the parent VPC.
5212  	VpcName string `json:"vpc_name,omitempty"`
5213  }
5214  
5215  func (GridCloudapiVm) ObjectType() string {
5216  	return "grid:cloudapi:vm"
5217  }
5218  
5219  func (obj GridCloudapiVm) ReturnFields() []string {
5220  	if obj.returnFields == nil {
5221  		obj.returnFields = []string{"comment", "id", "name"}
5222  	}
5223  	return obj.returnFields
5224  }
5225  
5226  // GridCloudapiVmaddress represents Infoblox object grid:cloudapi:vmaddress.
5227  // VM address is an abstract object that represents a virtual machine running
5228  // on the Cloud Management Platform.
5229  type GridCloudapiVmaddress struct {
5230  	IBBase `json:"-"`
5231  
5232  	Ref string `json:"_ref,omitempty"`
5233  
5234  	// The IP address of the interface.
5235  	Address string `json:"address,omitempty"`
5236  
5237  	// IP address type (Public, Private, Elastic, Floating, ...).
5238  	AddressType string `json:"address_type,omitempty"`
5239  
5240  	// Reference to associated IPv4 or IPv6 address.
5241  	AssociatedIp string `json:"associated_ip,omitempty"`
5242  
5243  	// Array of string denoting the types of underlying objects IPv4/IPv6 - "A",
5244  	// "AAAA", "PTR", "HOST", "FA", "RESERVATION", "UNMANAGED" + ("BULKHOST",
5245  	// "DHCP_RANGE", "RESERVED_RANGE", "LEASE", "NETWORK", "BROADCAST", "PENDING"),
5246  	AssociatedObjectTypes []string `json:"associated_object_types,omitempty"`
5247  
5248  	// The list of references to the object (Host, Fixed Address, RR, ...) that
5249  	// defines this IP.
5250  	AssociatedObjects []*Ipv4FixedAddress `json:"associated_objects,omitempty"`
5251  
5252  	// Structure containing all the cloud API related information. Only management
5253  	// platform "mgmt_platform" is updated for this object.
5254  	CloudInfo *GridCloudapiInfo `json:"cloud_info,omitempty"`
5255  
5256  	// The list of all FQDNs associated with the IP address.
5257  	DnsNames []string `json:"dns_names,omitempty"`
5258  
5259  	// Elastic IP address associated with this private address, if this address is
5260  	// a private address; otherwise empty.
5261  	ElasticAddress string `json:"elastic_address,omitempty"`
5262  
5263  	// Name of the interface associated with this IP address.
5264  	InterfaceName string `json:"interface_name,omitempty"`
5265  
5266  	// Indicates whether the address is IPv4 or IPv6.
5267  	IsIpv4 bool `json:"is_ipv4,omitempty"`
5268  
5269  	// The MAC address of the interface.
5270  	MacAddress string `json:"mac_address,omitempty"`
5271  
5272  	// The Microsoft Active Directory user related information.
5273  	MsAdUserData *MsserverAduserData `json:"ms_ad_user_data,omitempty"`
5274  
5275  	// The network to which this address belongs, in IPv4 Address/CIDR format.
5276  	Network string `json:"network,omitempty"`
5277  
5278  	// Network view name of the delegated object.
5279  	NetworkView string `json:"network_view,omitempty"`
5280  
5281  	// Port identifier of the interface.
5282  	PortId uint32 `json:"port_id,omitempty"`
5283  
5284  	// Private IP address associated with this public (or elastic or floating)
5285  	// address, if this address is a public address; otherwise empty.
5286  	PrivateAddress string `json:"private_address,omitempty"`
5287  
5288  	// Host part of the FQDN of this address if this address is a private address;
5289  	// otherwise empty
5290  	PrivateHostname string `json:"private_hostname,omitempty"`
5291  
5292  	// Public IP address associated with this private address, if this address is a
5293  	// private address; otherwise empty.
5294  	PublicAddress string `json:"public_address,omitempty"`
5295  
5296  	// Host part of the FQDN of this address if this address is a public (or
5297  	// elastic or floating) address; otherwise empty
5298  	PublicHostname string `json:"public_hostname,omitempty"`
5299  
5300  	// Network address of the subnet that is the container of this address.
5301  	SubnetAddress string `json:"subnet_address,omitempty"`
5302  
5303  	// CIDR of the subnet that is the container of this address.
5304  	SubnetCidr uint32 `json:"subnet_cidr,omitempty"`
5305  
5306  	// Subnet ID that is the container of this address.
5307  	SubnetId string `json:"subnet_id,omitempty"`
5308  
5309  	// The Cloud API Tenant object.
5310  	Tenant string `json:"tenant,omitempty"`
5311  
5312  	// Availability zone of the VM.
5313  	VmAvailabilityZone string `json:"vm_availability_zone,omitempty"`
5314  
5315  	// VM comment.
5316  	VmComment string `json:"vm_comment,omitempty"`
5317  
5318  	// Date/time the VM was first created as NIOS object.
5319  	VmCreationTime *UnixTime `json:"vm_creation_time,omitempty"`
5320  
5321  	// Host part of the FQDN of the address attached to the primary interface.
5322  	VmHostname string `json:"vm_hostname,omitempty"`
5323  
5324  	// The UUID of the Virtual Machine.
5325  	VmId string `json:"vm_id,omitempty"`
5326  
5327  	// Kernel ID of the VM that this address is associated with.
5328  	VmKernelId string `json:"vm_kernel_id,omitempty"`
5329  
5330  	// Last time the VM was updated.
5331  	VmLastUpdateTime *UnixTime `json:"vm_last_update_time,omitempty"`
5332  
5333  	// The name of the Virtual Machine.
5334  	VmName string `json:"vm_name,omitempty"`
5335  
5336  	// Count of networks containing all the addresses of the VM.
5337  	VmNetworkCount uint32 `json:"vm_network_count,omitempty"`
5338  
5339  	// Operating system that the VM is running.
5340  	VmOperatingSystem string `json:"vm_operating_system,omitempty"`
5341  
5342  	// Type of the VM this address is associated with.
5343  	VmType string `json:"vm_type,omitempty"`
5344  
5345  	// Network address of the VPC of the VM that this address is associated with.
5346  	VmVpcAddress string `json:"vm_vpc_address,omitempty"`
5347  
5348  	// CIDR of the VPC of the VM that this address is associated with.
5349  	VmVpcCidr uint32 `json:"vm_vpc_cidr,omitempty"`
5350  
5351  	// Identifier of the VPC where the VM is defined.
5352  	VmVpcId string `json:"vm_vpc_id,omitempty"`
5353  
5354  	// Name of the VPC where the VM is defined.
5355  	VmVpcName string `json:"vm_vpc_name,omitempty"`
5356  
5357  	// Reference to the VPC where the VM is defined.
5358  	VmVpcRef string `json:"vm_vpc_ref,omitempty"`
5359  }
5360  
5361  func (GridCloudapiVmaddress) ObjectType() string {
5362  	return "grid:cloudapi:vmaddress"
5363  }
5364  
5365  func (obj GridCloudapiVmaddress) ReturnFields() []string {
5366  	if obj.returnFields == nil {
5367  		obj.returnFields = []string{"address", "is_ipv4", "network_view", "port_id", "vm_name"}
5368  	}
5369  	return obj.returnFields
5370  }
5371  
5372  // GridDashboard represents Infoblox object grid:dashboard.
5373  // The Grid Dashboard object provides a configuration interface for threshold
5374  // values that are used to warn about critical ATP, RPZ and Analytics events.
5375  // These threshold values are used to calculate the security status for ATP,
5376  // RPZ, and Analytics.
5377  type GridDashboard struct {
5378  	IBBase `json:"-"`
5379  
5380  	Ref string `json:"_ref,omitempty"`
5381  
5382  	// The Grid Dashboard critical threshold for Analytics tunneling events.
5383  	AnalyticsTunnelingEventCriticalThreshold *uint32 `json:"analytics_tunneling_event_critical_threshold,omitempty"`
5384  
5385  	// The Grid Dashboard warning threshold for Analytics tunneling events.
5386  	AnalyticsTunnelingEventWarningThreshold *uint32 `json:"analytics_tunneling_event_warning_threshold,omitempty"`
5387  
5388  	// The Grid Dashboard critical threshold for ATP critical events.
5389  	AtpCriticalEventCriticalThreshold *uint32 `json:"atp_critical_event_critical_threshold,omitempty"`
5390  
5391  	// The Grid Dashboard warning threshold for ATP critical events.
5392  	AtpCriticalEventWarningThreshold *uint32 `json:"atp_critical_event_warning_threshold,omitempty"`
5393  
5394  	// The Grid Dashboard critical threshold for ATP major events.
5395  	AtpMajorEventCriticalThreshold *uint32 `json:"atp_major_event_critical_threshold,omitempty"`
5396  
5397  	// The Grid Dashboard warning threshold for ATP major events.
5398  	AtpMajorEventWarningThreshold *uint32 `json:"atp_major_event_warning_threshold,omitempty"`
5399  
5400  	// The Grid Dashboard critical threshold for ATP warning events.
5401  	AtpWarningEventCriticalThreshold *uint32 `json:"atp_warning_event_critical_threshold,omitempty"`
5402  
5403  	// The Grid Dashboard warning threshold for ATP warning events.
5404  	AtpWarningEventWarningThreshold *uint32 `json:"atp_warning_event_warning_threshold,omitempty"`
5405  
5406  	// The critical threshold value for blocked RPZ hits in the Grid dashboard.
5407  	RpzBlockedHitCriticalThreshold *uint32 `json:"rpz_blocked_hit_critical_threshold,omitempty"`
5408  
5409  	// The warning threshold value for blocked RPZ hits in the Grid dashboard.
5410  	RpzBlockedHitWarningThreshold *uint32 `json:"rpz_blocked_hit_warning_threshold,omitempty"`
5411  
5412  	// The Grid Dashboard critical threshold for RPZ passthru events.
5413  	RpzPassthruEventCriticalThreshold *uint32 `json:"rpz_passthru_event_critical_threshold,omitempty"`
5414  
5415  	// The Grid Dashboard warning threshold for RPZ passthru events.
5416  	RpzPassthruEventWarningThreshold *uint32 `json:"rpz_passthru_event_warning_threshold,omitempty"`
5417  
5418  	// The critical threshold value for substituted RPZ hits in the Grid dashboard.
5419  	RpzSubstitutedHitCriticalThreshold *uint32 `json:"rpz_substituted_hit_critical_threshold,omitempty"`
5420  
5421  	// The warning threshold value for substituted RPZ hits in the Grid dashboard.
5422  	RpzSubstitutedHitWarningThreshold *uint32 `json:"rpz_substituted_hit_warning_threshold,omitempty"`
5423  }
5424  
5425  func (GridDashboard) ObjectType() string {
5426  	return "grid:dashboard"
5427  }
5428  
5429  func (obj GridDashboard) ReturnFields() []string {
5430  	if obj.returnFields == nil {
5431  		obj.returnFields = []string{"analytics_tunneling_event_critical_threshold", "analytics_tunneling_event_warning_threshold", "atp_critical_event_critical_threshold", "atp_critical_event_warning_threshold", "atp_major_event_critical_threshold", "atp_major_event_warning_threshold", "atp_warning_event_critical_threshold", "atp_warning_event_warning_threshold", "rpz_blocked_hit_critical_threshold", "rpz_blocked_hit_warning_threshold", "rpz_passthru_event_critical_threshold", "rpz_passthru_event_warning_threshold", "rpz_substituted_hit_critical_threshold", "rpz_substituted_hit_warning_threshold"}
5432  	}
5433  	return obj.returnFields
5434  }
5435  
5436  // GridDhcpproperties represents Infoblox object grid:dhcpproperties.
5437  // This object represents a subset of the Infoblox Grid DHCP properties.
5438  type GridDhcpproperties struct {
5439  	IBBase `json:"-"`
5440  
5441  	Ref string `json:"_ref,omitempty"`
5442  
5443  	// The Grid-level authority flag. This flag specifies whether a DHCP server is
5444  	// authoritative for a domain.
5445  	Authority *bool `json:"authority,omitempty"`
5446  
5447  	// The name of a file that DHCP clients need to boot. Some DHCP clients use
5448  	// BOOTP (bootstrap protocol) or include the boot file name option in their
5449  	// DHCPREQUEST messages.
5450  	Bootfile *string `json:"bootfile,omitempty"`
5451  
5452  	// The name of the server on which a boot file is stored.
5453  	Bootserver *string `json:"bootserver,omitempty"`
5454  
5455  	// The Grid-level capture hostname flag. Set this flag to capture the hostname
5456  	// and lease time when assigning a fixed address.
5457  	CaptureHostname *bool `json:"capture_hostname,omitempty"`
5458  
5459  	// The member DDNS domain name value.
5460  	DdnsDomainname *string `json:"ddns_domainname,omitempty"`
5461  
5462  	// Determines if the ability of a DHCP server to generate a host name and
5463  	// update DNS with this host name when it receives a DHCP REQUEST message that
5464  	// does not include a host name is enabled or not.
5465  	DdnsGenerateHostname *bool `json:"ddns_generate_hostname,omitempty"`
5466  
5467  	// Determines the retry interval when the DHCP server makes repeated attempts
5468  	// to send DDNS updates to a DNS server.
5469  	DdnsRetryInterval *uint32 `json:"ddns_retry_interval,omitempty"`
5470  
5471  	// Determines that only the DHCP server is allowed to update DNS, regardless of
5472  	// the requests from the DHCP clients.
5473  	DdnsServerAlwaysUpdates *bool `json:"ddns_server_always_updates,omitempty"`
5474  
5475  	// The DDNS TTL (Dynamic DNS Time To Live) value specifies the number of
5476  	// seconds an IP address for the name is cached.
5477  	DdnsTtl *uint32 `json:"ddns_ttl,omitempty"`
5478  
5479  	// Determines if the Grid DHCP server's ability to update the A and PTR records
5480  	// with a fixed address is enabled or not.
5481  	DdnsUpdateFixedAddresses *bool `json:"ddns_update_fixed_addresses,omitempty"`
5482  
5483  	// Determines if support for option 81 is enabled or not.
5484  	DdnsUseOption81 *bool `json:"ddns_use_option81,omitempty"`
5485  
5486  	// Determines if deny BOOTP is enabled or not.
5487  	DenyBootp *bool `json:"deny_bootp,omitempty"`
5488  
5489  	// If set to True, NAC filters will be disabled on the Infoblox Grid.
5490  	DisableAllNacFilters *bool `json:"disable_all_nac_filters,omitempty"`
5491  
5492  	// The update style for dynamic DNS updates.
5493  	DnsUpdateStyle string `json:"dns_update_style,omitempty"`
5494  
5495  	// The Grid-level email_list value. Specify an e-mail address to which you want
5496  	// the Infoblox appliance to send e-mail notifications when the DHCP address
5497  	// usage for the grid crosses a threshold. You can create a list of several
5498  	// e-mail addresses.
5499  	EmailList []string `json:"email_list,omitempty"`
5500  
5501  	// Determines if the member DHCP server's ability to send DDNS updates is
5502  	// enabled or not.
5503  	EnableDdns *bool `json:"enable_ddns,omitempty"`
5504  
5505  	// Represents the watermarks above or below which address usage in a network is
5506  	// unexpected and might warrant your attention.
5507  	EnableDhcpThresholds *bool `json:"enable_dhcp_thresholds,omitempty"`
5508  
5509  	// Determines if e-mail warnings are enabled or disabled. When DHCP threshold
5510  	// is enabled and DHCP address usage crosses a watermark threshold, the
5511  	// appliance sends an e-mail notification to an administrator.
5512  	EnableEmailWarnings *bool `json:"enable_email_warnings,omitempty"`
5513  
5514  	// Determines if the fingerprint feature is enabled or not. If you enable this
5515  	// feature, the server will match a fingerprint for incoming lease requests.
5516  	EnableFingerprint *bool `json:"enable_fingerprint,omitempty"`
5517  
5518  	// Determines whether all appliances are enabled to receive GSS-TSIG
5519  	// authenticated updates from DHCP clients.
5520  	EnableGssTsig *bool `json:"enable_gss_tsig,omitempty"`
5521  
5522  	// Determines if the Grid-level host name rewrite feature is enabled or not.
5523  	EnableHostnameRewrite *bool `json:"enable_hostname_rewrite,omitempty"`
5524  
5525  	// Determines if lease query is allowed or not.
5526  	EnableLeasequery *bool `json:"enable_leasequery,omitempty"`
5527  
5528  	// Determines if DHCP servers in a Grid support roaming hosts or not.
5529  	EnableRoamingHosts *bool `json:"enable_roaming_hosts,omitempty"`
5530  
5531  	// Determined if the SNMP warnings on Grid-level are enabled or not. When DHCP
5532  	// threshold is enabled and DHCP address usage crosses a watermark threshold,
5533  	// the appliance sends an SNMP trap to the trap receiver that you defined you
5534  	// defined at the Grid member level.
5535  	EnableSnmpWarnings *bool `json:"enable_snmp_warnings,omitempty"`
5536  
5537  	// The format option for Option 82 logging.
5538  	FormatLogOption82 string `json:"format_log_option_82,omitempty"`
5539  
5540  	// Determines the Grid that serves DHCP. This specifies a group of Infoblox
5541  	// appliances that are connected together to provide a single point of device
5542  	// administration and service configuration in a secure, highly available
5543  	// environment.
5544  	Grid string `json:"grid,omitempty"`
5545  
5546  	// The list of GSS-TSIG keys for a Grid DHCP object.
5547  	GssTsigKeys []*Kerberoskey `json:"gss_tsig_keys,omitempty"`
5548  
5549  	// Determines the high watermark value of a Grid DHCP server. If the percentage
5550  	// of allocated addresses exceeds this watermark, the appliance makes a syslog
5551  	// entry and sends an e-mail notification (if enabled). Specifies the
5552  	// percentage of allocated addresses. The range is from 1 to 100.
5553  	HighWaterMark *uint32 `json:"high_water_mark,omitempty"`
5554  
5555  	// Determines the high watermark reset value of a member DHCP server. If the
5556  	// percentage of allocated addresses drops below this value, a corresponding
5557  	// SNMP trap is reset. Specifies the percentage of allocated addresses. The
5558  	// range is from 1 to 100. The high watermark reset value must be lower than
5559  	// the high watermark value.
5560  	HighWaterMarkReset *uint32 `json:"high_water_mark_reset,omitempty"`
5561  
5562  	// The name of the default hostname rewrite policy, which is also in the
5563  	// protocol_hostname_rewrite_policies array.
5564  	HostnameRewritePolicy *string `json:"hostname_rewrite_policy,omitempty"`
5565  
5566  	// Determines if the ignore DHCP option list request flag of a Grid DHCP is
5567  	// enabled or not. If this flag is set to true all available DHCP options will
5568  	// be returned to the client.
5569  	IgnoreDhcpOptionListRequest *bool `json:"ignore_dhcp_option_list_request,omitempty"`
5570  
5571  	// Indicates whether the appliance will ignore DHCP client IDs or MAC
5572  	// addresses. Valid values are "NONE", "CLIENT", or "MACADDR". The default is
5573  	// "NONE".
5574  	IgnoreId string `json:"ignore_id,omitempty"`
5575  
5576  	// A list of MAC addresses the appliance will ignore.
5577  	IgnoreMacAddresses []string `json:"ignore_mac_addresses,omitempty"`
5578  
5579  	// Determines if the fixed address configuration takes effect immediately
5580  	// without DHCP service restart or not.
5581  	ImmediateFaConfiguration *bool `json:"immediate_fa_configuration,omitempty"`
5582  
5583  	// Determines if the IPv6 host name and lease time is captured or not while
5584  	// assigning a fixed address.
5585  	Ipv6CaptureHostname *bool `json:"ipv6_capture_hostname,omitempty"`
5586  
5587  	// The Grid-level DDNS domain name value.
5588  	Ipv6DdnsDomainname *string `json:"ipv6_ddns_domainname,omitempty"`
5589  
5590  	// Controls whether the FQDN option sent by the client is to be used, or if the
5591  	// server can automatically generate the FQDN.
5592  	Ipv6DdnsEnableOptionFqdn *bool `json:"ipv6_ddns_enable_option_fqdn,omitempty"`
5593  
5594  	// Determines if the server always updates DNS or updates only if requested by
5595  	// the client.
5596  	Ipv6DdnsServerAlwaysUpdates *bool `json:"ipv6_ddns_server_always_updates,omitempty"`
5597  
5598  	// The Grid-level IPv6 DDNS TTL value.
5599  	Ipv6DdnsTtl *uint32 `json:"ipv6_ddns_ttl,omitempty"`
5600  
5601  	// The Grid-level IPv6 default prefix.
5602  	Ipv6DefaultPrefix *string `json:"ipv6_default_prefix,omitempty"`
5603  
5604  	// The update style for dynamic DHCPv6 DNS updates.
5605  	Ipv6DnsUpdateStyle string `json:"ipv6_dns_update_style,omitempty"`
5606  
5607  	// The IPv6 domain name.
5608  	Ipv6DomainName *string `json:"ipv6_domain_name,omitempty"`
5609  
5610  	// The comma separated list of domain name server addresses in IPv6 address
5611  	// format.
5612  	Ipv6DomainNameServers []string `json:"ipv6_domain_name_servers,omitempty"`
5613  
5614  	// Determines if sending DDNS updates by the DHCPv6 server is enabled or not.
5615  	Ipv6EnableDdns *bool `json:"ipv6_enable_ddns,omitempty"`
5616  
5617  	// Determines whether the all appliances are enabled to receive GSS-TSIG
5618  	// authenticated updates from DHCPv6 clients.
5619  	Ipv6EnableGssTsig *bool `json:"ipv6_enable_gss_tsig,omitempty"`
5620  
5621  	// Indicates whether DHCPv6 lease scavenging is enabled or disabled.
5622  	Ipv6EnableLeaseScavenging *bool `json:"ipv6_enable_lease_scavenging,omitempty"`
5623  
5624  	// Determines if the DHCPv6 server retries failed dynamic DNS updates or not.
5625  	Ipv6EnableRetryUpdates *bool `json:"ipv6_enable_retry_updates,omitempty"`
5626  
5627  	// Determines if the server generates the hostname if it is not sent by the
5628  	// client.
5629  	Ipv6GenerateHostname *bool `json:"ipv6_generate_hostname,omitempty"`
5630  
5631  	// The list of GSS-TSIG keys for a Grid DHCPv6 object.
5632  	Ipv6GssTsigKeys []*Kerberoskey `json:"ipv6_gss_tsig_keys,omitempty"`
5633  
5634  	// The IPv6 address or FQDN of the Kerberos server for DHCPv6 GSS-TSIG
5635  	// authentication.
5636  	Ipv6KdcServer *string `json:"ipv6_kdc_server,omitempty"`
5637  
5638  	// The Grid-level grace period (in seconds) to keep an expired lease before it
5639  	// is deleted by the scavenging process.
5640  	Ipv6LeaseScavengingTime *uint32 `json:"ipv6_lease_scavenging_time,omitempty"`
5641  
5642  	// The Grid-level Microsoft client DHCP IPv6 code page value. This value is the
5643  	// hostname translation code page for Microsoft DHCP IPv6 clients.
5644  	Ipv6MicrosoftCodePage string `json:"ipv6_microsoft_code_page,omitempty"`
5645  
5646  	// An array of DHCP option dhcpoption structs that lists the DHCPv6 options
5647  	// associated with the object.
5648  	Ipv6Options []*Dhcpoption `json:"ipv6_options,omitempty"`
5649  
5650  	// The Grid-level list of IPv6 prefixes.
5651  	Ipv6Prefixes []string `json:"ipv6_prefixes,omitempty"`
5652  
5653  	// Determines if the IPv6 recycle leases feature is enabled or not. If the
5654  	// feature is enabled, leases are kept in the Recycle Bin until one week after
5655  	// expiration. When the feature is disabled, the leases are irrecoverably
5656  	// deleted.
5657  	Ipv6RecycleLeases *bool `json:"ipv6_recycle_leases,omitempty"`
5658  
5659  	// Enable binding for expired DHCPv6 leases.
5660  	Ipv6RememberExpiredClientAssociation *bool `json:"ipv6_remember_expired_client_association,omitempty"`
5661  
5662  	// Determines the retry interval when the member DHCPv6 server makes repeated
5663  	// attempts to send DDNS updates to a DNS server.
5664  	Ipv6RetryUpdatesInterval *uint32 `json:"ipv6_retry_updates_interval,omitempty"`
5665  
5666  	// The Grid-level TXT record handling value. This value specifies how DHCPv6
5667  	// should treat the TXT records when performing DNS updates.
5668  	Ipv6TxtRecordHandling string `json:"ipv6_txt_record_handling,omitempty"`
5669  
5670  	// Controls whether the DHCPv6 server updates DNS when an IPv6 DHCP lease is
5671  	// renewed.
5672  	Ipv6UpdateDnsOnLeaseRenewal *bool `json:"ipv6_update_dns_on_lease_renewal,omitempty"`
5673  
5674  	// The IPv4 address or FQDN of the Kerberos server for DHCPv4 GSS-TSIG
5675  	// authentication.
5676  	KdcServer *string `json:"kdc_server,omitempty"`
5677  
5678  	// The Grid member on which you want to store the DHCP lease history log.
5679  	// Infoblox recommends that you dedicate a member other than the master as a
5680  	// logging member. If possible, use this member solely for storing the DHCP
5681  	// lease history log. If you do not select a member, no logging can occur.
5682  	LeaseLoggingMember *string `json:"lease_logging_member,omitempty"`
5683  
5684  	// Defines how the appliance releases DHCP leases. Valid values are
5685  	// "RELEASE_MACHING_ID", "NEVER_RELEASE", or "ONE_LEASE_PER_CLIENT". The
5686  	// default is "RELEASE_MATCHING_ID".
5687  	LeasePerClientSettings string `json:"lease_per_client_settings,omitempty"`
5688  
5689  	// Determines the lease scavenging time value. When this field is set, the
5690  	// appliance permanently deletes the free and backup leases, that remain in the
5691  	// database beyond a specified period of time. To disable lease scavenging, set
5692  	// the parameter to -1. The minimum positive value must be greater than 86400
5693  	// seconds (1 day).
5694  	LeaseScavengeTime int `json:"lease_scavenge_time,omitempty"`
5695  
5696  	// This value specifies whether the Grid DHCP members log lease events is
5697  	// enabled or not.
5698  	LogLeaseEvents *bool `json:"log_lease_events,omitempty"`
5699  
5700  	// This field contains the logic filters to be applied on the Infoblox Grid.
5701  	// This list corresponds to the match rules that are written to the dhcpd
5702  	// configuration file.
5703  	LogicFilterRules []*Logicfilterrule `json:"logic_filter_rules,omitempty"`
5704  
5705  	// Determines the low watermark value. If the percent of allocated addresses
5706  	// drops below this watermark, the appliance makes a syslog entry and if
5707  	// enabled, sends an e-mail notification.
5708  	LowWaterMark *uint32 `json:"low_water_mark,omitempty"`
5709  
5710  	// Determines the low watermark reset value.If the percentage of allocated
5711  	// addresses exceeds this value, a corresponding SNMP trap is reset. A number
5712  	// that specifies the percentage of allocated addresses. The range is from 1 to
5713  	// 100. The low watermark reset value must be higher than the low watermark
5714  	// value.
5715  	LowWaterMarkReset *uint32 `json:"low_water_mark_reset,omitempty"`
5716  
5717  	// The Microsoft client DHCP IPv4 code page value of a Grid. This value is the
5718  	// hostname translation code page for Microsoft DHCP IPv4 clients.
5719  	MicrosoftCodePage string `json:"microsoft_code_page,omitempty"`
5720  
5721  	// The next server value of a DHCP server. This value is the IP address or name
5722  	// of the boot file server on which the boot file is stored.
5723  	Nextserver *string `json:"nextserver,omitempty"`
5724  
5725  	// The list of option 60 match rules.
5726  	Option60MatchRules []*Option60matchrule `json:"option60_match_rules,omitempty"`
5727  
5728  	// An array of DHCP option dhcpoption structs that lists the DHCP options
5729  	// associated with the object. Note that WAPI does not return special options
5730  	// 'routers', 'domain-name-servers', 'domain-name' and 'broadcast-address' with
5731  	// empty values for this object.
5732  	Options []*Dhcpoption `json:"options,omitempty"`
5733  
5734  	// Specifies the number of pings that the Infoblox appliance sends to an IP
5735  	// address to verify that it is not in use. Values are range is from 0 to 10,
5736  	// where 0 disables pings.
5737  	PingCount *uint32 `json:"ping_count,omitempty"`
5738  
5739  	// Indicates the number of milliseconds the appliance waits for a response to
5740  	// its ping. Valid values are 100, 500, 1000, 2000, 3000, 4000 and 5000
5741  	// milliseconds.
5742  	PingTimeout *uint32 `json:"ping_timeout,omitempty"`
5743  
5744  	// The preferred lifetime value.
5745  	PreferredLifetime *uint32 `json:"preferred_lifetime,omitempty"`
5746  
5747  	// The Prefix length mode for DHCPv6.
5748  	PrefixLengthMode string `json:"prefix_length_mode,omitempty"`
5749  
5750  	// The list of hostname rewrite policies.
5751  	ProtocolHostnameRewritePolicies []*Hostnamerewritepolicy `json:"protocol_hostname_rewrite_policies,omitempty"`
5752  
5753  	// Specifies the duration of time it takes a host to connect to a boot server,
5754  	// such as a TFTP server, and download the file it needs to boot. A 32-bit
5755  	// unsigned integer that represents the duration, in seconds, for which the
5756  	// update is cached. Zero indicates that the update is not cached.
5757  	PxeLeaseTime *uint32 `json:"pxe_lease_time,omitempty"`
5758  
5759  	// Determines if the recycle leases feature is enabled or not. If you enabled
5760  	// this feature, and then delete a DHCP range, the appliance stores active
5761  	// leases from this range up to one week after the leases expires.
5762  	RecycleLeases *bool `json:"recycle_leases,omitempty"`
5763  
5764  	// The restart setting.
5765  	RestartSetting *GridServicerestart `json:"restart_setting,omitempty"`
5766  
5767  	// Indicates whether the DHCP server makes repeated attempts to send DDNS
5768  	// updates to a DNS server.
5769  	RetryDdnsUpdates *bool `json:"retry_ddns_updates,omitempty"`
5770  
5771  	// The syslog facility is the location on the syslog server to which you want
5772  	// to sort the syslog messages.
5773  	SyslogFacility string `json:"syslog_facility,omitempty"`
5774  
5775  	// The Grid-level TXT record handling value. This value specifies how DHCP
5776  	// should treat the TXT records when performing DNS updates.
5777  	TxtRecordHandling string `json:"txt_record_handling,omitempty"`
5778  
5779  	// Controls whether the DHCP server updates DNS when a DHCP lease is renewed.
5780  	UpdateDnsOnLeaseRenewal *bool `json:"update_dns_on_lease_renewal,omitempty"`
5781  
5782  	// The valid lifetime for the Grid members.
5783  	ValidLifetime *uint32 `json:"valid_lifetime,omitempty"`
5784  }
5785  
5786  func (GridDhcpproperties) ObjectType() string {
5787  	return "grid:dhcpproperties"
5788  }
5789  
5790  func (obj GridDhcpproperties) ReturnFields() []string {
5791  	if obj.returnFields == nil {
5792  		obj.returnFields = []string{"disable_all_nac_filters", "grid"}
5793  	}
5794  	return obj.returnFields
5795  }
5796  
5797  // GridDns represents Infoblox object grid:dns.
5798  // This object supports DNS service management and configuration such as
5799  // time-to-live (TTL) settings, zone transfers, queries, root name servers,
5800  // dynamic updates, sort lists, Transaction Signatures (TSIG) for DNS and
5801  // others, all at the grid level. The service configurations of a grid are
5802  // inherited by all members, zones, and networks unless you specifically
5803  // override them for selected members, zones, and networks. For this reason, it
5804  // is recommended that you configure services at the grid level before
5805  // configuring member, zone and network services.
5806  type GridDns struct {
5807  	IBBase `json:"-"`
5808  
5809  	Ref string `json:"_ref,omitempty"`
5810  
5811  	// Add custom IP, MAC and DNS View name ENDS0 options to outgoing recursive
5812  	// queries.
5813  	AddClientIpMacOptions *bool `json:"add_client_ip_mac_options,omitempty"`
5814  
5815  	// Determines if DDNS bulk host is allowed or not.
5816  	AllowBulkhostDdns string `json:"allow_bulkhost_ddns,omitempty"`
5817  
5818  	// Determines whether GSS-TSIG zone update is enabled for all Grid members.
5819  	AllowGssTsigZoneUpdates *bool `json:"allow_gss_tsig_zone_updates,omitempty"`
5820  
5821  	// Determines if queries from the specified IPv4 or IPv6 addresses and networks
5822  	// are allowed or not. The appliance can also use Transaction Signature (TSIG)
5823  	// keys to authenticate the queries.
5824  	AllowQuery []*Addressac `json:"allow_query,omitempty"`
5825  
5826  	// Determines if the responses to recursive queries are enabled or not.
5827  	AllowRecursiveQuery *bool `json:"allow_recursive_query,omitempty"`
5828  
5829  	// Determines if zone transfers from specified IPv4 or IPv6 addresses and
5830  	// networks or transfers from hosts authenticated by Transaction signature
5831  	// (TSIG) key are allowed or not.
5832  	AllowTransfer []*Addressac `json:"allow_transfer,omitempty"`
5833  
5834  	// Determines if dynamic updates from specified IPv4 or IPv6 addresses,
5835  	// networks or from host authenticated by TSIG key are allowed or not.
5836  	AllowUpdate []*Addressac `json:"allow_update,omitempty"`
5837  
5838  	// Determines if the anonymization of captured DNS responses is enabled or
5839  	// disabled.
5840  	AnonymizeResponseLogging *bool `json:"anonymize_response_logging,omitempty"`
5841  
5842  	// Mitigation settings for DNS attacks.
5843  	AttackMitigation *GridAttackmitigation `json:"attack_mitigation,omitempty"`
5844  
5845  	// The auto blackhole settings.
5846  	AutoBlackhole *GridAutoblackhole `json:"auto_blackhole,omitempty"`
5847  
5848  	// The BIND check names policy, which indicates the action the appliance takes
5849  	// when it encounters host names that do not comply with the Strict Hostname
5850  	// Checking policy. This method applies only if the host name restriction
5851  	// policy is set to "Strict Hostname Checking".
5852  	BindCheckNamesPolicy string `json:"bind_check_names_policy,omitempty"`
5853  
5854  	// The value of the hostname directive for BIND.
5855  	BindHostnameDirective string `json:"bind_hostname_directive,omitempty"`
5856  
5857  	// The list of IPv4 or IPv6 addresses and networks from which DNS queries are
5858  	// blocked.
5859  	BlackholeList []*Addressac `json:"blackhole_list,omitempty"`
5860  
5861  	// The action to perform when a domain name matches the pattern defined in a
5862  	// rule that is specified by the blacklist ruleset.
5863  	BlacklistAction string `json:"blacklist_action,omitempty"`
5864  
5865  	// Determines if blacklist redirection queries are logged or not.
5866  	BlacklistLogQuery *bool `json:"blacklist_log_query,omitempty"`
5867  
5868  	// The IP addresses the appliance includes in the response it sends in place of
5869  	// a blacklisted IP address.
5870  	BlacklistRedirectAddresses []string `json:"blacklist_redirect_addresses,omitempty"`
5871  
5872  	// The TTL value (in seconds) of the synthetic DNS responses that result from
5873  	// blacklist redirection.
5874  	BlacklistRedirectTtl *uint32 `json:"blacklist_redirect_ttl,omitempty"`
5875  
5876  	// The DNS Ruleset object names assigned at the Grid level for blacklist
5877  	// redirection.
5878  	BlacklistRulesets []string `json:"blacklist_rulesets,omitempty"`
5879  
5880  	// The list of bulk host name templates. There are four Infoblox predefined
5881  	// bulk host name templates. Template Name Template Format "Four Octets"
5882  	// -$1-$2-$3-$4 "Three Octets" -$2-$3-$4 "Two Octets" -$3-$4 "One Octet" -$4
5883  	BulkHostNameTemplates []*Bulkhostnametemplate `json:"bulk_host_name_templates,omitempty"`
5884  
5885  	// Determines if the capture of DNS queries for all domains is enabled or
5886  	// disabled.
5887  	CaptureDnsQueriesOnAllDomains *bool `json:"capture_dns_queries_on_all_domains,omitempty"`
5888  
5889  	// Determines whether the application of BIND check-names for zone transfers
5890  	// and DDNS updates are enabled.
5891  	CheckNamesForDdnsAndZoneTransfer *bool `json:"check_names_for_ddns_and_zone_transfer,omitempty"`
5892  
5893  	// The list of zone domain names that are allowed or forbidden for EDNS client
5894  	// subnet (ECS) recursion.
5895  	ClientSubnetDomains []*Clientsubnetdomain `json:"client_subnet_domains,omitempty"`
5896  
5897  	// Default IPv4 Source Prefix-Length used when sending queries with EDNS client
5898  	// subnet option.
5899  	ClientSubnetIpv4PrefixLength *uint32 `json:"client_subnet_ipv4_prefix_length,omitempty"`
5900  
5901  	// Default IPv6 Source Prefix-Length used when sending queries with EDNS client
5902  	// subnet option.
5903  	ClientSubnetIpv6PrefixLength *uint32 `json:"client_subnet_ipv6_prefix_length,omitempty"`
5904  
5905  	// Copy custom IP, MAC and DNS View name ENDS0 options from incoming to
5906  	// outgoing recursive queries.
5907  	CopyClientIpMacOptions *bool `json:"copy_client_ip_mac_options,omitempty"`
5908  
5909  	// The allowed IPs, from the zone transfer list, added to the also-notify
5910  	// statement in the named.conf file.
5911  	CopyXferToNotify *bool `json:"copy_xfer_to_notify,omitempty"`
5912  
5913  	// The list of customized root nameserver(s). You can use Internet root name
5914  	// servers or specify host names and IP addresses of custom root name servers.
5915  	CustomRootNameServers []NameServer `json:"custom_root_name_servers,omitempty"`
5916  
5917  	// Defines whether creation timestamp of RR should be updated ' when DDNS
5918  	// update happens even if there is no change to ' the RR.
5919  	DdnsForceCreationTimestampUpdate *bool `json:"ddns_force_creation_timestamp_update,omitempty"`
5920  
5921  	// The DDNS Principal cluster group name.
5922  	DdnsPrincipalGroup *string `json:"ddns_principal_group,omitempty"`
5923  
5924  	// Determines if the DDNS principal track is enabled or disabled.
5925  	DdnsPrincipalTracking *bool `json:"ddns_principal_tracking,omitempty"`
5926  
5927  	// Determines if an option to restrict DDNS update request based on FQDN
5928  	// patterns is enabled or disabled.
5929  	DdnsRestrictPatterns *bool `json:"ddns_restrict_patterns,omitempty"`
5930  
5931  	// The unordered list of restriction patterns for an option of to restrict DDNS
5932  	// updates based on FQDN patterns.
5933  	DdnsRestrictPatternsList []string `json:"ddns_restrict_patterns_list,omitempty"`
5934  
5935  	// Determines if an option to restrict DDNS update request to protected
5936  	// resource records is enabled or disabled.
5937  	DdnsRestrictProtected *bool `json:"ddns_restrict_protected,omitempty"`
5938  
5939  	// Determines if DDNS update request for principal other than target resource
5940  	// record's principal is restricted.
5941  	DdnsRestrictSecure *bool `json:"ddns_restrict_secure,omitempty"`
5942  
5943  	// Determines if an option to restrict DDNS update request to resource records
5944  	// which are marked as 'STATIC' is enabled or disabled.
5945  	DdnsRestrictStatic *bool `json:"ddns_restrict_static,omitempty"`
5946  
5947  	// Default bulk host name of a Grid DNS.
5948  	DefaultBulkHostNameTemplate *string `json:"default_bulk_host_name_template,omitempty"`
5949  
5950  	// The default TTL value of a Grid DNS object. This interval tells the
5951  	// secondary how long the data can be cached.
5952  	DefaultTtl *uint32 `json:"default_ttl,omitempty"`
5953  
5954  	// Determines if the EDNS0 support for queries that require recursive
5955  	// resolution on Grid members is enabled or not.
5956  	DisableEdns *bool `json:"disable_edns,omitempty"`
5957  
5958  	// The list of DNS64 synthesis groups associated with this Grid DNS object.
5959  	Dns64Groups []string `json:"dns64_groups,omitempty"`
5960  
5961  	// The minimum TTL value, in seconds, that a DNS record must have in order for
5962  	// it to be cached by the DNS Cache Acceleration service. An integer from 1 to
5963  	// 65000 that represents the TTL in seconds.
5964  	DnsCacheAccelerationTtl *uint32 `json:"dns_cache_acceleration_ttl,omitempty"`
5965  
5966  	// Determines if the anycast failure (BFD session down) is enabled on member
5967  	// failure or not.
5968  	DnsHealthCheckAnycastControl *bool `json:"dns_health_check_anycast_control,omitempty"`
5969  
5970  	// The list of domain names for the DNS health check.
5971  	DnsHealthCheckDomainList []string `json:"dns_health_check_domain_list,omitempty"`
5972  
5973  	// The time interval (in seconds) for DNS health check.
5974  	DnsHealthCheckInterval *uint32 `json:"dns_health_check_interval,omitempty"`
5975  
5976  	// Determines if the recursive DNS health check is enabled or not.
5977  	DnsHealthCheckRecursionFlag *bool `json:"dns_health_check_recursion_flag,omitempty"`
5978  
5979  	// The number of DNS health check retries.
5980  	DnsHealthCheckRetries *uint32 `json:"dns_health_check_retries,omitempty"`
5981  
5982  	// The DNS health check timeout interval (in seconds).
5983  	DnsHealthCheckTimeout *uint32 `json:"dns_health_check_timeout,omitempty"`
5984  
5985  	// The time limit (in minutes) for the DNS query capture file.
5986  	DnsQueryCaptureFileTimeLimit *uint32 `json:"dns_query_capture_file_time_limit,omitempty"`
5987  
5988  	// Determines if the blacklist rules for DNSSEC-enabled clients are enabled or
5989  	// not.
5990  	DnssecBlacklistEnabled *bool `json:"dnssec_blacklist_enabled,omitempty"`
5991  
5992  	// Determines if the DNS64 groups for DNSSEC-enabled clients are enabled or
5993  	// not.
5994  	DnssecDns64Enabled *bool `json:"dnssec_dns64_enabled,omitempty"`
5995  
5996  	// Determines if the DNS security extension is enabled or not.
5997  	DnssecEnabled *bool `json:"dnssec_enabled,omitempty"`
5998  
5999  	// Determines when the DNS member accepts expired signatures.
6000  	DnssecExpiredSignaturesEnabled *bool `json:"dnssec_expired_signatures_enabled,omitempty"`
6001  
6002  	// This structure contains the DNSSEC key parameters for this zone.
6003  	DnssecKeyParams *Dnsseckeyparams `json:"dnssec_key_params,omitempty"`
6004  
6005  	// A list of zones for which the server does not perform DNSSEC validation.
6006  	DnssecNegativeTrustAnchors []string `json:"dnssec_negative_trust_anchors,omitempty"`
6007  
6008  	// Determines if the NXDOMAIN rules for DNSSEC-enabled clients are enabled or
6009  	// not.
6010  	DnssecNxdomainEnabled *bool `json:"dnssec_nxdomain_enabled,omitempty"`
6011  
6012  	// Determines if the RPZ policies for DNSSEC-enabled clients are enabled or
6013  	// not.
6014  	DnssecRpzEnabled *bool `json:"dnssec_rpz_enabled,omitempty"`
6015  
6016  	// The list of trusted keys for the DNSSEC feature.
6017  	DnssecTrustedKeys []*Dnssectrustedkey `json:"dnssec_trusted_keys,omitempty"`
6018  
6019  	// Determines if the DNS security validation is enabled or not.
6020  	DnssecValidationEnabled *bool `json:"dnssec_validation_enabled,omitempty"`
6021  
6022  	// The DNSTAP settings.
6023  	DnstapSetting *Dnstapsetting `json:"dnstap_setting,omitempty"`
6024  
6025  	// The list of domains for DNS query capture.
6026  	DomainsToCaptureDnsQueries []string `json:"domains_to_capture_dns_queries,omitempty"`
6027  
6028  	// Setting to control specific behavior for DTC DNS responses for incoming lbdn
6029  	// matched queries.
6030  	DtcDnsQueriesSpecificBehavior string `json:"dtc_dns_queries_specific_behavior,omitempty"`
6031  
6032  	// DTC DNSSEC operation mode.
6033  	DtcDnssecMode string `json:"dtc_dnssec_mode,omitempty"`
6034  
6035  	// Determines whether to prefer the client address from the edns-client-subnet
6036  	// option for DTC or not.
6037  	DtcEdnsPreferClientSubnet *bool `json:"dtc_edns_prefer_client_subnet,omitempty"`
6038  
6039  	// The scheduled backup configuration.
6040  	DtcScheduledBackup *Scheduledbackup `json:"dtc_scheduled_backup,omitempty"`
6041  
6042  	// The DTC topology extensible attribute definition list. When configuring a
6043  	// DTC topology, users may configure classification as either "Geographic" or
6044  	// "Extensible Attributes". Selecting extensible attributes will replace
6045  	// supported Topology database labels (Continent, Country, Subdivision, City)
6046  	// with the names of the selection EA types and provide values extracted from
6047  	// DHCP Network Container, Network and Range objects with those extensible
6048  	// attributes.
6049  	DtcTopologyEaList []string `json:"dtc_topology_ea_list,omitempty"`
6050  
6051  	// Advertises the EDNS0 buffer size to the upstream server. The value should be
6052  	// between 512 and 4096 bytes. The recommended value is between 512 and 1220
6053  	// bytes.
6054  	EdnsUdpSize *uint32 `json:"edns_udp_size,omitempty"`
6055  
6056  	// The email address of a Grid DNS object.
6057  	Email *string `json:"email,omitempty"`
6058  
6059  	// Determines if the blocking of DNS queries is enabled or not.
6060  	EnableBlackhole *bool `json:"enable_blackhole,omitempty"`
6061  
6062  	// Determines if a blacklist is enabled or not.
6063  	EnableBlacklist *bool `json:"enable_blacklist,omitempty"`
6064  
6065  	// Determines if the capture of DNS queries is enabled or disabled.
6066  	EnableCaptureDnsQueries *bool `json:"enable_capture_dns_queries,omitempty"`
6067  
6068  	// Determines if the capture of DNS responses is enabled or disabled.
6069  	EnableCaptureDnsResponses *bool `json:"enable_capture_dns_responses,omitempty"`
6070  
6071  	// Determines whether to enable forwarding EDNS client subnet options to
6072  	// upstream servers.
6073  	EnableClientSubnetForwarding *bool `json:"enable_client_subnet_forwarding,omitempty"`
6074  
6075  	// Determines whether to enable adding EDNS client subnet options in recursive
6076  	// resolution.
6077  	EnableClientSubnetRecursive *bool `json:"enable_client_subnet_recursive,omitempty"`
6078  
6079  	// Determines if the ability to automatically remove associated PTR records
6080  	// while deleting A or AAAA records is enabled or not.
6081  	EnableDeleteAssociatedPtr *bool `json:"enable_delete_associated_ptr,omitempty"`
6082  
6083  	// Determines if the DNS64 support is enabled or not.
6084  	EnableDns64 *bool `json:"enable_dns64,omitempty"`
6085  
6086  	// Determines if the DNS health check is enabled or not.
6087  	EnableDnsHealthCheck *bool `json:"enable_dns_health_check,omitempty"`
6088  
6089  	// Determines whether the query messages need to be forwarded to DNSTAP or not.
6090  	EnableDnstapQueries *bool `json:"enable_dnstap_queries,omitempty"`
6091  
6092  	// Determines whether the response messages need to be forwarded to DNSTAP or
6093  	// not.
6094  	EnableDnstapResponses *bool `json:"enable_dnstap_responses,omitempty"`
6095  
6096  	// Determines if excluding domain names from captured DNS queries and responses
6097  	// is enabled or disabled.
6098  	EnableExcludedDomainNames *bool `json:"enable_excluded_domain_names,omitempty"`
6099  
6100  	// Determines if the fixed RRset order FQDN is enabled or not.
6101  	EnableFixedRrsetOrderFqdns *bool `json:"enable_fixed_rrset_order_fqdns,omitempty"`
6102  
6103  	// Determines whether Fault Tolerant Caching (FTC) is enabled.
6104  	EnableFtc *bool `json:"enable_ftc,omitempty"`
6105  
6106  	// Determines whether all appliances in the Grid are enabled to receive
6107  	// GSS-TSIG authenticated updates from DNS clients.
6108  	EnableGssTsig *bool `json:"enable_gss_tsig,omitempty"`
6109  
6110  	// Determines if the host RRset order is enabled or not.
6111  	EnableHostRrsetOrder *bool `json:"enable_host_rrset_order,omitempty"`
6112  
6113  	// Determines whether Hardware Security Modules (HSMs) are enabled for key
6114  	// generation and signing. Note, that you must configure the HSM group with at
6115  	// least one enabled HSM.
6116  	EnableHsmSigning *bool `json:"enable_hsm_signing,omitempty"`
6117  
6118  	// Determines if the notify source port at the Grid Level is enabled or not.
6119  	EnableNotifySourcePort *bool `json:"enable_notify_source_port,omitempty"`
6120  
6121  	// Determines if the DNS query rewrite is enabled or not.
6122  	EnableQueryRewrite *bool `json:"enable_query_rewrite,omitempty"`
6123  
6124  	// Determines if the query source port at the Grid Level is enabled or not.
6125  	EnableQuerySourcePort *bool `json:"enable_query_source_port,omitempty"`
6126  
6127  	// The list of domains that are excluded from DNS query and response capture.
6128  	ExcludedDomainNames []string `json:"excluded_domain_names,omitempty"`
6129  
6130  	// The expiration time of a Grid DNS object. If the secondary DNS server fails
6131  	// to contact the primary server for the specified interval, the secondary
6132  	// server stops giving out answers about the zone because the zone data is too
6133  	// old to be useful.
6134  	ExpireAfter *uint32 `json:"expire_after,omitempty"`
6135  
6136  	// The DNS capture file transfer settings.Include the specified parameter to
6137  	// set the attribute value. Omit the parameter to retrieve the attribute value.
6138  	FileTransferSetting *Filetransfersetting `json:"file_transfer_setting,omitempty"`
6139  
6140  	// The type of AAAA filtering for this member DNS object.
6141  	FilterAaaa string `json:"filter_aaaa,omitempty"`
6142  
6143  	// The list of IPv4 addresses and networks from which queries are received.
6144  	// AAAA filtering is applied to these addresses.
6145  	FilterAaaaList []*Addressac `json:"filter_aaaa_list,omitempty"`
6146  
6147  	// The fixed RRset order FQDN. If this field does not contain an empty value,
6148  	// the appliance will automatically set the enable_fixed_rrset_order_fqdns
6149  	// field to 'true', unless the same request sets the enable field to 'false'.
6150  	FixedRrsetOrderFqdns []*GridDnsFixedrrsetorderfqdn `json:"fixed_rrset_order_fqdns,omitempty"`
6151  
6152  	// Determines if member sends queries to forwarders only. When the value is
6153  	// "true", the member sends queries to forwarders only, and not to other
6154  	// internal or Internet root servers.
6155  	ForwardOnly *bool `json:"forward_only,omitempty"`
6156  
6157  	// Determines if secondary servers is allowed to forward updates to the DNS
6158  	// server or not.
6159  	ForwardUpdates *bool `json:"forward_updates,omitempty"`
6160  
6161  	// The forwarders for the member. A forwarder is essentially a name server to
6162  	// which other name servers first send all of their off-site queries. The
6163  	// forwarder builds up a cache of information, avoiding the need for the other
6164  	// name servers to send queries off-site.
6165  	Forwarders []string `json:"forwarders,omitempty"`
6166  
6167  	// The timeout interval (in seconds) after which the expired Fault Tolerant
6168  	// Caching (FTC)record is stale and no longer valid.
6169  	FtcExpiredRecordTimeout *uint32 `json:"ftc_expired_record_timeout,omitempty"`
6170  
6171  	// The TTL value (in seconds) of the expired Fault Tolerant Caching (FTC)
6172  	// record in DNS responses.
6173  	FtcExpiredRecordTtl *uint32 `json:"ftc_expired_record_ttl,omitempty"`
6174  
6175  	// Flag for taking EA values from IPAM Hosts into consideration for the DTC
6176  	// topology EA database.
6177  	GenEadbFromHosts *bool `json:"gen_eadb_from_hosts,omitempty"`
6178  
6179  	// Flag for taking EA values from IPAM Network Containers into consideration
6180  	// for the DTC topology EA database.
6181  	GenEadbFromNetworkContainers *bool `json:"gen_eadb_from_network_containers,omitempty"`
6182  
6183  	// Flag for taking EA values from IPAM Network into consideration for the DTC
6184  	// topology EA database.
6185  	GenEadbFromNetworks *bool `json:"gen_eadb_from_networks,omitempty"`
6186  
6187  	// Flag for taking EA values from IPAM Ranges into consideration for the DTC
6188  	// topology EA database.
6189  	GenEadbFromRanges *bool `json:"gen_eadb_from_ranges,omitempty"`
6190  
6191  	// The list of GSS-TSIG keys for a Grid DNS object.
6192  	GssTsigKeys []*Kerberoskey `json:"gss_tsig_keys,omitempty"`
6193  
6194  	// The number of seconds to cache lame delegations or lame servers.
6195  	LameTtl *uint32 `json:"lame_ttl,omitempty"`
6196  
6197  	// Determines last queried ACL for the specified IPv4 or IPv6 addresses and
6198  	// networks in scavenging settings.
6199  	LastQueriedAcl []*Addressac `json:"last_queried_acl,omitempty"`
6200  
6201  	// The logging categories.
6202  	LoggingCategories *GridLoggingcategories `json:"logging_categories,omitempty"`
6203  
6204  	// The maximum time (in seconds) for which the server will cache positive
6205  	// answers.
6206  	MaxCacheTtl *uint32 `json:"max_cache_ttl,omitempty"`
6207  
6208  	// The maximum time (in seconds) a DNS response can be stored in the hardware
6209  	// acceleration cache. Valid values are unsigned integer between 60 and 86400,
6210  	// inclusive.
6211  	MaxCachedLifetime *uint32 `json:"max_cached_lifetime,omitempty"`
6212  
6213  	// The maximum time (in seconds) for which the server will cache negative
6214  	// (NXDOMAIN) responses. The maximum allowed value is 604800.
6215  	MaxNcacheTtl *uint32 `json:"max_ncache_ttl,omitempty"`
6216  
6217  	// The value is used by authoritative DNS servers to never send DNS responses
6218  	// larger than the configured value. The value should be between 512 and 4096
6219  	// bytes. The recommended value is between 512 and 1220 bytes.
6220  	MaxUdpSize *uint32 `json:"max_udp_size,omitempty"`
6221  
6222  	// Determines if Grid members that are authoritative secondary servers are
6223  	// allowed to send notification messages to external name servers, if the Grid
6224  	// member that is primary for a zone fails or loses connectivity.
6225  	MemberSecondaryNotify *bool `json:"member_secondary_notify,omitempty"`
6226  
6227  	// The negative TTL value of a Grid DNS object. This interval tells the
6228  	// secondary how long data can be cached for "Does Not Respond" responses.
6229  	NegativeTtl *uint32 `json:"negative_ttl,omitempty"`
6230  
6231  	// Specifies with how many seconds of delay the notify messages are sent to
6232  	// secondaries.
6233  	NotifyDelay *uint32 `json:"notify_delay,omitempty"`
6234  
6235  	// The source port for notify messages. When requesting zone transfers from the
6236  	// primary server, some secondary DNS servers use the source port number (the
6237  	// primary server used to send the notify message) as the destination port
6238  	// number in the zone transfer request. Valid values are between 1 and 63999.
6239  	// The default is picked by BIND.
6240  	NotifySourcePort *uint32 `json:"notify_source_port,omitempty"`
6241  
6242  	// The default nameserver group.
6243  	NsgroupDefault *string `json:"nsgroup_default,omitempty"`
6244  
6245  	// A name server group is a collection of one primary DNS server and one or
6246  	// more secondary DNS servers.
6247  	Nsgroups []string `json:"nsgroups,omitempty"`
6248  
6249  	// Determines if NXDOMAIN redirection queries are logged or not.
6250  	NxdomainLogQuery *bool `json:"nxdomain_log_query,omitempty"`
6251  
6252  	// Determines if NXDOMAIN redirection is enabled or not.
6253  	NxdomainRedirect *bool `json:"nxdomain_redirect,omitempty"`
6254  
6255  	// The list of IPv4 NXDOMAIN redirection addresses.
6256  	NxdomainRedirectAddresses []string `json:"nxdomain_redirect_addresses,omitempty"`
6257  
6258  	// The list of IPv6 NXDOMAIN redirection addresses.
6259  	NxdomainRedirectAddressesV6 []string `json:"nxdomain_redirect_addresses_v6,omitempty"`
6260  
6261  	// The TTL value (in seconds) of synthetic DNS responses that result from
6262  	// NXDOMAIN redirection.
6263  	NxdomainRedirectTtl *uint32 `json:"nxdomain_redirect_ttl,omitempty"`
6264  
6265  	// The Ruleset object names assigned at the Grid level for NXDOMAIN
6266  	// redirection.
6267  	NxdomainRulesets []string `json:"nxdomain_rulesets,omitempty"`
6268  
6269  	// Determines if the host RRset order on secondaries is preserved or not.
6270  	PreserveHostRrsetOrderOnSecondaries *bool `json:"preserve_host_rrset_order_on_secondaries,omitempty"`
6271  
6272  	// The list of record name policies.
6273  	ProtocolRecordNamePolicies []*Recordnamepolicy `json:"protocol_record_name_policies,omitempty"`
6274  
6275  	// The list of domain names that trigger DNS query rewrite.
6276  	QueryRewriteDomainNames []string `json:"query_rewrite_domain_names,omitempty"`
6277  
6278  	// The domain name prefix for DNS query rewrite.
6279  	QueryRewritePrefix *string `json:"query_rewrite_prefix,omitempty"`
6280  
6281  	// The source port for queries. Specifying a source port number for recursive
6282  	// queries ensures that a firewall will allow the response. Valid values are
6283  	// between 1 and 63999. The default is picked by BIND.
6284  	QuerySourcePort *uint32 `json:"query_source_port,omitempty"`
6285  
6286  	// The list of IPv4 or IPv6 addresses, networks or hosts authenticated by
6287  	// Transaction signature (TSIG) key from which recursive queries are allowed or
6288  	// denied.
6289  	RecursiveQueryList []*Addressac `json:"recursive_query_list,omitempty"`
6290  
6291  	// The refresh time. This interval tells the secondary how often to send a
6292  	// message to the primary for a zone to check that its data is current, and
6293  	// retrieve fresh data if it is not.
6294  	RefreshTimer *uint32 `json:"refresh_timer,omitempty"`
6295  
6296  	// The recursive query timeout for the member.
6297  	ResolverQueryTimeout *uint32 `json:"resolver_query_timeout,omitempty"`
6298  
6299  	// The response rate limiting settings for the member.
6300  	ResponseRateLimiting *GridResponseratelimiting `json:"response_rate_limiting,omitempty"`
6301  
6302  	// The restart setting.
6303  	RestartSetting *GridServicerestart `json:"restart_setting,omitempty"`
6304  
6305  	// The retry time. This interval tells the secondary how long to wait before
6306  	// attempting to recontact the primary after a connection failure occurs
6307  	// between the two servers.
6308  	RetryTimer *uint32 `json:"retry_timer,omitempty"`
6309  
6310  	// Determines the type of root name servers.
6311  	RootNameServerType string `json:"root_name_server_type,omitempty"`
6312  
6313  	// Determines if NSDNAME and NSIP resource records from RPZ feeds are enabled
6314  	// or not.
6315  	RpzDisableNsdnameNsip *bool `json:"rpz_disable_nsdname_nsip,omitempty"`
6316  
6317  	// Enables the appliance to ignore RPZ-IP triggers with prefix lengths less
6318  	// than the specified minimum prefix length.
6319  	RpzDropIpRuleEnabled *bool `json:"rpz_drop_ip_rule_enabled,omitempty"`
6320  
6321  	// The minimum prefix length for IPv4 RPZ-IP triggers. The appliance ignores
6322  	// RPZ-IP triggers with prefix lengths less than the specified minimum IPv4
6323  	// prefix length.
6324  	RpzDropIpRuleMinPrefixLengthIpv4 *uint32 `json:"rpz_drop_ip_rule_min_prefix_length_ipv4,omitempty"`
6325  
6326  	// The minimum prefix length for IPv6 RPZ-IP triggers. The appliance ignores
6327  	// RPZ-IP triggers with prefix lengths less than the specified minimum IPv6
6328  	// prefix length.
6329  	RpzDropIpRuleMinPrefixLengthIpv6 *uint32 `json:"rpz_drop_ip_rule_min_prefix_length_ipv6,omitempty"`
6330  
6331  	// Determines if recursive RPZ lookups are enabled.
6332  	RpzQnameWaitRecurse *bool `json:"rpz_qname_wait_recurse,omitempty"`
6333  
6334  	// The Grid level scavenging settings.
6335  	ScavengingSettings *SettingScavenging `json:"scavenging_settings,omitempty"`
6336  
6337  	// The number of maximum concurrent SOA queries per second. Valid values are
6338  	// unsigned integer between 20 and 1000, inclusive.
6339  	SerialQueryRate *uint32 `json:"serial_query_rate,omitempty"`
6340  
6341  	// The value of the server-id directive for BIND and Unbound DNS.
6342  	ServerIdDirective string `json:"server_id_directive,omitempty"`
6343  
6344  	// A sort list determines the order of addresses in responses made to DNS
6345  	// queries.
6346  	Sortlist []*Sortlist `json:"sortlist,omitempty"`
6347  
6348  	// Determines if the storage of query capture reports on the appliance is
6349  	// enabled or disabled.
6350  	StoreLocally *bool `json:"store_locally,omitempty"`
6351  
6352  	// The syslog facility. This is the location on the syslog server to which you
6353  	// want to sort the DNS logging messages.
6354  	SyslogFacility string `json:"syslog_facility,omitempty"`
6355  
6356  	// The list of excluded DNS servers during zone transfers.
6357  	TransferExcludedServers []string `json:"transfer_excluded_servers,omitempty"`
6358  
6359  	// The BIND format for a zone transfer. This provides tracking capabilities for
6360  	// single or multiple transfers and their associated servers.
6361  	TransferFormat string `json:"transfer_format,omitempty"`
6362  
6363  	// The number of maximum concurrent transfers for the Grid. Valid values are
6364  	// unsigned integer between 10 and 10000, inclusive.
6365  	TransfersIn *uint32 `json:"transfers_in,omitempty"`
6366  
6367  	// The number of maximum outbound concurrent zone transfers. Valid values are
6368  	// unsigned integer between 10 and 10000, inclusive.
6369  	TransfersOut *uint32 `json:"transfers_out,omitempty"`
6370  
6371  	// The number of maximum concurrent transfers per member. Valid values are
6372  	// unsigned integer between 2 and 10000, inclusive.
6373  	TransfersPerNs *uint32 `json:"transfers_per_ns,omitempty"`
6374  
6375  	// Determines if the double confirmation during zone deletion is enabled or
6376  	// not.
6377  	ZoneDeletionDoubleConfirm *bool `json:"zone_deletion_double_confirm,omitempty"`
6378  }
6379  
6380  func (GridDns) ObjectType() string {
6381  	return "grid:dns"
6382  }
6383  
6384  func (obj GridDns) ReturnFields() []string {
6385  	if obj.returnFields == nil {
6386  		obj.returnFields = []string{}
6387  	}
6388  	return obj.returnFields
6389  }
6390  
6391  // GridFiledistribution represents Infoblox object grid:filedistribution.
6392  // The Grid file distribution object represents the file distribution storage
6393  // limit configuration and global file distribution statistics.
6394  type GridFiledistribution struct {
6395  	IBBase `json:"-"`
6396  
6397  	Ref string `json:"_ref,omitempty"`
6398  
6399  	// Determines whether the uploads to Grid members are allowed.
6400  	AllowUploads *bool `json:"allow_uploads,omitempty"`
6401  
6402  	// Determines whether to include distributed files in the backup.
6403  	BackupStorage *bool `json:"backup_storage,omitempty"`
6404  
6405  	// The value is the percentage of the allocated TFTP storage space that is
6406  	// used, expressed in tenth of a percent. Valid values are from 0 to 1000.
6407  	CurrentUsage uint32 `json:"current_usage,omitempty"`
6408  
6409  	// Determines whether the FTP anonymous login is enabled.
6410  	EnableAnonymousFtp *bool `json:"enable_anonymous_ftp,omitempty"`
6411  
6412  	// The Grid file distribution global status.
6413  	GlobalStatus string `json:"global_status,omitempty"`
6414  
6415  	// The Grid name.
6416  	Name string `json:"name,omitempty"`
6417  
6418  	// Maximum storage in megabytes allowed on the Grid. The maximum storage space
6419  	// allowed for all file distribution services on a Grid is equal to the storage
6420  	// space allowed to the Grid member with the smallest amount of space allowed.
6421  	StorageLimit *uint32 `json:"storage_limit,omitempty"`
6422  }
6423  
6424  func (GridFiledistribution) ObjectType() string {
6425  	return "grid:filedistribution"
6426  }
6427  
6428  func (obj GridFiledistribution) ReturnFields() []string {
6429  	if obj.returnFields == nil {
6430  		obj.returnFields = []string{"allow_uploads", "current_usage", "global_status", "name", "storage_limit"}
6431  	}
6432  	return obj.returnFields
6433  }
6434  
6435  // GridLicensePool represents Infoblox object grid:license_pool.
6436  // This object represents the Grid license pool.
6437  type GridLicensePool struct {
6438  	IBBase `json:"-"`
6439  
6440  	Ref string `json:"_ref,omitempty"`
6441  
6442  	// The number of dynamic licenses allocated to vNIOS appliances.
6443  	Assigned uint32 `json:"assigned,omitempty"`
6444  
6445  	// The license expiration status.
6446  	ExpirationStatus string `json:"expiration_status,omitempty"`
6447  
6448  	// The expiration timestamp of the license.
6449  	ExpiryDate *UnixTime `json:"expiry_date,omitempty"`
6450  
6451  	// The total number of dynamic licenses allowed for this license pool.
6452  	Installed uint32 `json:"installed,omitempty"`
6453  
6454  	// The license string for the license pool.
6455  	Key string `json:"key,omitempty"`
6456  
6457  	// The limitation of dynamic license that can be allocated from the license
6458  	// pool.
6459  	Limit string `json:"limit,omitempty"`
6460  
6461  	// The license limit context.
6462  	LimitContext string `json:"limit_context,omitempty"`
6463  
6464  	// The supported vNIOS virtual appliance model.
6465  	Model string `json:"model,omitempty"`
6466  
6467  	// The license pool subpools.
6468  	Subpools []*GridLicensesubpool `json:"subpools,omitempty"`
6469  
6470  	// The total number of temporary dynamic licenses allocated to vNIOS
6471  	// appliances.
6472  	TempAssigned uint32 `json:"temp_assigned,omitempty"`
6473  
6474  	// The license type.
6475  	Type string `json:"type,omitempty"`
6476  }
6477  
6478  func (GridLicensePool) ObjectType() string {
6479  	return "grid:license_pool"
6480  }
6481  
6482  func (obj GridLicensePool) ReturnFields() []string {
6483  	if obj.returnFields == nil {
6484  		obj.returnFields = []string{"type"}
6485  	}
6486  	return obj.returnFields
6487  }
6488  
6489  // GridLicensePoolContainer represents Infoblox object grid:license_pool_container.
6490  // This object represents the Grid license pool container.
6491  type GridLicensePoolContainer struct {
6492  	IBBase `json:"-"`
6493  
6494  	Ref string `json:"_ref,omitempty"`
6495  
6496  	// The timestamp when the last pool licenses were updated.
6497  	LastEntitlementUpdate *UnixTime `json:"last_entitlement_update,omitempty"`
6498  
6499  	// The world-wide unique ID for the license pool container.
6500  	LpcUid string `json:"lpc_uid,omitempty"`
6501  }
6502  
6503  func (GridLicensePoolContainer) ObjectType() string {
6504  	return "grid:license_pool_container"
6505  }
6506  
6507  func (obj GridLicensePoolContainer) ReturnFields() []string {
6508  	if obj.returnFields == nil {
6509  		obj.returnFields = []string{}
6510  	}
6511  	return obj.returnFields
6512  }
6513  
6514  // GridMaxminddbinfo represents Infoblox object grid:maxminddbinfo.
6515  // The information about Topology DB.
6516  type GridMaxminddbinfo struct {
6517  	IBBase `json:"-"`
6518  
6519  	Ref string `json:"_ref,omitempty"`
6520  
6521  	// The major version of DB binary format.
6522  	BinaryMajorVersion uint32 `json:"binary_major_version,omitempty"`
6523  
6524  	// The minor version of DB binary format.
6525  	BinaryMinorVersion uint32 `json:"binary_minor_version,omitempty"`
6526  
6527  	// The time at which the DB was built.
6528  	BuildTime *UnixTime `json:"build_time,omitempty"`
6529  
6530  	// The structure of data records ("GeoLite2-Country", GeoLite2-City", etc.).
6531  	DatabaseType string `json:"database_type,omitempty"`
6532  
6533  	// The time at which the current Topology DB was deployed.
6534  	DeploymentTime *UnixTime `json:"deployment_time,omitempty"`
6535  
6536  	// The member for testing the connection.
6537  	Member string `json:"member,omitempty"`
6538  
6539  	// The topology type.
6540  	TopologyType string `json:"topology_type,omitempty"`
6541  }
6542  
6543  func (GridMaxminddbinfo) ObjectType() string {
6544  	return "grid:maxminddbinfo"
6545  }
6546  
6547  func (obj GridMaxminddbinfo) ReturnFields() []string {
6548  	if obj.returnFields == nil {
6549  		obj.returnFields = []string{"binary_major_version", "binary_minor_version", "build_time", "database_type", "deployment_time", "member", "topology_type"}
6550  	}
6551  	return obj.returnFields
6552  }
6553  
6554  // GridMemberCloudapi represents Infoblox object grid:member:cloudapi.
6555  // Class that represents member Cloud configuration settings.
6556  type GridMemberCloudapi struct {
6557  	IBBase `json:"-"`
6558  
6559  	Ref string `json:"_ref,omitempty"`
6560  
6561  	// Defines which administrators are allowed to perform Cloud API request on the
6562  	// Grid Member: no administrators (NONE), any administrators (ALL) or
6563  	// administrators in the ACL list (LIST). Default is ALL.
6564  	AllowApiAdmins string `json:"allow_api_admins,omitempty"`
6565  
6566  	// List of administrators allowed to perform Cloud Platform API requests on
6567  	// that member.
6568  	AllowedApiAdmins []*GridCloudapiUser `json:"allowed_api_admins,omitempty"`
6569  
6570  	// Controls whether the Cloud API service runs on the member or not.
6571  	EnableService *bool `json:"enable_service,omitempty"`
6572  
6573  	// Extensible attributes associated with the object. For valid values for
6574  	// extensible attributes, see {extattrs:values}.
6575  	Ea EA `json:"extattrs"`
6576  
6577  	// Structure containing all the information related to Gateway configuration
6578  	// for the member
6579  	GatewayConfig *GridCloudapiGatewayConfig `json:"gateway_config,omitempty"`
6580  
6581  	// The related Grid Member.
6582  	Member *Dhcpmember `json:"member,omitempty"`
6583  
6584  	// Status of Cloud API service on the member.
6585  	Status string `json:"status,omitempty"`
6586  }
6587  
6588  func (GridMemberCloudapi) ObjectType() string {
6589  	return "grid:member:cloudapi"
6590  }
6591  
6592  func (obj GridMemberCloudapi) ReturnFields() []string {
6593  	if obj.returnFields == nil {
6594  		obj.returnFields = []string{"allow_api_admins", "allowed_api_admins", "enable_service", "member", "status"}
6595  	}
6596  	return obj.returnFields
6597  }
6598  
6599  // GridServicerestartGroup represents Infoblox object grid:servicerestart:group.
6600  // The Grid Service Restart Group object provides the following information
6601  // about the restart: applicable services, members, restart order, and
6602  // periodicity.
6603  type GridServicerestartGroup struct {
6604  	IBBase `json:"-"`
6605  
6606  	Ref string `json:"_ref,omitempty"`
6607  
6608  	// Comment for the Restart Group; maximum 256 characters.
6609  	Comment *string `json:"comment,omitempty"`
6610  
6611  	// Extensible attributes associated with the object. For valid values for
6612  	// extensible attributes, see {extattrs:values}.
6613  	Ea EA `json:"extattrs"`
6614  
6615  	// Determines if this Restart Group is the default group.
6616  	IsDefault bool `json:"is_default,omitempty"`
6617  
6618  	// The timestamp when the status of the latest request has changed.
6619  	LastUpdatedTime *UnixTime `json:"last_updated_time,omitempty"`
6620  
6621  	// The list of members belonging to the group.
6622  	Members []string `json:"members,omitempty"`
6623  
6624  	// The default restart method for this Restart Group.
6625  	Mode string `json:"mode,omitempty"`
6626  
6627  	// The name of this Restart Group.
6628  	Name *string `json:"name,omitempty"`
6629  
6630  	// The order to restart.
6631  	Position uint32 `json:"position,omitempty"`
6632  
6633  	// The recurring schedule for restart of a group.
6634  	RecurringSchedule *GridServicerestartGroupSchedule `json:"recurring_schedule,omitempty"`
6635  
6636  	// The list of requests associated with a restart group.
6637  	Requests []*GridServicerestartRequest `json:"requests,omitempty"`
6638  
6639  	// The applicable service for this Restart Group.
6640  	Service string `json:"service,omitempty"`
6641  
6642  	// The restart status for a restart group.
6643  	Status string `json:"status,omitempty"`
6644  }
6645  
6646  func (GridServicerestartGroup) ObjectType() string {
6647  	return "grid:servicerestart:group"
6648  }
6649  
6650  func (obj GridServicerestartGroup) ReturnFields() []string {
6651  	if obj.returnFields == nil {
6652  		obj.returnFields = []string{"comment", "name", "service"}
6653  	}
6654  	return obj.returnFields
6655  }
6656  
6657  // GridServicerestartGroupOrder represents Infoblox object grid:servicerestart:group:order.
6658  // The Grid Service Restart Group Order Setting is used to set the restart
6659  // order for particular services and members.
6660  type GridServicerestartGroupOrder struct {
6661  	IBBase `json:"-"`
6662  
6663  	Ref string `json:"_ref,omitempty"`
6664  
6665  	// The ordered list of the Service Restart Group.
6666  	Groups []string `json:"groups,omitempty"`
6667  }
6668  
6669  func (GridServicerestartGroupOrder) ObjectType() string {
6670  	return "grid:servicerestart:group:order"
6671  }
6672  
6673  func (obj GridServicerestartGroupOrder) ReturnFields() []string {
6674  	if obj.returnFields == nil {
6675  		obj.returnFields = []string{}
6676  	}
6677  	return obj.returnFields
6678  }
6679  
6680  // GridServicerestartRequest represents Infoblox object grid:servicerestart:request.
6681  // The Restart Request object provides information and statistics about the
6682  // service restart routine for the Service Restart Group.
6683  type GridServicerestartRequest struct {
6684  	IBBase `json:"-"`
6685  
6686  	Ref string `json:"_ref,omitempty"`
6687  
6688  	// The error message if restart has failed.
6689  	Error string `json:"error,omitempty"`
6690  
6691  	// Indicates if this is a force restart.
6692  	Forced bool `json:"forced,omitempty"`
6693  
6694  	// The name of the Restart Group associated with the request.
6695  	Group string `json:"group,omitempty"`
6696  
6697  	// The timestamp when the status of the request has changed.
6698  	LastUpdatedTime *UnixTime `json:"last_updated_time,omitempty"`
6699  
6700  	// The member to restart.
6701  	Member string `json:"member,omitempty"`
6702  
6703  	// Indicates if restart is needed.
6704  	Needed string `json:"needed,omitempty"`
6705  
6706  	// The order to restart.
6707  	Order int `json:"order,omitempty"`
6708  
6709  	// The result of the restart operation.
6710  	Result string `json:"result,omitempty"`
6711  
6712  	// The service to restart.
6713  	Service string `json:"service,omitempty"`
6714  
6715  	// The state of the request.
6716  	State string `json:"state,omitempty"`
6717  }
6718  
6719  func (GridServicerestartRequest) ObjectType() string {
6720  	return "grid:servicerestart:request"
6721  }
6722  
6723  func (obj GridServicerestartRequest) ReturnFields() []string {
6724  	if obj.returnFields == nil {
6725  		obj.returnFields = []string{"error", "group", "result", "state"}
6726  	}
6727  	return obj.returnFields
6728  }
6729  
6730  // GridServicerestartRequestChangedobject represents Infoblox object grid:servicerestart:request:changedobject.
6731  // The Grid service restart request changed object provides information about
6732  // changes that are waiting for the restart.
6733  type GridServicerestartRequestChangedobject struct {
6734  	IBBase `json:"-"`
6735  
6736  	Ref string `json:"_ref,omitempty"`
6737  
6738  	// The operation on the changed object.
6739  	Action string `json:"action,omitempty"`
6740  
6741  	// The list of changed properties in the object.
6742  	ChangedProperties []string `json:"changed_properties,omitempty"`
6743  
6744  	// The time when the object was changed.
6745  	ChangedTime *UnixTime `json:"changed_time,omitempty"`
6746  
6747  	// The name of the changed object.
6748  	ObjectName string `json:"object_name,omitempty"`
6749  
6750  	// The type of the changed object. This is undefined if the object is not
6751  	// supported.
6752  	ObjectTypeField string `json:"object_type,omitempty"`
6753  
6754  	// The name of the user who changed the object properties.
6755  	UserName string `json:"user_name,omitempty"`
6756  }
6757  
6758  func (GridServicerestartRequestChangedobject) ObjectType() string {
6759  	return "grid:servicerestart:request:changedobject"
6760  }
6761  
6762  func (obj GridServicerestartRequestChangedobject) ReturnFields() []string {
6763  	if obj.returnFields == nil {
6764  		obj.returnFields = []string{"action", "changed_properties", "changed_time", "object_name", "object_type", "user_name"}
6765  	}
6766  	return obj.returnFields
6767  }
6768  
6769  // GridServicerestartStatus represents Infoblox object grid:servicerestart:status.
6770  // The Restart Status object provides information and statistics about service
6771  // restart routine for the Grid or Service Restart Group.
6772  type GridServicerestartStatus struct {
6773  	IBBase `json:"-"`
6774  
6775  	Ref string `json:"_ref,omitempty"`
6776  
6777  	// The number of failed requests.
6778  	Failures uint32 `json:"failures,omitempty"`
6779  
6780  	// The number of finished requests.
6781  	Finished uint32 `json:"finished,omitempty"`
6782  
6783  	// The type of grouping.
6784  	Grouped string `json:"grouped,omitempty"`
6785  
6786  	// The number of created yet unprocessed requests for restart.
6787  	NeededRestart uint32 `json:"needed_restart,omitempty"`
6788  
6789  	// The number of requests that did not require a restart.
6790  	NoRestart uint32 `json:"no_restart,omitempty"`
6791  
6792  	// A reference to the grid or grid:servicerestart:group object associated with
6793  	// the request.
6794  	Parent string `json:"parent,omitempty"`
6795  
6796  	// The number of requests that are pending a restart.
6797  	Pending uint32 `json:"pending,omitempty"`
6798  
6799  	// The number of forced or needed requests pending for restart.
6800  	PendingRestart uint32 `json:"pending_restart,omitempty"`
6801  
6802  	// The number of not forced and not needed requests pending for restart.
6803  	Processing uint32 `json:"processing,omitempty"`
6804  
6805  	// The number of service restarts for corresponding members.
6806  	Restarting uint32 `json:"restarting,omitempty"`
6807  
6808  	// The number of requests associated with successful restarts.
6809  	Success uint32 `json:"success,omitempty"`
6810  
6811  	// The number of timeout requests.
6812  	Timeouts uint32 `json:"timeouts,omitempty"`
6813  }
6814  
6815  func (GridServicerestartStatus) ObjectType() string {
6816  	return "grid:servicerestart:status"
6817  }
6818  
6819  func (obj GridServicerestartStatus) ReturnFields() []string {
6820  	if obj.returnFields == nil {
6821  		obj.returnFields = []string{"failures", "finished", "grouped", "needed_restart", "no_restart", "parent", "pending", "pending_restart", "processing", "restarting", "success", "timeouts"}
6822  	}
6823  	return obj.returnFields
6824  }
6825  
6826  // GridThreatanalytics represents Infoblox object grid:threatanalytics.
6827  // To mitigate DNS data exfiltration, Infoblox DNS threat analytics employs
6828  // analytics algorithms that analyze incoming DNS queries and responses to
6829  // detect DNS tunneling traffic.
6830  type GridThreatanalytics struct {
6831  	IBBase `json:"-"`
6832  
6833  	Ref string `json:"_ref,omitempty"`
6834  
6835  	// Disable domain collapsing at grid level
6836  	ConfigureDomainCollapsing *bool `json:"configure_domain_collapsing,omitempty"`
6837  
6838  	// The current threat analytics module set.
6839  	CurrentModuleset string `json:"current_moduleset,omitempty"`
6840  
6841  	// The Grid whitelist.
6842  	CurrentWhitelist string `json:"current_whitelist,omitempty"`
6843  
6844  	// The list of response policy zones for DNS tunnelling requests.
6845  	DnsTunnelBlackListRpzZones []*ZoneRp `json:"dns_tunnel_black_list_rpz_zones,omitempty"`
6846  
6847  	// Level of domain collapsing
6848  	DomainCollapsingLevel *uint32 `json:"domain_collapsing_level,omitempty"`
6849  
6850  	// Determines whether the automatic threat analytics module set download is
6851  	// enabled.
6852  	EnableAutoDownload *bool `json:"enable_auto_download,omitempty"`
6853  
6854  	// Determines whether the scheduled download of the threat analytics module set
6855  	// is enabled.
6856  	EnableScheduledDownload *bool `json:"enable_scheduled_download,omitempty"`
6857  
6858  	// Indicates whether auto download service is enabled
6859  	EnableWhitelistAutoDownload *bool `json:"enable_whitelist_auto_download,omitempty"`
6860  
6861  	// Indicates whether the custom scheduled settings for auto download is
6862  	// enabled. If false then default frequency is once per 24 hours
6863  	EnableWhitelistScheduledDownload *bool `json:"enable_whitelist_scheduled_download,omitempty"`
6864  
6865  	// The last time when the threat analytics module set was checked for the
6866  	// update.
6867  	LastCheckedForUpdate *UnixTime `json:"last_checked_for_update,omitempty"`
6868  
6869  	// Timestamp of last checked whitelist
6870  	LastCheckedForWhitelistUpdate *UnixTime `json:"last_checked_for_whitelist_update,omitempty"`
6871  
6872  	// The last update time for the threat analytics module set.
6873  	LastModuleUpdateTime *UnixTime `json:"last_module_update_time,omitempty"`
6874  
6875  	// The version number of the last updated threat analytics module set.
6876  	LastModuleUpdateVersion string `json:"last_module_update_version,omitempty"`
6877  
6878  	// The last update time for the threat analytics whitelist.
6879  	LastWhitelistUpdateTime *UnixTime `json:"last_whitelist_update_time,omitempty"`
6880  
6881  	// The version number of the last updated threat analytics whitelist.
6882  	LastWhitelistUpdateVersion string `json:"last_whitelist_update_version,omitempty"`
6883  
6884  	// The update policy for the threat analytics module set.
6885  	ModuleUpdatePolicy string `json:"module_update_policy,omitempty"`
6886  
6887  	// The Grid name.
6888  	Name string `json:"name,omitempty"`
6889  
6890  	// The schedule settings for the threat analytics module set download.
6891  	ScheduledDownload *SettingSchedule `json:"scheduled_download,omitempty"`
6892  
6893  	// Schedule setting for automatic whitelist update run
6894  	ScheduledWhitelistDownload *SettingSchedule `json:"scheduled_whitelist_download,omitempty"`
6895  
6896  	// whitelist update policy (manual or automatic)
6897  	WhitelistUpdatePolicy string `json:"whitelist_update_policy,omitempty"`
6898  }
6899  
6900  func (GridThreatanalytics) ObjectType() string {
6901  	return "grid:threatanalytics"
6902  }
6903  
6904  func (obj GridThreatanalytics) ReturnFields() []string {
6905  	if obj.returnFields == nil {
6906  		obj.returnFields = []string{"enable_auto_download", "enable_scheduled_download", "module_update_policy", "name"}
6907  	}
6908  	return obj.returnFields
6909  }
6910  
6911  // GridThreatprotection represents Infoblox object grid:threatprotection.
6912  // The Grid threat protection settings.
6913  type GridThreatprotection struct {
6914  	IBBase `json:"-"`
6915  
6916  	Ref string `json:"_ref,omitempty"`
6917  
6918  	// The current Grid ruleset.
6919  	CurrentRuleset *string `json:"current_ruleset,omitempty"`
6920  
6921  	// Determines if multiple BIND responses via TCP connection are disabled.
6922  	DisableMultipleDnsTcpRequest *bool `json:"disable_multiple_dns_tcp_request,omitempty"`
6923  
6924  	// Determines if DNS responses are sent from acceleration cache before applying
6925  	// Threat Protection rules. Recommended for better performance when using DNS
6926  	// Cache Acceleration.
6927  	EnableAccelRespBeforeThreatProtection *bool `json:"enable_accel_resp_before_threat_protection,omitempty"`
6928  
6929  	// Determines if auto download service is enabled.
6930  	EnableAutoDownload *bool `json:"enable_auto_download,omitempty"`
6931  
6932  	// Determines if NAT (Network Address Translation) mapping for threat
6933  	// protection is enabled or not.
6934  	EnableNatRules *bool `json:"enable_nat_rules,omitempty"`
6935  
6936  	// Determines if scheduled download is enabled. The default frequency is once
6937  	// in every 24 hours if it is disabled.
6938  	EnableScheduledDownload *bool `json:"enable_scheduled_download,omitempty"`
6939  
6940  	// The number of events logged per second per rule.
6941  	EventsPerSecondPerRule *uint32 `json:"events_per_second_per_rule,omitempty"`
6942  
6943  	// The Grid name.
6944  	GridName string `json:"grid_name,omitempty"`
6945  
6946  	// The time when the Grid last checked for updates.
6947  	LastCheckedForUpdate *UnixTime `json:"last_checked_for_update,omitempty"`
6948  
6949  	// The last rule update timestamp.
6950  	LastRuleUpdateTimestamp *UnixTime `json:"last_rule_update_timestamp,omitempty"`
6951  
6952  	// The version of last rule update.
6953  	LastRuleUpdateVersion string `json:"last_rule_update_version,omitempty"`
6954  
6955  	// The list of NAT mapping rules for threat protection.
6956  	NatRules []*ThreatprotectionNatrule `json:"nat_rules,omitempty"`
6957  
6958  	// Outbound settings for ATP events.
6959  	OutboundSettings *SettingAtpoutbound `json:"outbound_settings,omitempty"`
6960  
6961  	// The update rule policy.
6962  	RuleUpdatePolicy string `json:"rule_update_policy,omitempty"`
6963  
6964  	// The schedule setting for automatic rule update.
6965  	ScheduledDownload *SettingSchedule `json:"scheduled_download,omitempty"`
6966  }
6967  
6968  func (GridThreatprotection) ObjectType() string {
6969  	return "grid:threatprotection"
6970  }
6971  
6972  func (obj GridThreatprotection) ReturnFields() []string {
6973  	if obj.returnFields == nil {
6974  		obj.returnFields = []string{"grid_name"}
6975  	}
6976  	return obj.returnFields
6977  }
6978  
6979  // GridX509certificate represents Infoblox object grid:x509certificate.
6980  // In the X.509 system, a certification authority issues a certificate binding
6981  // a public key to a particular distinguished name in the X.500 tradition, or
6982  // to an alternative name such as an e-mail address or a DNS entry.
6983  type GridX509certificate struct {
6984  	IBBase `json:"-"`
6985  
6986  	Ref string `json:"_ref,omitempty"`
6987  
6988  	// Certificate issuer.
6989  	Issuer string `json:"issuer,omitempty"`
6990  
6991  	// X509Certificate serial number.
6992  	Serial string `json:"serial,omitempty"`
6993  
6994  	// A Distinguished Name that is made of multiple relative distinguished names
6995  	// (RDNs).
6996  	Subject string `json:"subject,omitempty"`
6997  
6998  	// Certificate expiry date.
6999  	ValidNotAfter *UnixTime `json:"valid_not_after,omitempty"`
7000  
7001  	// Certificate validity start date.
7002  	ValidNotBefore *UnixTime `json:"valid_not_before,omitempty"`
7003  }
7004  
7005  func (GridX509certificate) ObjectType() string {
7006  	return "grid:x509certificate"
7007  }
7008  
7009  func (obj GridX509certificate) ReturnFields() []string {
7010  	if obj.returnFields == nil {
7011  		obj.returnFields = []string{"issuer", "serial", "subject"}
7012  	}
7013  	return obj.returnFields
7014  }
7015  
7016  // Hostnamerewritepolicy represents Infoblox object hostnamerewritepolicy.
7017  // A hostname rewrite policy object represents the set of valid characters as
7018  // well as replacement characters for names that do not conform to the policy.
7019  type Hostnamerewritepolicy struct {
7020  	IBBase `json:"-"`
7021  
7022  	Ref string `json:"_ref,omitempty"`
7023  
7024  	// True if the policy is the Grid default.
7025  	IsDefault bool `json:"is_default,omitempty"`
7026  
7027  	// The name of a hostname rewrite policy object.
7028  	Name *string `json:"name,omitempty"`
7029  
7030  	// Determines whether the policy is a predefined one.
7031  	PreDefined bool `json:"pre_defined,omitempty"`
7032  
7033  	// The replacement character for symbols in hostnames that do not conform to
7034  	// the hostname policy.
7035  	ReplacementCharacter *string `json:"replacement_character,omitempty"`
7036  
7037  	// The set of valid characters represented in string format.
7038  	ValidCharacters *string `json:"valid_characters,omitempty"`
7039  }
7040  
7041  func (Hostnamerewritepolicy) ObjectType() string {
7042  	return "hostnamerewritepolicy"
7043  }
7044  
7045  func (obj Hostnamerewritepolicy) ReturnFields() []string {
7046  	if obj.returnFields == nil {
7047  		obj.returnFields = []string{"name", "replacement_character", "valid_characters"}
7048  	}
7049  	return obj.returnFields
7050  }
7051  
7052  // HsmAllgroups represents Infoblox object hsm:allgroups.
7053  // The All Hardware Security Module (HSM) groups object is used to retrieve all
7054  // HSM groups configured on the appliance.
7055  type HsmAllgroups struct {
7056  	IBBase `json:"-"`
7057  
7058  	Ref string `json:"_ref,omitempty"`
7059  
7060  	// The list of HSM groups configured on the appliance.
7061  	Groups []*HsmSafenetgroup `json:"groups,omitempty"`
7062  }
7063  
7064  func (HsmAllgroups) ObjectType() string {
7065  	return "hsm:allgroups"
7066  }
7067  
7068  func (obj HsmAllgroups) ReturnFields() []string {
7069  	if obj.returnFields == nil {
7070  		obj.returnFields = []string{"groups"}
7071  	}
7072  	return obj.returnFields
7073  }
7074  
7075  // HsmSafenetgroup represents Infoblox object hsm:safenetgroup.
7076  // You can integrate a Grid with a third-party, network-attached Hardware
7077  // Security Modules (HSMs) for secure private key storage and generation, and
7078  // zone-signing offloading. Infoblox appliances support integration with either
7079  // SafeNet HSMs or Thales HSMs. When using a network-attached HSM, you can
7080  // provide tight physical access control, allowing only selected security
7081  // personnel to physically access the HSM that stores the DNSSEC keys.
7082  type HsmSafenetgroup struct {
7083  	IBBase `json:"-"`
7084  
7085  	Ref string `json:"_ref,omitempty"`
7086  
7087  	// The HSM SafeNet group comment.
7088  	Comment *string `json:"comment,omitempty"`
7089  
7090  	// The HSM SafeNet group serial number.
7091  	GroupSn string `json:"group_sn,omitempty"`
7092  
7093  	// The list of HSM SafeNet devices.
7094  	HsmSafenet []*HsmSafenet `json:"hsm_safenet,omitempty"`
7095  
7096  	// The HSM SafeNet version.
7097  	HsmVersion string `json:"hsm_version,omitempty"`
7098  
7099  	// The HSM SafeNet group name.
7100  	Name *string `json:"name,omitempty"`
7101  
7102  	// The pass phrase used to unlock the HSM SafeNet keystore.
7103  	PassPhrase *string `json:"pass_phrase,omitempty"`
7104  
7105  	// The status of all HSM SafeNet devices in the group.
7106  	Status string `json:"status,omitempty"`
7107  }
7108  
7109  func (HsmSafenetgroup) ObjectType() string {
7110  	return "hsm:safenetgroup"
7111  }
7112  
7113  func (obj HsmSafenetgroup) ReturnFields() []string {
7114  	if obj.returnFields == nil {
7115  		obj.returnFields = []string{"comment", "hsm_version", "name"}
7116  	}
7117  	return obj.returnFields
7118  }
7119  
7120  // HsmThalesgroup represents Infoblox object hsm:thalesgroup.
7121  // You can integrate a Grid with a third-party, network-attached Hardware
7122  // Security Modules (HSMs) for secure private key storage and generation, and
7123  // zone-signing offloading. Infoblox appliances support integration with either
7124  // SafeNet HSMs or Thales HSMs. When using a network-attached HSM, you can
7125  // provide tight physical access control, allowing only selected security
7126  // personnel to physically access the HSM that stores the DNSSEC keys.
7127  type HsmThalesgroup struct {
7128  	IBBase `json:"-"`
7129  
7130  	Ref string `json:"_ref,omitempty"`
7131  
7132  	// The Thales HSM softcard name.
7133  	CardName *string `json:"card_name,omitempty"`
7134  
7135  	// The Thales HSM group comment.
7136  	Comment *string `json:"comment,omitempty"`
7137  
7138  	// The remote file server (RFS) IPv4 Address.
7139  	KeyServerIp *string `json:"key_server_ip,omitempty"`
7140  
7141  	// The remote file server (RFS) port.
7142  	KeyServerPort *uint32 `json:"key_server_port,omitempty"`
7143  
7144  	// The Thales HSM group name.
7145  	Name *string `json:"name,omitempty"`
7146  
7147  	// The password phrase used to unlock the Thales HSM keystore.
7148  	PassPhrase *string `json:"pass_phrase,omitempty"`
7149  
7150  	// The level of protection that the HSM group uses for the DNSSEC key data.
7151  	Protection string `json:"protection,omitempty"`
7152  
7153  	// The status of all Thales HSM devices in the group.
7154  	Status string `json:"status,omitempty"`
7155  
7156  	// The list of Thales HSM devices.
7157  	ThalesHsm []*HsmThales `json:"thales_hsm,omitempty"`
7158  }
7159  
7160  func (HsmThalesgroup) ObjectType() string {
7161  	return "hsm:thalesgroup"
7162  }
7163  
7164  func (obj HsmThalesgroup) ReturnFields() []string {
7165  	if obj.returnFields == nil {
7166  		obj.returnFields = []string{"comment", "key_server_ip", "name"}
7167  	}
7168  	return obj.returnFields
7169  }
7170  
7171  // IpamStatistics represents Infoblox object ipam:statistics.
7172  // A synthetic object used to view the IPAM statistics of the network or
7173  // network container in an Infoblox appliance
7174  type IpamStatistics struct {
7175  	IBBase `json:"-"`
7176  
7177  	Ref string `json:"_ref,omitempty"`
7178  
7179  	// The network CIDR.
7180  	Cidr uint32 `json:"cidr,omitempty"`
7181  
7182  	// The number of conflicts discovered via network discovery. This attribute is
7183  	// only valid for a Network object.
7184  	ConflictCount uint32 `json:"conflict_count,omitempty"`
7185  
7186  	// The Microsoft Active Directory user related information.
7187  	MsAdUserData *MsserverAduserData `json:"ms_ad_user_data,omitempty"`
7188  
7189  	// The network address.
7190  	Network string `json:"network,omitempty"`
7191  
7192  	// The network view.
7193  	NetworkView string `json:"network_view,omitempty"`
7194  
7195  	// The number of unmanaged IP addresses as discovered by network discovery.
7196  	// This attribute is only valid for a Network object.
7197  	UnmanagedCount uint32 `json:"unmanaged_count,omitempty"`
7198  
7199  	// The network utilization in percentage.
7200  	Utilization uint32 `json:"utilization,omitempty"`
7201  
7202  	// The time that the utilization statistics were updated last. This attribute
7203  	// is only valid for a Network object. For a Network Container object, the
7204  	// return value is undefined.
7205  	UtilizationUpdate *UnixTime `json:"utilization_update,omitempty"`
7206  }
7207  
7208  func (IpamStatistics) ObjectType() string {
7209  	return "ipam:statistics"
7210  }
7211  
7212  func (obj IpamStatistics) ReturnFields() []string {
7213  	if obj.returnFields == nil {
7214  		obj.returnFields = []string{"cidr", "network", "network_view"}
7215  	}
7216  	return obj.returnFields
7217  }
7218  
7219  // IPv4Address represents Infoblox object ipv4address.
7220  // This object is created only as part of the record.host object, it cannot be
7221  // created directly.
7222  type IPv4Address struct {
7223  	IBBase `json:"-"`
7224  
7225  	Ref string `json:"_ref,omitempty"`
7226  
7227  	// Comment for the address; maximum 256 characters.
7228  	Comment string `json:"comment,omitempty"`
7229  
7230  	// Types of the conflict.
7231  	ConflictTypes []string `json:"conflict_types,omitempty"`
7232  
7233  	// The client unique identifier.
7234  	DhcpClientIdentifier string `json:"dhcp_client_identifier,omitempty"`
7235  
7236  	// Discover now status for this address.
7237  	DiscoverNowStatus string `json:"discover_now_status,omitempty"`
7238  
7239  	// The discovered data for this address.
7240  	DiscoveredData *Discoverydata `json:"discovered_data,omitempty"`
7241  
7242  	// Extensible attributes associated with the object. For valid values for
7243  	// extensible attributes, see {extattrs:values}.
7244  	Ea EA `json:"extattrs"`
7245  
7246  	// DHCP fingerprint for the address.
7247  	Fingerprint string `json:"fingerprint,omitempty"`
7248  
7249  	// The IP address.
7250  	IpAddress string `json:"ip_address,omitempty"`
7251  
7252  	// If set to True, the IP address has either a MAC address conflict or a DHCP
7253  	// lease conflict detected through a network discovery.
7254  	IsConflict bool `json:"is_conflict,omitempty"`
7255  
7256  	// This flag reflects whether the MAC address for this address is invalid.
7257  	IsInvalidMac bool `json:"is_invalid_mac,omitempty"`
7258  
7259  	// The lease state of the address.
7260  	LeaseState string `json:"lease_state,omitempty"`
7261  
7262  	// The MAC address.
7263  	MacAddress string `json:"mac_address,omitempty"`
7264  
7265  	// The Microsoft Active Directory user related information.
7266  	MsAdUserData *MsserverAduserData `json:"ms_ad_user_data,omitempty"`
7267  
7268  	// The DNS names. For example, if the IP address belongs to a host record, this
7269  	// field contains the hostname. This field supports both single and array
7270  	// search.
7271  	Names []string `json:"names,omitempty"`
7272  
7273  	// The network to which this address belongs, in FQDN/CIDR format.
7274  	Network string `json:"network,omitempty"`
7275  
7276  	// The name of the network view.
7277  	NetworkView string `json:"network_view,omitempty"`
7278  
7279  	// The objects associated with the IP address.
7280  	Objects []string `json:"objects,omitempty"`
7281  
7282  	// The reserved port for the address.
7283  	ReservedPort string `json:"reserved_port,omitempty"`
7284  
7285  	// The current status of the address.
7286  	Status string `json:"status,omitempty"`
7287  
7288  	// The types of associated objects. This field supports both single and array
7289  	// search.
7290  	Types []string `json:"types,omitempty"`
7291  
7292  	// Indicates whether the IP address is configured for DNS or DHCP. This field
7293  	// supports both single and array search.
7294  	Usage []string `json:"usage,omitempty"`
7295  
7296  	// The name of the user who created or modified the record.
7297  	Username string `json:"username,omitempty"`
7298  }
7299  
7300  func (IPv4Address) ObjectType() string {
7301  	return "ipv4address"
7302  }
7303  
7304  func (obj IPv4Address) ReturnFields() []string {
7305  	if obj.returnFields == nil {
7306  		obj.returnFields = []string{"dhcp_client_identifier", "ip_address", "is_conflict", "lease_state", "mac_address", "names", "network", "network_view", "objects", "status", "types", "usage", "username"}
7307  	}
7308  	return obj.returnFields
7309  }
7310  
7311  // IPv6Address represents Infoblox object ipv6address.
7312  // This object is created only as part of the record.host object, it cannot be
7313  // created directly.
7314  type IPv6Address struct {
7315  	IBBase `json:"-"`
7316  
7317  	Ref string `json:"_ref,omitempty"`
7318  
7319  	// Comment for the address; maximum 256 characters.
7320  	Comment string `json:"comment,omitempty"`
7321  
7322  	// Types of the conflict.
7323  	ConflictTypes []string `json:"conflict_types,omitempty"`
7324  
7325  	// Discover now status for this address.
7326  	DiscoverNowStatus string `json:"discover_now_status,omitempty"`
7327  
7328  	// The discovered data for this address.
7329  	DiscoveredData *Discoverydata `json:"discovered_data,omitempty"`
7330  
7331  	// DHCPv6 Unique Identifier (DUID) of the address object.
7332  	Duid string `json:"duid,omitempty"`
7333  
7334  	// Extensible attributes associated with the object. For valid values for
7335  	// extensible attributes, see {extattrs:values}.
7336  	Ea EA `json:"extattrs"`
7337  
7338  	// DHCP fingerprint for the address.
7339  	Fingerprint string `json:"fingerprint,omitempty"`
7340  
7341  	// IPv6 addresses of the address object.
7342  	IpAddress string `json:"ip_address,omitempty"`
7343  
7344  	// IP address has either a duid conflict or a DHCP lease conflict detected
7345  	// through a network discovery.
7346  	IsConflict bool `json:"is_conflict,omitempty"`
7347  
7348  	// The lease state of the address.
7349  	LeaseState string `json:"lease_state,omitempty"`
7350  
7351  	// The Microsoft Active Directory user related information.
7352  	MsAdUserData *MsserverAduserData `json:"ms_ad_user_data,omitempty"`
7353  
7354  	// The DNS names. For example, if the IP address belongs to a host record, this
7355  	// field contains the hostname. This field supports both single and array
7356  	// search.
7357  	Names []string `json:"names,omitempty"`
7358  
7359  	// The network to which this address belongs, in FQDN/CIDR format.
7360  	Network string `json:"network,omitempty"`
7361  
7362  	// The name of the network view.
7363  	NetworkView string `json:"network_view,omitempty"`
7364  
7365  	// The objects associated with the IP address.
7366  	Objects []string `json:"objects,omitempty"`
7367  
7368  	// The reserved port for the address.
7369  	ReservedPort string `json:"reserved_port,omitempty"`
7370  
7371  	// The current status of the address.
7372  	Status string `json:"status,omitempty"`
7373  
7374  	// The types of associated objects. This field supports both single and array
7375  	// search.
7376  	Types []string `json:"types,omitempty"`
7377  
7378  	// Indicates whether the IP address is configured for DNS or DHCP. This field
7379  	// supports both single and array search.
7380  	Usage []string `json:"usage,omitempty"`
7381  }
7382  
7383  func (IPv6Address) ObjectType() string {
7384  	return "ipv6address"
7385  }
7386  
7387  func (obj IPv6Address) ReturnFields() []string {
7388  	if obj.returnFields == nil {
7389  		obj.returnFields = []string{"duid", "ip_address", "is_conflict", "lease_state", "names", "network", "network_view", "objects", "status", "types", "usage"}
7390  	}
7391  	return obj.returnFields
7392  }
7393  
7394  // Ipv6dhcpoptiondefinition represents Infoblox object ipv6dhcpoptiondefinition.
7395  // An IPv6 option definition defines a DHCP IPv6 option within a specific IPv6
7396  // option space. A custom IPv6 option can be defined in the predefined DHCP
7397  // IPv6 option space or in the user-defined vendor IPv6 option space. To define
7398  // an IPv6 option, add the IPv6 option definition to the required IPv6 option
7399  // space.
7400  type Ipv6dhcpoptiondefinition struct {
7401  	IBBase `json:"-"`
7402  
7403  	Ref string `json:"_ref,omitempty"`
7404  
7405  	// The code of a DHCP IPv6 option definition object. An option code number is
7406  	// used to identify the DHCP option.
7407  	Code *uint32 `json:"code,omitempty"`
7408  
7409  	// The name of a DHCP IPv6 option definition object.
7410  	Name *string `json:"name,omitempty"`
7411  
7412  	// The space of a DHCP option definition object.
7413  	Space *string `json:"space,omitempty"`
7414  
7415  	// The data type of the Grid DHCP IPv6 option.
7416  	Type string `json:"type,omitempty"`
7417  }
7418  
7419  func (Ipv6dhcpoptiondefinition) ObjectType() string {
7420  	return "ipv6dhcpoptiondefinition"
7421  }
7422  
7423  func (obj Ipv6dhcpoptiondefinition) ReturnFields() []string {
7424  	if obj.returnFields == nil {
7425  		obj.returnFields = []string{"code", "name", "type"}
7426  	}
7427  	return obj.returnFields
7428  }
7429  
7430  // Ipv6dhcpoptionspace represents Infoblox object ipv6dhcpoptionspace.
7431  // An IPv6 option space defines a namespace in which vendor IPv6 options can be
7432  // defined. To define a specific vendor IPv6 option space, add an IPv6 option
7433  // space to DHCP.
7434  type Ipv6dhcpoptionspace struct {
7435  	IBBase `json:"-"`
7436  
7437  	Ref string `json:"_ref,omitempty"`
7438  
7439  	// A descriptive comment of a DHCP IPv6 option space object.
7440  	Comment *string `json:"comment,omitempty"`
7441  
7442  	// The enterprise number of a DHCP IPv6 option space object.
7443  	EnterpriseNumber *uint32 `json:"enterprise_number,omitempty"`
7444  
7445  	// The name of a DHCP IPv6 option space object.
7446  	Name *string `json:"name,omitempty"`
7447  
7448  	// The list of DHCP IPv6 option definition objects.
7449  	OptionDefinitions []string `json:"option_definitions,omitempty"`
7450  }
7451  
7452  func (Ipv6dhcpoptionspace) ObjectType() string {
7453  	return "ipv6dhcpoptionspace"
7454  }
7455  
7456  func (obj Ipv6dhcpoptionspace) ReturnFields() []string {
7457  	if obj.returnFields == nil {
7458  		obj.returnFields = []string{"comment", "enterprise_number", "name"}
7459  	}
7460  	return obj.returnFields
7461  }
7462  
7463  // Ipv6filteroption represents Infoblox object ipv6filteroption.
7464  // In the ISC DHCP terms, it defines a class of clients that match a particular
7465  // (option, value) pair. To define an option filter, add an Option to the IPv6
7466  // DHCP Filter object.
7467  type Ipv6filteroption struct {
7468  	IBBase `json:"-"`
7469  
7470  	Ref string `json:"_ref,omitempty"`
7471  
7472  	// Determines if apply as class is enabled or not. If this flag is set to
7473  	// "true" the filter is treated as global DHCP class, e.g it is written to
7474  	// DHCPv6 configuration file even if it is not present in any DHCP range.
7475  	ApplyAsClass *bool `json:"apply_as_class,omitempty"`
7476  
7477  	// The descriptive comment of a DHCP IPv6 filter option object.
7478  	Comment *string `json:"comment,omitempty"`
7479  
7480  	// The conditional expression of a DHCP IPv6 filter option object.
7481  	Expression *string `json:"expression,omitempty"`
7482  
7483  	// Extensible attributes associated with the object. For valid values for
7484  	// extensible attributes, see {extattrs:values}.
7485  	Ea EA `json:"extattrs"`
7486  
7487  	// Determines the lease time of a DHCP IPv6 filter option object.
7488  	LeaseTime *uint32 `json:"lease_time,omitempty"`
7489  
7490  	// The name of a DHCP IPv6 option filter object.
7491  	Name *string `json:"name,omitempty"`
7492  
7493  	// An array of DHCP option dhcpoption structs that lists the DHCP options
7494  	// associated with the object.
7495  	OptionList []*Dhcpoption `json:"option_list,omitempty"`
7496  
7497  	// The option space of a DHCP IPv6 filter option object.
7498  	OptionSpace *string `json:"option_space,omitempty"`
7499  }
7500  
7501  func (Ipv6filteroption) ObjectType() string {
7502  	return "ipv6filteroption"
7503  }
7504  
7505  func (obj Ipv6filteroption) ReturnFields() []string {
7506  	if obj.returnFields == nil {
7507  		obj.returnFields = []string{"comment", "name"}
7508  	}
7509  	return obj.returnFields
7510  }
7511  
7512  // Ipv6FixedAddress represents Infoblox object ipv6fixedaddress.
7513  // A IPv6 fixed address is a specific IP address that a DHCP server always
7514  // assigns when a lease request comes from a particular DUID of the client.
7515  type Ipv6FixedAddress struct {
7516  	IBBase `json:"-"`
7517  
7518  	Ref string `json:"_ref,omitempty"`
7519  
7520  	// The address type value for this IPv6 fixed address. When the address type is
7521  	// "ADDRESS", a value for the 'ipv6addr' member is required. When the address
7522  	// type is "PREFIX", values for 'ipv6prefix' and 'ipv6prefix_bits' are
7523  	// required. When the address type is "BOTH", values for 'ipv6addr',
7524  	// 'ipv6prefix', and 'ipv6prefix_bits' are all required.
7525  	AddressType string `json:"address_type,omitempty"`
7526  
7527  	// This field controls whether the credential is used for both the Telnet and
7528  	// SSH credentials. If set to False, the credential is used only for SSH.
7529  	AllowTelnet *bool `json:"allow_telnet,omitempty"`
7530  
7531  	// The CLI credentials for the IPv6 fixed address.
7532  	CliCredentials []*DiscoveryClicredential `json:"cli_credentials,omitempty"`
7533  
7534  	// Structure containing all cloud API related information for this object.
7535  	CloudInfo *GridCloudapiInfo `json:"cloud_info,omitempty"`
7536  
7537  	// Comment for the fixed address; maximum 256 characters.
7538  	Comment *string `json:"comment,omitempty"`
7539  
7540  	// The description of the device.
7541  	DeviceDescription *string `json:"device_description,omitempty"`
7542  
7543  	// The location of the device.
7544  	DeviceLocation *string `json:"device_location,omitempty"`
7545  
7546  	// The type of the device.
7547  	DeviceType *string `json:"device_type,omitempty"`
7548  
7549  	// The vendor of the device.
7550  	DeviceVendor *string `json:"device_vendor,omitempty"`
7551  
7552  	// Determines whether a fixed address is disabled or not. When this is set to
7553  	// False, the IPv6 fixed address is enabled.
7554  	Disable *bool `json:"disable,omitempty"`
7555  
7556  	// Determines if the discovery for this IPv6 fixed address is disabled or not.
7557  	// False means that the discovery is enabled.
7558  	DisableDiscovery *bool `json:"disable_discovery,omitempty"`
7559  
7560  	// The discovery status of this IPv6 fixed address.
7561  	DiscoverNowStatus string `json:"discover_now_status,omitempty"`
7562  
7563  	// The discovered data for this IPv6 fixed address.
7564  	DiscoveredData *Discoverydata `json:"discovered_data,omitempty"`
7565  
7566  	// The domain name for this IPv6 fixed address.
7567  	DomainName *string `json:"domain_name,omitempty"`
7568  
7569  	// The IPv6 addresses of DNS recursive name servers to which the DHCP client
7570  	// can send name resolution requests. The DHCP server includes this information
7571  	// in the DNS Recursive Name Server option in Advertise, Rebind,
7572  	// Information-Request, and Reply messages.
7573  	DomainNameServers []string `json:"domain_name_servers,omitempty"`
7574  
7575  	// The DUID value for this IPv6 fixed address.
7576  	Duid *string `json:"duid,omitempty"`
7577  
7578  	// Determines if the discovery for the IPv6 fixed address should be immediately
7579  	// enabled.
7580  	EnableImmediateDiscovery *bool `json:"enable_immediate_discovery,omitempty"`
7581  
7582  	// Extensible attributes associated with the object. For valid values for
7583  	// extensible attributes, see {extattrs:values}.
7584  	Ea EA `json:"extattrs"`
7585  
7586  	// The IPv6 Address of the DHCP IPv6 fixed address.
7587  	Ipv6Addr *string `json:"ipv6addr,omitempty"`
7588  
7589  	// The IPv6 Address prefix of the DHCP IPv6 fixed address.
7590  	Ipv6prefix *string `json:"ipv6prefix,omitempty"`
7591  
7592  	// Prefix bits of the DHCP IPv6 fixed address.
7593  	Ipv6prefixBits *uint32 `json:"ipv6prefix_bits,omitempty"`
7594  
7595  	// This field contains the logic filters to be applied to this IPv6 fixed
7596  	// address. This list corresponds to the match rules that are written to the
7597  	// DHCPv6 configuration file.
7598  	LogicFilterRules []*Logicfilterrule `json:"logic_filter_rules,omitempty"`
7599  
7600  	// The Microsoft Active Directory user related information.
7601  	MsAdUserData *MsserverAduserData `json:"ms_ad_user_data,omitempty"`
7602  
7603  	// This field contains the name of this IPv6 fixed address.
7604  	Name *string `json:"name,omitempty"`
7605  
7606  	// The network to which this IPv6 fixed address belongs, in IPv6 Address/CIDR
7607  	// format.
7608  	Network *string `json:"network,omitempty"`
7609  
7610  	// The name of the network view in which this IPv6 fixed address resides.
7611  	NetworkView *string `json:"network_view,omitempty"`
7612  
7613  	// An array of DHCP option dhcpoption structs that lists the DHCP options
7614  	// associated with the object.
7615  	Options []*Dhcpoption `json:"options,omitempty"`
7616  
7617  	// The preferred lifetime value for this DHCP IPv6 fixed address object.
7618  	PreferredLifetime *uint32 `json:"preferred_lifetime,omitempty"`
7619  
7620  	// The reference to the reserved interface to which the device belongs.
7621  	ReservedInterface *string `json:"reserved_interface,omitempty"`
7622  
7623  	// Restarts the member service. The restart_if_needed flag can trigger a
7624  	// restart on DHCP services only when it is enabled on CP member.
7625  	RestartIfNeeded *bool `json:"restart_if_needed,omitempty"`
7626  
7627  	// The SNMPv3 credential for this IPv6 fixed address.
7628  	Snmp3Credential *DiscoverySnmp3credential `json:"snmp3_credential,omitempty"`
7629  
7630  	// The SNMPv1 or SNMPv2 credential for this IPv6 fixed address.
7631  	SnmpCredential *DiscoverySnmpcredential `json:"snmp_credential,omitempty"`
7632  
7633  	// If set on creation, the IPv6 fixed address will be created according to the
7634  	// values specified in the named template.
7635  	Template string `json:"template,omitempty"`
7636  
7637  	// If set to true, the CLI credential will override member-level settings.
7638  	UseCliCredentials *bool `json:"use_cli_credentials,omitempty"`
7639  
7640  	// Use flag for: domain_name
7641  	UseDomainName *bool `json:"use_domain_name,omitempty"`
7642  
7643  	// Use flag for: domain_name_servers
7644  	UseDomainNameServers *bool `json:"use_domain_name_servers,omitempty"`
7645  
7646  	// Use flag for: logic_filter_rules
7647  	UseLogicFilterRules *bool `json:"use_logic_filter_rules,omitempty"`
7648  
7649  	// Use flag for: options
7650  	UseOptions *bool `json:"use_options,omitempty"`
7651  
7652  	// Use flag for: preferred_lifetime
7653  	UsePreferredLifetime *bool `json:"use_preferred_lifetime,omitempty"`
7654  
7655  	// Determines if the SNMPv3 credential should be used for the IPv6 fixed
7656  	// address.
7657  	UseSnmp3Credential *bool `json:"use_snmp3_credential,omitempty"`
7658  
7659  	// If set to true, SNMP credential will override member level settings.
7660  	UseSnmpCredential *bool `json:"use_snmp_credential,omitempty"`
7661  
7662  	// Use flag for: valid_lifetime
7663  	UseValidLifetime *bool `json:"use_valid_lifetime,omitempty"`
7664  
7665  	// The valid lifetime value for this DHCP IPv6 Fixed Address object.
7666  	ValidLifetime *uint32 `json:"valid_lifetime,omitempty"`
7667  }
7668  
7669  func (Ipv6FixedAddress) ObjectType() string {
7670  	return "ipv6fixedaddress"
7671  }
7672  
7673  func (obj Ipv6FixedAddress) ReturnFields() []string {
7674  	if obj.returnFields == nil {
7675  		obj.returnFields = []string{"duid", "ipv6addr", "network_view"}
7676  	}
7677  	return obj.returnFields
7678  }
7679  
7680  // Ipv6fixedaddresstemplate represents Infoblox object ipv6fixedaddresstemplate.
7681  // The IPv6 fixed address template used to create IPv6 fixed address objects in
7682  // a quick and consistent way. An IPv6 fixed address object created from an
7683  // IPv6 fixed address template will inherit most properties defined in the IPv6
7684  // fixed address template object; therefor, most of the IPv6 fixed address
7685  // template properties are the same as the fixed address object properties.
7686  type Ipv6fixedaddresstemplate struct {
7687  	IBBase `json:"-"`
7688  
7689  	Ref string `json:"_ref,omitempty"`
7690  
7691  	// A descriptive comment of an IPv6 fixed address template object.
7692  	Comment *string `json:"comment,omitempty"`
7693  
7694  	// Domain name of the IPv6 fixed address template object.
7695  	DomainName *string `json:"domain_name,omitempty"`
7696  
7697  	// The IPv6 addresses of DNS recursive name servers to which the DHCP client
7698  	// can send name resolution requests. The DHCP server includes this information
7699  	// in the DNS Recursive Name Server option in Advertise, Rebind,
7700  	// Information-Request, and Reply messages.
7701  	DomainNameServers []string `json:"domain_name_servers,omitempty"`
7702  
7703  	// Extensible attributes associated with the object. For valid values for
7704  	// extensible attributes, see {extattrs:values}.
7705  	Ea EA `json:"extattrs"`
7706  
7707  	// This field contains the logic filters to be applied to this IPv6 fixed
7708  	// address. This list corresponds to the match rules that are written to the
7709  	// DHCPv6 configuration file.
7710  	LogicFilterRules []*Logicfilterrule `json:"logic_filter_rules,omitempty"`
7711  
7712  	// Name of an IPv6 fixed address template object.
7713  	Name *string `json:"name,omitempty"`
7714  
7715  	// The number of IPv6 addresses for this fixed address.
7716  	NumberOfAddresses *uint32 `json:"number_of_addresses,omitempty"`
7717  
7718  	// The start address offset for this IPv6 fixed address.
7719  	Offset *uint32 `json:"offset,omitempty"`
7720  
7721  	// An array of DHCP option dhcpoption structs that lists the DHCP options
7722  	// associated with the object.
7723  	Options []*Dhcpoption `json:"options,omitempty"`
7724  
7725  	// The preferred lifetime value for this DHCP IPv6 fixed address template
7726  	// object.
7727  	PreferredLifetime *uint32 `json:"preferred_lifetime,omitempty"`
7728  
7729  	// Use flag for: domain_name
7730  	UseDomainName *bool `json:"use_domain_name,omitempty"`
7731  
7732  	// Use flag for: domain_name_servers
7733  	UseDomainNameServers *bool `json:"use_domain_name_servers,omitempty"`
7734  
7735  	// Use flag for: logic_filter_rules
7736  	UseLogicFilterRules *bool `json:"use_logic_filter_rules,omitempty"`
7737  
7738  	// Use flag for: options
7739  	UseOptions *bool `json:"use_options,omitempty"`
7740  
7741  	// Use flag for: preferred_lifetime
7742  	UsePreferredLifetime *bool `json:"use_preferred_lifetime,omitempty"`
7743  
7744  	// Use flag for: valid_lifetime
7745  	UseValidLifetime *bool `json:"use_valid_lifetime,omitempty"`
7746  
7747  	// The valid lifetime value for this DHCP IPv6 fixed address template object.
7748  	ValidLifetime *uint32 `json:"valid_lifetime,omitempty"`
7749  }
7750  
7751  func (Ipv6fixedaddresstemplate) ObjectType() string {
7752  	return "ipv6fixedaddresstemplate"
7753  }
7754  
7755  func (obj Ipv6fixedaddresstemplate) ReturnFields() []string {
7756  	if obj.returnFields == nil {
7757  		obj.returnFields = []string{"comment", "name"}
7758  	}
7759  	return obj.returnFields
7760  }
7761  
7762  // Ipv6Network represents Infoblox object ipv6network.
7763  // When DHCP services are configured on an appliance, the network that it
7764  // serves must be defined. After a network is created, you can either create
7765  // all the subnets individually, or create a parent network that encompasses
7766  // the subnets.
7767  type Ipv6Network struct {
7768  	IBBase `json:"-"`
7769  
7770  	Ref string `json:"_ref,omitempty"`
7771  
7772  	// This flag controls whether reverse zones are automatically created when the
7773  	// network is added.
7774  	AutoCreateReversezone bool `json:"auto_create_reversezone,omitempty"`
7775  
7776  	// Structure containing all cloud API related information for this object.
7777  	CloudInfo *GridCloudapiInfo `json:"cloud_info,omitempty"`
7778  
7779  	// Comment for the network; maximum 256 characters.
7780  	Comment *string `json:"comment,omitempty"`
7781  
7782  	// The dynamic DNS domain name the appliance uses specifically for DDNS updates
7783  	// for this network.
7784  	DdnsDomainname *string `json:"ddns_domainname,omitempty"`
7785  
7786  	// Use this method to set or retrieve the ddns_enable_option_fqdn flag of a
7787  	// DHCP IPv6 Network object. This method controls whether the FQDN option sent
7788  	// by the client is to be used, or if the server can automatically generate the
7789  	// FQDN. This setting overrides the upper-level settings.
7790  	DdnsEnableOptionFqdn *bool `json:"ddns_enable_option_fqdn,omitempty"`
7791  
7792  	// If this field is set to True, the DHCP server generates a hostname and
7793  	// updates DNS with it when the DHCP client request does not contain a
7794  	// hostname.
7795  	DdnsGenerateHostname *bool `json:"ddns_generate_hostname,omitempty"`
7796  
7797  	// This field controls whether only the DHCP server is allowed to update DNS,
7798  	// regardless of the DHCP clients requests. Note that changes for this field
7799  	// take effect only if ddns_enable_option_fqdn is True.
7800  	DdnsServerAlwaysUpdates *bool `json:"ddns_server_always_updates,omitempty"`
7801  
7802  	// The DNS update Time to Live (TTL) value of a DHCP network object. The TTL is
7803  	// a 32-bit unsigned integer that represents the duration, in seconds, for
7804  	// which the update is cached. Zero indicates that the update is not cached.
7805  	DdnsTtl *uint32 `json:"ddns_ttl,omitempty"`
7806  
7807  	// The reason for deleting the RIR registration request.
7808  	DeleteReason *string `json:"delete_reason,omitempty"`
7809  
7810  	// Determines whether a network is disabled or not. When this is set to False,
7811  	// the network is enabled.
7812  	Disable *bool `json:"disable,omitempty"`
7813  
7814  	// Discover now status for this network.
7815  	DiscoverNowStatus string `json:"discover_now_status,omitempty"`
7816  
7817  	// Number of the discovered BGP AS. When multiple BGP autonomous systems are
7818  	// discovered in the network, this field displays "Multiple".
7819  	DiscoveredBgpAs string `json:"discovered_bgp_as,omitempty"`
7820  
7821  	// Discovered bridge domain.
7822  	DiscoveredBridgeDomain *string `json:"discovered_bridge_domain,omitempty"`
7823  
7824  	// Discovered tenant.
7825  	DiscoveredTenant *string `json:"discovered_tenant,omitempty"`
7826  
7827  	// The identifier of the discovered VLAN. When multiple VLANs are discovered in
7828  	// the network, this field displays "Multiple".
7829  	DiscoveredVlanId string `json:"discovered_vlan_id,omitempty"`
7830  
7831  	// The name of the discovered VLAN. When multiple VLANs are discovered in the
7832  	// network, this field displays "Multiple".
7833  	DiscoveredVlanName string `json:"discovered_vlan_name,omitempty"`
7834  
7835  	// Description of the discovered VRF. When multiple VRFs are discovered in the
7836  	// network, this field displays "Multiple".
7837  	DiscoveredVrfDescription string `json:"discovered_vrf_description,omitempty"`
7838  
7839  	// The name of the discovered VRF. When multiple VRFs are discovered in the
7840  	// network, this field displays "Multiple".
7841  	DiscoveredVrfName string `json:"discovered_vrf_name,omitempty"`
7842  
7843  	// Route distinguisher of the discovered VRF. When multiple VRFs are discovered
7844  	// in the network, this field displays "Multiple".
7845  	DiscoveredVrfRd string `json:"discovered_vrf_rd,omitempty"`
7846  
7847  	// The discovery basic poll settings for this network.
7848  	DiscoveryBasicPollSettings *DiscoveryBasicpollsettings `json:"discovery_basic_poll_settings,omitempty"`
7849  
7850  	// The discovery blackout setting for this network.
7851  	DiscoveryBlackoutSetting *PropertiesBlackoutsetting `json:"discovery_blackout_setting,omitempty"`
7852  
7853  	// The network discovery engine type.
7854  	DiscoveryEngineType string `json:"discovery_engine_type,omitempty"`
7855  
7856  	// The member that will run discovery for this network.
7857  	DiscoveryMember *string `json:"discovery_member,omitempty"`
7858  
7859  	// Use this method to set or retrieve the domain_name value of a DHCP IPv6
7860  	// Network object.
7861  	DomainName *string `json:"domain_name,omitempty"`
7862  
7863  	// Use this method to set or retrieve the dynamic DNS updates flag of a DHCP
7864  	// IPv6 Network object. The DHCP server can send DDNS updates to DNS servers in
7865  	// the same Grid and to external DNS servers. This setting overrides the member
7866  	// level settings.
7867  	DomainNameServers []string `json:"domain_name_servers,omitempty"`
7868  
7869  	// The dynamic DNS updates flag of a DHCP IPv6 network object. If set to True,
7870  	// the DHCP server sends DDNS updates to DNS servers in the same Grid, and to
7871  	// external DNS servers.
7872  	EnableDdns *bool `json:"enable_ddns,omitempty"`
7873  
7874  	// Determines whether a discovery is enabled or not for this network. When this
7875  	// is set to False, the network discovery is disabled.
7876  	EnableDiscovery *bool `json:"enable_discovery,omitempty"`
7877  
7878  	// Determines if IFMAP publishing is enabled for the network.
7879  	EnableIfmapPublishing *bool `json:"enable_ifmap_publishing,omitempty"`
7880  
7881  	// Determines if the discovery for the network should be immediately enabled.
7882  	EnableImmediateDiscovery *bool `json:"enable_immediate_discovery,omitempty"`
7883  
7884  	// The endpoints that provides data for the DHCP IPv6 Network object.
7885  	EndpointSources []*CiscoiseEndpoint `json:"endpoint_sources,omitempty"`
7886  
7887  	// Extensible attributes associated with the object. For valid values for
7888  	// extensible attributes, see {extattrs:values}.
7889  	Ea EA `json:"extattrs"`
7890  
7891  	// The timestamp when the last RIR registration update was sent.
7892  	LastRirRegistrationUpdateSent *UnixTime `json:"last_rir_registration_update_sent,omitempty"`
7893  
7894  	// Last RIR registration update status.
7895  	LastRirRegistrationUpdateStatus string `json:"last_rir_registration_update_status,omitempty"`
7896  
7897  	// This field contains the logic filters to be applied on this IPv6 network.
7898  	// This list corresponds to the match rules that are written to the DHCPv6
7899  	// configuration file.
7900  	LogicFilterRules []*Logicfilterrule `json:"logic_filter_rules,omitempty"`
7901  
7902  	// A list of members servers that serve DHCP for the network. All members in
7903  	// the array must be of the same type. The struct type must be indicated in
7904  	// each element, by setting the "_struct" member to the struct type.
7905  	Members []*Dhcpmember `json:"members,omitempty"`
7906  
7907  	// This field controls whether this object is synchronized with the Multi-Grid
7908  	// Master. If this field is set to True, objects are not synchronized.
7909  	MgmPrivate *bool `json:"mgm_private,omitempty"`
7910  
7911  	// This field is assumed to be True unless filled by any conforming objects,
7912  	// such as Network, IPv6 Network, Network Container, IPv6 Network Container,
7913  	// and Network View. This value is set to False if mgm_private is set to True
7914  	// in the parent object.
7915  	MgmPrivateOverridable bool `json:"mgm_private_overridable,omitempty"`
7916  
7917  	// The Microsoft Active Directory user related information.
7918  	MsAdUserData *MsserverAduserData `json:"ms_ad_user_data,omitempty"`
7919  
7920  	// The network address in IPv6 Address/CIDR format. For regular expression
7921  	// searches, only the IPv6 Address portion is supported. Searches for the CIDR
7922  	// portion is always an exact match. For example, both network containers
7923  	// 16::0/28 and 26::0/24 are matched by expression '.6' and only 26::0/24 is
7924  	// matched by '.6/24'.
7925  	Network *string `json:"network,omitempty"`
7926  
7927  	// The network container to which this network belongs, if any.
7928  	NetworkContainer string `json:"network_container,omitempty"`
7929  
7930  	// The name of the network view in which this network resides.
7931  	NetworkView *string `json:"network_view,omitempty"`
7932  
7933  	// An array of DHCP option dhcpoption structs that lists the DHCP options
7934  	// associated with the object.
7935  	Options []*Dhcpoption `json:"options,omitempty"`
7936  
7937  	// The port control blackout setting for this network.
7938  	PortControlBlackoutSetting *PropertiesBlackoutsetting `json:"port_control_blackout_setting,omitempty"`
7939  
7940  	// Use this method to set or retrieve the preferred lifetime value of a DHCP
7941  	// IPv6 Network object.
7942  	PreferredLifetime *uint32 `json:"preferred_lifetime,omitempty"`
7943  
7944  	// If the field is set to True, the leases are kept in the Recycle Bin until
7945  	// one week after expiration. Otherwise, the leases are permanently deleted.
7946  	RecycleLeases *bool `json:"recycle_leases,omitempty"`
7947  
7948  	// Restarts the member service.
7949  	RestartIfNeeded *bool `json:"restart_if_needed,omitempty"`
7950  
7951  	// The registry (RIR) that allocated the IPv6 network address space.
7952  	Rir string `json:"rir,omitempty"`
7953  
7954  	// The RIR organization associated with the IPv6 network.
7955  	RirOrganization *string `json:"rir_organization,omitempty"`
7956  
7957  	// The RIR registration action.
7958  	RirRegistrationAction string `json:"rir_registration_action,omitempty"`
7959  
7960  	// The registration status of the IPv6 network in RIR.
7961  	RirRegistrationStatus string `json:"rir_registration_status,omitempty"`
7962  
7963  	// If the field is set to True, the discovery blackout setting will be used for
7964  	// port control blackout setting.
7965  	SamePortControlDiscoveryBlackout *bool `json:"same_port_control_discovery_blackout,omitempty"`
7966  
7967  	// Determines whether to send the RIR registration request.
7968  	SendRirRequest *bool `json:"send_rir_request,omitempty"`
7969  
7970  	// The DHCP IPv6 Network Cisco ISE subscribe settings.
7971  	SubscribeSettings *CiscoiseSubscribesetting `json:"subscribe_settings,omitempty"`
7972  
7973  	// If set on creation, the network is created according to the values specified
7974  	// in the selected template.
7975  	Template string `json:"template,omitempty"`
7976  
7977  	// Determines whether the DHCP IPv6 Network is unmanaged or not.
7978  	Unmanaged *bool `json:"unmanaged,omitempty"`
7979  
7980  	// The number of unmanaged IP addresses as discovered by network discovery.
7981  	UnmanagedCount uint32 `json:"unmanaged_count,omitempty"`
7982  
7983  	// This field controls whether the DHCP server updates DNS when a DHCP lease is
7984  	// renewed.
7985  	UpdateDnsOnLeaseRenewal *bool `json:"update_dns_on_lease_renewal,omitempty"`
7986  
7987  	// Use flag for: discovery_blackout_setting , port_control_blackout_setting,
7988  	// same_port_control_discovery_blackout
7989  	UseBlackoutSetting *bool `json:"use_blackout_setting,omitempty"`
7990  
7991  	// Use flag for: ddns_domainname
7992  	UseDdnsDomainname *bool `json:"use_ddns_domainname,omitempty"`
7993  
7994  	// Use flag for: ddns_enable_option_fqdn
7995  	UseDdnsEnableOptionFqdn *bool `json:"use_ddns_enable_option_fqdn,omitempty"`
7996  
7997  	// Use flag for: ddns_generate_hostname
7998  	UseDdnsGenerateHostname *bool `json:"use_ddns_generate_hostname,omitempty"`
7999  
8000  	// Use flag for: ddns_ttl
8001  	UseDdnsTtl *bool `json:"use_ddns_ttl,omitempty"`
8002  
8003  	// Use flag for: discovery_basic_poll_settings
8004  	UseDiscoveryBasicPollingSettings *bool `json:"use_discovery_basic_polling_settings,omitempty"`
8005  
8006  	// Use flag for: domain_name
8007  	UseDomainName *bool `json:"use_domain_name,omitempty"`
8008  
8009  	// Use flag for: domain_name_servers
8010  	UseDomainNameServers *bool `json:"use_domain_name_servers,omitempty"`
8011  
8012  	// Use flag for: enable_ddns
8013  	UseEnableDdns *bool `json:"use_enable_ddns,omitempty"`
8014  
8015  	// Use flag for: discovery_member , enable_discovery
8016  	UseEnableDiscovery *bool `json:"use_enable_discovery,omitempty"`
8017  
8018  	// Use flag for: enable_ifmap_publishing
8019  	UseEnableIfmapPublishing *bool `json:"use_enable_ifmap_publishing,omitempty"`
8020  
8021  	// Use flag for: logic_filter_rules
8022  	UseLogicFilterRules *bool `json:"use_logic_filter_rules,omitempty"`
8023  
8024  	// Use flag for: mgm_private
8025  	UseMgmPrivate *bool `json:"use_mgm_private,omitempty"`
8026  
8027  	// Use flag for: options
8028  	UseOptions *bool `json:"use_options,omitempty"`
8029  
8030  	// Use flag for: preferred_lifetime
8031  	UsePreferredLifetime *bool `json:"use_preferred_lifetime,omitempty"`
8032  
8033  	// Use flag for: recycle_leases
8034  	UseRecycleLeases *bool `json:"use_recycle_leases,omitempty"`
8035  
8036  	// Use flag for: subscribe_settings
8037  	UseSubscribeSettings *bool `json:"use_subscribe_settings,omitempty"`
8038  
8039  	// Use flag for: update_dns_on_lease_renewal
8040  	UseUpdateDnsOnLeaseRenewal *bool `json:"use_update_dns_on_lease_renewal,omitempty"`
8041  
8042  	// Use flag for: valid_lifetime
8043  	UseValidLifetime *bool `json:"use_valid_lifetime,omitempty"`
8044  
8045  	// Use flag for: zone_associations
8046  	UseZoneAssociations *bool `json:"use_zone_associations,omitempty"`
8047  
8048  	// Use this method to set or retrieve the valid lifetime value of a DHCP IPv6
8049  	// Network object.
8050  	ValidLifetime *uint32 `json:"valid_lifetime,omitempty"`
8051  
8052  	// List of VLANs assigned to Network.
8053  	Vlans []*Vlanlink `json:"vlans,omitempty"`
8054  
8055  	// The list of zones associated with this network.
8056  	ZoneAssociations []*Zoneassociation `json:"zone_associations,omitempty"`
8057  }
8058  
8059  func (Ipv6Network) ObjectType() string {
8060  	return "ipv6network"
8061  }
8062  
8063  func (obj Ipv6Network) ReturnFields() []string {
8064  	if obj.returnFields == nil {
8065  		obj.returnFields = []string{"comment", "network", "network_view"}
8066  	}
8067  	return obj.returnFields
8068  }
8069  
8070  // Ipv6NetworkContainer represents Infoblox object ipv6networkcontainer.
8071  // A network can contain child networks. The network that contains child
8072  // networks is called a network container. This object encapsulates an IPv6
8073  // network container object.
8074  type Ipv6NetworkContainer struct {
8075  	IBBase `json:"-"`
8076  
8077  	Ref string `json:"_ref,omitempty"`
8078  
8079  	// This flag controls whether reverse zones are automatically created when the
8080  	// network is added.
8081  	AutoCreateReversezone bool `json:"auto_create_reversezone,omitempty"`
8082  
8083  	// Structure containing all cloud API related information for this object.
8084  	CloudInfo *GridCloudapiInfo `json:"cloud_info,omitempty"`
8085  
8086  	// Comment for the network; maximum 256 characters.
8087  	Comment *string `json:"comment,omitempty"`
8088  
8089  	// The dynamic DNS domain name the appliance uses specifically for DDNS updates
8090  	// for this network container.
8091  	DdnsDomainname *string `json:"ddns_domainname,omitempty"`
8092  
8093  	// Use this method to set or retrieve the ddns_enable_option_fqdn flag of a
8094  	// DHCP IPv6 Network Container object. This method controls whether the FQDN
8095  	// option sent by the client is to be used, or if the server can automatically
8096  	// generate the FQDN. This setting overrides the upper-level settings.
8097  	DdnsEnableOptionFqdn *bool `json:"ddns_enable_option_fqdn,omitempty"`
8098  
8099  	// If this field is set to True, the DHCP server generates a hostname and
8100  	// updates DNS with it when the DHCP client request does not contain a
8101  	// hostname.
8102  	DdnsGenerateHostname *bool `json:"ddns_generate_hostname,omitempty"`
8103  
8104  	// This field controls whether the DHCP server is allowed to update DNS,
8105  	// regardless of the DHCP client requests. Note that changes for this field
8106  	// take effect only if ddns_enable_option_fqdn is True.
8107  	DdnsServerAlwaysUpdates *bool `json:"ddns_server_always_updates,omitempty"`
8108  
8109  	// The DNS update Time to Live (TTL) value of a DHCP network container object.
8110  	// The TTL is a 32-bit unsigned integer that represents the duration, in
8111  	// seconds, for which the update is cached. Zero indicates that the update is
8112  	// not cached.
8113  	DdnsTtl *uint32 `json:"ddns_ttl,omitempty"`
8114  
8115  	// The reason for deleting the RIR registration request.
8116  	DeleteReason *string `json:"delete_reason,omitempty"`
8117  
8118  	// Discover now status for this network container.
8119  	DiscoverNowStatus string `json:"discover_now_status,omitempty"`
8120  
8121  	// The discovery basic poll settings for this network container.
8122  	DiscoveryBasicPollSettings *DiscoveryBasicpollsettings `json:"discovery_basic_poll_settings,omitempty"`
8123  
8124  	// The discovery blackout setting for this network container.
8125  	DiscoveryBlackoutSetting *PropertiesBlackoutsetting `json:"discovery_blackout_setting,omitempty"`
8126  
8127  	// The network discovery engine type.
8128  	DiscoveryEngineType string `json:"discovery_engine_type,omitempty"`
8129  
8130  	// The member that will run discovery for this network container.
8131  	DiscoveryMember *string `json:"discovery_member,omitempty"`
8132  
8133  	// Use this method to set or retrieve the dynamic DNS updates flag of a DHCP
8134  	// IPv6 Network Container object. The DHCP server can send DDNS updates to DNS
8135  	// servers in the same Grid and to external DNS servers. This setting overrides
8136  	// the member level settings.
8137  	DomainNameServers []string `json:"domain_name_servers,omitempty"`
8138  
8139  	// The dynamic DNS updates flag of a DHCP IPv6 network container object. If set
8140  	// to True, the DHCP server sends DDNS updates to DNS servers in the same Grid,
8141  	// and to external DNS servers.
8142  	EnableDdns *bool `json:"enable_ddns,omitempty"`
8143  
8144  	// Determines whether a discovery is enabled or not for this network container.
8145  	// When this is set to False, the network container discovery is disabled.
8146  	EnableDiscovery *bool `json:"enable_discovery,omitempty"`
8147  
8148  	// Determines if the discovery for the network container should be immediately
8149  	// enabled.
8150  	EnableImmediateDiscovery *bool `json:"enable_immediate_discovery,omitempty"`
8151  
8152  	// The endpoints that provides data for the DHCP IPv6 Network Container.
8153  	EndpointSources []*CiscoiseEndpoint `json:"endpoint_sources,omitempty"`
8154  
8155  	// Extensible attributes associated with the object. For valid values for
8156  	// extensible attributes, see {extattrs:values}.
8157  	Ea EA `json:"extattrs"`
8158  
8159  	// The timestamp when the last RIR registration update was sent.
8160  	LastRirRegistrationUpdateSent *UnixTime `json:"last_rir_registration_update_sent,omitempty"`
8161  
8162  	// Last RIR registration update status.
8163  	LastRirRegistrationUpdateStatus string `json:"last_rir_registration_update_status,omitempty"`
8164  
8165  	// This field contains the logic filters to be applied on the this network
8166  	// container. This list corresponds to the match rules that are written to the
8167  	// dhcpd configuration file.
8168  	LogicFilterRules []*Logicfilterrule `json:"logic_filter_rules,omitempty"`
8169  
8170  	// This field controls whether this object is synchronized with the Multi-Grid
8171  	// Master. If this field is set to True, objects are not synchronized.
8172  	MgmPrivate *bool `json:"mgm_private,omitempty"`
8173  
8174  	// This field is assumed to be True unless filled by any conforming objects,
8175  	// such as Network, IPv6 Network, Network Container, IPv6 Network Container,
8176  	// and Network View. This value is set to False if mgm_private is set to True
8177  	// in the parent object.
8178  	MgmPrivateOverridable bool `json:"mgm_private_overridable,omitempty"`
8179  
8180  	// The Microsoft Active Directory user related information.
8181  	MsAdUserData *MsserverAduserData `json:"ms_ad_user_data,omitempty"`
8182  
8183  	// The network address in IPv6 Address/CIDR format. For regular expression
8184  	// searches, only the IPv6 Address portion is supported. Searches for the CIDR
8185  	// portion is always an exact match. For example, both network containers
8186  	// 16::0/28 and 26::0/24 are matched by expression '.6' and only 26::0/24 is
8187  	// matched by '.6/24'.
8188  	Network string `json:"network,omitempty"`
8189  
8190  	// The network container to which this network belongs, if any.
8191  	NetworkContainer string `json:"network_container,omitempty"`
8192  
8193  	// The name of the network view in which this network resides.
8194  	NetworkView *string `json:"network_view,omitempty"`
8195  
8196  	// An array of DHCP option dhcpoption structs that lists the DHCP options
8197  	// associated with the object.
8198  	Options []*Dhcpoption `json:"options,omitempty"`
8199  
8200  	// The port control blackout setting for this network container.
8201  	PortControlBlackoutSetting *PropertiesBlackoutsetting `json:"port_control_blackout_setting,omitempty"`
8202  
8203  	// Use this method to set or retrieve the preferred lifetime value of a DHCP
8204  	// IPv6 Network Container object.
8205  	PreferredLifetime *uint32 `json:"preferred_lifetime,omitempty"`
8206  
8207  	// Remove subnets delete option. Determines whether all child objects should be
8208  	// removed alongside with the IPv6 network container or child objects should be
8209  	// assigned to another parental container. By default child objects are deleted
8210  	// with this network container.
8211  	RemoveSubnets bool `json:"remove_subnets,omitempty"`
8212  
8213  	// Restarts the member service.
8214  	RestartIfNeeded *bool `json:"restart_if_needed,omitempty"`
8215  
8216  	// The registry (RIR) that allocated the IPv6 network container address space.
8217  	Rir string `json:"rir,omitempty"`
8218  
8219  	// The RIR organization associated with the IPv6 network container.
8220  	RirOrganization *string `json:"rir_organization,omitempty"`
8221  
8222  	// The RIR registration action.
8223  	RirRegistrationAction string `json:"rir_registration_action,omitempty"`
8224  
8225  	// The registration status of the IPv6 network container in RIR.
8226  	RirRegistrationStatus string `json:"rir_registration_status,omitempty"`
8227  
8228  	// If the field is set to True, the discovery blackout setting will be used for
8229  	// port control blackout setting.
8230  	SamePortControlDiscoveryBlackout *bool `json:"same_port_control_discovery_blackout,omitempty"`
8231  
8232  	// Determines whether to send the RIR registration request.
8233  	SendRirRequest *bool `json:"send_rir_request,omitempty"`
8234  
8235  	// The DHCP IPv6 Network Container Cisco ISE subscribe settings.
8236  	SubscribeSettings *CiscoiseSubscribesetting `json:"subscribe_settings,omitempty"`
8237  
8238  	// Determines whether the network container is unmanaged or not.
8239  	Unmanaged *bool `json:"unmanaged,omitempty"`
8240  
8241  	// This field controls whether the DHCP server updates DNS when a DHCP lease is
8242  	// renewed.
8243  	UpdateDnsOnLeaseRenewal *bool `json:"update_dns_on_lease_renewal,omitempty"`
8244  
8245  	// Use flag for: discovery_blackout_setting , port_control_blackout_setting,
8246  	// same_port_control_discovery_blackout
8247  	UseBlackoutSetting *bool `json:"use_blackout_setting,omitempty"`
8248  
8249  	// Use flag for: ddns_domainname
8250  	UseDdnsDomainname *bool `json:"use_ddns_domainname,omitempty"`
8251  
8252  	// Use flag for: ddns_enable_option_fqdn
8253  	UseDdnsEnableOptionFqdn *bool `json:"use_ddns_enable_option_fqdn,omitempty"`
8254  
8255  	// Use flag for: ddns_generate_hostname
8256  	UseDdnsGenerateHostname *bool `json:"use_ddns_generate_hostname,omitempty"`
8257  
8258  	// Use flag for: ddns_ttl
8259  	UseDdnsTtl *bool `json:"use_ddns_ttl,omitempty"`
8260  
8261  	// Use flag for: discovery_basic_poll_settings
8262  	UseDiscoveryBasicPollingSettings *bool `json:"use_discovery_basic_polling_settings,omitempty"`
8263  
8264  	// Use flag for: domain_name_servers
8265  	UseDomainNameServers *bool `json:"use_domain_name_servers,omitempty"`
8266  
8267  	// Use flag for: enable_ddns
8268  	UseEnableDdns *bool `json:"use_enable_ddns,omitempty"`
8269  
8270  	// Use flag for: discovery_member , enable_discovery
8271  	UseEnableDiscovery *bool `json:"use_enable_discovery,omitempty"`
8272  
8273  	// Use flag for: logic_filter_rules
8274  	UseLogicFilterRules *bool `json:"use_logic_filter_rules,omitempty"`
8275  
8276  	// Use flag for: mgm_private
8277  	UseMgmPrivate *bool `json:"use_mgm_private,omitempty"`
8278  
8279  	// Use flag for: options
8280  	UseOptions *bool `json:"use_options,omitempty"`
8281  
8282  	// Use flag for: preferred_lifetime
8283  	UsePreferredLifetime *bool `json:"use_preferred_lifetime,omitempty"`
8284  
8285  	// Use flag for: subscribe_settings
8286  	UseSubscribeSettings *bool `json:"use_subscribe_settings,omitempty"`
8287  
8288  	// Use flag for: update_dns_on_lease_renewal
8289  	UseUpdateDnsOnLeaseRenewal *bool `json:"use_update_dns_on_lease_renewal,omitempty"`
8290  
8291  	// Use flag for: valid_lifetime
8292  	UseValidLifetime *bool `json:"use_valid_lifetime,omitempty"`
8293  
8294  	// Use flag for: zone_associations
8295  	UseZoneAssociations *bool `json:"use_zone_associations,omitempty"`
8296  
8297  	// The network container utilization in percentage.
8298  	Utilization uint32 `json:"utilization,omitempty"`
8299  
8300  	// Use this method to set or retrieve the valid lifetime value of a DHCP IPv6
8301  	// Network Container object.
8302  	ValidLifetime *uint32 `json:"valid_lifetime,omitempty"`
8303  
8304  	// The list of zones associated with this network container.
8305  	ZoneAssociations []*Zoneassociation `json:"zone_associations,omitempty"`
8306  }
8307  
8308  func (Ipv6NetworkContainer) ObjectType() string {
8309  	return "ipv6networkcontainer"
8310  }
8311  
8312  func (obj Ipv6NetworkContainer) ReturnFields() []string {
8313  	if obj.returnFields == nil {
8314  		obj.returnFields = []string{"comment", "network", "network_view"}
8315  	}
8316  	return obj.returnFields
8317  }
8318  
8319  // IPv6NetworkTemplate represents Infoblox object ipv6networktemplate.
8320  // The IPv6 network template used to create IPv6 networks in a quick and
8321  // consistent way. IPv6 networks created from an IPv6 network template inherit
8322  // all the properties defined in the IPv6 network template, except for the
8323  // comment and CIDR that can be defined in the IPv6 network.
8324  type IPv6NetworkTemplate struct {
8325  	IBBase `json:"-"`
8326  
8327  	Ref string `json:"_ref,omitempty"`
8328  
8329  	// This flag controls whether the template allows any netmask. You must specify
8330  	// a netmask when creating a network using this template. If you set this
8331  	// parameter to False, you must specify the "cidr" field for the network
8332  	// template object.
8333  	AllowAnyNetmask *bool `json:"allow_any_netmask,omitempty"`
8334  
8335  	// This flag controls whether reverse zones are automatically created when the
8336  	// network is added.
8337  	AutoCreateReversezone *bool `json:"auto_create_reversezone,omitempty"`
8338  
8339  	// The CIDR of the network in CIDR format.
8340  	Cidr *uint32 `json:"cidr,omitempty"`
8341  
8342  	// This flag controls whether this template can be used to create network
8343  	// objects in a cloud-computing deployment.
8344  	CloudApiCompatible *bool `json:"cloud_api_compatible,omitempty"`
8345  
8346  	// Comment for the network; maximum 256 characters.
8347  	Comment *string `json:"comment,omitempty"`
8348  
8349  	// The dynamic DNS domain name the appliance uses specifically for DDNS updates
8350  	// for this network.
8351  	DdnsDomainname *string `json:"ddns_domainname,omitempty"`
8352  
8353  	// Use this method to set or retrieve the ddns_enable_option_fqdn flag of a
8354  	// DHCP IPv6 Network object. This method controls whether the FQDN option sent
8355  	// by the client is to be used, or if the server can automatically generate the
8356  	// FQDN. This setting overrides the upper-level settings.
8357  	DdnsEnableOptionFqdn *bool `json:"ddns_enable_option_fqdn,omitempty"`
8358  
8359  	// If this field is set to True, the DHCP server generates a hostname and
8360  	// updates DNS with it when the DHCP client request does not contain a
8361  	// hostname.
8362  	DdnsGenerateHostname *bool `json:"ddns_generate_hostname,omitempty"`
8363  
8364  	// This field controls whether the DHCP server is allowed to update DNS,
8365  	// regardless of the DHCP client requests. Note that changes for this field
8366  	// take effect only if ddns_enable_option_fqdn is True.
8367  	DdnsServerAlwaysUpdates *bool `json:"ddns_server_always_updates,omitempty"`
8368  
8369  	// The DNS update Time to Live (TTL) value of a DHCP network object. The TTL is
8370  	// a 32-bit unsigned integer that represents the duration, in seconds, for
8371  	// which the update is cached. Zero indicates that the update is not cached.
8372  	DdnsTtl *uint32 `json:"ddns_ttl,omitempty"`
8373  
8374  	// Reference the Cloud Platform Appliance to which authority of the object
8375  	// should be delegated when the object is created using the template.
8376  	DelegatedMember *Dhcpmember `json:"delegated_member,omitempty"`
8377  
8378  	// Use this method to set or retrieve the domain_name value of a DHCP IPv6
8379  	// Network object.
8380  	DomainName *string `json:"domain_name,omitempty"`
8381  
8382  	// Use this method to set or retrieve the dynamic DNS updates flag of a DHCP
8383  	// IPv6 Network object. The DHCP server can send DDNS updates to DNS servers in
8384  	// the same Grid and to external DNS servers. This setting overrides the member
8385  	// level settings.
8386  	DomainNameServers []string `json:"domain_name_servers,omitempty"`
8387  
8388  	// The dynamic DNS updates flag of a DHCP IPv6 network object. If set to True,
8389  	// the DHCP server sends DDNS updates to DNS servers in the same Grid, and to
8390  	// external DNS servers.
8391  	EnableDdns *bool `json:"enable_ddns,omitempty"`
8392  
8393  	// Extensible attributes associated with the object. For valid values for
8394  	// extensible attributes, see {extattrs:values}.
8395  	Ea EA `json:"extattrs"`
8396  
8397  	// The list of IPv6 fixed address templates assigned to this IPv6 network
8398  	// template object. When you create an IPv6 network based on an IPv6 network
8399  	// template object that contains IPv6 fixed address templates, the IPv6 fixed
8400  	// addresses are created based on the associated IPv6 fixed address templates.
8401  	FixedAddressTemplates []string `json:"fixed_address_templates,omitempty"`
8402  
8403  	// The IPv6 Address prefix of the DHCP IPv6 network.
8404  	Ipv6prefix *string `json:"ipv6prefix,omitempty"`
8405  
8406  	// This field contains the logic filters to be applied on this IPv6 network
8407  	// template. This list corresponds to the match rules that are written to the
8408  	// DHCPv6 configuration file.
8409  	LogicFilterRules []*Logicfilterrule `json:"logic_filter_rules,omitempty"`
8410  
8411  	// A list of members that serve DHCP for the network. All members in the array
8412  	// must be of the same type. The struct type must be indicated in each element,
8413  	// by setting the "_struct" member to the struct type.
8414  	Members []*Dhcpmember `json:"members,omitempty"`
8415  
8416  	// The name of this IPv6 network template.
8417  	Name *string `json:"name,omitempty"`
8418  
8419  	// An array of DHCP option dhcpoption structs that lists the DHCP options
8420  	// associated with the object.
8421  	Options []*Dhcpoption `json:"options,omitempty"`
8422  
8423  	// Use this method to set or retrieve the preferred lifetime value of a DHCP
8424  	// IPv6 Network object.
8425  	PreferredLifetime *uint32 `json:"preferred_lifetime,omitempty"`
8426  
8427  	// The list of IPv6 address range templates assigned to this IPv6 network
8428  	// template object. When you create an IPv6 network based on an IPv6 network
8429  	// template object that contains IPv6 range templates, the IPv6 address ranges
8430  	// are created based on the associated IPv6 address range templates.
8431  	RangeTemplates []string `json:"range_templates,omitempty"`
8432  
8433  	// If the field is set to True, the leases are kept in the Recycle Bin until
8434  	// one week after expiration. Otherwise, the leases are permanently deleted.
8435  	RecycleLeases *bool `json:"recycle_leases,omitempty"`
8436  
8437  	// The registry (RIR) that allocated the IPv6 network address space.
8438  	Rir string `json:"rir,omitempty"`
8439  
8440  	// The RIR organization associated with the IPv6 network.
8441  	RirOrganization *string `json:"rir_organization,omitempty"`
8442  
8443  	// The action for the RIR registration.
8444  	RirRegistrationAction string `json:"rir_registration_action,omitempty"`
8445  
8446  	// The registration status of the IPv6 network in RIR.
8447  	RirRegistrationStatus string `json:"rir_registration_status,omitempty"`
8448  
8449  	// Determines whether to send the RIR registration request.
8450  	SendRirRequest *bool `json:"send_rir_request,omitempty"`
8451  
8452  	// This field controls whether the DHCP server updates DNS when a DHCP lease is
8453  	// renewed.
8454  	UpdateDnsOnLeaseRenewal *bool `json:"update_dns_on_lease_renewal,omitempty"`
8455  
8456  	// Use flag for: ddns_domainname
8457  	UseDdnsDomainname *bool `json:"use_ddns_domainname,omitempty"`
8458  
8459  	// Use flag for: ddns_enable_option_fqdn
8460  	UseDdnsEnableOptionFqdn *bool `json:"use_ddns_enable_option_fqdn,omitempty"`
8461  
8462  	// Use flag for: ddns_generate_hostname
8463  	UseDdnsGenerateHostname *bool `json:"use_ddns_generate_hostname,omitempty"`
8464  
8465  	// Use flag for: ddns_ttl
8466  	UseDdnsTtl *bool `json:"use_ddns_ttl,omitempty"`
8467  
8468  	// Use flag for: domain_name
8469  	UseDomainName *bool `json:"use_domain_name,omitempty"`
8470  
8471  	// Use flag for: domain_name_servers
8472  	UseDomainNameServers *bool `json:"use_domain_name_servers,omitempty"`
8473  
8474  	// Use flag for: enable_ddns
8475  	UseEnableDdns *bool `json:"use_enable_ddns,omitempty"`
8476  
8477  	// Use flag for: logic_filter_rules
8478  	UseLogicFilterRules *bool `json:"use_logic_filter_rules,omitempty"`
8479  
8480  	// Use flag for: options
8481  	UseOptions *bool `json:"use_options,omitempty"`
8482  
8483  	// Use flag for: preferred_lifetime
8484  	UsePreferredLifetime *bool `json:"use_preferred_lifetime,omitempty"`
8485  
8486  	// Use flag for: recycle_leases
8487  	UseRecycleLeases *bool `json:"use_recycle_leases,omitempty"`
8488  
8489  	// Use flag for: update_dns_on_lease_renewal
8490  	UseUpdateDnsOnLeaseRenewal *bool `json:"use_update_dns_on_lease_renewal,omitempty"`
8491  
8492  	// Use flag for: valid_lifetime
8493  	UseValidLifetime *bool `json:"use_valid_lifetime,omitempty"`
8494  
8495  	// Use this method to set or retrieve the valid lifetime value of a DHCP IPv6
8496  	// Network object.
8497  	ValidLifetime *uint32 `json:"valid_lifetime,omitempty"`
8498  }
8499  
8500  func (IPv6NetworkTemplate) ObjectType() string {
8501  	return "ipv6networktemplate"
8502  }
8503  
8504  func (obj IPv6NetworkTemplate) ReturnFields() []string {
8505  	if obj.returnFields == nil {
8506  		obj.returnFields = []string{"comment", "name"}
8507  	}
8508  	return obj.returnFields
8509  }
8510  
8511  // IPv6Range represents Infoblox object ipv6range.
8512  // A DHCP IPv6 range defines the specified range of IP addresses in an IPv6
8513  // network. A DHCP IPv6 range should be added for an IPv6 network so the
8514  // Infoblox appliance can assign IP addresses within that specified range to
8515  // DHCP clients. If the client is on an IPv6 network that is assigned a DHCP
8516  // IPv6 range, the device distributes an available IP address from that range
8517  // to the DHCP client, or to a DHCP relay agent if the request came through an
8518  // agent. The DHCP IPv6 range should also be assigned with a device. If devices
8519  // are in a grid, the particular member serving DHCP for the DHCP IPv6 range
8520  // must be specified. If the server is an independent device, this device must
8521  // be specified as the member that serves the DHCP IPv6 range.
8522  type IPv6Range struct {
8523  	IBBase `json:"-"`
8524  
8525  	Ref string `json:"_ref,omitempty"`
8526  
8527  	// Type of a DHCP IPv6 Range object. Valid values are "ADDRESS", "PREFIX", or
8528  	// "BOTH". When the address type is "ADDRESS", values for the 'start_addr' and
8529  	// 'end_addr' members are required. When the address type is "PREFIX", values
8530  	// for 'ipv6_start_prefix', 'ipv6_end_prefix', and 'ipv6_prefix_bits' are
8531  	// required. When the address type is "BOTH", values for 'start_addr',
8532  	// 'end_addr', 'ipv6_start_prefix', 'ipv6_end_prefix', and 'ipv6_prefix_bits'
8533  	// are all required.
8534  	AddressType *string `json:"address_type,omitempty"`
8535  
8536  	// Structure containing all cloud API related information for this object.
8537  	CloudInfo *GridCloudapiInfo `json:"cloud_info,omitempty"`
8538  
8539  	// Comment for the range; maximum 256 characters.
8540  	Comment *string `json:"comment,omitempty"`
8541  
8542  	// Determines whether a range is disabled or not. When this is set to False,
8543  	// the range is enabled.
8544  	Disable *bool `json:"disable,omitempty"`
8545  
8546  	// Discover now status for this range.
8547  	DiscoverNowStatus string `json:"discover_now_status,omitempty"`
8548  
8549  	// The discovery basic poll settings for this range.
8550  	DiscoveryBasicPollSettings *DiscoveryBasicpollsettings `json:"discovery_basic_poll_settings,omitempty"`
8551  
8552  	// The discovery blackout setting for this range.
8553  	DiscoveryBlackoutSetting *PropertiesBlackoutsetting `json:"discovery_blackout_setting,omitempty"`
8554  
8555  	// The member that will run discovery for this range.
8556  	DiscoveryMember *string `json:"discovery_member,omitempty"`
8557  
8558  	// Determines whether a discovery is enabled or not for this range. When this
8559  	// is set to False, the discovery for this range is disabled.
8560  	EnableDiscovery *bool `json:"enable_discovery,omitempty"`
8561  
8562  	// Determines if the discovery for the range should be immediately enabled.
8563  	EnableImmediateDiscovery *bool `json:"enable_immediate_discovery,omitempty"`
8564  
8565  	// The IPv6 Address end address of the DHCP IPv6 range.
8566  	EndAddr *string `json:"end_addr,omitempty"`
8567  
8568  	// The endpoints that provides data for the DHCP IPv6 Range object.
8569  	EndpointSources []*CiscoiseEndpoint `json:"endpoint_sources,omitempty"`
8570  
8571  	// These are ranges of IP addresses that the appliance does not use to assign
8572  	// to clients. You can use these exclusion addresses as static IP addresses.
8573  	// They contain the start and end addresses of the exclusion range, and
8574  	// optionally,information about this exclusion range.
8575  	Exclude []*Exclusionrange `json:"exclude,omitempty"`
8576  
8577  	// Extensible attributes associated with the object. For valid values for
8578  	// extensible attributes, see {extattrs:values}.
8579  	Ea EA `json:"extattrs"`
8580  
8581  	// The IPv6 Address end prefix of the DHCP IPv6 range.
8582  	Ipv6EndPrefix *string `json:"ipv6_end_prefix,omitempty"`
8583  
8584  	// Prefix bits of the DHCP IPv6 range.
8585  	Ipv6PrefixBits *uint32 `json:"ipv6_prefix_bits,omitempty"`
8586  
8587  	// The IPv6 Address starting prefix of the DHCP IPv6 range.
8588  	Ipv6StartPrefix *string `json:"ipv6_start_prefix,omitempty"`
8589  
8590  	// This field contains the logic filters to be applied to this IPv6 range. This
8591  	// list corresponds to the match rules that are written to the DHCPv6
8592  	// configuration file.
8593  	LogicFilterRules []*Logicfilterrule `json:"logic_filter_rules,omitempty"`
8594  
8595  	// The member that will provide service for this range. {ipv6range:ipv6range}
8596  	// needs to be set to 'MEMBER' if you want the server specified here to serve
8597  	// the range. For searching by this field you should use a HTTP method that
8598  	// contains a body (POST or PUT) with Dhcp Member structure dhcpmember and the
8599  	// request should have option _method=GET.
8600  	Member *Dhcpmember `json:"member,omitempty"`
8601  
8602  	// This field contains the name of the Microsoft scope.
8603  	Name *string `json:"name,omitempty"`
8604  
8605  	// The network this range belongs to, in IPv6 Address/CIDR format.
8606  	Network *string `json:"network,omitempty"`
8607  
8608  	// The name of the network view in which this range resides.
8609  	NetworkView *string `json:"network_view,omitempty"`
8610  
8611  	// This field contains the Option filters to be applied to this IPv6 range. The
8612  	// appliance uses the matching rules of these filters to select the address
8613  	// range from which it assigns a lease.
8614  	OptionFilterRules []*Filterrule `json:"option_filter_rules,omitempty"`
8615  
8616  	// The port control blackout setting for this range.
8617  	PortControlBlackoutSetting *PropertiesBlackoutsetting `json:"port_control_blackout_setting,omitempty"`
8618  
8619  	// If the field is set to True, the leases are kept in the Recycle Bin until
8620  	// one week after expiration. Otherwise, the leases are permanently deleted.
8621  	RecycleLeases *bool `json:"recycle_leases,omitempty"`
8622  
8623  	// Restarts the member service.
8624  	RestartIfNeeded *bool `json:"restart_if_needed,omitempty"`
8625  
8626  	// If the field is set to True, the discovery blackout setting will be used for
8627  	// port control blackout setting.
8628  	SamePortControlDiscoveryBlackout *bool `json:"same_port_control_discovery_blackout,omitempty"`
8629  
8630  	// The type of server that is going to serve the range. Valid values are: *
8631  	// MEMBER * NONE
8632  	ServerAssociationType *string `json:"server_association_type,omitempty"`
8633  
8634  	// The IPv6 Address starting address of the DHCP IPv6 range.
8635  	StartAddr *string `json:"start_addr,omitempty"`
8636  
8637  	// The DHCP IPv6 Range Cisco ISE subscribe settings.
8638  	SubscribeSettings *CiscoiseSubscribesetting `json:"subscribe_settings,omitempty"`
8639  
8640  	// If set on creation, the range will be created according to the values
8641  	// specified in the named template.
8642  	Template string `json:"template,omitempty"`
8643  
8644  	// Use flag for: discovery_blackout_setting , port_control_blackout_setting,
8645  	// same_port_control_discovery_blackout
8646  	UseBlackoutSetting *bool `json:"use_blackout_setting,omitempty"`
8647  
8648  	// Use flag for: discovery_basic_poll_settings
8649  	UseDiscoveryBasicPollingSettings *bool `json:"use_discovery_basic_polling_settings,omitempty"`
8650  
8651  	// Use flag for: discovery_member , enable_discovery
8652  	UseEnableDiscovery *bool `json:"use_enable_discovery,omitempty"`
8653  
8654  	// Use flag for: logic_filter_rules
8655  	UseLogicFilterRules *bool `json:"use_logic_filter_rules,omitempty"`
8656  
8657  	// Use flag for: recycle_leases
8658  	UseRecycleLeases *bool `json:"use_recycle_leases,omitempty"`
8659  
8660  	// Use flag for: subscribe_settings
8661  	UseSubscribeSettings *bool `json:"use_subscribe_settings,omitempty"`
8662  }
8663  
8664  func (IPv6Range) ObjectType() string {
8665  	return "ipv6range"
8666  }
8667  
8668  func (obj IPv6Range) ReturnFields() []string {
8669  	if obj.returnFields == nil {
8670  		obj.returnFields = []string{"comment", "end_addr", "network", "network_view", "start_addr"}
8671  	}
8672  	return obj.returnFields
8673  }
8674  
8675  // Ipv6rangetemplate represents Infoblox object ipv6rangetemplate.
8676  // The IPv6 range template used to create an IPv6 range object in a quick and
8677  // consistent way. The DHCP IPv6 range created from the DHCP IPv6 range
8678  // template will inherit the properties defined in this template.
8679  type Ipv6rangetemplate struct {
8680  	IBBase `json:"-"`
8681  
8682  	Ref string `json:"_ref,omitempty"`
8683  
8684  	// Determines whether the IPv6 DHCP range template can be used to create
8685  	// network objects in a cloud-computing deployment.
8686  	CloudApiCompatible *bool `json:"cloud_api_compatible,omitempty"`
8687  
8688  	// The IPv6 DHCP range template descriptive comment.
8689  	Comment *string `json:"comment,omitempty"`
8690  
8691  	// The vConnector member that the object should be delegated to when created
8692  	// from the IPv6 DHCP range template. I assume that vConnector refers to VMware
8693  	// vConnector.
8694  	DelegatedMember *Dhcpmember `json:"delegated_member,omitempty"`
8695  
8696  	// These are ranges of IPv6 addresses that the appliance does not use to assign
8697  	// to clients. You can use these excluded addresses as static IPv6 addresses.
8698  	// They contain the start and end addresses of the excluded range, and
8699  	// optionally, information about this excluded range.
8700  	Exclude []*Exclusionrangetemplate `json:"exclude,omitempty"`
8701  
8702  	// This field contains the logic filters to be applied on this IPv6 range. This
8703  	// list corresponds to the match rules that are written to the DHCPv6
8704  	// configuration file.
8705  	LogicFilterRules []*Logicfilterrule `json:"logic_filter_rules,omitempty"`
8706  
8707  	// The member that will provide service for the IPv6 DHCP range. Set
8708  	// {ipv6rangetemplate:ipv6rangetemplate} to 'MEMBER' if you want the server
8709  	// specified here to serve the range. For searching by this field, use an HTTP
8710  	// method that contains a body (POST or PUT) with MS DHCP server structure
8711  	// msdhcpserver and the request should have option _method=GET.
8712  	Member *Dhcpmember `json:"member,omitempty"`
8713  
8714  	// Name of the IPv6 DHCP range template.
8715  	Name *string `json:"name,omitempty"`
8716  
8717  	// The number of addresses for the IPv6 DHCP range.
8718  	NumberOfAddresses *uint32 `json:"number_of_addresses,omitempty"`
8719  
8720  	// The start address offset for the IPv6 DHCP range.
8721  	Offset *uint32 `json:"offset,omitempty"`
8722  
8723  	// This field contains the Option filters to be applied to this IPv6 range. The
8724  	// appliance uses the matching rules of these filters to select the address
8725  	// range from which it assigns a lease.
8726  	OptionFilterRules []*Filterrule `json:"option_filter_rules,omitempty"`
8727  
8728  	// Determines whether the leases are kept in Recycle Bin until one week after
8729  	// expiry. If this is set to False, the leases are permanently deleted.
8730  	RecycleLeases *bool `json:"recycle_leases,omitempty"`
8731  
8732  	// The type of server that is going to serve the IPv6 DHCP range.
8733  	ServerAssociationType string `json:"server_association_type,omitempty"`
8734  
8735  	// Use flag for: logic_filter_rules
8736  	UseLogicFilterRules *bool `json:"use_logic_filter_rules,omitempty"`
8737  
8738  	// Use flag for: recycle_leases
8739  	UseRecycleLeases *bool `json:"use_recycle_leases,omitempty"`
8740  }
8741  
8742  func (Ipv6rangetemplate) ObjectType() string {
8743  	return "ipv6rangetemplate"
8744  }
8745  
8746  func (obj Ipv6rangetemplate) ReturnFields() []string {
8747  	if obj.returnFields == nil {
8748  		obj.returnFields = []string{"comment", "name", "number_of_addresses", "offset"}
8749  	}
8750  	return obj.returnFields
8751  }
8752  
8753  // IPv6SharedNetwork represents Infoblox object ipv6sharednetwork.
8754  // A shared network is a network segment to which you assign two or more
8755  // subnets. When subnets in a shared network contain IP addresses that are
8756  // available for dynamic allocation, the addresses are put into a common pool
8757  // for allocation when client requests arise. When you create a shared network,
8758  // the DHCP server can assign IP addresses to client requests from any subnet
8759  // (that resides on the same network interface) in the shared network.
8760  type IPv6SharedNetwork struct {
8761  	IBBase `json:"-"`
8762  
8763  	Ref string `json:"_ref,omitempty"`
8764  
8765  	// Comment for the IPv6 shared network, maximum 256 characters.
8766  	Comment *string `json:"comment,omitempty"`
8767  
8768  	// The dynamic DNS domain name the appliance uses specifically for DDNS updates
8769  	// for this network.
8770  	DdnsDomainname *string `json:"ddns_domainname,omitempty"`
8771  
8772  	// If this field is set to True, the DHCP server generates a hostname and
8773  	// updates DNS with it when the DHCP client request does not contain a
8774  	// hostname.
8775  	DdnsGenerateHostname *bool `json:"ddns_generate_hostname,omitempty"`
8776  
8777  	// This field controls whether only the DHCP server is allowed to update DNS,
8778  	// regardless of the DHCP clients requests. Note that changes for this field
8779  	// take effect only if ddns_use_option81 is True.
8780  	DdnsServerAlwaysUpdates *bool `json:"ddns_server_always_updates,omitempty"`
8781  
8782  	// The DNS update Time to Live (TTL) value of an IPv6 shared network object.
8783  	// The TTL is a 32-bit unsigned integer that represents the duration, in
8784  	// seconds, for which the update is cached. Zero indicates that the update is
8785  	// not cached.
8786  	DdnsTtl *uint32 `json:"ddns_ttl,omitempty"`
8787  
8788  	// The support for DHCP Option 81 at the IPv6 shared network level.
8789  	DdnsUseOption81 *bool `json:"ddns_use_option81,omitempty"`
8790  
8791  	// Determines whether an IPv6 shared network is disabled or not. When this is
8792  	// set to False, the IPv6 shared network is enabled.
8793  	Disable *bool `json:"disable,omitempty"`
8794  
8795  	// Use this method to set or retrieve the domain_name value of a DHCP IPv6
8796  	// Shared Network object.
8797  	DomainName *string `json:"domain_name,omitempty"`
8798  
8799  	// Use this method to set or retrieve the dynamic DNS updates flag of a DHCP
8800  	// IPv6 Shared Network object. The DHCP server can send DDNS updates to DNS
8801  	// servers in the same Grid and to external DNS servers. This setting overrides
8802  	// the member level settings.
8803  	DomainNameServers []string `json:"domain_name_servers,omitempty"`
8804  
8805  	// The dynamic DNS updates flag of an IPv6 shared network object. If set to
8806  	// True, the DHCP server sends DDNS updates to DNS servers in the same Grid,
8807  	// and to external DNS servers.
8808  	EnableDdns *bool `json:"enable_ddns,omitempty"`
8809  
8810  	// Extensible attributes associated with the object. For valid values for
8811  	// extensible attributes, see {extattrs:values}.
8812  	Ea EA `json:"extattrs"`
8813  
8814  	// This field contains the logic filters to be applied on the this IPv6 shared
8815  	// network. This list corresponds to the match rules that are written to the
8816  	// DHCPv6 configuration file.
8817  	LogicFilterRules []*Logicfilterrule `json:"logic_filter_rules,omitempty"`
8818  
8819  	// The name of the IPv6 Shared Network.
8820  	Name *string `json:"name,omitempty"`
8821  
8822  	// The name of the network view in which this IPv6 shared network resides.
8823  	NetworkView string `json:"network_view,omitempty"`
8824  
8825  	// A list of IPv6 networks belonging to the shared network Each individual list
8826  	// item must be specified as an object containing a '_ref' parameter to a
8827  	// network reference, for example:: [{ "_ref":
8828  	// "ipv6network/ZG5zdHdvcmskMTAuAvMTYvMA", }] if the reference of the wanted
8829  	// network is not known, it is possible to specify search parameters for the
8830  	// network instead in the following way:: [{ "_ref": { 'network': 'aabb::/64',
8831  	// } }] note that in this case the search must match exactly one network for
8832  	// the assignment to be successful.
8833  	Networks []*Ipv6Network `json:"networks,omitempty"`
8834  
8835  	// An array of DHCP option dhcpoption structs that lists the DHCP options
8836  	// associated with the object.
8837  	Options []*Dhcpoption `json:"options,omitempty"`
8838  
8839  	// Use this method to set or retrieve the preferred lifetime value of a DHCP
8840  	// IPv6 Shared Network object.
8841  	PreferredLifetime *uint32 `json:"preferred_lifetime,omitempty"`
8842  
8843  	// This field controls whether the DHCP server updates DNS when a DHCP lease is
8844  	// renewed.
8845  	UpdateDnsOnLeaseRenewal *bool `json:"update_dns_on_lease_renewal,omitempty"`
8846  
8847  	// Use flag for: ddns_domainname
8848  	UseDdnsDomainname *bool `json:"use_ddns_domainname,omitempty"`
8849  
8850  	// Use flag for: ddns_generate_hostname
8851  	UseDdnsGenerateHostname *bool `json:"use_ddns_generate_hostname,omitempty"`
8852  
8853  	// Use flag for: ddns_ttl
8854  	UseDdnsTtl *bool `json:"use_ddns_ttl,omitempty"`
8855  
8856  	// Use flag for: ddns_use_option81
8857  	UseDdnsUseOption81 *bool `json:"use_ddns_use_option81,omitempty"`
8858  
8859  	// Use flag for: domain_name
8860  	UseDomainName *bool `json:"use_domain_name,omitempty"`
8861  
8862  	// Use flag for: domain_name_servers
8863  	UseDomainNameServers *bool `json:"use_domain_name_servers,omitempty"`
8864  
8865  	// Use flag for: enable_ddns
8866  	UseEnableDdns *bool `json:"use_enable_ddns,omitempty"`
8867  
8868  	// Use flag for: logic_filter_rules
8869  	UseLogicFilterRules *bool `json:"use_logic_filter_rules,omitempty"`
8870  
8871  	// Use flag for: options
8872  	UseOptions *bool `json:"use_options,omitempty"`
8873  
8874  	// Use flag for: preferred_lifetime
8875  	UsePreferredLifetime *bool `json:"use_preferred_lifetime,omitempty"`
8876  
8877  	// Use flag for: update_dns_on_lease_renewal
8878  	UseUpdateDnsOnLeaseRenewal *bool `json:"use_update_dns_on_lease_renewal,omitempty"`
8879  
8880  	// Use flag for: valid_lifetime
8881  	UseValidLifetime *bool `json:"use_valid_lifetime,omitempty"`
8882  
8883  	// Use this method to set or retrieve the valid lifetime value of a DHCP IPv6
8884  	// Shared Network object.
8885  	ValidLifetime *uint32 `json:"valid_lifetime,omitempty"`
8886  }
8887  
8888  func (IPv6SharedNetwork) ObjectType() string {
8889  	return "ipv6sharednetwork"
8890  }
8891  
8892  func (obj IPv6SharedNetwork) ReturnFields() []string {
8893  	if obj.returnFields == nil {
8894  		obj.returnFields = []string{"comment", "name", "network_view", "networks"}
8895  	}
8896  	return obj.returnFields
8897  }
8898  
8899  // Kerberoskey represents Infoblox object kerberoskey.
8900  // GSS-TSIG (Generic Security Service Algorithm for Secret Key Transaction) is
8901  // used to authenticate DDNS updates. It is a modified form of TSIG
8902  // authentication that uses Kerberos v5 authentication system.
8903  type Kerberoskey struct {
8904  	IBBase `json:"-"`
8905  
8906  	Ref string `json:"_ref,omitempty"`
8907  
8908  	// The Kerberos domain name.
8909  	Domain string `json:"domain,omitempty"`
8910  
8911  	// The Kerberos key encryption type.
8912  	Enctype string `json:"enctype,omitempty"`
8913  
8914  	// Determines whether the Kerberos key is assigned to the Grid or Grid member.
8915  	InUse bool `json:"in_use,omitempty"`
8916  
8917  	// The list of hostnames and services of Grid members where the key is assigned
8918  	// or Grid/DHCP4 or Grid/DHCP6 or Grid/DNS.
8919  	Members []string `json:"members,omitempty"`
8920  
8921  	// The principal of the Kerberos key object.
8922  	Principal string `json:"principal,omitempty"`
8923  
8924  	// The timestamp of the Kerberos key upload operation.
8925  	UploadTimestamp *UnixTime `json:"upload_timestamp,omitempty"`
8926  
8927  	// The Kerberos key version number (KVNO).
8928  	Version uint32 `json:"version,omitempty"`
8929  }
8930  
8931  func (Kerberoskey) ObjectType() string {
8932  	return "kerberoskey"
8933  }
8934  
8935  func (obj Kerberoskey) ReturnFields() []string {
8936  	if obj.returnFields == nil {
8937  		obj.returnFields = []string{"domain", "enctype", "in_use", "principal", "version"}
8938  	}
8939  	return obj.returnFields
8940  }
8941  
8942  // LdapAuthService represents Infoblox object ldap_auth_service.
8943  // LDAP (Lightweight Directory Access Protocol) is an internet protocol for
8944  // accessing distributed directory services. The appliance can authenticate
8945  // admin accounts by verifying user names and passwords against LDAP. This
8946  // object is used to configure the LDAP authentication service.
8947  type LdapAuthService struct {
8948  	IBBase `json:"-"`
8949  
8950  	Ref string `json:"_ref,omitempty"`
8951  
8952  	// The LDAP descriptive comment.
8953  	Comment *string `json:"comment,omitempty"`
8954  
8955  	// Determines if the LDAP authentication service is disabled.
8956  	Disable *bool `json:"disable,omitempty"`
8957  
8958  	// The mapping LDAP fields to extensible attributes.
8959  	EaMapping []*LdapEamapping `json:"ea_mapping,omitempty"`
8960  
8961  	// The name of the LDAP attribute that defines group membership.
8962  	LdapGroupAttribute *string `json:"ldap_group_attribute,omitempty"`
8963  
8964  	// The LDAP group authentication type.
8965  	LdapGroupAuthenticationType string `json:"ldap_group_authentication_type,omitempty"`
8966  
8967  	// The LDAP userid attribute that is used for search.
8968  	LdapUserAttribute *string `json:"ldap_user_attribute,omitempty"`
8969  
8970  	// The LDAP authentication mode.
8971  	Mode string `json:"mode,omitempty"`
8972  
8973  	// The LDAP authentication service name.
8974  	Name *string `json:"name,omitempty"`
8975  
8976  	// The period of time in seconds to wait before trying to contact a LDAP server
8977  	// that has been marked as 'DOWN'.
8978  	RecoveryInterval *uint32 `json:"recovery_interval,omitempty"`
8979  
8980  	// The maximum number of LDAP authentication attempts.
8981  	Retries *uint32 `json:"retries,omitempty"`
8982  
8983  	// The starting point of the LDAP search.
8984  	SearchScope string `json:"search_scope,omitempty"`
8985  
8986  	// The list of LDAP servers used for authentication.
8987  	Servers []*LdapServer `json:"servers,omitempty"`
8988  
8989  	// The LDAP authentication timeout in seconds.
8990  	Timeout *uint32 `json:"timeout,omitempty"`
8991  }
8992  
8993  func (LdapAuthService) ObjectType() string {
8994  	return "ldap_auth_service"
8995  }
8996  
8997  func (obj LdapAuthService) ReturnFields() []string {
8998  	if obj.returnFields == nil {
8999  		obj.returnFields = []string{"comment", "disable", "ldap_user_attribute", "mode", "name"}
9000  	}
9001  	return obj.returnFields
9002  }
9003  
9004  // Lease represents Infoblox object lease.
9005  // A DHCP lease is an IP address that the Infoblox appliance assigns to a DHCP
9006  // client for a certain amount of time. When the appliance assigns a lease, it
9007  // also assignes other information, such as the time when the appliance issued
9008  // or freed an IP address, the MAC address and host name of the client that
9009  // received the IP address, and the Grid member that supplied the lease. The
9010  // DHCP Lease object allows the appliance to store and correlate DHCP lease
9011  // information over the lifetime of a lease.
9012  type Lease struct {
9013  	IBBase `json:"-"`
9014  
9015  	Ref string `json:"_ref,omitempty"`
9016  
9017  	// The IPv4 Address or IPv6 Address of the lease.
9018  	Address string `json:"address,omitempty"`
9019  
9020  	// The billing_class value of a DHCP Lease object. This field specifies the
9021  	// class to which this lease is currently billed. This field is for IPv4 leases
9022  	// only.
9023  	BillingClass string `json:"billing_class,omitempty"`
9024  
9025  	// The binding state for the current lease. Following are some of the values
9026  	// this field can be set to: * ABANDONED: The Infoblox appliance cannot lease
9027  	// this IP address because the appliance received a response when it pinged the
9028  	// address. * ACTIVE: The lease is currently in use by a DHCP client. *
9029  	// EXPIRED: The lease was in use, but the DHCP client never renewed it, so it
9030  	// is no longer valid. * FREE: The lease is available for clients to use. *
9031  	// RELEASED: The DHCP client returned the lease to the appliance.
9032  	BindingState string `json:"binding_state,omitempty"`
9033  
9034  	// The client_hostname of a DHCP Lease object. This field specifies the host
9035  	// name that the DHCP client sends to the Infoblox appliance using DHCP option
9036  	// 12.
9037  	ClientHostname string `json:"client_hostname,omitempty"`
9038  
9039  	// The CLTT (Client Last Transaction Time) value of a DHCP Lease object. This
9040  	// field specifies the time of the last transaction with the DHCP client for
9041  	// this lease.
9042  	Cltt *UnixTime `json:"cltt,omitempty"`
9043  
9044  	// The discovered data for this lease.
9045  	DiscoveredData *Discoverydata `json:"discovered_data,omitempty"`
9046  
9047  	// The end time value of a DHCP Lease object. This field specifies the time
9048  	// when a lease ended.
9049  	Ends *UnixTime `json:"ends,omitempty"`
9050  
9051  	// DHCP fingerprint for the lease.
9052  	Fingerprint string `json:"fingerprint,omitempty"`
9053  
9054  	// The hardware type of a DHCP Lease object. This field specifies the MAC
9055  	// address of the network interface on which the lease will be used. This field
9056  	// is for IPv4 leases only.
9057  	Hardware string `json:"hardware,omitempty"`
9058  
9059  	// The DUID value for this lease. This field is only applicable for IPv6
9060  	// leases.
9061  	Ipv6Duid string `json:"ipv6_duid,omitempty"`
9062  
9063  	// The interface ID of an IPv6 address that the Infoblox appliance leased to
9064  	// the DHCP client. This field is for IPv6 leases only.
9065  	Ipv6Iaid string `json:"ipv6_iaid,omitempty"`
9066  
9067  	// The preferred lifetime value of an IPv6 address that the Infoblox appliance
9068  	// leased to the DHCP client. This field is for IPv6 leases only.
9069  	Ipv6PreferredLifetime uint32 `json:"ipv6_preferred_lifetime,omitempty"`
9070  
9071  	// Prefix bits for this lease. This field is for IPv6 leases only.
9072  	Ipv6PrefixBits uint32 `json:"ipv6_prefix_bits,omitempty"`
9073  
9074  	// This flag reflects whether the MAC address for this lease is invalid.
9075  	IsInvalidMac bool `json:"is_invalid_mac,omitempty"`
9076  
9077  	// The Microsoft Active Directory user related information.
9078  	MsAdUserData *MsserverAduserData `json:"ms_ad_user_data,omitempty"`
9079  
9080  	// The network, in "network/netmask" format, with which this lease is
9081  	// associated.
9082  	Network string `json:"network,omitempty"`
9083  
9084  	// The name of the network view in which this lease resides.
9085  	NetworkView string `json:"network_view,omitempty"`
9086  
9087  	// If this field is set to True, the lease does not have an end time.
9088  	NeverEnds bool `json:"never_ends,omitempty"`
9089  
9090  	// If this field is set to True, the lease does not have a start time.
9091  	NeverStarts bool `json:"never_starts,omitempty"`
9092  
9093  	// The subsequent binding state when the current lease expires. This field is
9094  	// for IPv4 leases only. Following are some of the values this field can be set
9095  	// to: * ABANDONED: The Infoblox appliance cannot lease this IP address because
9096  	// the appliance received a response when it pinged the address. * ACTIVE: The
9097  	// lease is currently in use by a DHCP client. * EXPIRED: The lease was in use,
9098  	// but the DHCP client never renewed it, so it is no longer valid. * FREE: The
9099  	// lease is available for clients to use. * RELEASED: The DHCP client returned
9100  	// the lease to the appliance.
9101  	NextBindingState string `json:"next_binding_state,omitempty"`
9102  
9103  	// The list of commands to be executed when the lease is granted.
9104  	OnCommit string `json:"on_commit,omitempty"`
9105  
9106  	// The list of commands to be executed when the lease expires.
9107  	OnExpiry string `json:"on_expiry,omitempty"`
9108  
9109  	// The list of commands to be executed when the lease is released.
9110  	OnRelease string `json:"on_release,omitempty"`
9111  
9112  	// The option value of a DHCP Lease object. This field specifies the agent
9113  	// circuit ID and remote ID sent by a DHCP relay agent in DHCP option 82. This
9114  	// field is for IPv4 leases only.
9115  	Option string `json:"option,omitempty"`
9116  
9117  	// This field determines whether the lease is an IPv4 or IPv6 address.
9118  	Protocol string `json:"protocol,omitempty"`
9119  
9120  	// This field represents the "Remote ID" sub-option of DHCP option 82. Remote
9121  	// ID can be in ASCII form (e.g. ``"abcd"``) or in colon-separated HEX form
9122  	// (e.g. ``1:2:ab:cd``). HEX representation is used only when the sub-option
9123  	// value contains unprintable characters. If a remote ID sub-option value is in
9124  	// ASCII form, it is always enclosed in quotes to prevent ambiguous values
9125  	// (e.g. ``"10:20"`` - ASCII 5-byte string; ``10:20`` - HEX 2-byte value). *
9126  	// ASCII representation is used if the remote ID sub-option contains only
9127  	// printable ASCII characters (ASCII characters in range ``x20-0x7E``). * The
9128  	// backslash symbol (``\``) is used as an escape symbol to escape the quote
9129  	// symbol (``"``) in an ASCII string. * Double backslashes (``\\``) are used to
9130  	// represent the backslash symbol (``\``) in an ASCII string. * HEX
9131  	// representation is used only when the remote ID sub-option value contains
9132  	// unprintable characters and is normalized as follows: * starting zero is
9133  	// removed from digits: ``1``, ``a`` - Valid; ``01``, ``0a`` - Invalid; *
9134  	// lowercase characters are used for symbols: ``fa`` - Valid; ``FA`` - Invalid.
9135  	// NIOS does not support the convertion between HEX and ASCII formats. Searches
9136  	// are performed using the exact same format and value as the sub-option is
9137  	// represented. Query examples assume the following leases are stored in the
9138  	// database: .. tabularcolumns:: |p{1in}|p{3in}|p{2in}| =========
9139  	// ========================== ============================ Number Option field
9140  	// Extracted remote ID field ========= ==========================
9141  	// ============================ Lease01 agent.remote-id= "00152654358700"
9142  	// "00152654358700" agent.circuit-id= "BX1-PORT-003" Lease02
9143  	// agent.remote-id="Dhcp "Dhcp Relay 10" Relay 10" agent.circuit-id="Port008"
9144  	// Lease03 agent.remote-id="00:01:02" "00:01:02" Lease04 agent.remote-id=0:1:2
9145  	// 0:1:2 Lease05 agent.remote-id=02:03 2:3 Lease06 agent.remote-id=10:20 10:20
9146  	// Lease07 agent.circuit-id= "no-remote-id" =========
9147  	// ========================== ============================ Expected results: ..
9148  	// tabularcolumns:: |p{1.5in}|p{1.5in}|p{3in}| =========================
9149  	// ==================== ============================= Query Returned leases
9150  	// Comments ========================= ====================
9151  	// ============================= remote_id=01:02 None EXACT query. No results
9152  	// are expected. remote_id="Dhcp Relay 10" Lease02 EXACT query for an ASCII
9153  	// value. remote_id=0:1:2 Lease04 EXACT query for a HEX value.
9154  	// remote_id=00:01:02 None EXACT query for a HEX value. No results are expected
9155  	// as the search value is not normalized to the same format used in the
9156  	// database. remote_id~=10 Lease02, Lease06 REGEX query. remote_id~=^".*1
9157  	// Lease01, Lease02, REGEX query. Only ASCII Lease03 values are expected due to
9158  	// the starting quote (``"``) in the search value. remote_id~=^[^"]*2 Lease04,
9159  	// Lease05, REGEX query. Only HEX values Lease06 are expected as the starting
9160  	// quote (``"``) is excluded from the search value. remote_id="" None EXACT
9161  	// query. No results are expected as no leases that contain an empty remote ID
9162  	// value exist in the database. ID value in the database. remote_id~=""
9163  	// Lease01, Lease02, REGEX query. This query is Lease03, Lease04, expected to
9164  	// match any Lease05, Lease06 lease that contain remote ID set to any value.
9165  	// ========================= ==================== =============================
9166  	// **NOTE:** Lease07 is not expected to be returned when searching for the
9167  	// remote ID sub-option.
9168  	RemoteId string `json:"remote_id,omitempty"`
9169  
9170  	// The IP address of the server that sends an active lease to a client.
9171  	ServedBy string `json:"served_by,omitempty"`
9172  
9173  	// The host name of the Grid member or Microsoft DHCP server that issues the
9174  	// lease.
9175  	ServerHostName string `json:"server_host_name,omitempty"`
9176  
9177  	// The start time of a DHCP Lease object. This field specifies the time when
9178  	// the lease starts.
9179  	Starts *UnixTime `json:"starts,omitempty"`
9180  
9181  	// The TSFP (Time Sent From Partner) value of a DHCP Lease object. This field
9182  	// specifies the time that the current lease state ends, from the point of view
9183  	// of a remote DHCP failover peer. This field is for IPv4 leases only.
9184  	Tsfp *UnixTime `json:"tsfp,omitempty"`
9185  
9186  	// The TSTP (Time Sent To Partner) value of a DHCP Lease object. This field
9187  	// specifies the time that the current lease state ends, from the point of view
9188  	// of a local DHCP failover peer. This field is for IPv4 leases only.
9189  	Tstp *UnixTime `json:"tstp,omitempty"`
9190  
9191  	// The UID (User ID) value of a DHCP Lease object. This field specifies the
9192  	// client identifier that the DHCP client sends the Infoblox appliance (in DHCP
9193  	// option 61) when it acquires the lease. Not all DHCP clients send a UID. This
9194  	// field is for IPv4 leases only.
9195  	Uid string `json:"uid,omitempty"`
9196  
9197  	// The user name that the server has associated with a DHCP Lease object.
9198  	Username string `json:"username,omitempty"`
9199  
9200  	// The variable value of a DHCP Lease object. This field keeps all variables
9201  	// related to the DDNS update of the DHCP lease. The variables related to the
9202  	// DDNS updates of the DHCP lease. The variables can be one of the following:
9203  	// ddns-text: The ddns-text variable is used to record the value of the
9204  	// client's TXT identification record when the interim DDNS update style has
9205  	// been used to update the DNS service for a particular lease. ddns-fwd-name:
9206  	// When a DDNS update was successfully completed, the ddns-fwd-name variable
9207  	// records the value of the name used when the client's A record was updated.
9208  	// The server may have used this name when it updated the client's PTR record.
9209  	// ddns-client-fqdn: If the server is configured to use the interim DDNS update
9210  	// style and is also configured to allow clients to update their own FQDNs, the
9211  	// ddns-client-fqdn variable records the name that the client used when it
9212  	// updated its own FQDN. This is also the name that the server used to update
9213  	// the client's PTR record. ddns-rev-name: If the server successfully updates
9214  	// the client's PTR record, this variable will record the name that the DHCP
9215  	// server used for the PTR record. The name to which the PTR record points will
9216  	// be either the ddns-fwd-name or the ddns-client-fqdn.
9217  	Variable string `json:"variable,omitempty"`
9218  }
9219  
9220  func (Lease) ObjectType() string {
9221  	return "lease"
9222  }
9223  
9224  func (obj Lease) ReturnFields() []string {
9225  	if obj.returnFields == nil {
9226  		obj.returnFields = []string{"address", "network_view"}
9227  	}
9228  	return obj.returnFields
9229  }
9230  
9231  // LicenseGridwide represents Infoblox object license:gridwide.
9232  // This object represents the Grid-wide license.
9233  type LicenseGridwide struct {
9234  	IBBase `json:"-"`
9235  
9236  	Ref string `json:"_ref,omitempty"`
9237  
9238  	// The license expiration status.
9239  	ExpirationStatus string `json:"expiration_status,omitempty"`
9240  
9241  	// The expiration timestamp of the license.
9242  	ExpiryDate *UnixTime `json:"expiry_date,omitempty"`
9243  
9244  	// The license string.
9245  	Key string `json:"key,omitempty"`
9246  
9247  	// The license limit value.
9248  	Limit string `json:"limit,omitempty"`
9249  
9250  	// The license limit context.
9251  	LimitContext string `json:"limit_context,omitempty"`
9252  
9253  	// The license type.
9254  	Type string `json:"type,omitempty"`
9255  }
9256  
9257  func (LicenseGridwide) ObjectType() string {
9258  	return "license:gridwide"
9259  }
9260  
9261  func (obj LicenseGridwide) ReturnFields() []string {
9262  	if obj.returnFields == nil {
9263  		obj.returnFields = []string{"type"}
9264  	}
9265  	return obj.returnFields
9266  }
9267  
9268  // LocaluserAuthservice represents Infoblox object localuser:authservice.
9269  // The object represents a local authentication service for authenticating
9270  // users against the local database.
9271  type LocaluserAuthservice struct {
9272  	IBBase `json:"-"`
9273  
9274  	Ref string `json:"_ref,omitempty"`
9275  
9276  	// The local user authentication service comment.
9277  	Comment string `json:"comment,omitempty"`
9278  
9279  	// Flag that indicates whether the local user authentication service is enabled
9280  	// or not.
9281  	Disabled bool `json:"disabled,omitempty"`
9282  
9283  	// The name of the local user authentication service.
9284  	Name string `json:"name,omitempty"`
9285  }
9286  
9287  func (LocaluserAuthservice) ObjectType() string {
9288  	return "localuser:authservice"
9289  }
9290  
9291  func (obj LocaluserAuthservice) ReturnFields() []string {
9292  	if obj.returnFields == nil {
9293  		obj.returnFields = []string{"comment", "disabled", "name"}
9294  	}
9295  	return obj.returnFields
9296  }
9297  
9298  // MACFilterAddress represents Infoblox object macfilteraddress.
9299  // MAC filter address is part of the MAC filter.
9300  type MACFilterAddress struct {
9301  	IBBase `json:"-"`
9302  
9303  	Ref string `json:"_ref,omitempty"`
9304  
9305  	// The absolute UNIX time (in seconds) since the address was last
9306  	// authenticated.
9307  	AuthenticationTime *UnixTime `json:"authentication_time,omitempty"`
9308  
9309  	// Comment for the MAC filter address; maximum 256 characters.
9310  	Comment *string `json:"comment,omitempty"`
9311  
9312  	// The absolute UNIX time (in seconds) until the address expires.
9313  	ExpirationTime *UnixTime `json:"expiration_time,omitempty"`
9314  
9315  	// Extensible attributes associated with the object. For valid values for
9316  	// extensible attributes, see {extattrs:values}.
9317  	Ea EA `json:"extattrs"`
9318  
9319  	// Name of the MAC filter to which this address belongs.
9320  	Filter *string `json:"filter,omitempty"`
9321  
9322  	// DHCP fingerprint for the address.
9323  	Fingerprint string `json:"fingerprint,omitempty"`
9324  
9325  	// Guest custom field 1.
9326  	GuestCustomField1 *string `json:"guest_custom_field1,omitempty"`
9327  
9328  	// Guest custom field 2.
9329  	GuestCustomField2 *string `json:"guest_custom_field2,omitempty"`
9330  
9331  	// Guest custom field 3.
9332  	GuestCustomField3 *string `json:"guest_custom_field3,omitempty"`
9333  
9334  	// Guest custom field 4.
9335  	GuestCustomField4 *string `json:"guest_custom_field4,omitempty"`
9336  
9337  	// Guest e-mail.
9338  	GuestEmail *string `json:"guest_email,omitempty"`
9339  
9340  	// Guest first name.
9341  	GuestFirstName *string `json:"guest_first_name,omitempty"`
9342  
9343  	// Guest last name.
9344  	GuestLastName *string `json:"guest_last_name,omitempty"`
9345  
9346  	// Guest middle name.
9347  	GuestMiddleName *string `json:"guest_middle_name,omitempty"`
9348  
9349  	// Guest phone number.
9350  	GuestPhone *string `json:"guest_phone,omitempty"`
9351  
9352  	// Determines if the user has been authenticated or not.
9353  	IsRegisteredUser bool `json:"is_registered_user,omitempty"`
9354  
9355  	// MAC Address.
9356  	Mac *string `json:"mac,omitempty"`
9357  
9358  	// Determines if MAC address expiration is enabled or disabled.
9359  	NeverExpires *bool `json:"never_expires,omitempty"`
9360  
9361  	// Reserved for future use.
9362  	ReservedForInfoblox *string `json:"reserved_for_infoblox,omitempty"`
9363  
9364  	// Username for authenticated DHCP purposes.
9365  	Username *string `json:"username,omitempty"`
9366  }
9367  
9368  func (MACFilterAddress) ObjectType() string {
9369  	return "macfilteraddress"
9370  }
9371  
9372  func (obj MACFilterAddress) ReturnFields() []string {
9373  	if obj.returnFields == nil {
9374  		obj.returnFields = []string{"authentication_time", "comment", "expiration_time", "filter", "guest_custom_field1", "guest_custom_field2", "guest_custom_field3", "guest_custom_field4", "guest_email", "guest_first_name", "guest_last_name", "guest_middle_name", "guest_phone", "is_registered_user", "mac", "never_expires", "reserved_for_infoblox", "username"}
9375  	}
9376  	return obj.returnFields
9377  }
9378  
9379  // Mastergrid represents Infoblox object mastergrid.
9380  // This object represents the Master Grid. The Master Grid object is
9381  // automatically generated when a Grid successfully joins the Master Grid.
9382  type Mastergrid struct {
9383  	IBBase `json:"-"`
9384  
9385  	Ref string `json:"_ref,omitempty"`
9386  
9387  	// The domain name or IP address for the Master Grid.
9388  	Address *string `json:"address,omitempty"`
9389  
9390  	// Determines if the sub-grid is currently disabled.
9391  	ConnectionDisabled bool `json:"connection_disabled,omitempty"`
9392  
9393  	// The timestamp that indicates when the connection to the Master Grid was
9394  	// established.
9395  	ConnectionTimestamp *UnixTime `json:"connection_timestamp,omitempty"`
9396  
9397  	// The detached flag for the Master Grid.
9398  	Detached bool `json:"detached,omitempty"`
9399  
9400  	// Determines if the Master Grid is enabled.
9401  	Enable *bool `json:"enable,omitempty"`
9402  
9403  	// The flag shows if the Grid has joined the Master Grid.
9404  	Joined bool `json:"joined,omitempty"`
9405  
9406  	// The Master Grid's last event.
9407  	LastEvent string `json:"last_event,omitempty"`
9408  
9409  	// The details of the Master Grid's last event.
9410  	LastEventDetails string `json:"last_event_details,omitempty"`
9411  
9412  	// The timestamp or the last synchronization operation with the Master Grid.
9413  	LastSyncTimestamp *UnixTime `json:"last_sync_timestamp,omitempty"`
9414  
9415  	// The Master Grid port to which the Grid connects.
9416  	Port *uint32 `json:"port,omitempty"`
9417  
9418  	// The Master Grid's status.
9419  	Status string `json:"status,omitempty"`
9420  
9421  	// The flag shows if the MGMT port was used to join the Grid.
9422  	UseMgmtPort bool `json:"use_mgmt_port,omitempty"`
9423  }
9424  
9425  func (Mastergrid) ObjectType() string {
9426  	return "mastergrid"
9427  }
9428  
9429  func (obj Mastergrid) ReturnFields() []string {
9430  	if obj.returnFields == nil {
9431  		obj.returnFields = []string{"address", "enable", "port"}
9432  	}
9433  	return obj.returnFields
9434  }
9435  
9436  // Member represents Infoblox object member.
9437  // This object represents the Infoblox Grid Member.
9438  type Member struct {
9439  	IBBase `json:"-"`
9440  
9441  	Ref string `json:"_ref,omitempty"`
9442  
9443  	// The active server of a Grid member.
9444  	ActivePosition string `json:"active_position,omitempty"`
9445  
9446  	// The additional IP list of a Grid member. This list contains additional
9447  	// interface information that can be used at the member level. Note that
9448  	// interface structure(s) with interface type set to 'MGMT' are not supported.
9449  	AdditionalIpList []*Interface `json:"additional_ip_list,omitempty"`
9450  
9451  	// Member level settings for automated traffic capture.
9452  	AutomatedTrafficCaptureSetting *SettingAutomatedtrafficcapture `json:"automated_traffic_capture_setting,omitempty"`
9453  
9454  	// The BGP configuration for anycast for a Grid member.
9455  	BgpAs []*Bgpas `json:"bgp_as,omitempty"`
9456  
9457  	// A descriptive comment of the Grid member.
9458  	Comment *string `json:"comment,omitempty"`
9459  
9460  	// Address configuration type.
9461  	ConfigAddrType string `json:"config_addr_type,omitempty"`
9462  
9463  	// CSP portal on-prem host access key
9464  	CspAccessKey []string `json:"csp_access_key,omitempty"`
9465  
9466  	// csp setting at member level
9467  	CspMemberSetting *MemberCspmembersetting `json:"csp_member_setting,omitempty"`
9468  
9469  	// DNS resolver setting for member.
9470  	DnsResolverSetting *SettingDnsresolver `json:"dns_resolver_setting,omitempty"`
9471  
9472  	// The DSCP (Differentiated Services Code Point) value.
9473  	Dscp *uint32 `json:"dscp,omitempty"`
9474  
9475  	// The email setting for member.
9476  	EmailSetting *SettingEmail `json:"email_setting,omitempty"`
9477  
9478  	// If set to True, the member has two physical nodes (HA pair).
9479  	EnableHa *bool `json:"enable_ha,omitempty"`
9480  
9481  	// Determines if the LOM functionality is enabled or not.
9482  	EnableLom *bool `json:"enable_lom,omitempty"`
9483  
9484  	// Determines if the member will redirect GUI connections to the Grid Master or
9485  	// not.
9486  	EnableMemberRedirect *bool `json:"enable_member_redirect,omitempty"`
9487  
9488  	// If set to True and the member object is a Grid Master Candidate, then
9489  	// read-only API access is enabled.
9490  	EnableRoApiAccess *bool `json:"enable_ro_api_access,omitempty"`
9491  
9492  	// Extensible attributes associated with the object. For valid values for
9493  	// extensible attributes, see {extattrs:values}.
9494  	Ea EA `json:"extattrs"`
9495  
9496  	// The list of external syslog backup servers.
9497  	ExternalSyslogBackupServers []*Extsyslogbackupserver `json:"external_syslog_backup_servers,omitempty"`
9498  
9499  	// Determines if external syslog servers should be enabled.
9500  	ExternalSyslogServerEnable *bool `json:"external_syslog_server_enable,omitempty"`
9501  
9502  	// The host name of the Grid member.
9503  	HostName *string `json:"host_name,omitempty"`
9504  
9505  	// IPV6 setting for member.
9506  	Ipv6Setting *Ipv6setting `json:"ipv6_setting,omitempty"`
9507  
9508  	// List of IPv6 static routes.
9509  	Ipv6StaticRoutes []*Ipv6networksetting `json:"ipv6_static_routes,omitempty"`
9510  
9511  	// Determines if a Grid member supports DSCP (Differentiated Services Code
9512  	// Point).
9513  	IsDscpCapable bool `json:"is_dscp_capable,omitempty"`
9514  
9515  	// If this is set to "true", the LAN2 port is enabled as an independent port or
9516  	// as a port for failover purposes.
9517  	Lan2Enabled *bool `json:"lan2_enabled,omitempty"`
9518  
9519  	// Settings for the Grid member LAN2 port if 'lan2_enabled' is set to "true".
9520  	Lan2PortSetting *Lan2portsetting `json:"lan2_port_setting,omitempty"`
9521  
9522  	// Determines if the Liquid Crystal Display (LCD) input buttons on the front
9523  	// panel of the appliance are enabled or not.
9524  	LcdInput *bool `json:"lcd_input,omitempty"`
9525  
9526  	// The Network configurations for LOM.
9527  	LomNetworkConfig []*Lomnetworkconfig `json:"lom_network_config,omitempty"`
9528  
9529  	// The list of LOM users.
9530  	LomUsers []*Lomuser `json:"lom_users,omitempty"`
9531  
9532  	// Determines if a Grid member is a Grid Master Candidate or not. This flag
9533  	// enables the Grid member to assume the role of the Grid Master as a disaster
9534  	// recovery measure.
9535  	MasterCandidate *bool `json:"master_candidate,omitempty"`
9536  
9537  	// Configure communication type for various services.
9538  	MemberServiceCommunication []*Memberservicecommunication `json:"member_service_communication,omitempty"`
9539  
9540  	// Settings for the member MGMT port.
9541  	MgmtPortSetting *Mgmtportsetting `json:"mgmt_port_setting,omitempty"`
9542  
9543  	// Extensible attributes Topology database build time.
9544  	MmdbEaBuildTime *UnixTime `json:"mmdb_ea_build_time,omitempty"`
9545  
9546  	// GeoIP Topology database build time.
9547  	MmdbGeoipBuildTime *UnixTime `json:"mmdb_geoip_build_time,omitempty"`
9548  
9549  	// NAT settings for the member.
9550  	NatSetting *Natsetting `json:"nat_setting,omitempty"`
9551  
9552  	// The node information list with detailed status report on the operations of
9553  	// the Grid Member.
9554  	NodeInfo []*Nodeinfo `json:"node_info,omitempty"`
9555  
9556  	// The member Network Time Protocol (NTP) settings.
9557  	NTPSetting *MemberNtp `json:"ntp_setting,omitempty"`
9558  
9559  	// The OSPF area configuration (for anycast) list for a Grid member.
9560  	OspfList []*Ospf `json:"ospf_list,omitempty"`
9561  
9562  	// The ARP protocol setting on the passive node of an HA pair. If you do not
9563  	// specify a value, the default value is "false". You can only set this value
9564  	// to "true" if the member is an HA pair.
9565  	PassiveHaArpEnabled *bool `json:"passive_ha_arp_enabled,omitempty"`
9566  
9567  	// Hardware Platform.
9568  	Platform string `json:"platform,omitempty"`
9569  
9570  	// Pre-provisioning information.
9571  	PreProvisioning *Preprovision `json:"pre_provisioning,omitempty"`
9572  
9573  	// Set this flag to "true" to prevent the deletion of the member if any
9574  	// delegated object remains attached to it.
9575  	PreserveIfOwnsDelegation *bool `json:"preserve_if_owns_delegation,omitempty"`
9576  
9577  	// If set to True, superuser admins can access the Infoblox CLI from a remote
9578  	// location using an SSH (Secure Shell) v2 client.
9579  	RemoteConsoleAccessEnable *bool `json:"remote_console_access_enable,omitempty"`
9580  
9581  	// Virutal router identifier. Provide this ID if "ha_enabled" is set to "true".
9582  	// This is a unique VRID number (from 1 to 255) for the local subnet.
9583  	RouterId *uint32 `json:"router_id,omitempty"`
9584  
9585  	// The service status list of a grid member.
9586  	ServiceStatus []*Memberservicestatus `json:"service_status,omitempty"`
9587  
9588  	// Configure all services to the given type.
9589  	ServiceTypeConfiguration string `json:"service_type_configuration,omitempty"`
9590  
9591  	// The Grid Member SNMP settings.
9592  	SnmpSetting *SettingSnmp `json:"snmp_setting,omitempty"`
9593  
9594  	// List of static routes.
9595  	StaticRoutes []*SettingNetwork `json:"static_routes,omitempty"`
9596  
9597  	// Determines if support access for the Grid member should be enabled.
9598  	SupportAccessEnable *bool `json:"support_access_enable,omitempty"`
9599  
9600  	// The information string for support access.
9601  	SupportAccessInfo string `json:"support_access_info,omitempty"`
9602  
9603  	// The Grid Member syslog proxy settings.
9604  	SyslogProxySetting *SettingSyslogproxy `json:"syslog_proxy_setting,omitempty"`
9605  
9606  	// The list of external syslog servers.
9607  	SyslogServers []*Syslogserver `json:"syslog_servers,omitempty"`
9608  
9609  	// The maximum size for the syslog file expressed in megabytes.
9610  	SyslogSize *uint32 `json:"syslog_size,omitempty"`
9611  
9612  	// Determines the list of threshold traps. The user can only change the values
9613  	// for each trap or remove traps.
9614  	ThresholdTraps []*Thresholdtrap `json:"threshold_traps,omitempty"`
9615  
9616  	// The time zone of the Grid member. The UTC string that represents the time
9617  	// zone, such as "(UTC - 5:00) Eastern Time (US and Canada)".
9618  	TimeZone *string `json:"time_zone,omitempty"`
9619  
9620  	// Grid level settings for enabling authoritative DNS latency thresholds for
9621  	// automated traffic capture.
9622  	TrafficCaptureAuthDnsSetting *SettingTriggeruthdnslatency `json:"traffic_capture_auth_dns_setting,omitempty"`
9623  
9624  	// Member level settings for enabling DNS cache hit ratio threshold for
9625  	// automated traffic capture.
9626  	TrafficCaptureChrSetting *SettingTrafficcapturechr `json:"traffic_capture_chr_setting,omitempty"`
9627  
9628  	// Member level settings for enabling DNS query per second threshold for
9629  	// automated traffic capture.
9630  	TrafficCaptureQpsSetting *SettingTrafficcaptureqps `json:"traffic_capture_qps_setting,omitempty"`
9631  
9632  	// Grid level settings for enabling recursive DNS latency thresholds for
9633  	// automated traffic capture.
9634  	TrafficCaptureRecDnsSetting *SettingTriggerrecdnslatency `json:"traffic_capture_rec_dns_setting,omitempty"`
9635  
9636  	// Grid level settings for enabling count for concurrent outgoing recursive
9637  	// queries for automated traffic capture.
9638  	TrafficCaptureRecQueriesSetting *SettingTriggerrecqueries `json:"traffic_capture_rec_queries_setting,omitempty"`
9639  
9640  	// Determines configuration of the trap notifications.
9641  	TrapNotifications []*Trapnotification `json:"trap_notifications,omitempty"`
9642  
9643  	// The name of the upgrade group to which this Grid member belongs.
9644  	UpgradeGroup *string `json:"upgrade_group,omitempty"`
9645  
9646  	// This flag is the use flag for enabling automated traffic capture based on
9647  	// DNS cache ratio thresholds.
9648  	UseAutomatedTrafficCapture *bool `json:"use_automated_traffic_capture,omitempty"`
9649  
9650  	// Use flag for: dns_resolver_setting
9651  	UseDnsResolverSetting *bool `json:"use_dns_resolver_setting,omitempty"`
9652  
9653  	// Use flag for: dscp
9654  	UseDscp *bool `json:"use_dscp,omitempty"`
9655  
9656  	// Use flag for: email_setting
9657  	UseEmailSetting *bool `json:"use_email_setting,omitempty"`
9658  
9659  	// Use flag for: enable_lom
9660  	UseEnableLom *bool `json:"use_enable_lom,omitempty"`
9661  
9662  	// Use flag for: enable_member_redirect
9663  	UseEnableMemberRedirect *bool `json:"use_enable_member_redirect,omitempty"`
9664  
9665  	// Use flag for: external_syslog_backup_servers
9666  	UseExternalSyslogBackupServers *bool `json:"use_external_syslog_backup_servers,omitempty"`
9667  
9668  	// Use flag for: lcd_input
9669  	UseLcdInput *bool `json:"use_lcd_input,omitempty"`
9670  
9671  	// Use flag for: remote_console_access_enable
9672  	UseRemoteConsoleAccessEnable *bool `json:"use_remote_console_access_enable,omitempty"`
9673  
9674  	// Use flag for: snmp_setting
9675  	UseSnmpSetting *bool `json:"use_snmp_setting,omitempty"`
9676  
9677  	// Use flag for: support_access_enable
9678  	UseSupportAccessEnable *bool `json:"use_support_access_enable,omitempty"`
9679  
9680  	// Use flag for: external_syslog_server_enable , syslog_servers,
9681  	// syslog_proxy_setting, syslog_size
9682  	UseSyslogProxySetting *bool `json:"use_syslog_proxy_setting,omitempty"`
9683  
9684  	// Use flag for: threshold_traps
9685  	UseThresholdTraps *bool `json:"use_threshold_traps,omitempty"`
9686  
9687  	// Use flag for: time_zone
9688  	UseTimeZone *bool `json:"use_time_zone,omitempty"`
9689  
9690  	// This flag is the use flag for enabling automated traffic capture based on
9691  	// authorative DNS latency.
9692  	UseTrafficCaptureAuthDns *bool `json:"use_traffic_capture_auth_dns,omitempty"`
9693  
9694  	// This flag is the use flag for automated traffic capture settings at member
9695  	// level.
9696  	UseTrafficCaptureChr *bool `json:"use_traffic_capture_chr,omitempty"`
9697  
9698  	// This flag is the use flag for enabling automated traffic capture based on
9699  	// DNS querie per second thresholds.
9700  	UseTrafficCaptureQps *bool `json:"use_traffic_capture_qps,omitempty"`
9701  
9702  	// This flag is the use flag for enabling automated traffic capture based on
9703  	// recursive DNS latency.
9704  	UseTrafficCaptureRecDns *bool `json:"use_traffic_capture_rec_dns,omitempty"`
9705  
9706  	// This flag is the use flag for enabling automated traffic capture based on
9707  	// outgoing recursive queries.
9708  	UseTrafficCaptureRecQueries *bool `json:"use_traffic_capture_rec_queries,omitempty"`
9709  
9710  	// Use flag for: trap_notifications
9711  	UseTrapNotifications *bool `json:"use_trap_notifications,omitempty"`
9712  
9713  	// Specify "true" to use VRRPv4 or "false" to use VRRPv6.
9714  	UseV4Vrrp *bool `json:"use_v4_vrrp,omitempty"`
9715  
9716  	// The network settings for the Grid member.
9717  	VipSetting *SettingNetwork `json:"vip_setting,omitempty"`
9718  
9719  	// The VPN maximum transmission unit (MTU).
9720  	VpnMtu *uint32 `json:"vpn_mtu,omitempty"`
9721  }
9722  
9723  func (Member) ObjectType() string {
9724  	return "member"
9725  }
9726  
9727  func (obj Member) ReturnFields() []string {
9728  	if obj.returnFields == nil {
9729  		obj.returnFields = []string{"config_addr_type", "host_name", "platform", "service_type_configuration"}
9730  	}
9731  	return obj.returnFields
9732  }
9733  
9734  func NewMember(member Member) *Member {
9735  	res := member
9736  	returnFields := []string{"host_name", "node_info", "time_zone"}
9737  	res.returnFields = returnFields
9738  	return &res
9739  }
9740  
9741  // MemberDHCPProperties represents Infoblox object member:dhcpproperties.
9742  // This object represents a subset of the Infoblox Member DHCP properties.
9743  type MemberDHCPProperties struct {
9744  	IBBase `json:"-"`
9745  
9746  	Ref string `json:"_ref,omitempty"`
9747  
9748  	// The Authentication Server Group object associated with this member.
9749  	AuthServerGroup *string `json:"auth_server_group,omitempty"`
9750  
9751  	// The captive portal responsible for authenticating this DHCP member.
9752  	AuthnCaptivePortal *string `json:"authn_captive_portal,omitempty"`
9753  
9754  	// The MAC filter representing the authenticated range.
9755  	AuthnCaptivePortalAuthenticatedFilter *string `json:"authn_captive_portal_authenticated_filter,omitempty"`
9756  
9757  	// The flag that controls if this DHCP member is enabled for captive portal
9758  	// authentication.
9759  	AuthnCaptivePortalEnabled *bool `json:"authn_captive_portal_enabled,omitempty"`
9760  
9761  	// The MAC filter representing the guest range.
9762  	AuthnCaptivePortalGuestFilter *string `json:"authn_captive_portal_guest_filter,omitempty"`
9763  
9764  	// The flag that controls if this DHCP member can send authentication requests
9765  	// to an authentication server group.
9766  	AuthnServerGroupEnabled *bool `json:"authn_server_group_enabled,omitempty"`
9767  
9768  	// The authority flag of a Grid member. This flag specifies if a DHCP server is
9769  	// authoritative for a domain.
9770  	Authority *bool `json:"authority,omitempty"`
9771  
9772  	// The name of a file that DHCP clients need to boot. This setting overrides
9773  	// the Grid level setting.
9774  	Bootfile *string `json:"bootfile,omitempty"`
9775  
9776  	// The name of the server on which a boot file is stored. This setting
9777  	// overrides the Grid level setting.
9778  	Bootserver *string `json:"bootserver,omitempty"`
9779  
9780  	// The member DDNS domain name value.
9781  	DdnsDomainname *string `json:"ddns_domainname,omitempty"`
9782  
9783  	// Determines the ability of a member DHCP server to generate a host name and
9784  	// update DNS with this host name when it receives a DHCP REQUEST message that
9785  	// does not include a host name.
9786  	DdnsGenerateHostname *bool `json:"ddns_generate_hostname,omitempty"`
9787  
9788  	// Determines the retry interval when the member DHCP server makes repeated
9789  	// attempts to send DDNS updates to a DNS server.
9790  	DdnsRetryInterval *uint32 `json:"ddns_retry_interval,omitempty"`
9791  
9792  	// Determines that only the DHCP server is allowed to update DNS, regardless of
9793  	// the requests from the DHCP clients. This setting overrides the Grid level
9794  	// setting.
9795  	DdnsServerAlwaysUpdates *bool `json:"ddns_server_always_updates,omitempty"`
9796  
9797  	// The DDNS TTL (Dynamic DNS Time To Live) value specifies the number of
9798  	// seconds an IP address for the name is cached.
9799  	DdnsTtl *uint32 `json:"ddns_ttl,omitempty"`
9800  
9801  	// Determines if the member DHCP server's ability to update the A and PTR
9802  	// records with a fixed address is enabled or not.
9803  	DdnsUpdateFixedAddresses *bool `json:"ddns_update_fixed_addresses,omitempty"`
9804  
9805  	// Determines if support for option 81 is enabled or not.
9806  	DdnsUseOption81 *bool `json:"ddns_use_option81,omitempty"`
9807  
9808  	// An ordered list of zone primaries that will receive DDNS updates.
9809  	DdnsZonePrimaries []*Dhcpddns `json:"ddns_zone_primaries,omitempty"`
9810  
9811  	// Determines if a BOOTP server denies BOOTP request or not. This setting
9812  	// overrides the Grid level setting.
9813  	DenyBootp *bool `json:"deny_bootp,omitempty"`
9814  
9815  	// The percentage of the total DHCP utilization of DHCP objects belonging to
9816  	// the Grid Member multiplied by 1000. This is the percentage of the total
9817  	// number of available IP addresses from all the DHCP objects belonging to the
9818  	// Grid Member versus the total number of all IP addresses in all of the DHCP
9819  	// objects on the Grid Member.
9820  	DhcpUtilization uint32 `json:"dhcp_utilization,omitempty"`
9821  
9822  	// A string describing the utilization level of DHCP objects that belong to the
9823  	// Grid Member.
9824  	DhcpUtilizationStatus string `json:"dhcp_utilization_status,omitempty"`
9825  
9826  	// The update style for dynamic DNS updates.
9827  	DnsUpdateStyle string `json:"dns_update_style,omitempty"`
9828  
9829  	// The total number of DHCP leases issued for the DHCP objects on the Grid
9830  	// Member.
9831  	DynamicHosts uint32 `json:"dynamic_hosts,omitempty"`
9832  
9833  	// The email_list value of a member DHCP server.
9834  	EmailList []string `json:"email_list,omitempty"`
9835  
9836  	// Determines if the member DHCP server's ability to send DDNS updates is
9837  	// enabled or not.
9838  	EnableDdns *bool `json:"enable_ddns,omitempty"`
9839  
9840  	// Determines if the DHCP service of a member is enabled or not.
9841  	EnableDhcp *bool `json:"enable_dhcp,omitempty"`
9842  
9843  	// Determines if the DHCP service on the IPv6 LAN2 interface is enabled or not.
9844  	EnableDhcpOnIpv6Lan2 *bool `json:"enable_dhcp_on_ipv6_lan2,omitempty"`
9845  
9846  	// Determines if the DHCP service on the LAN2 interface is enabled or not.
9847  	EnableDhcpOnLan2 *bool `json:"enable_dhcp_on_lan2,omitempty"`
9848  
9849  	// Represents the watermarks above or below which address usage in a network is
9850  	// unexpected and might warrant your attention. This setting overrides the Grid
9851  	// level setting.
9852  	EnableDhcpThresholds *bool `json:"enable_dhcp_thresholds,omitempty"`
9853  
9854  	// Determines if DHCPv6 service for the member is enabled or not.
9855  	EnableDhcpv6Service *bool `json:"enable_dhcpv6_service,omitempty"`
9856  
9857  	// Determines if e-mail warnings are enabled or disabled. When DHCP threshold
9858  	// is enabled and DHCP address usage crosses a watermark threshold, the
9859  	// appliance sends an e-mail notification to an administrator.
9860  	EnableEmailWarnings *bool `json:"enable_email_warnings,omitempty"`
9861  
9862  	// Determines if fingerprint feature is enabled on this member. If you enable
9863  	// this feature, the server will match a fingerprint for incoming lease
9864  	// requests.
9865  	EnableFingerprint *bool `json:"enable_fingerprint,omitempty"`
9866  
9867  	// Determines whether the appliance is enabled to receive GSS-TSIG
9868  	// authenticated updates from DHCP clients.
9869  	EnableGssTsig *bool `json:"enable_gss_tsig,omitempty"`
9870  
9871  	// Determines if the Grid member's host name rewrite feature is enabled or not.
9872  	EnableHostnameRewrite *bool `json:"enable_hostname_rewrite,omitempty"`
9873  
9874  	// Determines if lease query is allowed or not. This setting overrides the
9875  	// Grid-level setting.
9876  	EnableLeasequery *bool `json:"enable_leasequery,omitempty"`
9877  
9878  	// Determines if SNMP warnings are enabled or disabled on this DHCP member.
9879  	// When DHCP threshold is enabled and DHCP address usage crosses a watermark
9880  	// threshold, the appliance sends an SNMP trap to the trap receiver that was
9881  	// defined for the Grid member level.
9882  	EnableSnmpWarnings *bool `json:"enable_snmp_warnings,omitempty"`
9883  
9884  	// Extensible attributes associated with the object. For valid values for
9885  	// extensible attributes, see {extattrs:values}.
9886  	Ea EA `json:"extattrs"`
9887  
9888  	// The list of GSS-TSIG keys for a member DHCP object.
9889  	GssTsigKeys []*Kerberoskey `json:"gss_tsig_keys,omitempty"`
9890  
9891  	// Determines the high watermark value of a member DHCP server. If the
9892  	// percentage of allocated addresses exceeds this watermark, the appliance
9893  	// makes a syslog entry and sends an e-mail notification (if enabled).
9894  	// Specifies the percentage of allocated addresses. The range is from 1 to 100.
9895  	HighWaterMark *uint32 `json:"high_water_mark,omitempty"`
9896  
9897  	// Determines the high watermark reset value of a member DHCP server. If the
9898  	// percentage of allocated addresses drops below this value, a corresponding
9899  	// SNMP trap is reset. Specifies the percentage of allocated addresses. The
9900  	// range is from 1 to 100. The high watermark reset value must be lower than
9901  	// the high watermark value.
9902  	HighWaterMarkReset *uint32 `json:"high_water_mark_reset,omitempty"`
9903  
9904  	// Host name of the Grid member.
9905  	HostName string `json:"host_name,omitempty"`
9906  
9907  	// The hostname rewrite policy that is in the protocol hostname rewrite
9908  	// policies array of the Grid DHCP object. This attribute is mandatory if
9909  	// enable_hostname_rewrite is "true".
9910  	HostnameRewritePolicy *string `json:"hostname_rewrite_policy,omitempty"`
9911  
9912  	// Determines if the ignore DHCP option list request flag of a Grid member DHCP
9913  	// is enabled or not. If this flag is set to true all available DHCP options
9914  	// will be returned to the client.
9915  	IgnoreDhcpOptionListRequest *bool `json:"ignore_dhcp_option_list_request,omitempty"`
9916  
9917  	// Indicates whether the appliance will ignore DHCP client IDs or MAC
9918  	// addresses. Valid values are "NONE", "CLIENT", or "MACADDR". The default is
9919  	// "NONE".
9920  	IgnoreId string `json:"ignore_id,omitempty"`
9921  
9922  	// A list of MAC addresses the appliance will ignore.
9923  	IgnoreMacAddresses []string `json:"ignore_mac_addresses,omitempty"`
9924  
9925  	// Determines if the Immediate Fixed address configuration apply feature for
9926  	// the DHCP member is enabled or not.
9927  	ImmediateFaConfiguration *bool `json:"immediate_fa_configuration,omitempty"`
9928  
9929  	// The IPv4 Address of the Grid member.
9930  	Ipv4Addr string `json:"ipv4addr,omitempty"`
9931  
9932  	// The member DDNS IPv6 domain name value.
9933  	Ipv6DdnsDomainname *string `json:"ipv6_ddns_domainname,omitempty"`
9934  
9935  	// Controls whether the FQDN option sent by the DHCPv6 client is to be used, or
9936  	// if the server can automatically generate the FQDN.
9937  	Ipv6DdnsEnableOptionFqdn *bool `json:"ipv6_ddns_enable_option_fqdn,omitempty"`
9938  
9939  	// The member IPv6 DDNS hostname value.
9940  	Ipv6DdnsHostname *string `json:"ipv6_ddns_hostname,omitempty"`
9941  
9942  	// Determines if the server always updates DNS or updates only if requested by
9943  	// the client.
9944  	Ipv6DdnsServerAlwaysUpdates *bool `json:"ipv6_ddns_server_always_updates,omitempty"`
9945  
9946  	// The member IPv6 DDNS TTL value.
9947  	Ipv6DdnsTtl *uint32 `json:"ipv6_ddns_ttl,omitempty"`
9948  
9949  	// The update style for dynamic DHCPv6 DNS updates.
9950  	Ipv6DnsUpdateStyle string `json:"ipv6_dns_update_style,omitempty"`
9951  
9952  	// The IPv6 domain name.
9953  	Ipv6DomainName *string `json:"ipv6_domain_name,omitempty"`
9954  
9955  	// The comma separated list of domain name server addresses in IPv6 address
9956  	// format.
9957  	Ipv6DomainNameServers []string `json:"ipv6_domain_name_servers,omitempty"`
9958  
9959  	// Determines if sending DDNS updates by the member DHCPv6 server is enabled or
9960  	// not.
9961  	Ipv6EnableDdns *bool `json:"ipv6_enable_ddns,omitempty"`
9962  
9963  	// Determines whether the appliance is enabled to receive GSS-TSIG
9964  	// authenticated updates from DHCPv6 clients.
9965  	Ipv6EnableGssTsig *bool `json:"ipv6_enable_gss_tsig,omitempty"`
9966  
9967  	// Indicates whether DHCPv6 lease scavenging is enabled or disabled.
9968  	Ipv6EnableLeaseScavenging *bool `json:"ipv6_enable_lease_scavenging,omitempty"`
9969  
9970  	// Determines if the DHCPv6 server retries failed dynamic DNS updates or not.
9971  	Ipv6EnableRetryUpdates *bool `json:"ipv6_enable_retry_updates,omitempty"`
9972  
9973  	// Determines if the server generates the hostname if it is not sent by the
9974  	// client.
9975  	Ipv6GenerateHostname *bool `json:"ipv6_generate_hostname,omitempty"`
9976  
9977  	// The list of GSS-TSIG keys for a member DHCPv6 object.
9978  	Ipv6GssTsigKeys []*Kerberoskey `json:"ipv6_gss_tsig_keys,omitempty"`
9979  
9980  	// Determines the IPv6 address or FQDN of the Kerberos server for DHCPv6
9981  	// GSS-TSIG authentication. This setting overrides the Grid level setting.
9982  	Ipv6KdcServer *string `json:"ipv6_kdc_server,omitempty"`
9983  
9984  	// The member-level grace period (in seconds) to keep an expired lease before
9985  	// it is deleted by the scavenging process.
9986  	Ipv6LeaseScavengingTime *uint32 `json:"ipv6_lease_scavenging_time,omitempty"`
9987  
9988  	// The Microsoft client DHCP IPv6 code page value of a Grid member. This value
9989  	// is the hostname translation code page for Microsoft DHCP IPv6 clients and
9990  	// overrides the Grid level Microsoft DHCP IPv6 client code page.
9991  	Ipv6MicrosoftCodePage string `json:"ipv6_microsoft_code_page,omitempty"`
9992  
9993  	// An array of DHCP option dhcpoption structs that lists the DHCPv6 options
9994  	// associated with the object.
9995  	Ipv6Options []*Dhcpoption `json:"ipv6_options,omitempty"`
9996  
9997  	// Determines if the IPv6 recycle leases feature is enabled or not. If the
9998  	// feature is enabled, leases are kept in the Recycle Bin until one week after
9999  	// lease expiration. When the feature is disabled, the leases are irrecoverably
10000  	// deleted.
10001  	Ipv6RecycleLeases *bool `json:"ipv6_recycle_leases,omitempty"`
10002  
10003  	// Enable binding for expired DHCPv6 leases.
10004  	Ipv6RememberExpiredClientAssociation *bool `json:"ipv6_remember_expired_client_association,omitempty"`
10005  
10006  	// Determines the retry interval when the member DHCPv6 server makes repeated
10007  	// attempts to send DDNS updates to a DNS server.
10008  	Ipv6RetryUpdatesInterval *uint32 `json:"ipv6_retry_updates_interval,omitempty"`
10009  
10010  	// The server DHCPv6 unique identifier (DUID) for the Grid member.
10011  	Ipv6ServerDuid *string `json:"ipv6_server_duid,omitempty"`
10012  
10013  	// Controls whether the DHCPv6 server updates DNS when an IPv6 DHCP lease is
10014  	// renewed.
10015  	Ipv6UpdateDnsOnLeaseRenewal *bool `json:"ipv6_update_dns_on_lease_renewal,omitempty"`
10016  
10017  	// The IPv6 Address of the Grid member.
10018  	Ipv6Addr string `json:"ipv6addr,omitempty"`
10019  
10020  	// The IPv4 address or FQDN of the Kerberos server for DHCPv4 GSS-TSIG
10021  	// authentication. This setting overrides the Grid level setting.
10022  	KdcServer *string `json:"kdc_server,omitempty"`
10023  
10024  	// Defines how the appliance releases DHCP leases. Valid values are
10025  	// "RELEASE_MACHING_ID", "NEVER_RELEASE", or "ONE_LEASE_PER_CLIENT". The
10026  	// default is "RELEASE_MATCHING_ID".
10027  	LeasePerClientSettings string `json:"lease_per_client_settings,omitempty"`
10028  
10029  	// Determines the lease scavenging time value. When this field is set, the
10030  	// appliance permanently deletes the free and backup leases that remain in the
10031  	// database beyond a specified period of time. To disable lease scavenging, set
10032  	// the parameter to -1. The minimum positive value must be greater than 86400
10033  	// seconds (1 day).
10034  	LeaseScavengeTime int `json:"lease_scavenge_time,omitempty"`
10035  
10036  	// This value specifies whether the grid member logs lease events. This setting
10037  	// overrides the Grid level setting.
10038  	LogLeaseEvents *bool `json:"log_lease_events,omitempty"`
10039  
10040  	// This field contains the logic filters to be applied on the Grid member. This
10041  	// list corresponds to the match rules that are written to the dhcpd
10042  	// configuration file.
10043  	LogicFilterRules []*Logicfilterrule `json:"logic_filter_rules,omitempty"`
10044  
10045  	// Determines the low watermark value. If the percent of allocated addresses
10046  	// drops below this watermark, the appliance makes a syslog entry and sends an
10047  	// e-mail notification (if enabled).
10048  	LowWaterMark *uint32 `json:"low_water_mark,omitempty"`
10049  
10050  	// Determines the low watermark reset value. If the percentage of allocated
10051  	// addresses exceeds this value, a corresponding SNMP trap is reset. A number
10052  	// that specifies the percentage of allocated addresses. The range is from 1 to
10053  	// 100. The low watermark reset value must be higher than the low watermark
10054  	// value.
10055  	LowWaterMarkReset *uint32 `json:"low_water_mark_reset,omitempty"`
10056  
10057  	// The Microsoft client DHCP IPv4 code page value of a grid member. This value
10058  	// is the hostname translation code page for Microsoft DHCP IPv4 clients and
10059  	// overrides the Grid level Microsoft DHCP IPv4 client code page.
10060  	MicrosoftCodePage string `json:"microsoft_code_page,omitempty"`
10061  
10062  	// The next server value of a member DHCP server. This value is the IP address
10063  	// or name of the boot file server on which the boot file is stored.
10064  	Nextserver *string `json:"nextserver,omitempty"`
10065  
10066  	// The list of option 60 match rules.
10067  	Option60MatchRules []*Option60matchrule `json:"option60_match_rules,omitempty"`
10068  
10069  	// An array of DHCP option dhcpoption structs that lists the DHCP options
10070  	// associated with the object.
10071  	Options []*Dhcpoption `json:"options,omitempty"`
10072  
10073  	// Specifies the number of pings that the Infoblox appliance sends to an IP
10074  	// address to verify that it is not in use. Values are from 0 to 10, where 0
10075  	// disables pings.
10076  	PingCount *uint32 `json:"ping_count,omitempty"`
10077  
10078  	// Indicates the number of milliseconds the appliance waits for a response to
10079  	// its ping. Valid values are 100, 500, 1000, 2000, 3000, 4000 and 5000
10080  	// milliseconds.
10081  	PingTimeout *uint32 `json:"ping_timeout,omitempty"`
10082  
10083  	// The preferred lifetime value.
10084  	PreferredLifetime *uint32 `json:"preferred_lifetime,omitempty"`
10085  
10086  	// The Prefix length mode for DHCPv6.
10087  	PrefixLengthMode string `json:"prefix_length_mode,omitempty"`
10088  
10089  	// Specifies the duration of time it takes a host to connect to a boot server,
10090  	// such as a TFTP server, and download the file it needs to boot. A 32-bit
10091  	// unsigned integer that represents the duration, in seconds, for which the
10092  	// update is cached. Zero indicates that the update is not cached.
10093  	PxeLeaseTime *uint32 `json:"pxe_lease_time,omitempty"`
10094  
10095  	// Determines if the recycle leases feature is enabled or not. If you enabled
10096  	// this feature and then delete a DHCP range, the appliance stores active
10097  	// leases from this range up to one week after the leases expires.
10098  	RecycleLeases *bool `json:"recycle_leases,omitempty"`
10099  
10100  	// Indicates whether the DHCP server makes repeated attempts to send DDNS
10101  	// updates to a DNS server.
10102  	RetryDdnsUpdates *bool `json:"retry_ddns_updates,omitempty"`
10103  
10104  	// The number of static DHCP addresses configured in DHCP objects that belong
10105  	// to the Grid Member.
10106  	StaticHosts uint32 `json:"static_hosts,omitempty"`
10107  
10108  	// The syslog facility is the location on the syslog server to which you want
10109  	// to sort the syslog messages.
10110  	SyslogFacility string `json:"syslog_facility,omitempty"`
10111  
10112  	// The total number of DHCP addresses configured in DHCP objects that belong to
10113  	// the Grid Member.
10114  	TotalHosts uint32 `json:"total_hosts,omitempty"`
10115  
10116  	// Controls whether the DHCP server updates DNS when a DHCP lease is renewed.
10117  	UpdateDnsOnLeaseRenewal *bool `json:"update_dns_on_lease_renewal,omitempty"`
10118  
10119  	// Use flag for: authority
10120  	UseAuthority *bool `json:"use_authority,omitempty"`
10121  
10122  	// Use flag for: bootfile
10123  	UseBootfile *bool `json:"use_bootfile,omitempty"`
10124  
10125  	// Use flag for: bootserver
10126  	UseBootserver *bool `json:"use_bootserver,omitempty"`
10127  
10128  	// Use flag for: ddns_domainname
10129  	UseDdnsDomainname *bool `json:"use_ddns_domainname,omitempty"`
10130  
10131  	// Use flag for: ddns_generate_hostname
10132  	UseDdnsGenerateHostname *bool `json:"use_ddns_generate_hostname,omitempty"`
10133  
10134  	// Use flag for: ddns_ttl
10135  	UseDdnsTtl *bool `json:"use_ddns_ttl,omitempty"`
10136  
10137  	// Use flag for: ddns_update_fixed_addresses
10138  	UseDdnsUpdateFixedAddresses *bool `json:"use_ddns_update_fixed_addresses,omitempty"`
10139  
10140  	// Use flag for: ddns_use_option81
10141  	UseDdnsUseOption81 *bool `json:"use_ddns_use_option81,omitempty"`
10142  
10143  	// Use flag for: deny_bootp
10144  	UseDenyBootp *bool `json:"use_deny_bootp,omitempty"`
10145  
10146  	// Use flag for: dns_update_style
10147  	UseDnsUpdateStyle *bool `json:"use_dns_update_style,omitempty"`
10148  
10149  	// Use flag for: email_list
10150  	UseEmailList *bool `json:"use_email_list,omitempty"`
10151  
10152  	// Use flag for: enable_ddns
10153  	UseEnableDdns *bool `json:"use_enable_ddns,omitempty"`
10154  
10155  	// Use flag for: enable_dhcp_thresholds , high_water_mark,
10156  	// high_water_mark_reset, low_water_mark, low_water_mark_reset
10157  	UseEnableDhcpThresholds *bool `json:"use_enable_dhcp_thresholds,omitempty"`
10158  
10159  	// Use flag for: enable_fingerprint
10160  	UseEnableFingerprint *bool `json:"use_enable_fingerprint,omitempty"`
10161  
10162  	// Use flag for: kdc_server , enable_gss_tsig
10163  	UseEnableGssTsig *bool `json:"use_enable_gss_tsig,omitempty"`
10164  
10165  	// Use flag for: enable_hostname_rewrite , hostname_rewrite_policy
10166  	UseEnableHostnameRewrite *bool `json:"use_enable_hostname_rewrite,omitempty"`
10167  
10168  	// Use flag for: enable_leasequery
10169  	UseEnableLeasequery *bool `json:"use_enable_leasequery,omitempty"`
10170  
10171  	// Use flag for: enable_one_lease_per_client
10172  	UseEnableOneLeasePerClient *bool `json:"use_enable_one_lease_per_client,omitempty"`
10173  
10174  	// Use flag for: gss_tsig_keys
10175  	UseGssTsigKeys *bool `json:"use_gss_tsig_keys,omitempty"`
10176  
10177  	// Use flag for: ignore_dhcp_option_list_request
10178  	UseIgnoreDhcpOptionListRequest *bool `json:"use_ignore_dhcp_option_list_request,omitempty"`
10179  
10180  	// Use flag for: ignore_id
10181  	UseIgnoreId *bool `json:"use_ignore_id,omitempty"`
10182  
10183  	// Use flag for: immediate_fa_configuration
10184  	UseImmediateFaConfiguration *bool `json:"use_immediate_fa_configuration,omitempty"`
10185  
10186  	// Use flag for: ipv6_ddns_domainname
10187  	UseIpv6DdnsDomainname *bool `json:"use_ipv6_ddns_domainname,omitempty"`
10188  
10189  	// Use flag for: ipv6_ddns_enable_option_fqdn
10190  	UseIpv6DdnsEnableOptionFqdn *bool `json:"use_ipv6_ddns_enable_option_fqdn,omitempty"`
10191  
10192  	// Use flag for: ipv6_ddns_hostname
10193  	UseIpv6DdnsHostname *bool `json:"use_ipv6_ddns_hostname,omitempty"`
10194  
10195  	// Use flag for: ipv6_ddns_ttl
10196  	UseIpv6DdnsTtl *bool `json:"use_ipv6_ddns_ttl,omitempty"`
10197  
10198  	// Use flag for: ipv6_dns_update_style
10199  	UseIpv6DnsUpdateStyle *bool `json:"use_ipv6_dns_update_style,omitempty"`
10200  
10201  	// Use flag for: ipv6_domain_name
10202  	UseIpv6DomainName *bool `json:"use_ipv6_domain_name,omitempty"`
10203  
10204  	// Use flag for: ipv6_domain_name_servers
10205  	UseIpv6DomainNameServers *bool `json:"use_ipv6_domain_name_servers,omitempty"`
10206  
10207  	// Use flag for: ipv6_enable_ddns
10208  	UseIpv6EnableDdns *bool `json:"use_ipv6_enable_ddns,omitempty"`
10209  
10210  	// Use flag for: ipv6_kdc_server , ipv6_enable_gss_tsig
10211  	UseIpv6EnableGssTsig *bool `json:"use_ipv6_enable_gss_tsig,omitempty"`
10212  
10213  	// Use flag for: ipv6_enable_retry_updates , ipv6_retry_updates_interval
10214  	UseIpv6EnableRetryUpdates *bool `json:"use_ipv6_enable_retry_updates,omitempty"`
10215  
10216  	// Use flag for: ipv6_generate_hostname
10217  	UseIpv6GenerateHostname *bool `json:"use_ipv6_generate_hostname,omitempty"`
10218  
10219  	// Use flag for: ipv6_gss_tsig_keys
10220  	UseIpv6GssTsigKeys *bool `json:"use_ipv6_gss_tsig_keys,omitempty"`
10221  
10222  	// Use flag for: ipv6_enable_lease_scavenging , ipv6_lease_scavenging_time,
10223  	// ipv6_remember_expired_client_association
10224  	UseIpv6LeaseScavenging *bool `json:"use_ipv6_lease_scavenging,omitempty"`
10225  
10226  	// Use flag for: ipv6_microsoft_code_page
10227  	UseIpv6MicrosoftCodePage *bool `json:"use_ipv6_microsoft_code_page,omitempty"`
10228  
10229  	// Use flag for: ipv6_options
10230  	UseIpv6Options *bool `json:"use_ipv6_options,omitempty"`
10231  
10232  	// Use flag for: ipv6_recycle_leases
10233  	UseIpv6RecycleLeases *bool `json:"use_ipv6_recycle_leases,omitempty"`
10234  
10235  	// Use flag for: ipv6_update_dns_on_lease_renewal
10236  	UseIpv6UpdateDnsOnLeaseRenewal *bool `json:"use_ipv6_update_dns_on_lease_renewal,omitempty"`
10237  
10238  	// Use flag for: lease_per_client_settings
10239  	UseLeasePerClientSettings *bool `json:"use_lease_per_client_settings,omitempty"`
10240  
10241  	// Use flag for: lease_scavenge_time
10242  	UseLeaseScavengeTime *bool `json:"use_lease_scavenge_time,omitempty"`
10243  
10244  	// Use flag for: log_lease_events
10245  	UseLogLeaseEvents *bool `json:"use_log_lease_events,omitempty"`
10246  
10247  	// Use flag for: logic_filter_rules
10248  	UseLogicFilterRules *bool `json:"use_logic_filter_rules,omitempty"`
10249  
10250  	// Use flag for: microsoft_code_page
10251  	UseMicrosoftCodePage *bool `json:"use_microsoft_code_page,omitempty"`
10252  
10253  	// Use flag for: nextserver
10254  	UseNextserver *bool `json:"use_nextserver,omitempty"`
10255  
10256  	// Use flag for: options
10257  	UseOptions *bool `json:"use_options,omitempty"`
10258  
10259  	// Use flag for: ping_count
10260  	UsePingCount *bool `json:"use_ping_count,omitempty"`
10261  
10262  	// Use flag for: ping_timeout
10263  	UsePingTimeout *bool `json:"use_ping_timeout,omitempty"`
10264  
10265  	// Use flag for: preferred_lifetime
10266  	UsePreferredLifetime *bool `json:"use_preferred_lifetime,omitempty"`
10267  
10268  	// Use flag for: prefix_length_mode
10269  	UsePrefixLengthMode *bool `json:"use_prefix_length_mode,omitempty"`
10270  
10271  	// Use flag for: pxe_lease_time
10272  	UsePxeLeaseTime *bool `json:"use_pxe_lease_time,omitempty"`
10273  
10274  	// Use flag for: recycle_leases
10275  	UseRecycleLeases *bool `json:"use_recycle_leases,omitempty"`
10276  
10277  	// Use flag for: ddns_retry_interval , retry_ddns_updates
10278  	UseRetryDdnsUpdates *bool `json:"use_retry_ddns_updates,omitempty"`
10279  
10280  	// Use flag for: syslog_facility
10281  	UseSyslogFacility *bool `json:"use_syslog_facility,omitempty"`
10282  
10283  	// Use flag for: update_dns_on_lease_renewal
10284  	UseUpdateDnsOnLeaseRenewal *bool `json:"use_update_dns_on_lease_renewal,omitempty"`
10285  
10286  	// Use flag for: valid_lifetime
10287  	UseValidLifetime *bool `json:"use_valid_lifetime,omitempty"`
10288  
10289  	// The valid lifetime for Grid Member DHCP. Specifies the length of time
10290  	// addresses that are assigned to DHCPv6 clients remain in the valid state.
10291  	ValidLifetime *uint32 `json:"valid_lifetime,omitempty"`
10292  }
10293  
10294  func (MemberDHCPProperties) ObjectType() string {
10295  	return "member:dhcpproperties"
10296  }
10297  
10298  func (obj MemberDHCPProperties) ReturnFields() []string {
10299  	if obj.returnFields == nil {
10300  		obj.returnFields = []string{"host_name", "ipv4addr", "ipv6addr"}
10301  	}
10302  	return obj.returnFields
10303  }
10304  
10305  // MemberDns represents Infoblox object member:dns.
10306  // The Grid Member DNS object can be used to configure DNS properties for a
10307  // Grid member, including enabling or disabling DNS services and other DNS
10308  // service related parameters. Grid service configurations are inherited by all
10309  // members.
10310  type MemberDns struct {
10311  	IBBase `json:"-"`
10312  
10313  	Ref string `json:"_ref,omitempty"`
10314  
10315  	// Add custom IP, MAC and DNS View name ENDS0 options to outgoing recursive
10316  	// queries.
10317  	AddClientIpMacOptions *bool `json:"add_client_ip_mac_options,omitempty"`
10318  
10319  	// The list of additional IP addresses on which DNS is enabled for a Grid
10320  	// member. Only one of "additional_ip_list" or "additional_ip_list_struct"
10321  	// should be set when modifying the object.
10322  	AdditionalIpList []string `json:"additional_ip_list,omitempty"`
10323  
10324  	// The list of additional IP addresses and IP Space Discriminator short names
10325  	// on which DNS is enabled for a Grid member. Only one of "additional_ip_list"
10326  	// or "additional_ip_list_struct" should be set when modifying the object.
10327  	AdditionalIpListStruct []*MemberDnsip `json:"additional_ip_list_struct,omitempty"`
10328  
10329  	// Determines whether the GSS-TSIG zone updates is enabled for the Grid member.
10330  	AllowGssTsigZoneUpdates *bool `json:"allow_gss_tsig_zone_updates,omitempty"`
10331  
10332  	// Determines if queries from specified IPv4 or IPv6 addresses and networks are
10333  	// enabled or not. The appliance can also use Transaction Signature (TSIG) keys
10334  	// to authenticate the queries. This setting overrides the Grid query settings.
10335  	AllowQuery []*Addressac `json:"allow_query,omitempty"`
10336  
10337  	// Determines if the responses to recursive queries is enabled or not. This
10338  	// setting overrides Grid recursive query settings.
10339  	AllowRecursiveQuery *bool `json:"allow_recursive_query,omitempty"`
10340  
10341  	// Allows or rejects zone transfers from specified IPv4 or IPv6 addresses and
10342  	// networks or allows transfers from hosts authenticated by Transaction
10343  	// signature (TSIG) key. This setting overrides the Grid zone transfer
10344  	// settings.
10345  	AllowTransfer []*Addressac `json:"allow_transfer,omitempty"`
10346  
10347  	// Allows or rejects dynamic updates from specified IPv4 or IPv6 addresses,
10348  	// networks or from host authenticated by TSIG key. This setting overrides Grid
10349  	// update settings.
10350  	AllowUpdate []*Addressac `json:"allow_update,omitempty"`
10351  
10352  	// The flag that indicates whether the anonymization of captured DNS responses
10353  	// is enabled or disabled.
10354  	AnonymizeResponseLogging *bool `json:"anonymize_response_logging,omitempty"`
10355  
10356  	// Enable DNS recursive query forwarding to Active Trust Cloud.
10357  	AtcFwdEnable *bool `json:"atc_fwd_enable,omitempty"`
10358  
10359  	// Mitigation settings for DNS attacks.
10360  	AttackMitigation *GridAttackmitigation `json:"attack_mitigation,omitempty"`
10361  
10362  	// The auto blackhole settings.
10363  	AutoBlackhole *GridAutoblackhole `json:"auto_blackhole,omitempty"`
10364  
10365  	// Determines if the auto-generation of A and PTR records for the LAN2 IP
10366  	// address is enabled or not, if DNS service is enabled on LAN2.
10367  	AutoCreateAAndPtrForLan2 *bool `json:"auto_create_a_and_ptr_for_lan2,omitempty"`
10368  
10369  	// Determines if auto-generation of AAAA and IPv6 PTR records for LAN2 IPv6
10370  	// address is enabled or not.
10371  	AutoCreateAaaaAndIpv6ptrForLan2 *bool `json:"auto_create_aaaa_and_ipv6ptr_for_lan2,omitempty"`
10372  
10373  	// Determines if a Grid member to automatically sort DNS views is enabled or
10374  	// not. The order of the DNS views determines the order in which the appliance
10375  	// checks the match lists.
10376  	AutoSortViews *bool `json:"auto_sort_views,omitempty"`
10377  
10378  	// The BIND check names policy, which indicates the action the appliance takes
10379  	// when it encounters host names that do not comply with the Strict Hostname
10380  	// Checking policy. This method applies only if the host name restriction
10381  	// policy is set to 'Strict Hostname Checking'.
10382  	BindCheckNamesPolicy string `json:"bind_check_names_policy,omitempty"`
10383  
10384  	// The value of the hostname directive for BIND.
10385  	BindHostnameDirective string `json:"bind_hostname_directive,omitempty"`
10386  
10387  	// The value of the user-defined hostname directive for BIND. To enable
10388  	// user-defined hostname directive, you must set the bind_hostname_directive to
10389  	// "USER_DEFINED".
10390  	BindHostnameDirectiveFqdn *string `json:"bind_hostname_directive_fqdn,omitempty"`
10391  
10392  	// The list of IPv4 or IPv6 addresses and networks from which DNS queries are
10393  	// blocked. This setting overrides the Grid blackhole_list.
10394  	BlackholeList []*Addressac `json:"blackhole_list,omitempty"`
10395  
10396  	// The action to perform when a domain name matches the pattern defined in a
10397  	// rule that is specified by the blacklist_ruleset method.
10398  	BlacklistAction string `json:"blacklist_action,omitempty"`
10399  
10400  	// Determines if blacklist redirection queries are logged or not.
10401  	BlacklistLogQuery *bool `json:"blacklist_log_query,omitempty"`
10402  
10403  	// The IP addresses the appliance includes in the response it sends in place of
10404  	// a blacklisted IP address.
10405  	BlacklistRedirectAddresses []string `json:"blacklist_redirect_addresses,omitempty"`
10406  
10407  	// The TTL value of the synthetic DNS responses that result from blacklist
10408  	// redirection.
10409  	BlacklistRedirectTtl *uint32 `json:"blacklist_redirect_ttl,omitempty"`
10410  
10411  	// The DNS Ruleset object names assigned at the Grid level for blacklist
10412  	// redirection.
10413  	BlacklistRulesets []string `json:"blacklist_rulesets,omitempty"`
10414  
10415  	// The flag that indicates whether the capture of DNS queries for all domains
10416  	// is enabled or disabled.
10417  	CaptureDnsQueriesOnAllDomains *bool `json:"capture_dns_queries_on_all_domains,omitempty"`
10418  
10419  	// Determines whether the application of BIND check-names for zone transfers
10420  	// and DDNS updates are enabled.
10421  	CheckNamesForDdnsAndZoneTransfer *bool `json:"check_names_for_ddns_and_zone_transfer,omitempty"`
10422  
10423  	// Copy custom IP, MAC and DNS View name ENDS0 options from incoming to
10424  	// outgoing recursive queries.
10425  	CopyClientIpMacOptions *bool `json:"copy_client_ip_mac_options,omitempty"`
10426  
10427  	// Copies the allowed IPs from the zone transfer list into the also-notify
10428  	// statement in the named.conf file.
10429  	CopyXferToNotify *bool `json:"copy_xfer_to_notify,omitempty"`
10430  
10431  	// The list of custom root name servers. You can either select and use Internet
10432  	// root name servers or specify custom root name servers by providing a host
10433  	// name and IP address to which the Infoblox appliance can send queries.
10434  	CustomRootNameServers []NameServer `json:"custom_root_name_servers,omitempty"`
10435  
10436  	// The EDNS0 support for queries that require recursive resolution on Grid
10437  	// members.
10438  	DisableEdns *bool `json:"disable_edns,omitempty"`
10439  
10440  	// The list of DNS64 synthesis groups associated with this member.
10441  	Dns64Groups []string `json:"dns64_groups,omitempty"`
10442  
10443  	// The DNS cache acceleration status.
10444  	DnsCacheAccelerationStatus string `json:"dns_cache_acceleration_status,omitempty"`
10445  
10446  	// The minimum TTL value, in seconds, that a DNS record must have in order for
10447  	// it to be cached by the DNS Cache Acceleration service. An integer from 1 to
10448  	// 65000 that represents the TTL in seconds.
10449  	DnsCacheAccelerationTtl *uint32 `json:"dns_cache_acceleration_ttl,omitempty"`
10450  
10451  	// The flag that indicates whether the anycast failure (BFD session down) is
10452  	// enabled on member failure or not.
10453  	DnsHealthCheckAnycastControl *bool `json:"dns_health_check_anycast_control,omitempty"`
10454  
10455  	// The list of domain names for the DNS health check.
10456  	DnsHealthCheckDomainList []string `json:"dns_health_check_domain_list,omitempty"`
10457  
10458  	// The time interval (in seconds) for DNS health check.
10459  	DnsHealthCheckInterval *uint32 `json:"dns_health_check_interval,omitempty"`
10460  
10461  	// The flag that indicates whether the recursive DNS health check is enabled or
10462  	// not.
10463  	DnsHealthCheckRecursionFlag *bool `json:"dns_health_check_recursion_flag,omitempty"`
10464  
10465  	// The number of DNS health check retries.
10466  	DnsHealthCheckRetries *uint32 `json:"dns_health_check_retries,omitempty"`
10467  
10468  	// The DNS health check timeout interval (in seconds).
10469  	DnsHealthCheckTimeout *uint32 `json:"dns_health_check_timeout,omitempty"`
10470  
10471  	// Determines which IP address is used as the source for DDNS notify and
10472  	// transfer operations.
10473  	DnsNotifyTransferSource string `json:"dns_notify_transfer_source,omitempty"`
10474  
10475  	// The source address used if dns_notify_transfer_source type is "IP".
10476  	DnsNotifyTransferSourceAddress *string `json:"dns_notify_transfer_source_address,omitempty"`
10477  
10478  	// Enables DNS over TLS service.
10479  	DnsOverTlsService *bool `json:"dns_over_tls_service,omitempty"`
10480  
10481  	// The time limit (in minutes) for the DNS query capture file.
10482  	DnsQueryCaptureFileTimeLimit *uint32 `json:"dns_query_capture_file_time_limit,omitempty"`
10483  
10484  	// The source address used if dns_query_source_interface type is "IP".
10485  	DnsQuerySourceAddress *string `json:"dns_query_source_address,omitempty"`
10486  
10487  	// Determines which IP address is used as the source for DDNS query operations.
10488  	DnsQuerySourceInterface string `json:"dns_query_source_interface,omitempty"`
10489  
10490  	// Array of notify/query source settings for views.
10491  	DnsViewAddressSettings []*SettingViewaddress `json:"dns_view_address_settings,omitempty"`
10492  
10493  	// Determines if the blacklist rules for DNSSEC-enabled clients are enabled or
10494  	// not.
10495  	DnssecBlacklistEnabled *bool `json:"dnssec_blacklist_enabled,omitempty"`
10496  
10497  	// Determines if the DNS64 groups for DNSSEC-enabled clients are enabled or
10498  	// not.
10499  	DnssecDns64Enabled *bool `json:"dnssec_dns64_enabled,omitempty"`
10500  
10501  	// Determines if the DNS security extension is enabled or not.
10502  	DnssecEnabled *bool `json:"dnssec_enabled,omitempty"`
10503  
10504  	// Determines when the DNS member accepts expired signatures.
10505  	DnssecExpiredSignaturesEnabled *bool `json:"dnssec_expired_signatures_enabled,omitempty"`
10506  
10507  	// A list of zones for which the server does not perform DNSSEC validation.
10508  	DnssecNegativeTrustAnchors []string `json:"dnssec_negative_trust_anchors,omitempty"`
10509  
10510  	// Determines if the NXDOMAIN rules for DNSSEC-enabled clients are enabled or
10511  	// not.
10512  	DnssecNxdomainEnabled *bool `json:"dnssec_nxdomain_enabled,omitempty"`
10513  
10514  	// Determines if the RPZ policies for DNSSEC-enabled clients are enabled or
10515  	// not.
10516  	DnssecRpzEnabled *bool `json:"dnssec_rpz_enabled,omitempty"`
10517  
10518  	// The list of trusted keys for the DNSSEC feature.
10519  	DnssecTrustedKeys []*Dnssectrustedkey `json:"dnssec_trusted_keys,omitempty"`
10520  
10521  	// Determines if the DNS security validation is enabled or not.
10522  	DnssecValidationEnabled *bool `json:"dnssec_validation_enabled,omitempty"`
10523  
10524  	// The DNSTAP settings.
10525  	DnstapSetting *Dnstapsetting `json:"dnstap_setting,omitempty"`
10526  
10527  	// DNS over HTTPS sessions duration.
10528  	DohHttpsSessionDuration *uint32 `json:"doh_https_session_duration,omitempty"`
10529  
10530  	// Enables DNS over HTTPS service.
10531  	DohService *bool `json:"doh_service,omitempty"`
10532  
10533  	// The list of domains for DNS query capture.
10534  	DomainsToCaptureDnsQueries []string `json:"domains_to_capture_dns_queries,omitempty"`
10535  
10536  	// Setting to control specific behavior for DTC DNS responses for incoming lbdn
10537  	// matched queries.
10538  	DtcDnsQueriesSpecificBehavior string `json:"dtc_dns_queries_specific_behavior,omitempty"`
10539  
10540  	// Determines whether to prefer the client address from the edns-client-subnet
10541  	// option for DTC or not.
10542  	DtcEdnsPreferClientSubnet *bool `json:"dtc_edns_prefer_client_subnet,omitempty"`
10543  
10544  	// The health check source type.
10545  	DtcHealthSource string `json:"dtc_health_source,omitempty"`
10546  
10547  	// The source address used if dtc_health_source type is "IP".
10548  	DtcHealthSourceAddress *string `json:"dtc_health_source_address,omitempty"`
10549  
10550  	// Advertises the EDNS0 buffer size to the upstream server. The value should be
10551  	// between 512 and 4096 bytes. The recommended value is between 512 and 1220
10552  	// bytes.
10553  	EdnsUdpSize *uint32 `json:"edns_udp_size,omitempty"`
10554  
10555  	// Determines if the blocking of DNS queries is enabled or not. This setting
10556  	// overrides the Grid enable_blackhole settings.
10557  	EnableBlackhole *bool `json:"enable_blackhole,omitempty"`
10558  
10559  	// Determines if a blacklist is enabled or not on the Grid member.
10560  	EnableBlacklist *bool `json:"enable_blacklist,omitempty"`
10561  
10562  	// The flag that indicates whether the capture of DNS queries is enabled or
10563  	// disabled.
10564  	EnableCaptureDnsQueries *bool `json:"enable_capture_dns_queries,omitempty"`
10565  
10566  	// The flag that indicates whether the capture of DNS responses is enabled or
10567  	// disabled.
10568  	EnableCaptureDnsResponses *bool `json:"enable_capture_dns_responses,omitempty"`
10569  
10570  	// Determines if the DNS service of a member is enabled or not.
10571  	EnableDns *bool `json:"enable_dns,omitempty"`
10572  
10573  	// Determines if the DNS64 support is enabled or not for this member.
10574  	EnableDns64 *bool `json:"enable_dns64,omitempty"`
10575  
10576  	// Determines if the DNS Cache Acceleration service is enabled or not for a
10577  	// member.
10578  	EnableDnsCacheAcceleration *bool `json:"enable_dns_cache_acceleration,omitempty"`
10579  
10580  	// The flag that indicates whether the DNS health check is enabled or not.
10581  	EnableDnsHealthCheck *bool `json:"enable_dns_health_check,omitempty"`
10582  
10583  	// Determines whether the query messages need to be forwarded to DNSTAP or not.
10584  	EnableDnstapQueries *bool `json:"enable_dnstap_queries,omitempty"`
10585  
10586  	// Determines whether the response messages need to be forwarded to DNSTAP or
10587  	// not.
10588  	EnableDnstapResponses *bool `json:"enable_dnstap_responses,omitempty"`
10589  
10590  	// The flag that indicates whether excluding domain names from captured DNS
10591  	// queries and responses is enabled or disabled.
10592  	EnableExcludedDomainNames *bool `json:"enable_excluded_domain_names,omitempty"`
10593  
10594  	// Determines if the fixed RRset order FQDN is enabled or not.
10595  	EnableFixedRrsetOrderFqdns *bool `json:"enable_fixed_rrset_order_fqdns,omitempty"`
10596  
10597  	// Determines whether Fault Tolerant Caching (FTC) is enabled.
10598  	EnableFtc *bool `json:"enable_ftc,omitempty"`
10599  
10600  	// Determines whether the appliance is enabled to receive GSS-TSIG
10601  	// authenticated updates from DHCP clients.
10602  	EnableGssTsig *bool `json:"enable_gss_tsig,omitempty"`
10603  
10604  	// Determines if the notify source port for a member is enabled or not.
10605  	EnableNotifySourcePort *bool `json:"enable_notify_source_port,omitempty"`
10606  
10607  	// Determines if the DNS query rewrite is enabled or not for this member.
10608  	EnableQueryRewrite *bool `json:"enable_query_rewrite,omitempty"`
10609  
10610  	// Determines if the query source port for a memer is enabled or not.
10611  	EnableQuerySourcePort *bool `json:"enable_query_source_port,omitempty"`
10612  
10613  	// The list of domains that are excluded from DNS query and response capture.
10614  	ExcludedDomainNames []string `json:"excluded_domain_names,omitempty"`
10615  
10616  	// Extensible attributes associated with the object. For valid values for
10617  	// extensible attributes, see {extattrs:values}.
10618  	Ea EA `json:"extattrs"`
10619  
10620  	// The DNS capture file transfer settings. Include the specified parameter to
10621  	// set the attribute value. Omit the parameter to retrieve the attribute value.
10622  	FileTransferSetting *Filetransfersetting `json:"file_transfer_setting,omitempty"`
10623  
10624  	// The type of AAAA filtering for this member DNS object.
10625  	FilterAaaa string `json:"filter_aaaa,omitempty"`
10626  
10627  	// The list of IPv4 addresses and networks from which queries are received.
10628  	// AAAA filtering is applied to these addresses.
10629  	FilterAaaaList []*Addressac `json:"filter_aaaa_list,omitempty"`
10630  
10631  	// The fixed RRset order FQDN. If this field does not contain an empty value,
10632  	// the appliance will automatically set the enable_fixed_rrset_order_fqdns
10633  	// field to 'true', unless the same request sets the enable field to 'false'.
10634  	FixedRrsetOrderFqdns []*GridDnsFixedrrsetorderfqdn `json:"fixed_rrset_order_fqdns,omitempty"`
10635  
10636  	// Permits this member to send queries to forwarders only. When the value is
10637  	// "true", the member sends queries to forwarders only, and not to other
10638  	// internal or Internet root servers.
10639  	ForwardOnly *bool `json:"forward_only,omitempty"`
10640  
10641  	// Allows secondary servers to forward updates to the DNS server. This setting
10642  	// overrides grid update settings.
10643  	ForwardUpdates *bool `json:"forward_updates,omitempty"`
10644  
10645  	// The forwarders for the member. A forwarder is essentially a name server to
10646  	// which other name servers first send all of their off-site queries. The
10647  	// forwarder builds up a cache of information, avoiding the need for the other
10648  	// name servers to send queries off-site. This setting overrides the Grid level
10649  	// setting.
10650  	Forwarders []string `json:"forwarders,omitempty"`
10651  
10652  	// The timeout interval (in seconds) after which the expired Fault Tolerant
10653  	// Caching (FTC)record is stale and no longer valid.
10654  	FtcExpiredRecordTimeout *uint32 `json:"ftc_expired_record_timeout,omitempty"`
10655  
10656  	// The TTL value (in seconds) of the expired Fault Tolerant Caching (FTC)
10657  	// record in DNS responses.
10658  	FtcExpiredRecordTtl *uint32 `json:"ftc_expired_record_ttl,omitempty"`
10659  
10660  	// The list of glue record addresses.
10661  	GlueRecordAddresses []*MemberDnsgluerecordaddr `json:"glue_record_addresses,omitempty"`
10662  
10663  	// The list of GSS-TSIG keys for a member DNS object.
10664  	GssTsigKeys []*Kerberoskey `json:"gss_tsig_keys,omitempty"`
10665  
10666  	// The host name of the Grid member.
10667  	HostName string `json:"host_name,omitempty"`
10668  
10669  	// The IPv4 Address of the Grid member.
10670  	Ipv4Addr string `json:"ipv4addr,omitempty"`
10671  
10672  	// The list of IPv6 glue record addresses.
10673  	Ipv6GlueRecordAddresses []*MemberDnsgluerecordaddr `json:"ipv6_glue_record_addresses,omitempty"`
10674  
10675  	// The IPv6 Address of the Grid member.
10676  	Ipv6Addr string `json:"ipv6addr,omitempty"`
10677  
10678  	// The flag that indicates whether member DNS supports Unbound as the recursive
10679  	// resolver or not.
10680  	IsUnboundCapable bool `json:"is_unbound_capable,omitempty"`
10681  
10682  	// The number of seconds to cache lame delegations or lame servers.
10683  	LameTtl *uint32 `json:"lame_ttl,omitempty"`
10684  
10685  	// The logging categories for this DNS member.
10686  	LoggingCategories *GridLoggingcategories `json:"logging_categories,omitempty"`
10687  
10688  	// The maximum time (in seconds) for which the server will cache positive
10689  	// answers.
10690  	MaxCacheTtl *uint32 `json:"max_cache_ttl,omitempty"`
10691  
10692  	// The maximum time in seconds a DNS response can be stored in the hardware
10693  	// acceleration cache. Valid values are unsigned integer between 60 and 86400,
10694  	// inclusive.
10695  	MaxCachedLifetime *uint32 `json:"max_cached_lifetime,omitempty"`
10696  
10697  	// The maximum time (in seconds) for which the server will cache negative
10698  	// (NXDOMAIN) responses. The maximum allowed value is 604800.
10699  	MaxNcacheTtl *uint32 `json:"max_ncache_ttl,omitempty"`
10700  
10701  	// The value is used by authoritative DNS servers to never send DNS responses
10702  	// larger than the configured value. The value should be between 512 and 4096
10703  	// bytes. The recommended value is between 512 and 1220 bytes.
10704  	MaxUdpSize *uint32 `json:"max_udp_size,omitempty"`
10705  
10706  	// Enables the ability to return a minimal amount of data in response to a
10707  	// query. This capability speeds up the DNS services provided by the appliance.
10708  	MinimalResp *bool `json:"minimal_resp,omitempty"`
10709  
10710  	// Specifies the number of seconds of delay the notify messages are sent to
10711  	// secondaries.
10712  	NotifyDelay *uint32 `json:"notify_delay,omitempty"`
10713  
10714  	// The source port for notify messages. When requesting zone transfers from the
10715  	// primary server, some secondary DNS servers use the source port number (the
10716  	// primary server used to send the notify message) as the destination port
10717  	// number in the zone transfer request. This setting overrides Grid static
10718  	// source port settings. Valid values are between 1 and 63999. The default is
10719  	// selected by BIND.
10720  	NotifySourcePort *uint32 `json:"notify_source_port,omitempty"`
10721  
10722  	// Determines if NXDOMAIN redirection queries are logged or not.
10723  	NxdomainLogQuery *bool `json:"nxdomain_log_query,omitempty"`
10724  
10725  	// Enables NXDOMAIN redirection.
10726  	NxdomainRedirect *bool `json:"nxdomain_redirect,omitempty"`
10727  
10728  	// The IPv4 NXDOMAIN redirection addresses.
10729  	NxdomainRedirectAddresses []string `json:"nxdomain_redirect_addresses,omitempty"`
10730  
10731  	// The IPv6 NXDOMAIN redirection addresses.
10732  	NxdomainRedirectAddressesV6 []string `json:"nxdomain_redirect_addresses_v6,omitempty"`
10733  
10734  	// The TTL value of synthetic DNS responses that result from NXDOMAIN
10735  	// redirection.
10736  	NxdomainRedirectTtl *uint32 `json:"nxdomain_redirect_ttl,omitempty"`
10737  
10738  	// The names of the Ruleset objects assigned at the Grid level for NXDOMAIN
10739  	// redirection.
10740  	NxdomainRulesets []string `json:"nxdomain_rulesets,omitempty"`
10741  
10742  	// The source port for queries. Specifying a source port number for recursive
10743  	// queries ensures that a firewall will allow the response. Valid values are
10744  	// between 1 and 63999. The default is selected by BIND.
10745  	QuerySourcePort *uint32 `json:"query_source_port,omitempty"`
10746  
10747  	// The record name restriction policy.
10748  	RecordNamePolicy *string `json:"record_name_policy,omitempty"`
10749  
10750  	// A limit on the number of concurrent recursive clients.
10751  	RecursiveClientLimit *uint32 `json:"recursive_client_limit,omitempty"`
10752  
10753  	// The list of IPv4 or IPv6 addresses, networks or hosts authenticated by
10754  	// Transaction signature (TSIG) key from which recursive queries are allowed or
10755  	// denied.
10756  	RecursiveQueryList []*Addressac `json:"recursive_query_list,omitempty"`
10757  
10758  	// The recursive resolver for member DNS.
10759  	RecursiveResolver string `json:"recursive_resolver,omitempty"`
10760  
10761  	// The recursive query timeout for the member. The value must be 0 or between
10762  	// 10 and 30.
10763  	ResolverQueryTimeout *uint32 `json:"resolver_query_timeout,omitempty"`
10764  
10765  	// The response rate limiting settings for the member.
10766  	ResponseRateLimiting *GridResponseratelimiting `json:"response_rate_limiting,omitempty"`
10767  
10768  	// Determines the type of root name servers.
10769  	RootNameServerType string `json:"root_name_server_type,omitempty"`
10770  
10771  	// Enables NSDNAME and NSIP resource records from RPZ feeds at member level.
10772  	RpzDisableNsdnameNsip *bool `json:"rpz_disable_nsdname_nsip,omitempty"`
10773  
10774  	// Enables the appliance to ignore RPZ-IP triggers with prefix lengths less
10775  	// than the specified minimum prefix length.
10776  	RpzDropIpRuleEnabled *bool `json:"rpz_drop_ip_rule_enabled,omitempty"`
10777  
10778  	// The minimum prefix length for IPv4 RPZ-IP triggers. The appliance ignores
10779  	// RPZ-IP triggers with prefix lengths less than the specified minimum IPv4
10780  	// prefix length.
10781  	RpzDropIpRuleMinPrefixLengthIpv4 *uint32 `json:"rpz_drop_ip_rule_min_prefix_length_ipv4,omitempty"`
10782  
10783  	// The minimum prefix length for IPv6 RPZ-IP triggers. The appliance ignores
10784  	// RPZ-IP triggers with prefix lengths less than the specified minimum IPv6
10785  	// prefix length.
10786  	RpzDropIpRuleMinPrefixLengthIpv6 *uint32 `json:"rpz_drop_ip_rule_min_prefix_length_ipv6,omitempty"`
10787  
10788  	// The flag that indicates whether recursive RPZ lookups are enabled.
10789  	RpzQnameWaitRecurse *bool `json:"rpz_qname_wait_recurse,omitempty"`
10790  
10791  	// The number of maximum concurrent SOA queries per second for the member.
10792  	SerialQueryRate *uint32 `json:"serial_query_rate,omitempty"`
10793  
10794  	// The value of the server-id directive for BIND and Unbound DNS.
10795  	ServerIdDirective string `json:"server_id_directive,omitempty"`
10796  
10797  	// The value of the user-defined hostname directive for BIND and UNBOUND DNS.
10798  	// To enable user-defined hostname directive, you must set the
10799  	// bind_hostname_directive to "USER_DEFINED".
10800  	ServerIdDirectiveString *string `json:"server_id_directive_string,omitempty"`
10801  
10802  	// Determines if RPZ rules are applied to queries originated from this member
10803  	// and received by other Grid members.
10804  	SkipInGridRpzQueries *bool `json:"skip_in_grid_rpz_queries,omitempty"`
10805  
10806  	// A sort list determines the order of addresses in responses made to DNS
10807  	// queries. This setting overrides Grid sort list settings.
10808  	Sortlist []*Sortlist `json:"sortlist,omitempty"`
10809  
10810  	// The flag that indicates whether the storage of query capture reports on the
10811  	// appliance is enabled or disabled.
10812  	StoreLocally *bool `json:"store_locally,omitempty"`
10813  
10814  	// The syslog facility. This is the location on the syslog server to which you
10815  	// want to sort the DNS logging messages. This setting overrides the Grid
10816  	// logging facility settings.
10817  	SyslogFacility string `json:"syslog_facility,omitempty"`
10818  
10819  	// TCP Idle timeout for DNS over TLS connections.
10820  	TcpIdleTimeout *uint32 `json:"tcp_idle_timeout,omitempty"`
10821  
10822  	// DNS over TLS sessions duration.
10823  	TlsSessionDuration *uint32 `json:"tls_session_duration,omitempty"`
10824  
10825  	// Excludes specified DNS servers during zone transfers.
10826  	TransferExcludedServers []string `json:"transfer_excluded_servers,omitempty"`
10827  
10828  	// The BIND format for a zone transfer. This provides tracking capabilities for
10829  	// single or multiple transfers and their associated servers.
10830  	TransferFormat string `json:"transfer_format,omitempty"`
10831  
10832  	// The number of maximum concurrent transfers for the member.
10833  	TransfersIn *uint32 `json:"transfers_in,omitempty"`
10834  
10835  	// The number of maximum outbound concurrent zone transfers for the member.
10836  	TransfersOut *uint32 `json:"transfers_out,omitempty"`
10837  
10838  	// The number of maximum concurrent transfers per member for the member.
10839  	TransfersPerNs *uint32 `json:"transfers_per_ns,omitempty"`
10840  
10841  	// Logging level for the Unbound recursive resolver.
10842  	UnboundLoggingLevel string `json:"unbound_logging_level,omitempty"`
10843  
10844  	// Use flag for: add_client_ip_mac_options
10845  	UseAddClientIpMacOptions *bool `json:"use_add_client_ip_mac_options,omitempty"`
10846  
10847  	// Use flag for: allow_query
10848  	UseAllowQuery *bool `json:"use_allow_query,omitempty"`
10849  
10850  	// Use flag for: allow_transfer
10851  	UseAllowTransfer *bool `json:"use_allow_transfer,omitempty"`
10852  
10853  	// Use flag for: attack_mitigation
10854  	UseAttackMitigation *bool `json:"use_attack_mitigation,omitempty"`
10855  
10856  	// Use flag for: auto_blackhole
10857  	UseAutoBlackhole *bool `json:"use_auto_blackhole,omitempty"`
10858  
10859  	// Use flag for: bind_hostname_directive
10860  	UseBindHostnameDirective *bool `json:"use_bind_hostname_directive,omitempty"`
10861  
10862  	// Use flag for: enable_blackhole
10863  	UseBlackhole *bool `json:"use_blackhole,omitempty"`
10864  
10865  	// Use flag for: blackhole_list , blacklist_action, blacklist_log_query,
10866  	// blacklist_redirect_addresses, blacklist_redirect_ttl, blacklist_rulesets,
10867  	// enable_blacklist
10868  	UseBlacklist *bool `json:"use_blacklist,omitempty"`
10869  
10870  	// Use flag for: capture_dns_queries_on_all_domains
10871  	UseCaptureDnsQueriesOnAllDomains *bool `json:"use_capture_dns_queries_on_all_domains,omitempty"`
10872  
10873  	// Use flag for: copy_client_ip_mac_options
10874  	UseCopyClientIpMacOptions *bool `json:"use_copy_client_ip_mac_options,omitempty"`
10875  
10876  	// Use flag for: copy_xfer_to_notify
10877  	UseCopyXferToNotify *bool `json:"use_copy_xfer_to_notify,omitempty"`
10878  
10879  	// Use flag for: disable_edns
10880  	UseDisableEdns *bool `json:"use_disable_edns,omitempty"`
10881  
10882  	// Use flag for: enable_dns64 , dns64_groups
10883  	UseDns64 *bool `json:"use_dns64,omitempty"`
10884  
10885  	// Use flag for: dns_cache_acceleration_ttl
10886  	UseDnsCacheAccelerationTtl *bool `json:"use_dns_cache_acceleration_ttl,omitempty"`
10887  
10888  	// Use flag for: dns_health_check_domain_list ,
10889  	// dns_health_check_recursion_flag, dns_health_check_anycast_control,
10890  	// enable_dns_health_check, dns_health_check_interval,
10891  	// dns_health_check_timeout, dns_health_check_retries
10892  	UseDnsHealthCheck *bool `json:"use_dns_health_check,omitempty"`
10893  
10894  	// Use flag for: dnssec_enabled , dnssec_expired_signatures_enabled,
10895  	// dnssec_validation_enabled, dnssec_trusted_keys
10896  	UseDnssec *bool `json:"use_dnssec,omitempty"`
10897  
10898  	// Use flag for: enable_dnstap_queries , enable_dnstap_responses,
10899  	// dnstap_setting
10900  	UseDnstapSetting *bool `json:"use_dnstap_setting,omitempty"`
10901  
10902  	// Use flag for: dtc_dns_queries_specific_behavior
10903  	UseDtcDnsQueriesSpecificBehavior *bool `json:"use_dtc_dns_queries_specific_behavior,omitempty"`
10904  
10905  	// Use flag for: dtc_edns_prefer_client_subnet
10906  	UseDtcEdnsPreferClientSubnet *bool `json:"use_dtc_edns_prefer_client_subnet,omitempty"`
10907  
10908  	// Use flag for: edns_udp_size
10909  	UseEdnsUdpSize *bool `json:"use_edns_udp_size,omitempty"`
10910  
10911  	// Use flag for: enable_capture_dns_queries , enable_capture_dns_responses
10912  	UseEnableCaptureDns *bool `json:"use_enable_capture_dns,omitempty"`
10913  
10914  	// Use flag for: enable_excluded_domain_names
10915  	UseEnableExcludedDomainNames *bool `json:"use_enable_excluded_domain_names,omitempty"`
10916  
10917  	// Use flag for: enable_gss_tsig
10918  	UseEnableGssTsig *bool `json:"use_enable_gss_tsig,omitempty"`
10919  
10920  	// Use flag for: enable_query_rewrite
10921  	UseEnableQueryRewrite *bool `json:"use_enable_query_rewrite,omitempty"`
10922  
10923  	// Use flag for: filter_aaaa , filter_aaaa_list
10924  	UseFilterAaaa *bool `json:"use_filter_aaaa,omitempty"`
10925  
10926  	// Use flag for: fixed_rrset_order_fqdns , enable_fixed_rrset_order_fqdns
10927  	UseFixedRrsetOrderFqdns *bool `json:"use_fixed_rrset_order_fqdns,omitempty"`
10928  
10929  	// Use flag for: forward_updates
10930  	UseForwardUpdates *bool `json:"use_forward_updates,omitempty"`
10931  
10932  	// Use flag for: forwarders , forward_only
10933  	UseForwarders *bool `json:"use_forwarders,omitempty"`
10934  
10935  	// Use flag for: enable_ftc , ftc_expired_record_ttl,
10936  	// ftc_expired_record_timeout
10937  	UseFtc *bool `json:"use_ftc,omitempty"`
10938  
10939  	// Use flag for: gss_tsig_keys
10940  	UseGssTsigKeys *bool `json:"use_gss_tsig_keys,omitempty"`
10941  
10942  	// Use flag for: lame_ttl
10943  	UseLameTtl *bool `json:"use_lame_ttl,omitempty"`
10944  
10945  	// Determines if the DNS service on the IPv6 LAN2 port is enabled or not.
10946  	UseLan2Ipv6Port *bool `json:"use_lan2_ipv6_port,omitempty"`
10947  
10948  	// Determines if the DNS service on the LAN2 port is enabled or not.
10949  	UseLan2Port *bool `json:"use_lan2_port,omitempty"`
10950  
10951  	// Determines if the DNS service on the IPv6 LAN port is enabled or not.
10952  	UseLanIpv6Port *bool `json:"use_lan_ipv6_port,omitempty"`
10953  
10954  	// Determines the status of the use of DNS services on the IPv4 LAN1 port.
10955  	UseLanPort *bool `json:"use_lan_port,omitempty"`
10956  
10957  	// Use flag for: logging_categories
10958  	UseLoggingCategories *bool `json:"use_logging_categories,omitempty"`
10959  
10960  	// Use flag for: max_cache_ttl
10961  	UseMaxCacheTtl *bool `json:"use_max_cache_ttl,omitempty"`
10962  
10963  	// Use flag for: max_cached_lifetime
10964  	UseMaxCachedLifetime *bool `json:"use_max_cached_lifetime,omitempty"`
10965  
10966  	// Use flag for: max_ncache_ttl
10967  	UseMaxNcacheTtl *bool `json:"use_max_ncache_ttl,omitempty"`
10968  
10969  	// Use flag for: max_udp_size
10970  	UseMaxUdpSize *bool `json:"use_max_udp_size,omitempty"`
10971  
10972  	// Determines if the DNS services on the IPv6 MGMT port is enabled or not.
10973  	UseMgmtIpv6Port *bool `json:"use_mgmt_ipv6_port,omitempty"`
10974  
10975  	// Determines if the DNS services on the MGMT port is enabled or not.
10976  	UseMgmtPort *bool `json:"use_mgmt_port,omitempty"`
10977  
10978  	// Use flag for: notify_delay
10979  	UseNotifyDelay *bool `json:"use_notify_delay,omitempty"`
10980  
10981  	// Use flag for: nxdomain_redirect , nxdomain_redirect_addresses,
10982  	// nxdomain_redirect_addresses_v6, nxdomain_redirect_ttl, nxdomain_log_query,
10983  	// nxdomain_rulesets
10984  	UseNxdomainRedirect *bool `json:"use_nxdomain_redirect,omitempty"`
10985  
10986  	// Use flag for: record_name_policy
10987  	UseRecordNamePolicy *bool `json:"use_record_name_policy,omitempty"`
10988  
10989  	// Use flag for: recursive_client_limit
10990  	UseRecursiveClientLimit *bool `json:"use_recursive_client_limit,omitempty"`
10991  
10992  	// Use flag for: allow_recursive_query , recursive_query_list
10993  	UseRecursiveQuerySetting *bool `json:"use_recursive_query_setting,omitempty"`
10994  
10995  	// Use flag for: resolver_query_timeout
10996  	UseResolverQueryTimeout *bool `json:"use_resolver_query_timeout,omitempty"`
10997  
10998  	// Use flag for: response_rate_limiting
10999  	UseResponseRateLimiting *bool `json:"use_response_rate_limiting,omitempty"`
11000  
11001  	// Use flag for: root_name_server_type , custom_root_name_servers,
11002  	// use_root_server_for_all_views
11003  	UseRootNameServer *bool `json:"use_root_name_server,omitempty"`
11004  
11005  	// Determines if root name servers should be applied to all views or only to
11006  	// Default view.
11007  	UseRootServerForAllViews *bool `json:"use_root_server_for_all_views,omitempty"`
11008  
11009  	// Use flag for: rpz_disable_nsdname_nsip
11010  	UseRpzDisableNsdnameNsip *bool `json:"use_rpz_disable_nsdname_nsip,omitempty"`
11011  
11012  	// Use flag for: rpz_drop_ip_rule_enabled ,
11013  	// rpz_drop_ip_rule_min_prefix_length_ipv4,
11014  	// rpz_drop_ip_rule_min_prefix_length_ipv6
11015  	UseRpzDropIpRule *bool `json:"use_rpz_drop_ip_rule,omitempty"`
11016  
11017  	// Use flag for: rpz_qname_wait_recurse
11018  	UseRpzQnameWaitRecurse *bool `json:"use_rpz_qname_wait_recurse,omitempty"`
11019  
11020  	// Use flag for: serial_query_rate
11021  	UseSerialQueryRate *bool `json:"use_serial_query_rate,omitempty"`
11022  
11023  	// Use flag for: server_id_directive
11024  	UseServerIdDirective *bool `json:"use_server_id_directive,omitempty"`
11025  
11026  	// Use flag for: sortlist
11027  	UseSortlist *bool `json:"use_sortlist,omitempty"`
11028  
11029  	// Use flag for: enable_notify_source_port , notify_source_port,
11030  	// enable_query_source_port, query_source_port
11031  	UseSourcePorts *bool `json:"use_source_ports,omitempty"`
11032  
11033  	// Use flag for: syslog_facility
11034  	UseSyslogFacility *bool `json:"use_syslog_facility,omitempty"`
11035  
11036  	// Use flag for: transfers_in
11037  	UseTransfersIn *bool `json:"use_transfers_in,omitempty"`
11038  
11039  	// Use flag for: transfers_out
11040  	UseTransfersOut *bool `json:"use_transfers_out,omitempty"`
11041  
11042  	// Use flag for: transfers_per_ns
11043  	UseTransfersPerNs *bool `json:"use_transfers_per_ns,omitempty"`
11044  
11045  	// Use flag for: allow_update , allow_gss_tsig_zone_updates
11046  	UseUpdateSetting *bool `json:"use_update_setting,omitempty"`
11047  
11048  	// Use flag for: transfer_excluded_servers , transfer_format
11049  	UseZoneTransferFormat *bool `json:"use_zone_transfer_format,omitempty"`
11050  
11051  	// The list of views associated with this member.
11052  	Views []string `json:"views,omitempty"`
11053  }
11054  
11055  func (MemberDns) ObjectType() string {
11056  	return "member:dns"
11057  }
11058  
11059  func (obj MemberDns) ReturnFields() []string {
11060  	if obj.returnFields == nil {
11061  		obj.returnFields = []string{"host_name", "ipv4addr", "ipv6addr"}
11062  	}
11063  	return obj.returnFields
11064  }
11065  
11066  // MemberFiledistribution represents Infoblox object member:filedistribution.
11067  // The Grid member file distribution object is used to configure file
11068  // distribution services such as TFTP, FTP and HTTP, and access control lists
11069  // (ACL) that determine which clients are granted access to the service (TFTP,
11070  // FTP, HTTP), and which clients are denied access to the service.
11071  type MemberFiledistribution struct {
11072  	IBBase `json:"-"`
11073  
11074  	Ref string `json:"_ref,omitempty"`
11075  
11076  	// Determines whether uploads to the Grid member are allowed.
11077  	AllowUploads *bool `json:"allow_uploads,omitempty"`
11078  
11079  	// The Grid member descriptive comment.
11080  	Comment string `json:"comment,omitempty"`
11081  
11082  	// Determines whether the FTP prtocol is enabled for file distribution.
11083  	EnableFtp *bool `json:"enable_ftp,omitempty"`
11084  
11085  	// Determines whether the LIST command for FTP is enabled.
11086  	EnableFtpFilelist *bool `json:"enable_ftp_filelist,omitempty"`
11087  
11088  	// Determines whether the passive mode for FTP is enabled.
11089  	EnableFtpPassive *bool `json:"enable_ftp_passive,omitempty"`
11090  
11091  	// Determines whether the HTTP prtocol is enabled for file distribution.
11092  	EnableHttp *bool `json:"enable_http,omitempty"`
11093  
11094  	// Determines whether the HTTP prtocol access control (AC) settings are
11095  	// enabled.
11096  	EnableHttpAcl *bool `json:"enable_http_acl,omitempty"`
11097  
11098  	// Determines whether the TFTP prtocol is enabled for file distribution.
11099  	EnableTftp *bool `json:"enable_tftp,omitempty"`
11100  
11101  	// Access control (AC) settings for the FTP protocol.
11102  	FtpAcls []*Addressac `json:"ftp_acls,omitempty"`
11103  
11104  	// The network port used by the FTP protocol.
11105  	FtpPort *uint32 `json:"ftp_port,omitempty"`
11106  
11107  	// The FTP protocol status.
11108  	FtpStatus string `json:"ftp_status,omitempty"`
11109  
11110  	// The Grid member host name.
11111  	HostName string `json:"host_name,omitempty"`
11112  
11113  	// Access control (AC) settings for the HTTP protocol.
11114  	HttpAcls []*Addressac `json:"http_acls,omitempty"`
11115  
11116  	// The HTTP protocol status.
11117  	HttpStatus string `json:"http_status,omitempty"`
11118  
11119  	// The IPv4 address of the Grid member.
11120  	Ipv4Address string `json:"ipv4_address,omitempty"`
11121  
11122  	// The IPv6 address of the Grid member.
11123  	Ipv6Address string `json:"ipv6_address,omitempty"`
11124  
11125  	// The Grid member file distribution status.
11126  	Status string `json:"status,omitempty"`
11127  
11128  	// The access control (AC) settings for the TFTP protocol.
11129  	TftpAcls []*Addressac `json:"tftp_acls,omitempty"`
11130  
11131  	// The network port used by the TFTP protocol.
11132  	TftpPort *uint32 `json:"tftp_port,omitempty"`
11133  
11134  	// The TFTP protocol status.
11135  	TftpStatus string `json:"tftp_status,omitempty"`
11136  
11137  	// Use flag for: allow_uploads
11138  	UseAllowUploads *bool `json:"use_allow_uploads,omitempty"`
11139  }
11140  
11141  func (MemberFiledistribution) ObjectType() string {
11142  	return "member:filedistribution"
11143  }
11144  
11145  func (obj MemberFiledistribution) ReturnFields() []string {
11146  	if obj.returnFields == nil {
11147  		obj.returnFields = []string{"host_name", "ipv4_address", "ipv6_address", "status"}
11148  	}
11149  	return obj.returnFields
11150  }
11151  
11152  // MemberLicense represents Infoblox object member:license.
11153  // This object represents the member license.
11154  type MemberLicense struct {
11155  	IBBase `json:"-"`
11156  
11157  	Ref string `json:"_ref,omitempty"`
11158  
11159  	// The license expiration status.
11160  	ExpirationStatus string `json:"expiration_status,omitempty"`
11161  
11162  	// The expiration timestamp of the license.
11163  	ExpiryDate *UnixTime `json:"expiry_date,omitempty"`
11164  
11165  	// The hardware ID of the physical node on which the license is installed.
11166  	Hwid string `json:"hwid,omitempty"`
11167  
11168  	// License string.
11169  	Key string `json:"key,omitempty"`
11170  
11171  	// The overall type of license: static or dynamic.
11172  	Kind string `json:"kind,omitempty"`
11173  
11174  	// The license limit value.
11175  	Limit string `json:"limit,omitempty"`
11176  
11177  	// The license limit context.
11178  	LimitContext string `json:"limit_context,omitempty"`
11179  
11180  	// The license type.
11181  	Type string `json:"type,omitempty"`
11182  }
11183  
11184  func (MemberLicense) ObjectType() string {
11185  	return "member:license"
11186  }
11187  
11188  func (obj MemberLicense) ReturnFields() []string {
11189  	if obj.returnFields == nil {
11190  		obj.returnFields = []string{"type"}
11191  	}
11192  	return obj.returnFields
11193  }
11194  
11195  // MemberParentalcontrol represents Infoblox object member:parentalcontrol.
11196  // This object represents a set of parental control properties for the Grid
11197  // member.
11198  type MemberParentalcontrol struct {
11199  	IBBase `json:"-"`
11200  
11201  	Ref string `json:"_ref,omitempty"`
11202  
11203  	// Determines if the parental control service is enabled.
11204  	EnableService *bool `json:"enable_service,omitempty"`
11205  
11206  	// The parental control member hostname.
11207  	Name string `json:"name,omitempty"`
11208  }
11209  
11210  func (MemberParentalcontrol) ObjectType() string {
11211  	return "member:parentalcontrol"
11212  }
11213  
11214  func (obj MemberParentalcontrol) ReturnFields() []string {
11215  	if obj.returnFields == nil {
11216  		obj.returnFields = []string{"enable_service", "name"}
11217  	}
11218  	return obj.returnFields
11219  }
11220  
11221  // MemberThreatanalytics represents Infoblox object member:threatanalytics.
11222  // To mitigate DNS data exfiltration, Infoblox DNS threat analytics employs
11223  // analytics algorithms that analyze incoming DNS queries and responses to
11224  // detect DNS tunneling traffic.
11225  type MemberThreatanalytics struct {
11226  	IBBase `json:"-"`
11227  
11228  	Ref string `json:"_ref,omitempty"`
11229  
11230  	// The Grid member descriptive comment.
11231  	Comment string `json:"comment,omitempty"`
11232  
11233  	// Determines whether the threat analytics service is enabled.
11234  	EnableService *bool `json:"enable_service,omitempty"`
11235  
11236  	// The Grid member host name.
11237  	HostName string `json:"host_name,omitempty"`
11238  
11239  	// The IPv4 Address address of the Grid member.
11240  	Ipv4Address string `json:"ipv4_address,omitempty"`
11241  
11242  	// The IPv6 Address address of the Grid member.
11243  	Ipv6Address string `json:"ipv6_address,omitempty"`
11244  
11245  	// The Grid member threat analytics status.
11246  	Status string `json:"status,omitempty"`
11247  }
11248  
11249  func (MemberThreatanalytics) ObjectType() string {
11250  	return "member:threatanalytics"
11251  }
11252  
11253  func (obj MemberThreatanalytics) ReturnFields() []string {
11254  	if obj.returnFields == nil {
11255  		obj.returnFields = []string{"host_name", "ipv4_address", "ipv6_address", "status"}
11256  	}
11257  	return obj.returnFields
11258  }
11259  
11260  // MemberThreatprotection represents Infoblox object member:threatprotection.
11261  // This object provides information about the member threat protection
11262  // settings.
11263  type MemberThreatprotection struct {
11264  	IBBase `json:"-"`
11265  
11266  	Ref string `json:"_ref,omitempty"`
11267  
11268  	// The human readable comment for member threat protection properties.
11269  	Comment string `json:"comment,omitempty"`
11270  
11271  	// The ruleset used for threat protection.
11272  	CurrentRuleset *string `json:"current_ruleset,omitempty"`
11273  
11274  	// Determines if multiple BIND responses via TCP connection is enabled or not.
11275  	DisableMultipleDnsTcpRequest *bool `json:"disable_multiple_dns_tcp_request,omitempty"`
11276  
11277  	// Determines if DNS responses are sent from acceleration cache before applying
11278  	// Threat Protection rules. Recommended for better performance when using DNS
11279  	// Cache Acceleration.
11280  	EnableAccelRespBeforeThreatProtection *bool `json:"enable_accel_resp_before_threat_protection,omitempty"`
11281  
11282  	// Determines if NAT (Network Address Translation) mapping for threat
11283  	// protection is enabled or not.
11284  	EnableNatRules *bool `json:"enable_nat_rules,omitempty"`
11285  
11286  	// Determines if the Threat protection service is enabled or not.
11287  	EnableService *bool `json:"enable_service,omitempty"`
11288  
11289  	// The number of events logged per second per rule.
11290  	EventsPerSecondPerRule *uint32 `json:"events_per_second_per_rule,omitempty"`
11291  
11292  	// The hardware model of the member.
11293  	HardwareModel string `json:"hardware_model,omitempty"`
11294  
11295  	// The hardware type of the member.
11296  	HardwareType string `json:"hardware_type,omitempty"`
11297  
11298  	// A Grid member name.
11299  	HostName string `json:"host_name,omitempty"`
11300  
11301  	// The IPv4 address of member threat protection service.
11302  	Ipv4address string `json:"ipv4address,omitempty"`
11303  
11304  	// The IPv6 address of member threat protection service.
11305  	Ipv6address string `json:"ipv6address,omitempty"`
11306  
11307  	// The list of NAT rules.
11308  	NatRules []*ThreatprotectionNatrule `json:"nat_rules,omitempty"`
11309  
11310  	// Outbound settings for ATP events.
11311  	OutboundSettings *SettingAtpoutbound `json:"outbound_settings,omitempty"`
11312  
11313  	// The Threat Protection profile associated with the member.
11314  	Profile *string `json:"profile,omitempty"`
11315  
11316  	// Use flag for: current_ruleset
11317  	UseCurrentRuleset *bool `json:"use_current_ruleset,omitempty"`
11318  
11319  	// Use flag for: disable_multiple_dns_tcp_request
11320  	UseDisableMultipleDnsTcpRequest *bool `json:"use_disable_multiple_dns_tcp_request,omitempty"`
11321  
11322  	// Use flag for: enable_accel_resp_before_threat_protection
11323  	UseEnableAccelRespBeforeThreatProtection *bool `json:"use_enable_accel_resp_before_threat_protection,omitempty"`
11324  
11325  	// Use flag for: enable_nat_rules
11326  	UseEnableNatRules *bool `json:"use_enable_nat_rules,omitempty"`
11327  
11328  	// Use flag for: events_per_second_per_rule
11329  	UseEventsPerSecondPerRule *bool `json:"use_events_per_second_per_rule,omitempty"`
11330  
11331  	// Use flag for: outbound_settings
11332  	UseOutboundSettings *bool `json:"use_outbound_settings,omitempty"`
11333  }
11334  
11335  func (MemberThreatprotection) ObjectType() string {
11336  	return "member:threatprotection"
11337  }
11338  
11339  func (obj MemberThreatprotection) ReturnFields() []string {
11340  	if obj.returnFields == nil {
11341  		obj.returnFields = []string{}
11342  	}
11343  	return obj.returnFields
11344  }
11345  
11346  // Memberdfp represents Infoblox object memberdfp.
11347  // This object represnts DFP fields at member level
11348  type Memberdfp struct {
11349  	IBBase `json:"-"`
11350  
11351  	Ref string `json:"_ref,omitempty"`
11352  
11353  	// Option to resolve DNS query if resolution over Active Trust Cloud failed.
11354  	DfpForwardFirst *bool `json:"dfp_forward_first,omitempty"`
11355  
11356  	// Extensible attributes associated with the object. For valid values for
11357  	// extensible attributes, see {extattrs:values}.
11358  	Ea EA `json:"extattrs"`
11359  
11360  	// Host name of the parent Member
11361  	HostName string `json:"host_name,omitempty"`
11362  
11363  	// DFP override lock'.
11364  	IsDfpOverride *bool `json:"is_dfp_override,omitempty"`
11365  }
11366  
11367  func (Memberdfp) ObjectType() string {
11368  	return "memberdfp"
11369  }
11370  
11371  func (obj Memberdfp) ReturnFields() []string {
11372  	if obj.returnFields == nil {
11373  		obj.returnFields = []string{}
11374  	}
11375  	return obj.returnFields
11376  }
11377  
11378  // Msserver represents Infoblox object msserver.
11379  // This object represents the Microsoft Server.
11380  type Msserver struct {
11381  	IBBase `json:"-"`
11382  
11383  	Ref string `json:"_ref,omitempty"`
11384  
11385  	// The Active Directory domain to which this server belongs (if applicable).
11386  	AdDomain string `json:"ad_domain,omitempty"`
11387  
11388  	// The Active Directory Sites information
11389  	AdSites *Adsites `json:"ad_sites,omitempty"`
11390  
11391  	// The Active Directory User synchronization information.
11392  	AdUser *MsserverAduser `json:"ad_user,omitempty"`
11393  
11394  	// The address or FQDN of the server.
11395  	Address *string `json:"address,omitempty"`
11396  
11397  	// User comments for this Microsoft Server
11398  	Comment *string `json:"comment,omitempty"`
11399  
11400  	// Result of the last RPC connection attempt made
11401  	ConnectionStatus string `json:"connection_status,omitempty"`
11402  
11403  	// Detail of the last connection attempt made
11404  	ConnectionStatusDetail string `json:"connection_status_detail,omitempty"`
11405  
11406  	// RW fields needed for DHCP purposes at Microsoft Server level
11407  	DhcpServer *Dhcpserver `json:"dhcp_server,omitempty"`
11408  
11409  	// Allow/forbids usage of this Microsoft Server
11410  	Disabled *bool `json:"disabled,omitempty"`
11411  
11412  	// Structure containing DNS information
11413  	DnsServer *Dnsserver `json:"dns_server,omitempty"`
11414  
11415  	// Reference to the DNS view
11416  	DnsView *string `json:"dns_view,omitempty"`
11417  
11418  	// Extensible attributes associated with the object. For valid values for
11419  	// extensible attributes, see {extattrs:values}.
11420  	Ea EA `json:"extattrs"`
11421  
11422  	// eference to the assigned grid member
11423  	GridMember *string `json:"grid_member,omitempty"`
11424  
11425  	// Timestamp of the last message received
11426  	LastSeen *UnixTime `json:"last_seen,omitempty"`
11427  
11428  	// Directs logging of sync messages either to syslog or mslog
11429  	LogDestination string `json:"log_destination,omitempty"`
11430  
11431  	// Log level for this Microsoft Server
11432  	LogLevel string `json:"log_level,omitempty"`
11433  
11434  	// Microsoft Server login name, with optional domainname
11435  	LoginName *string `json:"login_name,omitempty"`
11436  
11437  	// Microsoft Server login password
11438  	LoginPassword *string `json:"login_password,omitempty"`
11439  
11440  	// Hostname of grid member managing this Microsoft Server
11441  	ManagingMember string `json:"managing_member,omitempty"`
11442  
11443  	// Maximum number of connections to MS server
11444  	MsMaxConnection *uint32 `json:"ms_max_connection,omitempty"`
11445  
11446  	// Timeout in seconds of RPC connections for this MS Server
11447  	MsRpcTimeoutInSeconds *uint32 `json:"ms_rpc_timeout_in_seconds,omitempty"`
11448  
11449  	// Reference to the network view
11450  	NetworkView *string `json:"network_view,omitempty"`
11451  
11452  	// Enable read-only management for this Microsoft Server
11453  	ReadOnly *bool `json:"read_only,omitempty"`
11454  
11455  	// The root Active Directory domain to which this server belongs (if
11456  	// applicable).
11457  	RootAdDomain string `json:"root_ad_domain,omitempty"`
11458  
11459  	// Gives the server name as reported by itself
11460  	ServerName string `json:"server_name,omitempty"`
11461  
11462  	// Minimum number of minutes between two synchronizations
11463  	SynchronizationMinDelay *uint32 `json:"synchronization_min_delay,omitempty"`
11464  
11465  	// Synchronization status summary
11466  	SynchronizationStatus string `json:"synchronization_status,omitempty"`
11467  
11468  	// Detail status if synchronization_status is ERROR
11469  	SynchronizationStatusDetail string `json:"synchronization_status_detail,omitempty"`
11470  
11471  	// Override log_destination inherited from grid level
11472  	UseLogDestination *bool `json:"use_log_destination,omitempty"`
11473  
11474  	// Override grid ms_max_connection setting
11475  	UseMsMaxConnection *bool `json:"use_ms_max_connection,omitempty"`
11476  
11477  	// Flag to override cluster RPC timeout
11478  	UseMsRpcTimeoutInSeconds *bool `json:"use_ms_rpc_timeout_in_seconds,omitempty"`
11479  
11480  	// Version of the Microsoft Server
11481  	Version string `json:"version,omitempty"`
11482  }
11483  
11484  func (Msserver) ObjectType() string {
11485  	return "msserver"
11486  }
11487  
11488  func (obj Msserver) ReturnFields() []string {
11489  	if obj.returnFields == nil {
11490  		obj.returnFields = []string{"address"}
11491  	}
11492  	return obj.returnFields
11493  }
11494  
11495  // MsserverAdsitesDomain represents Infoblox object msserver:adsites:domain.
11496  // The object provides information about the Active Directory Domain.
11497  type MsserverAdsitesDomain struct {
11498  	IBBase `json:"-"`
11499  
11500  	Ref string `json:"_ref,omitempty"`
11501  
11502  	// The name of the Extensible Attribute Definition object that is linked to the
11503  	// Active Directory Sites Domain.
11504  	EaDefinition string `json:"ea_definition,omitempty"`
11505  
11506  	// The IP address or FQDN of the managing master for the MS server, if
11507  	// applicable.
11508  	MsSyncMasterName string `json:"ms_sync_master_name,omitempty"`
11509  
11510  	// The name of the Active Directory Domain properties object.
11511  	Name string `json:"name,omitempty"`
11512  
11513  	// The NetBIOS name of the Active Directory Domain properties object.
11514  	Netbios string `json:"netbios,omitempty"`
11515  
11516  	// The name of the network view in which the Active Directory Domain resides.
11517  	NetworkView string `json:"network_view,omitempty"`
11518  
11519  	// Determines whether the Active Directory Domain properties object is a
11520  	// read-only object.
11521  	ReadOnly bool `json:"read_only,omitempty"`
11522  }
11523  
11524  func (MsserverAdsitesDomain) ObjectType() string {
11525  	return "msserver:adsites:domain"
11526  }
11527  
11528  func (obj MsserverAdsitesDomain) ReturnFields() []string {
11529  	if obj.returnFields == nil {
11530  		obj.returnFields = []string{"name", "netbios", "network_view"}
11531  	}
11532  	return obj.returnFields
11533  }
11534  
11535  // MsserverAdsitesSite represents Infoblox object msserver:adsites:site.
11536  // This object provides information about the Active Directory Site.
11537  type MsserverAdsitesSite struct {
11538  	IBBase `json:"-"`
11539  
11540  	Ref string `json:"_ref,omitempty"`
11541  
11542  	// The reference to the Active Directory Domain to which the site belongs.
11543  	Domain *string `json:"domain,omitempty"`
11544  
11545  	// The name of the site properties object for the Active Directory Sites.
11546  	Name *string `json:"name,omitempty"`
11547  
11548  	// The list of networks to which the device interfaces belong.
11549  	Networks []*Ipv4Network `json:"networks,omitempty"`
11550  }
11551  
11552  func (MsserverAdsitesSite) ObjectType() string {
11553  	return "msserver:adsites:site"
11554  }
11555  
11556  func (obj MsserverAdsitesSite) ReturnFields() []string {
11557  	if obj.returnFields == nil {
11558  		obj.returnFields = []string{"domain", "name"}
11559  	}
11560  	return obj.returnFields
11561  }
11562  
11563  // MsserverDhcp represents Infoblox object msserver:dhcp.
11564  // This object represents a subset of the Microsoft Server DHCP properties.
11565  type MsserverDhcp struct {
11566  	IBBase `json:"-"`
11567  
11568  	Ref string `json:"_ref,omitempty"`
11569  
11570  	// The address or FQDN of the DHCP Microsoft Server.
11571  	Address string `json:"address,omitempty"`
11572  
11573  	// Comment from Microsoft Server
11574  	Comment string `json:"comment,omitempty"`
11575  
11576  	// The percentage of the total DHCP utilization of DHCP objects belonging to
11577  	// the DHCP Microsoft Server multiplied by 1000. This is the percentage of the
11578  	// total number of available IP addresses from all the DHCP objects belonging
11579  	// to the DHCP Microsoft Server versus the total number of all IP addresses in
11580  	// all of the DHCP objects on the DHCP Microsoft Server.
11581  	DhcpUtilization uint32 `json:"dhcp_utilization,omitempty"`
11582  
11583  	// A string describing the utilization level of DHCP objects that belong to the
11584  	// DHCP Microsoft Server.
11585  	DhcpUtilizationStatus string `json:"dhcp_utilization_status,omitempty"`
11586  
11587  	// The total number of DHCP leases issued for the DHCP objects on the DHCP
11588  	// Microsoft Server.
11589  	DynamicHosts uint32 `json:"dynamic_hosts,omitempty"`
11590  
11591  	// Timestamp of the last synchronization attempt
11592  	LastSyncTs *UnixTime `json:"last_sync_ts,omitempty"`
11593  
11594  	// The login name of the DHCP Microsoft Server.
11595  	LoginName *string `json:"login_name,omitempty"`
11596  
11597  	// The login password of the DHCP Microsoft Server.
11598  	LoginPassword *string `json:"login_password,omitempty"`
11599  
11600  	// Network view to update
11601  	NetworkView string `json:"network_view,omitempty"`
11602  
11603  	// Defines what control to apply on the DHCP server
11604  	NextSyncControl string `json:"next_sync_control,omitempty"`
11605  
11606  	// Whether Microsoft server is read only
11607  	ReadOnly bool `json:"read_only,omitempty"`
11608  
11609  	// Microsoft server address
11610  	ServerName string `json:"server_name,omitempty"`
11611  
11612  	// The number of static DHCP addresses configured in DHCP objects that belong
11613  	// to the DHCP Microsoft Server.
11614  	StaticHosts uint32 `json:"static_hosts,omitempty"`
11615  
11616  	// Status of the Microsoft DHCP Service
11617  	Status string `json:"status,omitempty"`
11618  
11619  	// Detailed status of the DHCP status
11620  	StatusDetail string `json:"status_detail,omitempty"`
11621  
11622  	// Timestamp of the last update
11623  	StatusLastUpdated *UnixTime `json:"status_last_updated,omitempty"`
11624  
11625  	// Flag indicating if the DHCP supports Failover
11626  	SupportsFailover bool `json:"supports_failover,omitempty"`
11627  
11628  	// The minimum number of minutes between two synchronizations.
11629  	SynchronizationInterval *uint32 `json:"synchronization_interval,omitempty"`
11630  
11631  	// The total number of DHCP addresses configured in DHCP objects that belong to
11632  	// the DHCP Microsoft Server.
11633  	TotalHosts uint32 `json:"total_hosts,omitempty"`
11634  
11635  	// Use flag for: login_name , login_password
11636  	UseLogin *bool `json:"use_login,omitempty"`
11637  
11638  	// Use flag for: synchronization_interval
11639  	UseSynchronizationInterval *bool `json:"use_synchronization_interval,omitempty"`
11640  }
11641  
11642  func (MsserverDhcp) ObjectType() string {
11643  	return "msserver:dhcp"
11644  }
11645  
11646  func (obj MsserverDhcp) ReturnFields() []string {
11647  	if obj.returnFields == nil {
11648  		obj.returnFields = []string{"address"}
11649  	}
11650  	return obj.returnFields
11651  }
11652  
11653  // MsserverDns represents Infoblox object msserver:dns.
11654  // This object represents a subset of the Microsoft Server DNS properties.
11655  type MsserverDns struct {
11656  	IBBase `json:"-"`
11657  
11658  	Ref string `json:"_ref,omitempty"`
11659  
11660  	// The address or FQDN of the DNS Microsoft Server.
11661  	Address string `json:"address,omitempty"`
11662  
11663  	// Determines if synchronization of DNS reporting data from the Microsoft
11664  	// server is enabled or not.
11665  	EnableDnsReportsSync *bool `json:"enable_dns_reports_sync,omitempty"`
11666  
11667  	// The login name of the DNS Microsoft Server.
11668  	LoginName *string `json:"login_name,omitempty"`
11669  
11670  	// The login password of the DNS Microsoft Server.
11671  	LoginPassword *string `json:"login_password,omitempty"`
11672  
11673  	// The minimum number of minutes between two synchronizations.
11674  	SynchronizationInterval *uint32 `json:"synchronization_interval,omitempty"`
11675  
11676  	// Use flag for: enable_dns_reports_sync
11677  	UseEnableDnsReportsSync *bool `json:"use_enable_dns_reports_sync,omitempty"`
11678  
11679  	// Use flag for: login_name , login_password
11680  	UseLogin *bool `json:"use_login,omitempty"`
11681  
11682  	// Use flag for: synchronization_interval
11683  	UseSynchronizationInterval *bool `json:"use_synchronization_interval,omitempty"`
11684  }
11685  
11686  func (MsserverDns) ObjectType() string {
11687  	return "msserver:dns"
11688  }
11689  
11690  func (obj MsserverDns) ReturnFields() []string {
11691  	if obj.returnFields == nil {
11692  		obj.returnFields = []string{"address"}
11693  	}
11694  	return obj.returnFields
11695  }
11696  
11697  // Mssuperscope represents Infoblox object mssuperscope.
11698  // This object represents a superscope feature of Microsoft DHCP server. You
11699  // can use a superscope to group and activate multiple ranges via a single
11700  // object.
11701  type Mssuperscope struct {
11702  	IBBase `json:"-"`
11703  
11704  	Ref string `json:"_ref,omitempty"`
11705  
11706  	// The superscope descriptive comment.
11707  	Comment *string `json:"comment,omitempty"`
11708  
11709  	// The percentage of the total DHCP usage of the ranges in the superscope.
11710  	DhcpUtilization uint32 `json:"dhcp_utilization,omitempty"`
11711  
11712  	// Utilization level of the DHCP range objects that belong to the superscope.
11713  	DhcpUtilizationStatus string `json:"dhcp_utilization_status,omitempty"`
11714  
11715  	// Determines whether the superscope is disabled.
11716  	Disable *bool `json:"disable,omitempty"`
11717  
11718  	// The total number of DHCP leases issued for the DHCP range objects that
11719  	// belong to the superscope.
11720  	DynamicHosts uint32 `json:"dynamic_hosts,omitempty"`
11721  
11722  	// Extensible attributes associated with the object. For valid values for
11723  	// extensible attributes, see {extattrs:values}.
11724  	Ea EA `json:"extattrs"`
11725  
11726  	// The percentage value for DHCP range usage after which an alarm will be
11727  	// active.
11728  	HighWaterMark uint32 `json:"high_water_mark,omitempty"`
11729  
11730  	// The percentage value for DHCP range usage after which an alarm will be
11731  	// reset.
11732  	HighWaterMarkReset uint32 `json:"high_water_mark_reset,omitempty"`
11733  
11734  	// The percentage value for DHCP range usage below which an alarm will be
11735  	// active.
11736  	LowWaterMark uint32 `json:"low_water_mark,omitempty"`
11737  
11738  	// The percentage value for DHCP range usage below which an alarm will be
11739  	// reset.
11740  	LowWaterMarkReset uint32 `json:"low_water_mark_reset,omitempty"`
11741  
11742  	// The name of the Microsoft DHCP superscope.
11743  	Name *string `json:"name,omitempty"`
11744  
11745  	// The name of the network view in which the superscope resides.
11746  	NetworkView *string `json:"network_view,omitempty"`
11747  
11748  	// The list of DHCP ranges that are associated with the superscope.
11749  	Ranges []*Range `json:"ranges,omitempty"`
11750  
11751  	// The number of static DHCP addresses configured in DHCP range objects that
11752  	// belong to the superscope.
11753  	StaticHosts uint32 `json:"static_hosts,omitempty"`
11754  
11755  	// The total number of DHCP addresses configured in DHCP range objects that
11756  	// belong to the superscope.
11757  	TotalHosts uint32 `json:"total_hosts,omitempty"`
11758  }
11759  
11760  func (Mssuperscope) ObjectType() string {
11761  	return "mssuperscope"
11762  }
11763  
11764  func (obj Mssuperscope) ReturnFields() []string {
11765  	if obj.returnFields == nil {
11766  		obj.returnFields = []string{"disable", "name", "network_view"}
11767  	}
11768  	return obj.returnFields
11769  }
11770  
11771  // Namedacl represents Infoblox object namedacl.
11772  // A named ACL (Access Control List) is a list of IPv4/IPv6 addresses,
11773  // networks, TSIG-based anonymous access controls, and other named ACLs, to
11774  // which you can grant or deny permission for operations such as dynamic DNS
11775  // updates or zone transfers.
11776  type Namedacl struct {
11777  	IBBase `json:"-"`
11778  
11779  	Ref string `json:"_ref,omitempty"`
11780  
11781  	// The access control list of IPv4/IPv6 addresses, networks, TSIG-based
11782  	// anonymous access controls, and other named ACLs.
11783  	AccessList []*Addressac `json:"access_list,omitempty"`
11784  
11785  	// Comment for the named ACL; maximum 256 characters.
11786  	Comment *string `json:"comment,omitempty"`
11787  
11788  	// The exploded access list for the named ACL. This list displays all the
11789  	// access control entries in a named ACL and its nested named ACLs, if
11790  	// applicable.
11791  	ExplodedAccessList []*Addressac `json:"exploded_access_list,omitempty"`
11792  
11793  	// Extensible attributes associated with the object. For valid values for
11794  	// extensible attributes, see {extattrs:values}.
11795  	Ea EA `json:"extattrs"`
11796  
11797  	// The name of the named ACL.
11798  	Name *string `json:"name,omitempty"`
11799  }
11800  
11801  func (Namedacl) ObjectType() string {
11802  	return "namedacl"
11803  }
11804  
11805  func (obj Namedacl) ReturnFields() []string {
11806  	if obj.returnFields == nil {
11807  		obj.returnFields = []string{"comment", "name"}
11808  	}
11809  	return obj.returnFields
11810  }
11811  
11812  // Natgroup represents Infoblox object natgroup.
11813  // NAT groups are necessary if the Grid master is behind a NAT device and there
11814  // are members behind both side of the NAT device. Any member on the same side
11815  // as the master goes into the same NAT group as the master and uses its
11816  // interface address for Grid communication. Grid members on the other side of
11817  // that NAT device do not go into the same NAT group as the master and use the
11818  // master’s NAT address for Grid communication.
11819  type Natgroup struct {
11820  	IBBase `json:"-"`
11821  
11822  	Ref string `json:"_ref,omitempty"`
11823  
11824  	// The NAT group descriptive comment.
11825  	Comment *string `json:"comment,omitempty"`
11826  
11827  	// The name of a NAT group object.
11828  	Name *string `json:"name,omitempty"`
11829  }
11830  
11831  func (Natgroup) ObjectType() string {
11832  	return "natgroup"
11833  }
11834  
11835  func (obj Natgroup) ReturnFields() []string {
11836  	if obj.returnFields == nil {
11837  		obj.returnFields = []string{"comment", "name"}
11838  	}
11839  	return obj.returnFields
11840  }
11841  
11842  // Ipv4Network represents Infoblox object network.
11843  // When DHCP services are configured on an appliance, the network that it
11844  // serves must be defined. After a network is created, you can either create
11845  // all the subnets individually, or create a parent network that encompasses
11846  // the subnets.
11847  type Ipv4Network struct {
11848  	IBBase `json:"-"`
11849  
11850  	Ref string `json:"_ref,omitempty"`
11851  
11852  	// Authority for the DHCP network.
11853  	Authority *bool `json:"authority,omitempty"`
11854  
11855  	// This flag controls whether reverse zones are automatically created when the
11856  	// network is added.
11857  	AutoCreateReversezone bool `json:"auto_create_reversezone,omitempty"`
11858  
11859  	// The bootfile name for the network. You can configure the DHCP server to
11860  	// support clients that use the boot file name option in their DHCPREQUEST
11861  	// messages.
11862  	Bootfile *string `json:"bootfile,omitempty"`
11863  
11864  	// The bootserver address for the network. You can specify the name and/or IP
11865  	// address of the boot server that the host needs to boot. The boot server IPv4
11866  	// Address or name in FQDN format.
11867  	Bootserver *string `json:"bootserver,omitempty"`
11868  
11869  	// Structure containing all cloud API related information for this object.
11870  	CloudInfo *GridCloudapiInfo `json:"cloud_info,omitempty"`
11871  
11872  	// Comment for the network, maximum 256 characters.
11873  	Comment *string `json:"comment,omitempty"`
11874  
11875  	// The number of conflicts discovered via network discovery.
11876  	ConflictCount uint32 `json:"conflict_count,omitempty"`
11877  
11878  	// The dynamic DNS domain name the appliance uses specifically for DDNS updates
11879  	// for this network.
11880  	DdnsDomainname *string `json:"ddns_domainname,omitempty"`
11881  
11882  	// If this field is set to True, the DHCP server generates a hostname and
11883  	// updates DNS with it when the DHCP client request does not contain a
11884  	// hostname.
11885  	DdnsGenerateHostname *bool `json:"ddns_generate_hostname,omitempty"`
11886  
11887  	// This field controls whether only the DHCP server is allowed to update DNS,
11888  	// regardless of the DHCP clients requests. Note that changes for this field
11889  	// take effect only if ddns_use_option81 is True.
11890  	DdnsServerAlwaysUpdates *bool `json:"ddns_server_always_updates,omitempty"`
11891  
11892  	// The DNS update Time to Live (TTL) value of a DHCP network object. The TTL is
11893  	// a 32-bit unsigned integer that represents the duration, in seconds, for
11894  	// which the update is cached. Zero indicates that the update is not cached.
11895  	DdnsTtl *uint32 `json:"ddns_ttl,omitempty"`
11896  
11897  	// By default, the DHCP server does not update DNS when it allocates a fixed
11898  	// address to a client. You can configure the DHCP server to update the A and
11899  	// PTR records of a client with a fixed address. When this feature is enabled
11900  	// and the DHCP server adds A and PTR records for a fixed address, the DHCP
11901  	// server never discards the records.
11902  	DdnsUpdateFixedAddresses *bool `json:"ddns_update_fixed_addresses,omitempty"`
11903  
11904  	// The support for DHCP Option 81 at the network level.
11905  	DdnsUseOption81 *bool `json:"ddns_use_option81,omitempty"`
11906  
11907  	// The reason for deleting the RIR registration request.
11908  	DeleteReason *string `json:"delete_reason,omitempty"`
11909  
11910  	// If set to true, BOOTP settings are disabled and BOOTP requests will be
11911  	// denied.
11912  	DenyBootp *bool `json:"deny_bootp,omitempty"`
11913  
11914  	// The percentage of the total DHCP utilization of the network multiplied by
11915  	// 1000. This is the percentage of the total number of available IP addresses
11916  	// belonging to the network versus the total number of all IP addresses in
11917  	// network.
11918  	DhcpUtilization uint32 `json:"dhcp_utilization,omitempty"`
11919  
11920  	// A string describing the utilization level of the network.
11921  	DhcpUtilizationStatus string `json:"dhcp_utilization_status,omitempty"`
11922  
11923  	// Determines whether a network is disabled or not. When this is set to False,
11924  	// the network is enabled.
11925  	Disable *bool `json:"disable,omitempty"`
11926  
11927  	// Discover now status for this network.
11928  	DiscoverNowStatus string `json:"discover_now_status,omitempty"`
11929  
11930  	// Number of the discovered BGP AS. When multiple BGP autonomous systems are
11931  	// discovered in the network, this field displays "Multiple".
11932  	DiscoveredBgpAs string `json:"discovered_bgp_as,omitempty"`
11933  
11934  	// Discovered bridge domain.
11935  	DiscoveredBridgeDomain *string `json:"discovered_bridge_domain,omitempty"`
11936  
11937  	// Discovered tenant.
11938  	DiscoveredTenant *string `json:"discovered_tenant,omitempty"`
11939  
11940  	// The identifier of the discovered VLAN. When multiple VLANs are discovered in
11941  	// the network, this field displays "Multiple".
11942  	DiscoveredVlanId string `json:"discovered_vlan_id,omitempty"`
11943  
11944  	// The name of the discovered VLAN. When multiple VLANs are discovered in the
11945  	// network, this field displays "Multiple".
11946  	DiscoveredVlanName string `json:"discovered_vlan_name,omitempty"`
11947  
11948  	// Description of the discovered VRF. When multiple VRFs are discovered in the
11949  	// network, this field displays "Multiple".
11950  	DiscoveredVrfDescription string `json:"discovered_vrf_description,omitempty"`
11951  
11952  	// The name of the discovered VRF. When multiple VRFs are discovered in the
11953  	// network, this field displays "Multiple".
11954  	DiscoveredVrfName string `json:"discovered_vrf_name,omitempty"`
11955  
11956  	// Route distinguisher of the discovered VRF. When multiple VRFs are discovered
11957  	// in the network, this field displays "Multiple".
11958  	DiscoveredVrfRd string `json:"discovered_vrf_rd,omitempty"`
11959  
11960  	// The discovery basic poll settings for this network.
11961  	DiscoveryBasicPollSettings *DiscoveryBasicpollsettings `json:"discovery_basic_poll_settings,omitempty"`
11962  
11963  	// The discovery blackout setting for this network.
11964  	DiscoveryBlackoutSetting *PropertiesBlackoutsetting `json:"discovery_blackout_setting,omitempty"`
11965  
11966  	// The network discovery engine type.
11967  	DiscoveryEngineType string `json:"discovery_engine_type,omitempty"`
11968  
11969  	// The member that will run discovery for this network.
11970  	DiscoveryMember *string `json:"discovery_member,omitempty"`
11971  
11972  	// The total number of DHCP leases issued for the network.
11973  	DynamicHosts uint32 `json:"dynamic_hosts,omitempty"`
11974  
11975  	// The e-mail lists to which the appliance sends DHCP threshold alarm e-mail
11976  	// messages.
11977  	EmailList []string `json:"email_list,omitempty"`
11978  
11979  	// The dynamic DNS updates flag of a DHCP network object. If set to True, the
11980  	// DHCP server sends DDNS updates to DNS servers in the same Grid, and to
11981  	// external DNS servers.
11982  	EnableDdns *bool `json:"enable_ddns,omitempty"`
11983  
11984  	// Determines if DHCP thresholds are enabled for the network.
11985  	EnableDhcpThresholds *bool `json:"enable_dhcp_thresholds,omitempty"`
11986  
11987  	// Determines whether a discovery is enabled or not for this network. When this
11988  	// is set to False, the network discovery is disabled.
11989  	EnableDiscovery *bool `json:"enable_discovery,omitempty"`
11990  
11991  	// Determines if DHCP threshold warnings are sent through email.
11992  	EnableEmailWarnings *bool `json:"enable_email_warnings,omitempty"`
11993  
11994  	// Determines if IFMAP publishing is enabled for the network.
11995  	EnableIfmapPublishing *bool `json:"enable_ifmap_publishing,omitempty"`
11996  
11997  	// Determines if the discovery for the network should be immediately enabled.
11998  	EnableImmediateDiscovery *bool `json:"enable_immediate_discovery,omitempty"`
11999  
12000  	// Set this to True if you want the DHCP server to use a different lease time
12001  	// for PXE clients.
12002  	EnablePxeLeaseTime *bool `json:"enable_pxe_lease_time,omitempty"`
12003  
12004  	// Determines if DHCP threshold warnings are send through SNMP.
12005  	EnableSnmpWarnings *bool `json:"enable_snmp_warnings,omitempty"`
12006  
12007  	// The endpoints that provides data for the DHCP Network object.
12008  	EndpointSources []*CiscoiseEndpoint `json:"endpoint_sources,omitempty"`
12009  
12010  	// Extensible attributes associated with the object. For valid values for
12011  	// extensible attributes, see {extattrs:values}.
12012  	Ea EA `json:"extattrs"`
12013  
12014  	// The percentage of DHCP network usage threshold above which network usage is
12015  	// not expected and may warrant your attention. When the high watermark is
12016  	// reached, the Infoblox appliance generates a syslog message and sends a
12017  	// warning (if enabled). A number that specifies the percentage of allocated
12018  	// addresses. The range is from 1 to 100.
12019  	HighWaterMark *uint32 `json:"high_water_mark,omitempty"`
12020  
12021  	// The percentage of DHCP network usage below which the corresponding SNMP trap
12022  	// is reset. A number that specifies the percentage of allocated addresses. The
12023  	// range is from 1 to 100. The high watermark reset value must be lower than
12024  	// the high watermark value.
12025  	HighWaterMarkReset *uint32 `json:"high_water_mark_reset,omitempty"`
12026  
12027  	// If this field is set to False, the appliance returns all DHCP options the
12028  	// client is eligible to receive, rather than only the list of options the
12029  	// client has requested.
12030  	IgnoreDhcpOptionListRequest *bool `json:"ignore_dhcp_option_list_request,omitempty"`
12031  
12032  	// Indicates whether the appliance will ignore DHCP client IDs or MAC
12033  	// addresses. Valid values are "NONE", "CLIENT", or "MACADDR". The default is
12034  	// "NONE".
12035  	IgnoreId string `json:"ignore_id,omitempty"`
12036  
12037  	// A list of MAC addresses the appliance will ignore.
12038  	IgnoreMacAddresses []string `json:"ignore_mac_addresses,omitempty"`
12039  
12040  	// The e-mail lists to which the appliance sends IPAM threshold alarm e-mail
12041  	// messages.
12042  	IpamEmailAddresses []string `json:"ipam_email_addresses,omitempty"`
12043  
12044  	// The IPAM Threshold settings for this network.
12045  	IpamThresholdSettings *SettingIpamThreshold `json:"ipam_threshold_settings,omitempty"`
12046  
12047  	// The IPAM Trap settings for this network.
12048  	IpamTrapSettings *SettingIpamTrap `json:"ipam_trap_settings,omitempty"`
12049  
12050  	// The IPv4 Address of the network.
12051  	Ipv4Addr *string `json:"ipv4addr,omitempty"`
12052  
12053  	// The timestamp when the last RIR registration update was sent.
12054  	LastRirRegistrationUpdateSent *UnixTime `json:"last_rir_registration_update_sent,omitempty"`
12055  
12056  	// Last RIR registration update status.
12057  	LastRirRegistrationUpdateStatus string `json:"last_rir_registration_update_status,omitempty"`
12058  
12059  	// An integer that specifies the period of time (in seconds) that frees and
12060  	// backs up leases remained in the database before they are automatically
12061  	// deleted. To disable lease scavenging, set the parameter to -1. The minimum
12062  	// positive value must be greater than 86400 seconds (1 day).
12063  	LeaseScavengeTime int `json:"lease_scavenge_time,omitempty"`
12064  
12065  	// This field contains the logic filters to be applied on the this network.
12066  	// This list corresponds to the match rules that are written to the dhcpd
12067  	// configuration file.
12068  	LogicFilterRules []*Logicfilterrule `json:"logic_filter_rules,omitempty"`
12069  
12070  	// The percentage of DHCP network usage below which the Infoblox appliance
12071  	// generates a syslog message and sends a warning (if enabled). A number that
12072  	// specifies the percentage of allocated addresses. The range is from 1 to 100.
12073  	LowWaterMark *uint32 `json:"low_water_mark,omitempty"`
12074  
12075  	// The percentage of DHCP network usage threshold below which network usage is
12076  	// not expected and may warrant your attention. When the low watermark is
12077  	// crossed, the Infoblox appliance generates a syslog message and sends a
12078  	// warning (if enabled). A number that specifies the percentage of allocated
12079  	// addresses. The range is from 1 to 100. The low watermark reset value must be
12080  	// higher than the low watermark value.
12081  	LowWaterMarkReset *uint32 `json:"low_water_mark_reset,omitempty"`
12082  
12083  	// A list of members or Microsoft (r) servers that serve DHCP for this network.
12084  	// All members in the array must be of the same type. The struct type must be
12085  	// indicated in each element, by setting the "_struct" member to the struct
12086  	// type.
12087  	Members []*Msdhcpserver `json:"members,omitempty"`
12088  
12089  	// This field controls whether this object is synchronized with the Multi-Grid
12090  	// Master. If this field is set to True, objects are not synchronized.
12091  	MgmPrivate *bool `json:"mgm_private,omitempty"`
12092  
12093  	// This field is assumed to be True unless filled by any conforming objects,
12094  	// such as Network, IPv6 Network, Network Container, IPv6 Network Container,
12095  	// and Network View. This value is set to False if mgm_private is set to True
12096  	// in the parent object.
12097  	MgmPrivateOverridable bool `json:"mgm_private_overridable,omitempty"`
12098  
12099  	// The Microsoft Active Directory user related information.
12100  	MsAdUserData *MsserverAduserData `json:"ms_ad_user_data,omitempty"`
12101  
12102  	// The netmask of the network in CIDR format.
12103  	Netmask *uint32 `json:"netmask,omitempty"`
12104  
12105  	// The network address in IPv4 Address/CIDR format. For regular expression
12106  	// searches, only the IPv4 Address portion is supported. Searches for the CIDR
12107  	// portion is always an exact match. For example, both network containers
12108  	// 10.0.0.0/8 and 20.1.0.0/16 are matched by expression '.0' and only
12109  	// 20.1.0.0/16 is matched by '.0/16'.
12110  	Network *string `json:"network,omitempty"`
12111  
12112  	// The network container to which this network belongs (if any).
12113  	NetworkContainer string `json:"network_container,omitempty"`
12114  
12115  	// The name of the network view in which this network resides.
12116  	NetworkView string `json:"network_view,omitempty"`
12117  
12118  	// The name in FQDN and/or IPv4 Address of the next server that the host needs
12119  	// to boot.
12120  	Nextserver *string `json:"nextserver,omitempty"`
12121  
12122  	// An array of DHCP option dhcpoption structs that lists the DHCP options
12123  	// associated with the object.
12124  	Options []*Dhcpoption `json:"options,omitempty"`
12125  
12126  	// The port control blackout setting for this network.
12127  	PortControlBlackoutSetting *PropertiesBlackoutsetting `json:"port_control_blackout_setting,omitempty"`
12128  
12129  	// The PXE lease time value of a DHCP Network object. Some hosts use PXE
12130  	// (Preboot Execution Environment) to boot remotely from a server. To better
12131  	// manage your IP resources, set a different lease time for PXE boot requests.
12132  	// You can configure the DHCP server to allocate an IP address with a shorter
12133  	// lease time to hosts that send PXE boot requests, so IP addresses are not
12134  	// leased longer than necessary. A 32-bit unsigned integer that represents the
12135  	// duration, in seconds, for which the update is cached. Zero indicates that
12136  	// the update is not cached.
12137  	PxeLeaseTime *uint32 `json:"pxe_lease_time,omitempty"`
12138  
12139  	// If the field is set to True, the leases are kept in the Recycle Bin until
12140  	// one week after expiration. Otherwise, the leases are permanently deleted.
12141  	RecycleLeases *bool `json:"recycle_leases,omitempty"`
12142  
12143  	// Restarts the member service.
12144  	RestartIfNeeded *bool `json:"restart_if_needed,omitempty"`
12145  
12146  	// The registry (RIR) that allocated the network address space.
12147  	Rir string `json:"rir,omitempty"`
12148  
12149  	// The RIR organization assoicated with the network.
12150  	RirOrganization *string `json:"rir_organization,omitempty"`
12151  
12152  	// The RIR registration action.
12153  	RirRegistrationAction string `json:"rir_registration_action,omitempty"`
12154  
12155  	// The registration status of the network in RIR.
12156  	RirRegistrationStatus string `json:"rir_registration_status,omitempty"`
12157  
12158  	// If the field is set to True, the discovery blackout setting will be used for
12159  	// port control blackout setting.
12160  	SamePortControlDiscoveryBlackout *bool `json:"same_port_control_discovery_blackout,omitempty"`
12161  
12162  	// Determines whether to send the RIR registration request.
12163  	SendRirRequest *bool `json:"send_rir_request,omitempty"`
12164  
12165  	// The number of static DHCP addresses configured in the network.
12166  	StaticHosts uint32 `json:"static_hosts,omitempty"`
12167  
12168  	// The DHCP Network Cisco ISE subscribe settings.
12169  	SubscribeSettings *CiscoiseSubscribesetting `json:"subscribe_settings,omitempty"`
12170  
12171  	// If set on creation, the network is created according to the values specified
12172  	// in the selected template.
12173  	Template string `json:"template,omitempty"`
12174  
12175  	// The total number of DHCP addresses configured in the network.
12176  	TotalHosts uint32 `json:"total_hosts,omitempty"`
12177  
12178  	// Determines whether the DHCP IPv4 Network is unmanaged or not.
12179  	Unmanaged *bool `json:"unmanaged,omitempty"`
12180  
12181  	// The number of unmanaged IP addresses as discovered by network discovery.
12182  	UnmanagedCount uint32 `json:"unmanaged_count,omitempty"`
12183  
12184  	// This field controls whether the DHCP server updates DNS when a DHCP lease is
12185  	// renewed.
12186  	UpdateDnsOnLeaseRenewal *bool `json:"update_dns_on_lease_renewal,omitempty"`
12187  
12188  	// Use flag for: authority
12189  	UseAuthority *bool `json:"use_authority,omitempty"`
12190  
12191  	// Use flag for: discovery_blackout_setting , port_control_blackout_setting,
12192  	// same_port_control_discovery_blackout
12193  	UseBlackoutSetting *bool `json:"use_blackout_setting,omitempty"`
12194  
12195  	// Use flag for: bootfile
12196  	UseBootfile *bool `json:"use_bootfile,omitempty"`
12197  
12198  	// Use flag for: bootserver
12199  	UseBootserver *bool `json:"use_bootserver,omitempty"`
12200  
12201  	// Use flag for: ddns_domainname
12202  	UseDdnsDomainname *bool `json:"use_ddns_domainname,omitempty"`
12203  
12204  	// Use flag for: ddns_generate_hostname
12205  	UseDdnsGenerateHostname *bool `json:"use_ddns_generate_hostname,omitempty"`
12206  
12207  	// Use flag for: ddns_ttl
12208  	UseDdnsTtl *bool `json:"use_ddns_ttl,omitempty"`
12209  
12210  	// Use flag for: ddns_update_fixed_addresses
12211  	UseDdnsUpdateFixedAddresses *bool `json:"use_ddns_update_fixed_addresses,omitempty"`
12212  
12213  	// Use flag for: ddns_use_option81
12214  	UseDdnsUseOption81 *bool `json:"use_ddns_use_option81,omitempty"`
12215  
12216  	// Use flag for: deny_bootp
12217  	UseDenyBootp *bool `json:"use_deny_bootp,omitempty"`
12218  
12219  	// Use flag for: discovery_basic_poll_settings
12220  	UseDiscoveryBasicPollingSettings *bool `json:"use_discovery_basic_polling_settings,omitempty"`
12221  
12222  	// Use flag for: email_list
12223  	UseEmailList *bool `json:"use_email_list,omitempty"`
12224  
12225  	// Use flag for: enable_ddns
12226  	UseEnableDdns *bool `json:"use_enable_ddns,omitempty"`
12227  
12228  	// Use flag for: enable_dhcp_thresholds
12229  	UseEnableDhcpThresholds *bool `json:"use_enable_dhcp_thresholds,omitempty"`
12230  
12231  	// Use flag for: discovery_member , enable_discovery
12232  	UseEnableDiscovery *bool `json:"use_enable_discovery,omitempty"`
12233  
12234  	// Use flag for: enable_ifmap_publishing
12235  	UseEnableIfmapPublishing *bool `json:"use_enable_ifmap_publishing,omitempty"`
12236  
12237  	// Use flag for: ignore_dhcp_option_list_request
12238  	UseIgnoreDhcpOptionListRequest *bool `json:"use_ignore_dhcp_option_list_request,omitempty"`
12239  
12240  	// Use flag for: ignore_id
12241  	UseIgnoreId *bool `json:"use_ignore_id,omitempty"`
12242  
12243  	// Use flag for: ipam_email_addresses
12244  	UseIpamEmailAddresses *bool `json:"use_ipam_email_addresses,omitempty"`
12245  
12246  	// Use flag for: ipam_threshold_settings
12247  	UseIpamThresholdSettings *bool `json:"use_ipam_threshold_settings,omitempty"`
12248  
12249  	// Use flag for: ipam_trap_settings
12250  	UseIpamTrapSettings *bool `json:"use_ipam_trap_settings,omitempty"`
12251  
12252  	// Use flag for: lease_scavenge_time
12253  	UseLeaseScavengeTime *bool `json:"use_lease_scavenge_time,omitempty"`
12254  
12255  	// Use flag for: logic_filter_rules
12256  	UseLogicFilterRules *bool `json:"use_logic_filter_rules,omitempty"`
12257  
12258  	// Use flag for: mgm_private
12259  	UseMgmPrivate *bool `json:"use_mgm_private,omitempty"`
12260  
12261  	// Use flag for: nextserver
12262  	UseNextserver *bool `json:"use_nextserver,omitempty"`
12263  
12264  	// Use flag for: options
12265  	UseOptions *bool `json:"use_options,omitempty"`
12266  
12267  	// Use flag for: pxe_lease_time
12268  	UsePxeLeaseTime *bool `json:"use_pxe_lease_time,omitempty"`
12269  
12270  	// Use flag for: recycle_leases
12271  	UseRecycleLeases *bool `json:"use_recycle_leases,omitempty"`
12272  
12273  	// Use flag for: subscribe_settings
12274  	UseSubscribeSettings *bool `json:"use_subscribe_settings,omitempty"`
12275  
12276  	// Use flag for: update_dns_on_lease_renewal
12277  	UseUpdateDnsOnLeaseRenewal *bool `json:"use_update_dns_on_lease_renewal,omitempty"`
12278  
12279  	// Use flag for: zone_associations
12280  	UseZoneAssociations *bool `json:"use_zone_associations,omitempty"`
12281  
12282  	// The network utilization in percentage.
12283  	Utilization uint32 `json:"utilization,omitempty"`
12284  
12285  	// The timestamp when the utilization statistics were last updated.
12286  	UtilizationUpdate *UnixTime `json:"utilization_update,omitempty"`
12287  
12288  	// List of VLANs assigned to Network.
12289  	Vlans []*Vlanlink `json:"vlans,omitempty"`
12290  
12291  	// The list of zones associated with this network.
12292  	ZoneAssociations []*Zoneassociation `json:"zone_associations,omitempty"`
12293  }
12294  
12295  func (Ipv4Network) ObjectType() string {
12296  	return "network"
12297  }
12298  
12299  func (obj Ipv4Network) ReturnFields() []string {
12300  	if obj.returnFields == nil {
12301  		obj.returnFields = []string{"comment", "network", "network_view"}
12302  	}
12303  	return obj.returnFields
12304  }
12305  
12306  // NetworkDiscovery represents Infoblox object network_discovery.
12307  // This object can be used to control the network discovery process.
12308  type NetworkDiscovery struct {
12309  	IBBase `json:"-"`
12310  
12311  	Ref string `json:"_ref,omitempty"`
12312  }
12313  
12314  func (NetworkDiscovery) ObjectType() string {
12315  	return "network_discovery"
12316  }
12317  
12318  func (obj NetworkDiscovery) ReturnFields() []string {
12319  	if obj.returnFields == nil {
12320  		obj.returnFields = []string{}
12321  	}
12322  	return obj.returnFields
12323  }
12324  
12325  // Ipv4NetworkContainer represents Infoblox object networkcontainer.
12326  // A network can contain child networks. The network that contains child
12327  // networks is called a network container. This object encapsulates an IPv4
12328  // network container object.
12329  type Ipv4NetworkContainer struct {
12330  	IBBase `json:"-"`
12331  
12332  	Ref string `json:"_ref,omitempty"`
12333  
12334  	// Authority for the DHCP network container.
12335  	Authority *bool `json:"authority,omitempty"`
12336  
12337  	// This flag controls whether reverse zones are automatically created when the
12338  	// network is added.
12339  	AutoCreateReversezone bool `json:"auto_create_reversezone,omitempty"`
12340  
12341  	// The boot server IPv4 Address or name in FQDN format for the network
12342  	// container. You can specify the name and/or IP address of the boot server
12343  	// that the host needs to boot.
12344  	Bootfile *string `json:"bootfile,omitempty"`
12345  
12346  	// The bootserver address for the network container. You can specify the name
12347  	// and/or IP address of the boot server that the host needs to boot. The boot
12348  	// server IPv4 Address or name in FQDN format.
12349  	Bootserver *string `json:"bootserver,omitempty"`
12350  
12351  	// Structure containing all cloud API related information for this object.
12352  	CloudInfo *GridCloudapiInfo `json:"cloud_info,omitempty"`
12353  
12354  	// Comment for the network container; maximum 256 characters.
12355  	Comment *string `json:"comment,omitempty"`
12356  
12357  	// The dynamic DNS domain name the appliance uses specifically for DDNS updates
12358  	// for this network container.
12359  	DdnsDomainname *string `json:"ddns_domainname,omitempty"`
12360  
12361  	// If this field is set to True, the DHCP server generates a hostname and
12362  	// updates DNS with it when the DHCP client request does not contain a
12363  	// hostname.
12364  	DdnsGenerateHostname *bool `json:"ddns_generate_hostname,omitempty"`
12365  
12366  	// This field controls whether the DHCP server is allowed to update DNS,
12367  	// regardless of the DHCP client requests. Note that changes for this field
12368  	// take effect only if ddns_use_option81 is True.
12369  	DdnsServerAlwaysUpdates *bool `json:"ddns_server_always_updates,omitempty"`
12370  
12371  	// The DNS update Time to Live (TTL) value of a DHCP network container object.
12372  	// The TTL is a 32-bit unsigned integer that represents the duration, in
12373  	// seconds, for which the update is cached. Zero indicates that the update is
12374  	// not cached.
12375  	DdnsTtl *uint32 `json:"ddns_ttl,omitempty"`
12376  
12377  	// By default, the DHCP server does not update DNS when it allocates a fixed
12378  	// address to a client. You can configure the DHCP server to update the A and
12379  	// PTR records of a client with a fixed address. When this feature is enabled
12380  	// and the DHCP server adds A and PTR records for a fixed address, the DHCP
12381  	// server never discards the records.
12382  	DdnsUpdateFixedAddresses *bool `json:"ddns_update_fixed_addresses,omitempty"`
12383  
12384  	// The support for DHCP Option 81 at the network container level.
12385  	DdnsUseOption81 *bool `json:"ddns_use_option81,omitempty"`
12386  
12387  	// The reason for deleting the RIR registration request.
12388  	DeleteReason *string `json:"delete_reason,omitempty"`
12389  
12390  	// If set to True, BOOTP settings are disabled and BOOTP requests will be
12391  	// denied.
12392  	DenyBootp *bool `json:"deny_bootp,omitempty"`
12393  
12394  	// Discover now status for this network container.
12395  	DiscoverNowStatus string `json:"discover_now_status,omitempty"`
12396  
12397  	// The discovery basic poll settings for this network container.
12398  	DiscoveryBasicPollSettings *DiscoveryBasicpollsettings `json:"discovery_basic_poll_settings,omitempty"`
12399  
12400  	// The discovery blackout setting for this network container.
12401  	DiscoveryBlackoutSetting *PropertiesBlackoutsetting `json:"discovery_blackout_setting,omitempty"`
12402  
12403  	// The network discovery engine type.
12404  	DiscoveryEngineType string `json:"discovery_engine_type,omitempty"`
12405  
12406  	// The member that will run discovery for this network container.
12407  	DiscoveryMember *string `json:"discovery_member,omitempty"`
12408  
12409  	// The e-mail lists to which the appliance sends DHCP threshold alarm e-mail
12410  	// messages.
12411  	EmailList []string `json:"email_list,omitempty"`
12412  
12413  	// The dynamic DNS updates flag of a DHCP network container object. If set to
12414  	// True, the DHCP server sends DDNS updates to DNS servers in the same Grid,
12415  	// and to external DNS servers.
12416  	EnableDdns *bool `json:"enable_ddns,omitempty"`
12417  
12418  	// Determines if DHCP thresholds are enabled for the network container.
12419  	EnableDhcpThresholds *bool `json:"enable_dhcp_thresholds,omitempty"`
12420  
12421  	// Determines whether a discovery is enabled or not for this network container.
12422  	// When this is set to False, the network container discovery is disabled.
12423  	EnableDiscovery *bool `json:"enable_discovery,omitempty"`
12424  
12425  	// Determines if DHCP threshold warnings are sent through email.
12426  	EnableEmailWarnings *bool `json:"enable_email_warnings,omitempty"`
12427  
12428  	// Determines if the discovery for the network container should be immediately
12429  	// enabled.
12430  	EnableImmediateDiscovery *bool `json:"enable_immediate_discovery,omitempty"`
12431  
12432  	// Set this to True if you want the DHCP server to use a different lease time
12433  	// for PXE clients.
12434  	EnablePxeLeaseTime *bool `json:"enable_pxe_lease_time,omitempty"`
12435  
12436  	// Determines if DHCP threshold warnings are send through SNMP.
12437  	EnableSnmpWarnings *bool `json:"enable_snmp_warnings,omitempty"`
12438  
12439  	// The endpoints that provides data for the DHCP Network Container object.
12440  	EndpointSources []*CiscoiseEndpoint `json:"endpoint_sources,omitempty"`
12441  
12442  	// Extensible attributes associated with the object. For valid values for
12443  	// extensible attributes, see {extattrs:values}.
12444  	Ea EA `json:"extattrs"`
12445  
12446  	// The percentage of DHCP network container usage threshold above which network
12447  	// container usage is not expected and may warrant your attention. When the
12448  	// high watermark is reached, the Infoblox appliance generates a syslog message
12449  	// and sends a warning (if enabled). A number that specifies the percentage of
12450  	// allocated addresses. The range is from 1 to 100.
12451  	HighWaterMark *uint32 `json:"high_water_mark,omitempty"`
12452  
12453  	// The percentage of DHCP network container usage below which the corresponding
12454  	// SNMP trap is reset. A number that specifies the percentage of allocated
12455  	// addresses. The range is from 1 to 100. The high watermark reset value must
12456  	// be lower than the high watermark value.
12457  	HighWaterMarkReset *uint32 `json:"high_water_mark_reset,omitempty"`
12458  
12459  	// If this field is set to False, the appliance returns all DHCP options the
12460  	// client is eligible to receive, rather than only the list of options the
12461  	// client has requested.
12462  	IgnoreDhcpOptionListRequest *bool `json:"ignore_dhcp_option_list_request,omitempty"`
12463  
12464  	// Indicates whether the appliance will ignore DHCP client IDs or MAC
12465  	// addresses.
12466  	IgnoreId string `json:"ignore_id,omitempty"`
12467  
12468  	// A list of MAC addresses the appliance will ignore.
12469  	IgnoreMacAddresses []string `json:"ignore_mac_addresses,omitempty"`
12470  
12471  	// The e-mail lists to which the appliance sends IPAM threshold alarm e-mail
12472  	// messages.
12473  	IpamEmailAddresses []string `json:"ipam_email_addresses,omitempty"`
12474  
12475  	// The IPAM Threshold settings for this network container.
12476  	IpamThresholdSettings *SettingIpamThreshold `json:"ipam_threshold_settings,omitempty"`
12477  
12478  	// The IPAM Trap settings for this network container.
12479  	IpamTrapSettings *SettingIpamTrap `json:"ipam_trap_settings,omitempty"`
12480  
12481  	// The timestamp when the last RIR registration update was sent.
12482  	LastRirRegistrationUpdateSent *UnixTime `json:"last_rir_registration_update_sent,omitempty"`
12483  
12484  	// Last RIR registration update status.
12485  	LastRirRegistrationUpdateStatus string `json:"last_rir_registration_update_status,omitempty"`
12486  
12487  	// An integer that specifies the period of time (in seconds) that frees and
12488  	// backs up leases remained in the database before they are automatically
12489  	// deleted. To disable lease scavenging, set the parameter to -1. The minimum
12490  	// positive value must be greater than 86400 seconds (1 day).
12491  	LeaseScavengeTime int `json:"lease_scavenge_time,omitempty"`
12492  
12493  	// This field contains the logic filters to be applied on the this network
12494  	// container. This list corresponds to the match rules that are written to the
12495  	// dhcpd configuration file.
12496  	LogicFilterRules []*Logicfilterrule `json:"logic_filter_rules,omitempty"`
12497  
12498  	// The percentage of DHCP network container usage below which the Infoblox
12499  	// appliance generates a syslog message and sends a warning (if enabled). A
12500  	// number that specifies the percentage of allocated addresses. The range is
12501  	// from 1 to 100.
12502  	LowWaterMark *uint32 `json:"low_water_mark,omitempty"`
12503  
12504  	// The percentage of DHCP network container usage threshold below which network
12505  	// container usage is not expected and may warrant your attention. When the low
12506  	// watermark is crossed, the Infoblox appliance generates a syslog message and
12507  	// sends a warning (if enabled). A number that specifies the percentage of
12508  	// allocated addresses. The range is from 1 to 100. The low watermark reset
12509  	// value must be higher than the low watermark value.
12510  	LowWaterMarkReset *uint32 `json:"low_water_mark_reset,omitempty"`
12511  
12512  	// This field controls whether this object is synchronized with the Multi-Grid
12513  	// Master. If this field is set to True, objects are not synchronized.
12514  	MgmPrivate *bool `json:"mgm_private,omitempty"`
12515  
12516  	// This field is assumed to be True unless filled by any conforming objects,
12517  	// such as Network, IPv6 Network, Network Container, IPv6 Network Container,
12518  	// and Network View. This value is set to False if mgm_private is set to True
12519  	// in the parent object.
12520  	MgmPrivateOverridable bool `json:"mgm_private_overridable,omitempty"`
12521  
12522  	// The Microsoft Active Directory user related information.
12523  	MsAdUserData *MsserverAduserData `json:"ms_ad_user_data,omitempty"`
12524  
12525  	// The network address in IPv4 Address/CIDR format. For regular expression
12526  	// searches, only the IPv4 Address portion is supported. Searches for the CIDR
12527  	// portion is always an exact match. For example, both network containers
12528  	// 10.0.0.0/8 and 20.1.0.0/16 are matched by expression '.0' and only
12529  	// 20.1.0.0/16 is matched by '.0/16'.
12530  	Network string `json:"network,omitempty"`
12531  
12532  	// The network container to which this network belongs, if any.
12533  	NetworkContainer string `json:"network_container,omitempty"`
12534  
12535  	// The name of the network view in which this network resides.
12536  	NetworkView string `json:"network_view,omitempty"`
12537  
12538  	// The name in FQDN and/or IPv4 Address of the next server that the host needs
12539  	// to boot.
12540  	Nextserver *string `json:"nextserver,omitempty"`
12541  
12542  	// An array of DHCP option dhcpoption structs that lists the DHCP options
12543  	// associated with the object.
12544  	Options []*Dhcpoption `json:"options,omitempty"`
12545  
12546  	// The port control blackout setting for this network container.
12547  	PortControlBlackoutSetting *PropertiesBlackoutsetting `json:"port_control_blackout_setting,omitempty"`
12548  
12549  	// The PXE lease time value of a DHCP Network container object. Some hosts use
12550  	// PXE (Preboot Execution Environment) to boot remotely from a server. To
12551  	// better manage your IP resources, set a different lease time for PXE boot
12552  	// requests. You can configure the DHCP server to allocate an IP address with a
12553  	// shorter lease time to hosts that send PXE boot requests, so IP addresses are
12554  	// not leased longer than necessary. A 32-bit unsigned integer that represents
12555  	// the duration, in seconds, for which the update is cached. Zero indicates
12556  	// that the update is not cached.
12557  	PxeLeaseTime *uint32 `json:"pxe_lease_time,omitempty"`
12558  
12559  	// If the field is set to True, the leases are kept in the Recycle Bin until
12560  	// one week after expiration. Otherwise, the leases are permanently deleted.
12561  	RecycleLeases *bool `json:"recycle_leases,omitempty"`
12562  
12563  	// Remove subnets delete option. Determines whether all child objects should be
12564  	// removed alongside with the network container or child objects should be
12565  	// assigned to another parental container. By default child objects are deleted
12566  	// with the network container.
12567  	RemoveSubnets bool `json:"remove_subnets,omitempty"`
12568  
12569  	// Restarts the member service.
12570  	RestartIfNeeded *bool `json:"restart_if_needed,omitempty"`
12571  
12572  	// The registry (RIR) that allocated the network container address space.
12573  	Rir string `json:"rir,omitempty"`
12574  
12575  	// The RIR organization assoicated with the network container.
12576  	RirOrganization *string `json:"rir_organization,omitempty"`
12577  
12578  	// The RIR registration action.
12579  	RirRegistrationAction string `json:"rir_registration_action,omitempty"`
12580  
12581  	// The registration status of the network container in RIR.
12582  	RirRegistrationStatus string `json:"rir_registration_status,omitempty"`
12583  
12584  	// If the field is set to True, the discovery blackout setting will be used for
12585  	// port control blackout setting.
12586  	SamePortControlDiscoveryBlackout *bool `json:"same_port_control_discovery_blackout,omitempty"`
12587  
12588  	// Determines whether to send the RIR registration request.
12589  	SendRirRequest *bool `json:"send_rir_request,omitempty"`
12590  
12591  	// The DHCP Network Container Cisco ISE subscribe settings.
12592  	SubscribeSettings *CiscoiseSubscribesetting `json:"subscribe_settings,omitempty"`
12593  
12594  	// Determines whether the network container is unmanaged or not.
12595  	Unmanaged *bool `json:"unmanaged,omitempty"`
12596  
12597  	// This field controls whether the DHCP server updates DNS when a DHCP lease is
12598  	// renewed.
12599  	UpdateDnsOnLeaseRenewal *bool `json:"update_dns_on_lease_renewal,omitempty"`
12600  
12601  	// Use flag for: authority
12602  	UseAuthority *bool `json:"use_authority,omitempty"`
12603  
12604  	// Use flag for: discovery_blackout_setting , port_control_blackout_setting,
12605  	// same_port_control_discovery_blackout
12606  	UseBlackoutSetting *bool `json:"use_blackout_setting,omitempty"`
12607  
12608  	// Use flag for: bootfile
12609  	UseBootfile *bool `json:"use_bootfile,omitempty"`
12610  
12611  	// Use flag for: bootserver
12612  	UseBootserver *bool `json:"use_bootserver,omitempty"`
12613  
12614  	// Use flag for: ddns_domainname
12615  	UseDdnsDomainname *bool `json:"use_ddns_domainname,omitempty"`
12616  
12617  	// Use flag for: ddns_generate_hostname
12618  	UseDdnsGenerateHostname *bool `json:"use_ddns_generate_hostname,omitempty"`
12619  
12620  	// Use flag for: ddns_ttl
12621  	UseDdnsTtl *bool `json:"use_ddns_ttl,omitempty"`
12622  
12623  	// Use flag for: ddns_update_fixed_addresses
12624  	UseDdnsUpdateFixedAddresses *bool `json:"use_ddns_update_fixed_addresses,omitempty"`
12625  
12626  	// Use flag for: ddns_use_option81
12627  	UseDdnsUseOption81 *bool `json:"use_ddns_use_option81,omitempty"`
12628  
12629  	// Use flag for: deny_bootp
12630  	UseDenyBootp *bool `json:"use_deny_bootp,omitempty"`
12631  
12632  	// Use flag for: discovery_basic_poll_settings
12633  	UseDiscoveryBasicPollingSettings *bool `json:"use_discovery_basic_polling_settings,omitempty"`
12634  
12635  	// Use flag for: email_list
12636  	UseEmailList *bool `json:"use_email_list,omitempty"`
12637  
12638  	// Use flag for: enable_ddns
12639  	UseEnableDdns *bool `json:"use_enable_ddns,omitempty"`
12640  
12641  	// Use flag for: enable_dhcp_thresholds
12642  	UseEnableDhcpThresholds *bool `json:"use_enable_dhcp_thresholds,omitempty"`
12643  
12644  	// Use flag for: discovery_member , enable_discovery
12645  	UseEnableDiscovery *bool `json:"use_enable_discovery,omitempty"`
12646  
12647  	// Use flag for: ignore_dhcp_option_list_request
12648  	UseIgnoreDhcpOptionListRequest *bool `json:"use_ignore_dhcp_option_list_request,omitempty"`
12649  
12650  	// Use flag for: ignore_id
12651  	UseIgnoreId *bool `json:"use_ignore_id,omitempty"`
12652  
12653  	// Use flag for: ipam_email_addresses
12654  	UseIpamEmailAddresses *bool `json:"use_ipam_email_addresses,omitempty"`
12655  
12656  	// Use flag for: ipam_threshold_settings
12657  	UseIpamThresholdSettings *bool `json:"use_ipam_threshold_settings,omitempty"`
12658  
12659  	// Use flag for: ipam_trap_settings
12660  	UseIpamTrapSettings *bool `json:"use_ipam_trap_settings,omitempty"`
12661  
12662  	// Use flag for: lease_scavenge_time
12663  	UseLeaseScavengeTime *bool `json:"use_lease_scavenge_time,omitempty"`
12664  
12665  	// Use flag for: logic_filter_rules
12666  	UseLogicFilterRules *bool `json:"use_logic_filter_rules,omitempty"`
12667  
12668  	// Use flag for: mgm_private
12669  	UseMgmPrivate *bool `json:"use_mgm_private,omitempty"`
12670  
12671  	// Use flag for: nextserver
12672  	UseNextserver *bool `json:"use_nextserver,omitempty"`
12673  
12674  	// Use flag for: options
12675  	UseOptions *bool `json:"use_options,omitempty"`
12676  
12677  	// Use flag for: pxe_lease_time
12678  	UsePxeLeaseTime *bool `json:"use_pxe_lease_time,omitempty"`
12679  
12680  	// Use flag for: recycle_leases
12681  	UseRecycleLeases *bool `json:"use_recycle_leases,omitempty"`
12682  
12683  	// Use flag for: subscribe_settings
12684  	UseSubscribeSettings *bool `json:"use_subscribe_settings,omitempty"`
12685  
12686  	// Use flag for: update_dns_on_lease_renewal
12687  	UseUpdateDnsOnLeaseRenewal *bool `json:"use_update_dns_on_lease_renewal,omitempty"`
12688  
12689  	// Use flag for: zone_associations
12690  	UseZoneAssociations *bool `json:"use_zone_associations,omitempty"`
12691  
12692  	// The network container utilization in percentage.
12693  	Utilization uint32 `json:"utilization,omitempty"`
12694  
12695  	// The list of zones associated with this network.
12696  	ZoneAssociations []*Zoneassociation `json:"zone_associations,omitempty"`
12697  }
12698  
12699  func (Ipv4NetworkContainer) ObjectType() string {
12700  	return "networkcontainer"
12701  }
12702  
12703  func (obj Ipv4NetworkContainer) ReturnFields() []string {
12704  	if obj.returnFields == nil {
12705  		obj.returnFields = []string{"comment", "network", "network_view"}
12706  	}
12707  	return obj.returnFields
12708  }
12709  
12710  // NetworkTemplate represents Infoblox object networktemplate.
12711  // The network template used to create networks in a quick and consistent way.
12712  // Networks created from a network template inherit all the properties defined
12713  // in the network template, except for the comment and netmask that can be
12714  // defined in the network.
12715  type NetworkTemplate struct {
12716  	IBBase `json:"-"`
12717  
12718  	Ref string `json:"_ref,omitempty"`
12719  
12720  	// This flag controls whether the template allows any netmask. You must specify
12721  	// a netmask when creating a network using this template. If you set this
12722  	// parameter to false, you must specify the "netmask" field for the network
12723  	// template object.
12724  	AllowAnyNetmask *bool `json:"allow_any_netmask,omitempty"`
12725  
12726  	// Authority for the DHCP network.
12727  	Authority *bool `json:"authority,omitempty"`
12728  
12729  	// This flag controls whether reverse zones are automatically created when the
12730  	// network is added.
12731  	AutoCreateReversezone *bool `json:"auto_create_reversezone,omitempty"`
12732  
12733  	// The boot server IPv4 Address or name in FQDN format for the network. You can
12734  	// specify the name and/or IP address of the boot server that the host needs to
12735  	// boot.
12736  	Bootfile *string `json:"bootfile,omitempty"`
12737  
12738  	// The bootserver address for the network. You can specify the name and/or IP
12739  	// address of the boot server that the host needs to boot. The boot server IPv4
12740  	// Address or name in FQDN format.
12741  	Bootserver *string `json:"bootserver,omitempty"`
12742  
12743  	// This flag controls whether this template can be used to create network
12744  	// objects in a cloud-computing deployment.
12745  	CloudApiCompatible *bool `json:"cloud_api_compatible,omitempty"`
12746  
12747  	// Comment for the network; maximum 256 characters.
12748  	Comment *string `json:"comment,omitempty"`
12749  
12750  	// The dynamic DNS domain name the appliance uses specifically for DDNS updates
12751  	// for this network.
12752  	DdnsDomainname *string `json:"ddns_domainname,omitempty"`
12753  
12754  	// If this field is set to True, the DHCP server generates a hostname and
12755  	// updates DNS with it when the DHCP client request does not contain a
12756  	// hostname.
12757  	DdnsGenerateHostname *bool `json:"ddns_generate_hostname,omitempty"`
12758  
12759  	// This field controls whether the DHCP server is allowed to update DNS,
12760  	// regardless of the DHCP client requests. Note that changes for this field
12761  	// take effect only if ddns_use_option81 is True.
12762  	DdnsServerAlwaysUpdates *bool `json:"ddns_server_always_updates,omitempty"`
12763  
12764  	// The DNS update Time to Live (TTL) value of a DHCP network object. The TTL is
12765  	// a 32-bit unsigned integer that represents the duration, in seconds, for
12766  	// which the update is cached. Zero indicates that the update is not cached.
12767  	DdnsTtl *uint32 `json:"ddns_ttl,omitempty"`
12768  
12769  	// By default, the DHCP server does not update DNS when it allocates a fixed
12770  	// address to a client. You can configure the DHCP server to update the A and
12771  	// PTR records of a client with a fixed address. When this feature is enabled
12772  	// and the DHCP server adds A and PTR records for a fixed address, the DHCP
12773  	// server never discards the records.
12774  	DdnsUpdateFixedAddresses *bool `json:"ddns_update_fixed_addresses,omitempty"`
12775  
12776  	// The support for DHCP Option 81 at the network level.
12777  	DdnsUseOption81 *bool `json:"ddns_use_option81,omitempty"`
12778  
12779  	// Reference the Cloud Platform Appliance to which authority of the object
12780  	// should be delegated when the object is created using the template.
12781  	DelegatedMember *Dhcpmember `json:"delegated_member,omitempty"`
12782  
12783  	// If set to True, BOOTP settings are disabled and BOOTP requests will be
12784  	// denied.
12785  	DenyBootp *bool `json:"deny_bootp,omitempty"`
12786  
12787  	// The e-mail lists to which the appliance sends DHCP threshold alarm e-mail
12788  	// messages.
12789  	EmailList []string `json:"email_list,omitempty"`
12790  
12791  	// The dynamic DNS updates flag of a DHCP network object. If set to True, the
12792  	// DHCP server sends DDNS updates to DNS servers in the same Grid, and to
12793  	// external DNS servers.
12794  	EnableDdns *bool `json:"enable_ddns,omitempty"`
12795  
12796  	// Determines if DHCP thresholds are enabled for the network.
12797  	EnableDhcpThresholds *bool `json:"enable_dhcp_thresholds,omitempty"`
12798  
12799  	// Determines if DHCP threshold warnings are sent through email.
12800  	EnableEmailWarnings *bool `json:"enable_email_warnings,omitempty"`
12801  
12802  	// Set this to True if you want the DHCP server to use a different lease time
12803  	// for PXE clients.
12804  	EnablePxeLeaseTime *bool `json:"enable_pxe_lease_time,omitempty"`
12805  
12806  	// Determines if DHCP threshold warnings are send through SNMP.
12807  	EnableSnmpWarnings *bool `json:"enable_snmp_warnings,omitempty"`
12808  
12809  	// Extensible attributes associated with the object. For valid values for
12810  	// extensible attributes, see {extattrs:values}.
12811  	Ea EA `json:"extattrs"`
12812  
12813  	// The list of fixed address templates assigned to this network template
12814  	// object. When you create a network based on a network template object that
12815  	// contains fixed address templates, the fixed addresses are created based on
12816  	// the associated fixed address templates.
12817  	FixedAddressTemplates []string `json:"fixed_address_templates,omitempty"`
12818  
12819  	// The percentage of DHCP network usage threshold above which network usage is
12820  	// not expected and may warrant your attention. When the high watermark is
12821  	// reached, the Infoblox appliance generates a syslog message and sends a
12822  	// warning (if enabled). A number that specifies the percentage of allocated
12823  	// addresses. The range is from 1 to 100.
12824  	HighWaterMark *uint32 `json:"high_water_mark,omitempty"`
12825  
12826  	// The percentage of DHCP network usage below which the corresponding SNMP trap
12827  	// is reset. A number that specifies the percentage of allocated addresses. The
12828  	// range is from 1 to 100. The high watermark reset value must be lower than
12829  	// the high watermark value.
12830  	HighWaterMarkReset *uint32 `json:"high_water_mark_reset,omitempty"`
12831  
12832  	// If this field is set to False, the appliance returns all DHCP options the
12833  	// client is eligible to receive, rather than only the list of options the
12834  	// client has requested.
12835  	IgnoreDhcpOptionListRequest *bool `json:"ignore_dhcp_option_list_request,omitempty"`
12836  
12837  	// The e-mail lists to which the appliance sends IPAM threshold alarm e-mail
12838  	// messages.
12839  	IpamEmailAddresses []string `json:"ipam_email_addresses,omitempty"`
12840  
12841  	// The IPAM Threshold settings for this network template.
12842  	IpamThresholdSettings *SettingIpamThreshold `json:"ipam_threshold_settings,omitempty"`
12843  
12844  	// The IPAM Trap settings for this network template.
12845  	IpamTrapSettings *SettingIpamTrap `json:"ipam_trap_settings,omitempty"`
12846  
12847  	// An integer that specifies the period of time (in seconds) that frees and
12848  	// backs up leases remained in the database before they are automatically
12849  	// deleted. To disable lease scavenging, set the parameter to -1. The minimum
12850  	// positive value must be greater than 86400 seconds (1 day).
12851  	LeaseScavengeTime int `json:"lease_scavenge_time,omitempty"`
12852  
12853  	// This field contains the logic filters to be applied on the this network
12854  	// template. This list corresponds to the match rules that are written to the
12855  	// dhcpd configuration file.
12856  	LogicFilterRules []*Logicfilterrule `json:"logic_filter_rules,omitempty"`
12857  
12858  	// The percentage of DHCP network usage below which the Infoblox appliance
12859  	// generates a syslog message and sends a warning (if enabled). A number that
12860  	// specifies the percentage of allocated addresses. The range is from 1 to 100.
12861  	LowWaterMark *uint32 `json:"low_water_mark,omitempty"`
12862  
12863  	// The percentage of DHCP network usage threshold below which network usage is
12864  	// not expected and may warrant your attention. When the low watermark is
12865  	// crossed, the Infoblox appliance generates a syslog message and sends a
12866  	// warning (if enabled). A number that specifies the percentage of allocated
12867  	// addresses. The range is from 1 to 100. The low watermark reset value must be
12868  	// higher than the low watermark value.
12869  	LowWaterMarkReset *uint32 `json:"low_water_mark_reset,omitempty"`
12870  
12871  	// A list of members or Microsoft (r) servers that serve DHCP for this network.
12872  	// All members in the array must be of the same type. The struct type must be
12873  	// indicated in each element, by setting the "_struct" member to the struct
12874  	// type.
12875  	Members []*Msdhcpserver `json:"members,omitempty"`
12876  
12877  	// The name of this network template.
12878  	Name *string `json:"name,omitempty"`
12879  
12880  	// The netmask of the network in CIDR format.
12881  	Netmask *uint32 `json:"netmask,omitempty"`
12882  
12883  	// The name in FQDN and/or IPv4 Address of the next server that the host needs
12884  	// to boot.
12885  	Nextserver *string `json:"nextserver,omitempty"`
12886  
12887  	// An array of DHCP option dhcpoption structs that lists the DHCP options
12888  	// associated with the object.
12889  	Options []*Dhcpoption `json:"options,omitempty"`
12890  
12891  	// The PXE lease time value of a DHCP Network object. Some hosts use PXE
12892  	// (Preboot Execution Environment) to boot remotely from a server. To better
12893  	// manage your IP resources, set a different lease time for PXE boot requests.
12894  	// You can configure the DHCP server to allocate an IP address with a shorter
12895  	// lease time to hosts that send PXE boot requests, so IP addresses are not
12896  	// leased longer than necessary. A 32-bit unsigned integer that represents the
12897  	// duration, in seconds, for which the update is cached. Zero indicates that
12898  	// the update is not cached.
12899  	PxeLeaseTime *uint32 `json:"pxe_lease_time,omitempty"`
12900  
12901  	// The list of IP address range templates assigned to this network template
12902  	// object. When you create a network based on a network template object that
12903  	// contains range templates, the IP address ranges are created based on the
12904  	// associated IP address range templates.
12905  	RangeTemplates []string `json:"range_templates,omitempty"`
12906  
12907  	// If the field is set to True, the leases are kept in the Recycle Bin until
12908  	// one week after expiration. Otherwise, the leases are permanently deleted.
12909  	RecycleLeases *bool `json:"recycle_leases,omitempty"`
12910  
12911  	// THe registry (RIR) that allocated the network address space.
12912  	Rir string `json:"rir,omitempty"`
12913  
12914  	// The RIR organization assoicated with the network.
12915  	RirOrganization *string `json:"rir_organization,omitempty"`
12916  
12917  	// The RIR registration action.
12918  	RirRegistrationAction string `json:"rir_registration_action,omitempty"`
12919  
12920  	// The registration status of the network in RIR.
12921  	RirRegistrationStatus string `json:"rir_registration_status,omitempty"`
12922  
12923  	// Determines whether to send the RIR registration request.
12924  	SendRirRequest *bool `json:"send_rir_request,omitempty"`
12925  
12926  	// This field controls whether the DHCP server updates DNS when a DHCP lease is
12927  	// renewed.
12928  	UpdateDnsOnLeaseRenewal *bool `json:"update_dns_on_lease_renewal,omitempty"`
12929  
12930  	// Use flag for: authority
12931  	UseAuthority *bool `json:"use_authority,omitempty"`
12932  
12933  	// Use flag for: bootfile
12934  	UseBootfile *bool `json:"use_bootfile,omitempty"`
12935  
12936  	// Use flag for: bootserver
12937  	UseBootserver *bool `json:"use_bootserver,omitempty"`
12938  
12939  	// Use flag for: ddns_domainname
12940  	UseDdnsDomainname *bool `json:"use_ddns_domainname,omitempty"`
12941  
12942  	// Use flag for: ddns_generate_hostname
12943  	UseDdnsGenerateHostname *bool `json:"use_ddns_generate_hostname,omitempty"`
12944  
12945  	// Use flag for: ddns_ttl
12946  	UseDdnsTtl *bool `json:"use_ddns_ttl,omitempty"`
12947  
12948  	// Use flag for: ddns_update_fixed_addresses
12949  	UseDdnsUpdateFixedAddresses *bool `json:"use_ddns_update_fixed_addresses,omitempty"`
12950  
12951  	// Use flag for: ddns_use_option81
12952  	UseDdnsUseOption81 *bool `json:"use_ddns_use_option81,omitempty"`
12953  
12954  	// Use flag for: deny_bootp
12955  	UseDenyBootp *bool `json:"use_deny_bootp,omitempty"`
12956  
12957  	// Use flag for: email_list
12958  	UseEmailList *bool `json:"use_email_list,omitempty"`
12959  
12960  	// Use flag for: enable_ddns
12961  	UseEnableDdns *bool `json:"use_enable_ddns,omitempty"`
12962  
12963  	// Use flag for: enable_dhcp_thresholds
12964  	UseEnableDhcpThresholds *bool `json:"use_enable_dhcp_thresholds,omitempty"`
12965  
12966  	// Use flag for: ignore_dhcp_option_list_request
12967  	UseIgnoreDhcpOptionListRequest *bool `json:"use_ignore_dhcp_option_list_request,omitempty"`
12968  
12969  	// Use flag for: ipam_email_addresses
12970  	UseIpamEmailAddresses *bool `json:"use_ipam_email_addresses,omitempty"`
12971  
12972  	// Use flag for: ipam_threshold_settings
12973  	UseIpamThresholdSettings *bool `json:"use_ipam_threshold_settings,omitempty"`
12974  
12975  	// Use flag for: ipam_trap_settings
12976  	UseIpamTrapSettings *bool `json:"use_ipam_trap_settings,omitempty"`
12977  
12978  	// Use flag for: lease_scavenge_time
12979  	UseLeaseScavengeTime *bool `json:"use_lease_scavenge_time,omitempty"`
12980  
12981  	// Use flag for: logic_filter_rules
12982  	UseLogicFilterRules *bool `json:"use_logic_filter_rules,omitempty"`
12983  
12984  	// Use flag for: nextserver
12985  	UseNextserver *bool `json:"use_nextserver,omitempty"`
12986  
12987  	// Use flag for: options
12988  	UseOptions *bool `json:"use_options,omitempty"`
12989  
12990  	// Use flag for: pxe_lease_time
12991  	UsePxeLeaseTime *bool `json:"use_pxe_lease_time,omitempty"`
12992  
12993  	// Use flag for: recycle_leases
12994  	UseRecycleLeases *bool `json:"use_recycle_leases,omitempty"`
12995  
12996  	// Use flag for: update_dns_on_lease_renewal
12997  	UseUpdateDnsOnLeaseRenewal *bool `json:"use_update_dns_on_lease_renewal,omitempty"`
12998  }
12999  
13000  func (NetworkTemplate) ObjectType() string {
13001  	return "networktemplate"
13002  }
13003  
13004  func (obj NetworkTemplate) ReturnFields() []string {
13005  	if obj.returnFields == nil {
13006  		obj.returnFields = []string{"comment", "name"}
13007  	}
13008  	return obj.returnFields
13009  }
13010  
13011  // Networkuser represents Infoblox object networkuser.
13012  // The DHCP Network User object provides information about Active Directory
13013  // users such as user session for a specific IP address, domain, login and
13014  // logout timestamps.
13015  type Networkuser struct {
13016  	IBBase `json:"-"`
13017  
13018  	Ref string `json:"_ref,omitempty"`
13019  
13020  	// The IPv4 Address or IPv6 Address of the Network User.
13021  	Address *string `json:"address,omitempty"`
13022  
13023  	// The reference of the IPAM IPv4Address or IPv6Address object describing the
13024  	// address of the Network User.
13025  	AddressObject string `json:"address_object,omitempty"`
13026  
13027  	// The Network User data source.
13028  	DataSource string `json:"data_source,omitempty"`
13029  
13030  	// The Network User data source IPv4 Address or IPv6 Address or FQDN address.
13031  	DataSourceIp string `json:"data_source_ip,omitempty"`
13032  
13033  	// The domain name of the Network User.
13034  	Domainname *string `json:"domainname,omitempty"`
13035  
13036  	// The first seen timestamp of the Network User.
13037  	FirstSeenTime *UnixTime `json:"first_seen_time,omitempty"`
13038  
13039  	// The group identifier of the Network User.
13040  	Guid *string `json:"guid,omitempty"`
13041  
13042  	// The last seen timestamp of the Network User.
13043  	LastSeenTime *UnixTime `json:"last_seen_time,omitempty"`
13044  
13045  	// The last updated timestamp of the Network User.
13046  	LastUpdatedTime *UnixTime `json:"last_updated_time,omitempty"`
13047  
13048  	// The logon identifier of the Network User.
13049  	LogonId *string `json:"logon_id,omitempty"`
13050  
13051  	// The logout timestamp of the Network User.
13052  	LogoutTime *UnixTime `json:"logout_time,omitempty"`
13053  
13054  	// The name of the Network User.
13055  	Name *string `json:"name,omitempty"`
13056  
13057  	// The reference to the network to which the Network User belongs.
13058  	Network string `json:"network,omitempty"`
13059  
13060  	// The name of the network view in which this Network User resides.
13061  	NetworkView *string `json:"network_view,omitempty"`
13062  
13063  	// The status of the Network User.
13064  	UserStatus string `json:"user_status,omitempty"`
13065  }
13066  
13067  func (Networkuser) ObjectType() string {
13068  	return "networkuser"
13069  }
13070  
13071  func (obj Networkuser) ReturnFields() []string {
13072  	if obj.returnFields == nil {
13073  		obj.returnFields = []string{"address", "domainname", "name", "network_view", "user_status"}
13074  	}
13075  	return obj.returnFields
13076  }
13077  
13078  // NetworkView represents Infoblox object networkview.
13079  // A network view is a single routing domain with its own networks and shared
13080  // networks. A network view can contain both IPv4 and IPv6 networks. All
13081  // networks must belong to a network view.
13082  type NetworkView struct {
13083  	IBBase `json:"-"`
13084  
13085  	Ref string `json:"_ref,omitempty"`
13086  
13087  	// The list of DNS views associated with this network view.
13088  	AssociatedDnsViews []string `json:"associated_dns_views,omitempty"`
13089  
13090  	// The list of members associated with a network view.
13091  	AssociatedMembers []*NetworkviewAssocmember `json:"associated_members,omitempty"`
13092  
13093  	// Structure containing all cloud API related information for this object.
13094  	CloudInfo *GridCloudapiInfo `json:"cloud_info,omitempty"`
13095  
13096  	// Comment for the network view; maximum 256 characters.
13097  	Comment *string `json:"comment,omitempty"`
13098  
13099  	// DNS views that will receive the updates if you enable the appliance to send
13100  	// updates to Grid members.
13101  	DdnsDnsView *string `json:"ddns_dns_view,omitempty"`
13102  
13103  	// An array of Ddns Zone Primary dhcpddns structs that lists the information of
13104  	// primary zone to wich DDNS updates should be sent.
13105  	DdnsZonePrimaries []*Dhcpddns `json:"ddns_zone_primaries,omitempty"`
13106  
13107  	// Extensible attributes associated with the object. For valid values for
13108  	// extensible attributes, see {extattrs:values}.
13109  	Ea EA `json:"extattrs"`
13110  
13111  	// The list of linked authoritative DNS zones.
13112  	InternalForwardZones []*ZoneAuth `json:"internal_forward_zones,omitempty"`
13113  
13114  	// The NIOS appliance provides one default network view. You can rename the
13115  	// default view and change its settings, but you cannot delete it. There must
13116  	// always be at least one network view in the appliance.
13117  	IsDefault bool `json:"is_default,omitempty"`
13118  
13119  	// This field controls whether this object is synchronized with the Multi-Grid
13120  	// Master. If this field is set to True, objects are not synchronized.
13121  	MgmPrivate *bool `json:"mgm_private,omitempty"`
13122  
13123  	// The Microsoft Active Directory user related information.
13124  	MsAdUserData *MsserverAduserData `json:"ms_ad_user_data,omitempty"`
13125  
13126  	// Name of the network view.
13127  	Name *string `json:"name,omitempty"`
13128  
13129  	// The list of forward-mapping zones to which the DHCP server sends the
13130  	// updates.
13131  	RemoteForwardZones []*Remoteddnszone `json:"remote_forward_zones,omitempty"`
13132  
13133  	// The list of reverse-mapping zones to which the DHCP server sends the
13134  	// updates.
13135  	RemoteReverseZones []*Remoteddnszone `json:"remote_reverse_zones,omitempty"`
13136  }
13137  
13138  func (NetworkView) ObjectType() string {
13139  	return "networkview"
13140  }
13141  
13142  func (obj NetworkView) ReturnFields() []string {
13143  	if obj.returnFields == nil {
13144  		obj.returnFields = []string{"comment", "is_default", "name"}
13145  	}
13146  	return obj.returnFields
13147  }
13148  
13149  func NewEmptyNetworkView() *NetworkView {
13150  	res := &NetworkView{}
13151  	res.returnFields = []string{"extattrs", "name", "comment"}
13152  	return res
13153  }
13154  
13155  func NewNetworkView(name string, comment string, eas EA, ref string) *NetworkView {
13156  	res := NewEmptyNetworkView()
13157  	res.Name = &name
13158  	res.Comment = &comment
13159  	res.Ea = eas
13160  	res.Ref = ref
13161  	return res
13162  }
13163  
13164  // NotificationRestEndpoint represents Infoblox object notification:rest:endpoint.
13165  // The notification REST endpoint object represents settings of particular REST
13166  // API endpoint.
13167  type NotificationRestEndpoint struct {
13168  	IBBase `json:"-"`
13169  
13170  	Ref string `json:"_ref,omitempty"`
13171  
13172  	// The client certificate subject of a notification REST endpoint.
13173  	ClientCertificateSubject string `json:"client_certificate_subject,omitempty"`
13174  
13175  	// The token returned by the uploadinit function call in object fileop for a
13176  	// notification REST endpoit client certificate.
13177  	ClientCertificateToken *string `json:"client_certificate_token,omitempty"`
13178  
13179  	// The timestamp when client certificate for a notification REST endpoint was
13180  	// created.
13181  	ClientCertificateValidFrom *UnixTime `json:"client_certificate_valid_from,omitempty"`
13182  
13183  	// The timestamp when client certificate for a notification REST endpoint
13184  	// expires.
13185  	ClientCertificateValidTo *UnixTime `json:"client_certificate_valid_to,omitempty"`
13186  
13187  	// The comment of a notification REST endpoint.
13188  	Comment *string `json:"comment,omitempty"`
13189  
13190  	// Extensible attributes associated with the object. For valid values for
13191  	// extensible attributes, see {extattrs:values}.
13192  	Ea EA `json:"extattrs"`
13193  
13194  	// The log level for a notification REST endpoint.
13195  	LogLevel string `json:"log_level,omitempty"`
13196  
13197  	// The name of a notification REST endpoint.
13198  	Name *string `json:"name,omitempty"`
13199  
13200  	// The outbound member which will generate an event.
13201  	OutboundMemberType string `json:"outbound_member_type,omitempty"`
13202  
13203  	// The list of members for outbound events.
13204  	OutboundMembers []string `json:"outbound_members,omitempty"`
13205  
13206  	// The password of the user that can log into a notification REST endpoint.
13207  	Password *string `json:"password,omitempty"`
13208  
13209  	// The server certificate validation type.
13210  	ServerCertValidation string `json:"server_cert_validation,omitempty"`
13211  
13212  	// Determines if the sync process is disabled for a notification REST endpoint.
13213  	SyncDisabled *bool `json:"sync_disabled,omitempty"`
13214  
13215  	// The notification REST template instance. The parameters of REST API endpoint
13216  	// template instance are prohibited to change.
13217  	TemplateInstance *NotificationRestTemplateinstance `json:"template_instance,omitempty"`
13218  
13219  	// The timeout of session management (in seconds).
13220  	Timeout *uint32 `json:"timeout,omitempty"`
13221  
13222  	// The URI of a notification REST endpoint.
13223  	Uri *string `json:"uri,omitempty"`
13224  
13225  	// The username of the user that can log into a notification REST endpoint.
13226  	Username *string `json:"username,omitempty"`
13227  
13228  	// The vendor identifier.
13229  	VendorIdentifier *string `json:"vendor_identifier,omitempty"`
13230  
13231  	// The user name for WAPI integration.
13232  	WapiUserName *string `json:"wapi_user_name,omitempty"`
13233  
13234  	// The user password for WAPI integration.
13235  	WapiUserPassword *string `json:"wapi_user_password,omitempty"`
13236  }
13237  
13238  func (NotificationRestEndpoint) ObjectType() string {
13239  	return "notification:rest:endpoint"
13240  }
13241  
13242  func (obj NotificationRestEndpoint) ReturnFields() []string {
13243  	if obj.returnFields == nil {
13244  		obj.returnFields = []string{"name", "outbound_member_type", "uri"}
13245  	}
13246  	return obj.returnFields
13247  }
13248  
13249  // NotificationRestTemplate represents Infoblox object notification:rest:template.
13250  // The notification REST template object represents settings of particular REST
13251  // API template.
13252  type NotificationRestTemplate struct {
13253  	IBBase `json:"-"`
13254  
13255  	Ref string `json:"_ref,omitempty"`
13256  
13257  	// The action name.
13258  	ActionName string `json:"action_name,omitempty"`
13259  
13260  	// The time stamp when a template was added.
13261  	AddedOn *UnixTime `json:"added_on,omitempty"`
13262  
13263  	// The comment for this REST API template.
13264  	Comment *string `json:"comment,omitempty"`
13265  
13266  	// The JSON formatted content of a template. The data passed by content creates
13267  	// parameters for a template.
13268  	Content *string `json:"content,omitempty"`
13269  
13270  	// The event type.
13271  	EventType []string `json:"event_type,omitempty"`
13272  
13273  	// The name of a notification REST template.
13274  	Name *string `json:"name,omitempty"`
13275  
13276  	// The outbound type for the template.
13277  	OutboundType string `json:"outbound_type,omitempty"`
13278  
13279  	// The notification REST template parameters.
13280  	Parameters []*NotificationRestTemplateparameter `json:"parameters,omitempty"`
13281  
13282  	// The template type.
13283  	TemplateType string `json:"template_type,omitempty"`
13284  
13285  	// The vendor identifier.
13286  	VendorIdentifier string `json:"vendor_identifier,omitempty"`
13287  }
13288  
13289  func (NotificationRestTemplate) ObjectType() string {
13290  	return "notification:rest:template"
13291  }
13292  
13293  func (obj NotificationRestTemplate) ReturnFields() []string {
13294  	if obj.returnFields == nil {
13295  		obj.returnFields = []string{"content", "name"}
13296  	}
13297  	return obj.returnFields
13298  }
13299  
13300  // NotificationRule represents Infoblox object notification:rule.
13301  // Notification rule specifies the server to which this rule is applicable,
13302  // certain conditions (i.e. triggers), and the action to be taken when the rule
13303  // is hit. It also specifies where this rule engine is configured to be run.
13304  type NotificationRule struct {
13305  	IBBase `json:"-"`
13306  
13307  	Ref string `json:"_ref,omitempty"`
13308  
13309  	// Determines whether the notification rule is applied on all members or not.
13310  	// When this is set to False, the notification rule is applied only on
13311  	// selected_members.
13312  	AllMembers *bool `json:"all_members,omitempty"`
13313  
13314  	// The notification rule descriptive comment.
13315  	Comment *string `json:"comment,omitempty"`
13316  
13317  	// Determines whether a notification rule is disabled or not. When this is set
13318  	// to False, the notification rule is enabled.
13319  	Disable *bool `json:"disable,omitempty"`
13320  
13321  	// Determines whether the notification rule for event deduplication is enabled.
13322  	// Note that to enable event deduplication, you must set at least one
13323  	// deduplication field.
13324  	EnableEventDeduplication *bool `json:"enable_event_deduplication,omitempty"`
13325  
13326  	// Determines whether the notification rule for the event deduplication syslog
13327  	// is enabled.
13328  	EnableEventDeduplicationLog *bool `json:"enable_event_deduplication_log,omitempty"`
13329  
13330  	// The list of fields that must be used in the notification rule for event
13331  	// deduplication.
13332  	EventDeduplicationFields []string `json:"event_deduplication_fields,omitempty"`
13333  
13334  	// The lookback period for the notification rule for event deduplication.
13335  	EventDeduplicationLookbackPeriod *uint32 `json:"event_deduplication_lookback_period,omitempty"`
13336  
13337  	// Event priority.
13338  	EventPriority *string `json:"event_priority,omitempty"`
13339  
13340  	// The notification rule event type.
13341  	EventType string `json:"event_type,omitempty"`
13342  
13343  	// The notification rule expression list.
13344  	ExpressionList []*NotificationRuleexpressionop `json:"expression_list,omitempty"`
13345  
13346  	// The notification rule name.
13347  	Name string `json:"name,omitempty"`
13348  
13349  	// The notification rule action is applied if expression list evaluates to
13350  	// True.
13351  	NotificationAction string `json:"notification_action,omitempty"`
13352  
13353  	// The notification target.
13354  	NotificationTarget *string `json:"notification_target,omitempty"`
13355  
13356  	// The publish settings.
13357  	PublishSettings *CiscoisePublishsetting `json:"publish_settings,omitempty"`
13358  
13359  	// Schedule setting that must be specified if event_type is SCHEDULE.
13360  	ScheduledEvent *SettingSchedule `json:"scheduled_event,omitempty"`
13361  
13362  	// The list of the members on which the notification rule is applied.
13363  	SelectedMembers []string `json:"selected_members,omitempty"`
13364  
13365  	// The notification REST template instance.
13366  	TemplateInstance *NotificationRestTemplateinstance `json:"template_instance,omitempty"`
13367  
13368  	// Use flag for: publish_settings
13369  	UsePublishSettings *bool `json:"use_publish_settings,omitempty"`
13370  }
13371  
13372  func (NotificationRule) ObjectType() string {
13373  	return "notification:rule"
13374  }
13375  
13376  func (obj NotificationRule) ReturnFields() []string {
13377  	if obj.returnFields == nil {
13378  		obj.returnFields = []string{"event_type", "name", "notification_action", "notification_target"}
13379  	}
13380  	return obj.returnFields
13381  }
13382  
13383  // Nsgroup represents Infoblox object nsgroup.
13384  // A name server group is a collection of one or more primary DNS servers and
13385  // one or more secondary DNS servers. Grouping a commonly used set of primary
13386  // and secondary DNS servers together simplifies zone creation, allowing you to
13387  // specify a single name server group instead of specifying multiple name
13388  // servers individually.
13389  type Nsgroup struct {
13390  	IBBase `json:"-"`
13391  
13392  	Ref string `json:"_ref,omitempty"`
13393  
13394  	// Comment for the name server group; maximum 256 characters.
13395  	Comment *string `json:"comment,omitempty"`
13396  
13397  	// Extensible attributes associated with the object. For valid values for
13398  	// extensible attributes, see {extattrs:values}.
13399  	Ea EA `json:"extattrs"`
13400  
13401  	// The list of external primary servers.
13402  	ExternalPrimaries []NameServer `json:"external_primaries,omitempty"`
13403  
13404  	// The list of external secondary servers.
13405  	ExternalSecondaries []NameServer `json:"external_secondaries,omitempty"`
13406  
13407  	// The grid primary servers for this group.
13408  	GridPrimary []*Memberserver `json:"grid_primary,omitempty"`
13409  
13410  	// The list with Grid members that are secondary servers for this group.
13411  	GridSecondaries []*Memberserver `json:"grid_secondaries,omitempty"`
13412  
13413  	// Determines if this name server group is the Grid default.
13414  	IsGridDefault *bool `json:"is_grid_default,omitempty"`
13415  
13416  	// Determines if the "multiple DNS primaries" feature is enabled for the group.
13417  	IsMultimaster bool `json:"is_multimaster,omitempty"`
13418  
13419  	// The name of this name server group.
13420  	Name *string `json:"name,omitempty"`
13421  
13422  	// This flag controls whether the group is using an external primary. Note that
13423  	// modification of this field requires passing values for "grid_secondaries"
13424  	// and "external_primaries".
13425  	UseExternalPrimary *bool `json:"use_external_primary,omitempty"`
13426  }
13427  
13428  func (Nsgroup) ObjectType() string {
13429  	return "nsgroup"
13430  }
13431  
13432  func (obj Nsgroup) ReturnFields() []string {
13433  	if obj.returnFields == nil {
13434  		obj.returnFields = []string{"comment", "name"}
13435  	}
13436  	return obj.returnFields
13437  }
13438  
13439  // NsgroupDelegation represents Infoblox object nsgroup:delegation.
13440  // The NS group delegation object provides delegation servers configuration for
13441  // delegated zones. When you configure a name server group, you can now create
13442  // a set of external name servers as a delegation name server group and assign
13443  // it to delegated zones. Specifying a single delegation name server group
13444  // instead of configuring multiple name servers individually for each delegated
13445  // zones can significantly reduce configuration efforts.
13446  type NsgroupDelegation struct {
13447  	IBBase `json:"-"`
13448  
13449  	Ref string `json:"_ref,omitempty"`
13450  
13451  	// The comment for the delegated NS group.
13452  	Comment *string `json:"comment,omitempty"`
13453  
13454  	// The list of delegated servers for the delegated NS group.
13455  	DelegateTo []NameServer `json:"delegate_to,omitempty"`
13456  
13457  	// Extensible attributes associated with the object. For valid values for
13458  	// extensible attributes, see {extattrs:values}.
13459  	Ea EA `json:"extattrs"`
13460  
13461  	// The name of the delegated NS group.
13462  	Name *string `json:"name,omitempty"`
13463  }
13464  
13465  func (NsgroupDelegation) ObjectType() string {
13466  	return "nsgroup:delegation"
13467  }
13468  
13469  func (obj NsgroupDelegation) ReturnFields() []string {
13470  	if obj.returnFields == nil {
13471  		obj.returnFields = []string{"delegate_to", "name"}
13472  	}
13473  	return obj.returnFields
13474  }
13475  
13476  // NsgroupForwardingmember represents Infoblox object nsgroup:forwardingmember.
13477  // The Forwarding Member Name Server Group provides forwarding servers
13478  // configuration for forward zones.
13479  type NsgroupForwardingmember struct {
13480  	IBBase `json:"-"`
13481  
13482  	Ref string `json:"_ref,omitempty"`
13483  
13484  	// Comment for the Forwarding Member Name Server Group; maximum 256 characters.
13485  	Comment *string `json:"comment,omitempty"`
13486  
13487  	// Extensible attributes associated with the object. For valid values for
13488  	// extensible attributes, see {extattrs:values}.
13489  	Ea EA `json:"extattrs"`
13490  
13491  	// The list of forwarding member servers.
13492  	ForwardingServers []*Forwardingmemberserver `json:"forwarding_servers,omitempty"`
13493  
13494  	// The name of the Forwarding Member Name Server Group.
13495  	Name *string `json:"name,omitempty"`
13496  }
13497  
13498  func (NsgroupForwardingmember) ObjectType() string {
13499  	return "nsgroup:forwardingmember"
13500  }
13501  
13502  func (obj NsgroupForwardingmember) ReturnFields() []string {
13503  	if obj.returnFields == nil {
13504  		obj.returnFields = []string{"forwarding_servers", "name"}
13505  	}
13506  	return obj.returnFields
13507  }
13508  
13509  // NsgroupForwardstubserver represents Infoblox object nsgroup:forwardstubserver.
13510  // The Forward Stub Server Name Server Group allows configuring external
13511  // servers for Forward Zone and Stub Zone.
13512  type NsgroupForwardstubserver struct {
13513  	IBBase `json:"-"`
13514  
13515  	Ref string `json:"_ref,omitempty"`
13516  
13517  	// Comment for the Forward Stub Server Name Server Group; maximum 256
13518  	// characters.
13519  	Comment *string `json:"comment,omitempty"`
13520  
13521  	// Extensible attributes associated with the object. For valid values for
13522  	// extensible attributes, see {extattrs:values}.
13523  	Ea EA `json:"extattrs"`
13524  
13525  	// The list of external servers.
13526  	ExternalServers []NameServer `json:"external_servers,omitempty"`
13527  
13528  	// The name of this Forward Stub Server Name Server Group.
13529  	Name *string `json:"name,omitempty"`
13530  }
13531  
13532  func (NsgroupForwardstubserver) ObjectType() string {
13533  	return "nsgroup:forwardstubserver"
13534  }
13535  
13536  func (obj NsgroupForwardstubserver) ReturnFields() []string {
13537  	if obj.returnFields == nil {
13538  		obj.returnFields = []string{"external_servers", "name"}
13539  	}
13540  	return obj.returnFields
13541  }
13542  
13543  // NsgroupStubmember represents Infoblox object nsgroup:stubmember.
13544  // The Stub Member Name Server Group provides stub servers configuration for
13545  // stub zones.
13546  type NsgroupStubmember struct {
13547  	IBBase `json:"-"`
13548  
13549  	Ref string `json:"_ref,omitempty"`
13550  
13551  	// Comment for the Stub Member Name Server Group; maximum 256 characters.
13552  	Comment *string `json:"comment,omitempty"`
13553  
13554  	// Extensible attributes associated with the object. For valid values for
13555  	// extensible attributes, see {extattrs:values}.
13556  	Ea EA `json:"extattrs"`
13557  
13558  	// The name of the Stub Member Name Server Group.
13559  	Name *string `json:"name,omitempty"`
13560  
13561  	// The Grid member servers of this stub zone. Note that the
13562  	// lead/stealth/grid_replicate/
13563  	// preferred_primaries/override_preferred_primaries fields of the struct will
13564  	// be ignored when set in this field.
13565  	StubMembers []*Memberserver `json:"stub_members,omitempty"`
13566  }
13567  
13568  func (NsgroupStubmember) ObjectType() string {
13569  	return "nsgroup:stubmember"
13570  }
13571  
13572  func (obj NsgroupStubmember) ReturnFields() []string {
13573  	if obj.returnFields == nil {
13574  		obj.returnFields = []string{"name"}
13575  	}
13576  	return obj.returnFields
13577  }
13578  
13579  // Orderedranges represents Infoblox object orderedranges.
13580  // An ordered DHCP ranges object contains an ordered list of DHCP range objects
13581  // that belong to a network.
13582  type Orderedranges struct {
13583  	IBBase `json:"-"`
13584  
13585  	Ref string `json:"_ref,omitempty"`
13586  
13587  	// The reference to the network that contains ranges.
13588  	Network string `json:"network,omitempty"`
13589  
13590  	// The ordered list of references to ranges.
13591  	Ranges []*Range `json:"ranges,omitempty"`
13592  }
13593  
13594  func (Orderedranges) ObjectType() string {
13595  	return "orderedranges"
13596  }
13597  
13598  func (obj Orderedranges) ReturnFields() []string {
13599  	if obj.returnFields == nil {
13600  		obj.returnFields = []string{"network", "ranges"}
13601  	}
13602  	return obj.returnFields
13603  }
13604  
13605  // Orderedresponsepolicyzones represents Infoblox object orderedresponsepolicyzones.
13606  // An ordered list of Response Policy Zones in a DNS view. Server will reject
13607  // zones that are disabled or zones without primary name server assigned.
13608  type Orderedresponsepolicyzones struct {
13609  	IBBase `json:"-"`
13610  
13611  	Ref string `json:"_ref,omitempty"`
13612  
13613  	// An ordered list of Response Policy Zone names.
13614  	RpZones []string `json:"rp_zones,omitempty"`
13615  
13616  	// The DNS View name.
13617  	View *string `json:"view,omitempty"`
13618  }
13619  
13620  func (Orderedresponsepolicyzones) ObjectType() string {
13621  	return "orderedresponsepolicyzones"
13622  }
13623  
13624  func (obj Orderedresponsepolicyzones) ReturnFields() []string {
13625  	if obj.returnFields == nil {
13626  		obj.returnFields = []string{"view"}
13627  	}
13628  	return obj.returnFields
13629  }
13630  
13631  // OutboundCloudclient represents Infoblox object outbound:cloudclient.
13632  // You can use the outbound Cloud Client object to configure the detection and
13633  // authentication of domains in the Cloud, and then apply them to on-premises
13634  // DNS firewall RPZ zones within a configurable time frame.
13635  type OutboundCloudclient struct {
13636  	IBBase `json:"-"`
13637  
13638  	Ref string `json:"_ref,omitempty"`
13639  
13640  	// Determines whether the OutBound Cloud Client is enabled.
13641  	Enable *bool `json:"enable,omitempty"`
13642  
13643  	// The Grid member where our outbound is running.
13644  	GridMember *string `json:"grid_member,omitempty"`
13645  
13646  	// The time interval (in seconds) for requesting newly detected domains by the
13647  	// Infoblox Outbound Cloud Client and applying them to the list of configured
13648  	// RPZs.
13649  	Interval *uint32 `json:"interval,omitempty"`
13650  
13651  	// List of event types to request
13652  	OutboundCloudClientEvents []*OutboundCloudclientEvent `json:"outbound_cloud_client_events,omitempty"`
13653  }
13654  
13655  func (OutboundCloudclient) ObjectType() string {
13656  	return "outbound:cloudclient"
13657  }
13658  
13659  func (obj OutboundCloudclient) ReturnFields() []string {
13660  	if obj.returnFields == nil {
13661  		obj.returnFields = []string{"enable", "interval"}
13662  	}
13663  	return obj.returnFields
13664  }
13665  
13666  // ParentalcontrolAvp represents Infoblox object parentalcontrol:avp.
13667  // The accounting attribute value pair object is used to extract accounting
13668  // information from accounting protocols logs.
13669  type ParentalcontrolAvp struct {
13670  	IBBase `json:"-"`
13671  
13672  	Ref string `json:"_ref,omitempty"`
13673  
13674  	// The comment for the AVP.
13675  	Comment *string `json:"comment,omitempty"`
13676  
13677  	// The list of domains applicable to AVP.
13678  	DomainTypes []string `json:"domain_types,omitempty"`
13679  
13680  	// Determines if AVP is restricted to domains.
13681  	IsRestricted *bool `json:"is_restricted,omitempty"`
13682  
13683  	// The name of AVP.
13684  	Name *string `json:"name,omitempty"`
13685  
13686  	// The type of AVP as per RFC 2865/2866.
13687  	Type *uint32 `json:"type,omitempty"`
13688  
13689  	// Determines if AVP was defined by user.
13690  	UserDefined bool `json:"user_defined,omitempty"`
13691  
13692  	// The type of value.
13693  	ValueType string `json:"value_type,omitempty"`
13694  
13695  	// The vendor ID as per RFC 2865/2866.
13696  	VendorId *uint32 `json:"vendor_id,omitempty"`
13697  
13698  	// The vendor type as per RFC 2865/2866.
13699  	VendorType *uint32 `json:"vendor_type,omitempty"`
13700  }
13701  
13702  func (ParentalcontrolAvp) ObjectType() string {
13703  	return "parentalcontrol:avp"
13704  }
13705  
13706  func (obj ParentalcontrolAvp) ReturnFields() []string {
13707  	if obj.returnFields == nil {
13708  		obj.returnFields = []string{"name", "type", "value_type"}
13709  	}
13710  	return obj.returnFields
13711  }
13712  
13713  // ParentalcontrolBlockingpolicy represents Infoblox object parentalcontrol:blockingpolicy.
13714  // This object represents a set of parental control properties for blocking
13715  // policy.
13716  type ParentalcontrolBlockingpolicy struct {
13717  	IBBase `json:"-"`
13718  
13719  	Ref string `json:"_ref,omitempty"`
13720  
13721  	// The name of the blocking policy.
13722  	Name *string `json:"name,omitempty"`
13723  
13724  	// The 32 bit hex value of the blocking policy.
13725  	Value *string `json:"value,omitempty"`
13726  }
13727  
13728  func (ParentalcontrolBlockingpolicy) ObjectType() string {
13729  	return "parentalcontrol:blockingpolicy"
13730  }
13731  
13732  func (obj ParentalcontrolBlockingpolicy) ReturnFields() []string {
13733  	if obj.returnFields == nil {
13734  		obj.returnFields = []string{"name", "value"}
13735  	}
13736  	return obj.returnFields
13737  }
13738  
13739  // ParentalcontrolSubscriber represents Infoblox object parentalcontrol:subscriber.
13740  // The parental control subscriber properties contains user defined RADIUS
13741  // subscriber information which will be used by DNS/RPZ for reporting and
13742  // logging violations.
13743  type ParentalcontrolSubscriber struct {
13744  	IBBase `json:"-"`
13745  
13746  	Ref string `json:"_ref,omitempty"`
13747  
13748  	// The name of AVP to be used as an alternate subscriber ID for fixed lines.
13749  	AltSubscriberId *string `json:"alt_subscriber_id,omitempty"`
13750  
13751  	// A character string to control aspects of rewriting of the fields.
13752  	AltSubscriberIdRegexp *string `json:"alt_subscriber_id_regexp,omitempty"`
13753  
13754  	// The subexpression indicates which subexpression to extract. If zero, then
13755  	// the text matching the entire regular expression is extracted. If non-zero,
13756  	// then the regex must contain at least that many sub-expression groups. It
13757  	// takes values from 0 to 8.
13758  	AltSubscriberIdSubexpression *uint32 `json:"alt_subscriber_id_subexpression,omitempty"`
13759  
13760  	// The list of ordered AVP Ancillary Fields.
13761  	Ancillaries []string `json:"ancillaries,omitempty"`
13762  
13763  	// Category content account name using the categorization service.
13764  	CatAcctname *string `json:"cat_acctname,omitempty"`
13765  
13766  	// Category content account password to access the categorization service.
13767  	CatPassword *string `json:"cat_password,omitempty"`
13768  
13769  	// Category content updates every number of hours.
13770  	CatUpdateFrequency *uint32 `json:"cat_update_frequency,omitempty"`
13771  
13772  	// Category content vendor url to download category data from and upload
13773  	// feedback to, configure for parental control.
13774  	CategoryUrl *string `json:"category_url,omitempty"`
13775  
13776  	// Determines if NAS RADIUS traffic is accepted over MGMT only.
13777  	EnableMgmtOnlyNas *bool `json:"enable_mgmt_only_nas,omitempty"`
13778  
13779  	// Determines if parental control is enabled.
13780  	EnableParentalControl *bool `json:"enable_parental_control,omitempty"`
13781  
13782  	// The time for collector to be fully populated. Valid values are from 1 to
13783  	// 65535.
13784  	InterimAccountingInterval *uint32 `json:"interim_accounting_interval,omitempty"`
13785  
13786  	// The ordered list of IP Anchors AVPs. The list content cannot be changed, but
13787  	// the order of elements.
13788  	IpAnchors []string `json:"ip_anchors,omitempty"`
13789  
13790  	// A character string to control aspects of rewriting of the fields.
13791  	IpSpaceDiscRegexp *string `json:"ip_space_disc_regexp,omitempty"`
13792  
13793  	// The subexpression indicates which subexpression to extract. If zero, then
13794  	// the text matching the entire regular expression is extracted. If non-zero,
13795  	// then the regex must contain at least that many sub-expression groups. It
13796  	// takes values from 0 to 8.
13797  	IpSpaceDiscSubexpression *uint32 `json:"ip_space_disc_subexpression,omitempty"`
13798  
13799  	// The name of AVP to be used as IP address discriminator.
13800  	IpSpaceDiscriminator *string `json:"ip_space_discriminator,omitempty"`
13801  
13802  	// The name of AVP to be used as local ID.
13803  	LocalId *string `json:"local_id,omitempty"`
13804  
13805  	// A character string to control aspects of rewriting of the fields.
13806  	LocalIdRegexp *string `json:"local_id_regexp,omitempty"`
13807  
13808  	// The subexpression indicates which subexpression to extract. If zero, then
13809  	// the text matching the entire regular expression is extracted. If non-zero,
13810  	// then the regex must contain at least that many sub-expression groups. It
13811  	// takes values from 0 to 8.
13812  	LocalIdSubexpression *uint32 `json:"local_id_subexpression,omitempty"`
13813  
13814  	// CEF log all guest lookups, will produce two logs in case of a violation.
13815  	LogGuestLookups *bool `json:"log_guest_lookups,omitempty"`
13816  
13817  	// NAS contextual information AVP.
13818  	NasContextInfo *string `json:"nas_context_info,omitempty"`
13819  
13820  	// The SOA to store parental control records.
13821  	PcZoneName *string `json:"pc_zone_name,omitempty"`
13822  
13823  	// Proxy server password used for authentication.
13824  	ProxyPassword *string `json:"proxy_password,omitempty"`
13825  
13826  	// Proxy url to download category data from and upload feedback to, configure
13827  	// for parental control. The default value 'None' is no longer valid as it
13828  	// match url regex pattern "^http|https://". The new default value does not get
13829  	// saved in database, but rather used for comparision with object created in
13830  	// unit test cases.
13831  	ProxyUrl *string `json:"proxy_url,omitempty"`
13832  
13833  	// Proxy server username used for authentication.
13834  	ProxyUsername *string `json:"proxy_username,omitempty"`
13835  
13836  	// The name of AVP to be used as a subscriber.
13837  	SubscriberId *string `json:"subscriber_id,omitempty"`
13838  
13839  	// A character string to control aspects of rewriting of the fields.
13840  	SubscriberIdRegexp *string `json:"subscriber_id_regexp,omitempty"`
13841  
13842  	// The subexpression indicates which subexpression to extract. If zero, then
13843  	// the text matching the entire regular expression is extracted. If non-zero,
13844  	// then the regex must contain at least that many sub-expression groups. It
13845  	// takes values from 0 to 8.
13846  	SubscriberIdSubexpression *uint32 `json:"subscriber_id_subexpression,omitempty"`
13847  }
13848  
13849  func (ParentalcontrolSubscriber) ObjectType() string {
13850  	return "parentalcontrol:subscriber"
13851  }
13852  
13853  func (obj ParentalcontrolSubscriber) ReturnFields() []string {
13854  	if obj.returnFields == nil {
13855  		obj.returnFields = []string{"alt_subscriber_id", "local_id", "subscriber_id"}
13856  	}
13857  	return obj.returnFields
13858  }
13859  
13860  // ParentalcontrolSubscriberrecord represents Infoblox object parentalcontrol:subscriberrecord.
13861  // This object represents a set of parental control properties for subscriber
13862  // record.
13863  type ParentalcontrolSubscriberrecord struct {
13864  	IBBase `json:"-"`
13865  
13866  	Ref string `json:"_ref,omitempty"`
13867  
13868  	// accounting_session_id
13869  	AccountingSessionId *string `json:"accounting_session_id,omitempty"`
13870  
13871  	// alt_ip_addr
13872  	AltIpAddr *string `json:"alt_ip_addr,omitempty"`
13873  
13874  	// ans0
13875  	Ans0 *string `json:"ans0,omitempty"`
13876  
13877  	// ans1
13878  	Ans1 *string `json:"ans1,omitempty"`
13879  
13880  	// ans2
13881  	Ans2 *string `json:"ans2,omitempty"`
13882  
13883  	// ans3
13884  	Ans3 *string `json:"ans3,omitempty"`
13885  
13886  	// ans4
13887  	Ans4 *string `json:"ans4,omitempty"`
13888  
13889  	// black_list
13890  	BlackList *string `json:"black_list,omitempty"`
13891  
13892  	// bwflag
13893  	Bwflag *bool `json:"bwflag,omitempty"`
13894  
13895  	// dynamic_category_policy
13896  	DynamicCategoryPolicy *bool `json:"dynamic_category_policy,omitempty"`
13897  
13898  	// flags
13899  	Flags *string `json:"flags,omitempty"`
13900  
13901  	// ip_addr
13902  	IpAddr *string `json:"ip_addr,omitempty"`
13903  
13904  	// ipsd
13905  	Ipsd *string `json:"ipsd,omitempty"`
13906  
13907  	// localid
13908  	Localid *string `json:"localid,omitempty"`
13909  
13910  	// nas_contextual
13911  	NasContextual *string `json:"nas_contextual,omitempty"`
13912  
13913  	// parental_control_policy
13914  	ParentalControlPolicy *string `json:"parental_control_policy,omitempty"`
13915  
13916  	// prefix
13917  	Prefix *uint32 `json:"prefix,omitempty"`
13918  
13919  	// proxy_all
13920  	ProxyAll *bool `json:"proxy_all,omitempty"`
13921  
13922  	// site
13923  	Site *string `json:"site,omitempty"`
13924  
13925  	// subscriber_id
13926  	SubscriberId *string `json:"subscriber_id,omitempty"`
13927  
13928  	// subscriber_secure_policy
13929  	SubscriberSecurePolicy *string `json:"subscriber_secure_policy,omitempty"`
13930  
13931  	// unknown_category_policy
13932  	UnknownCategoryPolicy *bool `json:"unknown_category_policy,omitempty"`
13933  
13934  	// white_list
13935  	WhiteList *string `json:"white_list,omitempty"`
13936  
13937  	// wpc_category_policy
13938  	WpcCategoryPolicy *string `json:"wpc_category_policy,omitempty"`
13939  }
13940  
13941  func (ParentalcontrolSubscriberrecord) ObjectType() string {
13942  	return "parentalcontrol:subscriberrecord"
13943  }
13944  
13945  func (obj ParentalcontrolSubscriberrecord) ReturnFields() []string {
13946  	if obj.returnFields == nil {
13947  		obj.returnFields = []string{"accounting_session_id", "ip_addr", "ipsd", "localid", "prefix", "site", "subscriber_id"}
13948  	}
13949  	return obj.returnFields
13950  }
13951  
13952  // ParentalcontrolSubscribersite represents Infoblox object parentalcontrol:subscribersite.
13953  // This object represents a set of parental control properties for subscriber
13954  // site.
13955  type ParentalcontrolSubscribersite struct {
13956  	IBBase `json:"-"`
13957  
13958  	Ref string `json:"_ref,omitempty"`
13959  
13960  	// The list of ABS for the site.
13961  	Abss []*ParentalcontrolAbs `json:"abss,omitempty"`
13962  
13963  	// The size of the Deterministic NAT block-size.
13964  	BlockSize *uint32 `json:"block_size,omitempty"`
13965  
13966  	// The IPv4 Address of the blocking server.
13967  	BlockingIpv4Vip1 *string `json:"blocking_ipv4_vip1,omitempty"`
13968  
13969  	// The IPv4 Address of the blocking server.
13970  	BlockingIpv4Vip2 *string `json:"blocking_ipv4_vip2,omitempty"`
13971  
13972  	// The IPv6 Address of the blocking server.
13973  	BlockingIpv6Vip1 *string `json:"blocking_ipv6_vip1,omitempty"`
13974  
13975  	// The IPv6 Address of the blocking server.
13976  	BlockingIpv6Vip2 *string `json:"blocking_ipv6_vip2,omitempty"`
13977  
13978  	// The human readable comment for the site.
13979  	Comment *string `json:"comment,omitempty"`
13980  
13981  	// Enable/disable the DCA subscriber B/W list support.
13982  	DcaSubBwList *bool `json:"dca_sub_bw_list,omitempty"`
13983  
13984  	// Enable/disable the DCA subscriber query count.
13985  	DcaSubQueryCount *bool `json:"dca_sub_query_count,omitempty"`
13986  
13987  	// Extensible attributes associated with the object. For valid values for
13988  	// extensible attributes, see {extattrs:values}.
13989  	Ea EA `json:"extattrs"`
13990  
13991  	// The start of the first Deterministic block.
13992  	FirstPort *uint32 `json:"first_port,omitempty"`
13993  
13994  	// The max number of subscribers for the site. It is used to configure the
13995  	// cache size.
13996  	MaximumSubscribers *uint32 `json:"maximum_subscribers,omitempty"`
13997  
13998  	// The list of members for the site.
13999  	Members []*ParentalcontrolSitemember `json:"members,omitempty"`
14000  
14001  	// The list of MSP for the site.
14002  	Msps []*ParentalcontrolMsp `json:"msps,omitempty"`
14003  
14004  	// The name of the site.
14005  	Name string `json:"name,omitempty"`
14006  
14007  	// The list of accounting log servers.
14008  	NasGateways []*ParentalcontrolNasgateway `json:"nas_gateways,omitempty"`
14009  
14010  	// The port number to reach the collector.
14011  	NasPort *uint32 `json:"nas_port,omitempty"`
14012  
14013  	// Enables Proxy RPZ PASSTGHRU.
14014  	ProxyRpzPassthru *bool `json:"proxy_rpz_passthru,omitempty"`
14015  
14016  	// The list of SPM for the site.
14017  	Spms []*ParentalcontrolSpm `json:"spms,omitempty"`
14018  
14019  	// Stop the anycast service when the subscriber service is in the interim
14020  	// state.
14021  	StopAnycast *bool `json:"stop_anycast,omitempty"`
14022  
14023  	// Restrict subscriber cache entries to NATed clients.
14024  	StrictNat *bool `json:"strict_nat,omitempty"`
14025  }
14026  
14027  func (ParentalcontrolSubscribersite) ObjectType() string {
14028  	return "parentalcontrol:subscribersite"
14029  }
14030  
14031  func (obj ParentalcontrolSubscribersite) ReturnFields() []string {
14032  	if obj.returnFields == nil {
14033  		obj.returnFields = []string{"block_size", "dca_sub_bw_list", "dca_sub_query_count", "first_port", "name", "stop_anycast", "strict_nat"}
14034  	}
14035  	return obj.returnFields
14036  }
14037  
14038  // Permission represents Infoblox object permission.
14039  // Limited-access admin groups can access certain DHCP resources only if their
14040  // administrative permissions are defined. By default, the appliance denies
14041  // access when a limited-access admin group does not have defined permissions.
14042  // You can grant admin groups read-only or read/write permission, or deny
14043  // access by using this object.
14044  type Permission struct {
14045  	IBBase `json:"-"`
14046  
14047  	Ref string `json:"_ref,omitempty"`
14048  
14049  	// The name of the admin group this permission applies to.
14050  	Group *string `json:"group,omitempty"`
14051  
14052  	// A reference to a WAPI object, which will be the object this permission
14053  	// applies to.
14054  	Object *string `json:"object,omitempty"`
14055  
14056  	// The type of permission.
14057  	Permission string `json:"permission,omitempty"`
14058  
14059  	// The type of resource this permission applies to. If 'object' is set, the
14060  	// permission is going to apply to child objects of the specified type, for
14061  	// example if 'object' was set to an authoritative zone reference and
14062  	// 'resource_type' was set to 'A', the permission would apply to A Resource
14063  	// Records within the specified zone.
14064  	ResourceType string `json:"resource_type,omitempty"`
14065  
14066  	// The name of the role this permission applies to.
14067  	Role *string `json:"role,omitempty"`
14068  }
14069  
14070  func (Permission) ObjectType() string {
14071  	return "permission"
14072  }
14073  
14074  func (obj Permission) ReturnFields() []string {
14075  	if obj.returnFields == nil {
14076  		obj.returnFields = []string{"group", "permission", "resource_type", "role"}
14077  	}
14078  	return obj.returnFields
14079  }
14080  
14081  // PxgridEndpoint represents Infoblox object pxgrid:endpoint.
14082  // The pxgrid endpoint object represents the settings of a particular PXGRID
14083  // endpoint.
14084  type PxgridEndpoint struct {
14085  	IBBase `json:"-"`
14086  
14087  	Ref string `json:"_ref,omitempty"`
14088  
14089  	// The pxgrid endpoint IPv4 Address or IPv6 Address or Fully-Qualified Domain
14090  	// Name (FQDN)
14091  	Address *string `json:"address,omitempty"`
14092  
14093  	// The Cisco ISE client certificate subject.
14094  	ClientCertificateSubject string `json:"client_certificate_subject,omitempty"`
14095  
14096  	// The token returned by the uploadinit function call in object fileop for
14097  	// Cisco ISE client certificate.
14098  	ClientCertificateToken *string `json:"client_certificate_token,omitempty"`
14099  
14100  	// The pxgrid endpoint client certificate valid from.
14101  	ClientCertificateValidFrom *UnixTime `json:"client_certificate_valid_from,omitempty"`
14102  
14103  	// The pxgrid endpoint client certificate valid to.
14104  	ClientCertificateValidTo *UnixTime `json:"client_certificate_valid_to,omitempty"`
14105  
14106  	// The Cisco ISE endpoint descriptive comment.
14107  	Comment *string `json:"comment,omitempty"`
14108  
14109  	// Determines whether a Cisco ISE endpoint is disabled or not. When this is set
14110  	// to False, the Cisco ISE endpoint is enabled.
14111  	Disable *bool `json:"disable,omitempty"`
14112  
14113  	// Extensible attributes associated with the object. For valid values for
14114  	// extensible attributes, see {extattrs:values}.
14115  	Ea EA `json:"extattrs"`
14116  
14117  	// The log level for a notification pxgrid endpoint.
14118  	LogLevel string `json:"log_level,omitempty"`
14119  
14120  	// The name of the pxgrid endpoint.
14121  	Name *string `json:"name,omitempty"`
14122  
14123  	// The pxgrid network view name.
14124  	NetworkView *string `json:"network_view,omitempty"`
14125  
14126  	// The outbound member that will generate events.
14127  	OutboundMemberType string `json:"outbound_member_type,omitempty"`
14128  
14129  	// The list of members for outbound events.
14130  	OutboundMembers []string `json:"outbound_members,omitempty"`
14131  
14132  	// The Cisco ISE publish settings.
14133  	PublishSettings *CiscoisePublishsetting `json:"publish_settings,omitempty"`
14134  
14135  	// The Cisco ISE subscribe settings.
14136  	SubscribeSettings *CiscoiseSubscribesetting `json:"subscribe_settings,omitempty"`
14137  
14138  	// The Pxgrid template instance. You cannot change the parameters of the pxgrid
14139  	// endpoint template instance.
14140  	TemplateInstance *NotificationRestTemplateinstance `json:"template_instance,omitempty"`
14141  
14142  	// The timeout of session management (in seconds).
14143  	Timeout *uint32 `json:"timeout,omitempty"`
14144  
14145  	// The vendor identifier.
14146  	VendorIdentifier *string `json:"vendor_identifier,omitempty"`
14147  
14148  	// The user name for WAPI integration.
14149  	WapiUserName *string `json:"wapi_user_name,omitempty"`
14150  
14151  	// The user password for WAPI integration.
14152  	WapiUserPassword *string `json:"wapi_user_password,omitempty"`
14153  }
14154  
14155  func (PxgridEndpoint) ObjectType() string {
14156  	return "pxgrid:endpoint"
14157  }
14158  
14159  func (obj PxgridEndpoint) ReturnFields() []string {
14160  	if obj.returnFields == nil {
14161  		obj.returnFields = []string{"address", "disable", "name", "outbound_member_type"}
14162  	}
14163  	return obj.returnFields
14164  }
14165  
14166  // RadiusAuthservice represents Infoblox object radius:authservice.
14167  // RADIUS provides authentication, accounting, and authorization functions.
14168  type RadiusAuthservice struct {
14169  	IBBase `json:"-"`
14170  
14171  	Ref string `json:"_ref,omitempty"`
14172  
14173  	// The number of times to attempt to contact an accounting RADIUS server.
14174  	AcctRetries *uint32 `json:"acct_retries,omitempty"`
14175  
14176  	// The number of seconds to wait for a response from the RADIUS server.
14177  	AcctTimeout *uint32 `json:"acct_timeout,omitempty"`
14178  
14179  	// The number of times to attempt to contact an authentication RADIUS server.
14180  	AuthRetries *uint32 `json:"auth_retries,omitempty"`
14181  
14182  	// The number of seconds to wait for a response from the RADIUS server.
14183  	AuthTimeout *uint32 `json:"auth_timeout,omitempty"`
14184  
14185  	// The TTL of cached authentication data in seconds.
14186  	CacheTtl *uint32 `json:"cache_ttl,omitempty"`
14187  
14188  	// The RADIUS descriptive comment.
14189  	Comment *string `json:"comment,omitempty"`
14190  
14191  	// Determines whether the RADIUS authentication service is disabled.
14192  	Disable *bool `json:"disable,omitempty"`
14193  
14194  	// Determines whether the authentication cache is enabled.
14195  	EnableCache *bool `json:"enable_cache,omitempty"`
14196  
14197  	// The way to contact the RADIUS server.
14198  	Mode string `json:"mode,omitempty"`
14199  
14200  	// The RADIUS authentication service name.
14201  	Name *string `json:"name,omitempty"`
14202  
14203  	// The time period to wait before retrying a server that has been marked as
14204  	// down.
14205  	RecoveryInterval *uint32 `json:"recovery_interval,omitempty"`
14206  
14207  	// The ordered list of RADIUS authentication servers.
14208  	Servers []*RadiusServer `json:"servers,omitempty"`
14209  }
14210  
14211  func (RadiusAuthservice) ObjectType() string {
14212  	return "radius:authservice"
14213  }
14214  
14215  func (obj RadiusAuthservice) ReturnFields() []string {
14216  	if obj.returnFields == nil {
14217  		obj.returnFields = []string{"comment", "disable", "name"}
14218  	}
14219  	return obj.returnFields
14220  }
14221  
14222  // Range represents Infoblox object range.
14223  // A DHCP range defines the specified range of IP addresses in a network. A
14224  // DHCP range should be added for a network so the Infoblox appliance can
14225  // assign IP addresses within that specified range to DHCP clients. If the
14226  // client is on a network that is assigned a DHCP range, the device distributes
14227  // an available IP address from that range to the DHCP client, or to a DHCP
14228  // relay agent if the request came through an agent. The DHCP range should also
14229  // be assigned with a device. If devices are in a grid, the particular member
14230  // serving DHCP for the DHCP range must be specified. If the server is an
14231  // independent device, this device must be specified as the member that serves
14232  // the DHCP range.
14233  type Range struct {
14234  	IBBase `json:"-"`
14235  
14236  	Ref string `json:"_ref,omitempty"`
14237  
14238  	// This field controls whether only the DHCP server is allowed to update DNS,
14239  	// regardless of the DHCP clients requests.
14240  	AlwaysUpdateDns *bool `json:"always_update_dns,omitempty"`
14241  
14242  	// The bootfile name for the range. You can configure the DHCP server to
14243  	// support clients that use the boot file name option in their DHCPREQUEST
14244  	// messages.
14245  	Bootfile *string `json:"bootfile,omitempty"`
14246  
14247  	// The bootserver address for the range. You can specify the name and/or IP
14248  	// address of the boot server that the host needs to boot. The boot server IPv4
14249  	// Address or name in FQDN format.
14250  	Bootserver *string `json:"bootserver,omitempty"`
14251  
14252  	// Structure containing all cloud API related information for this object.
14253  	CloudInfo *GridCloudapiInfo `json:"cloud_info,omitempty"`
14254  
14255  	// Comment for the range; maximum 256 characters.
14256  	Comment *string `json:"comment,omitempty"`
14257  
14258  	// The dynamic DNS domain name the appliance uses specifically for DDNS updates
14259  	// for this range.
14260  	DdnsDomainname *string `json:"ddns_domainname,omitempty"`
14261  
14262  	// If this field is set to True, the DHCP server generates a hostname and
14263  	// updates DNS with it when the DHCP client request does not contain a
14264  	// hostname.
14265  	DdnsGenerateHostname *bool `json:"ddns_generate_hostname,omitempty"`
14266  
14267  	// If True, send NAK forcing the client to take the new address.
14268  	DenyAllClients *bool `json:"deny_all_clients,omitempty"`
14269  
14270  	// If set to true, BOOTP settings are disabled and BOOTP requests will be
14271  	// denied.
14272  	DenyBootp *bool `json:"deny_bootp,omitempty"`
14273  
14274  	// The percentage of the total DHCP utilization of the range multiplied by
14275  	// 1000. This is the percentage of the total number of available IP addresses
14276  	// belonging to the range versus the total number of all IP addresses in the
14277  	// range.
14278  	DhcpUtilization uint32 `json:"dhcp_utilization,omitempty"`
14279  
14280  	// A string describing the utilization level of the range.
14281  	DhcpUtilizationStatus string `json:"dhcp_utilization_status,omitempty"`
14282  
14283  	// Determines whether a range is disabled or not. When this is set to False,
14284  	// the range is enabled.
14285  	Disable *bool `json:"disable,omitempty"`
14286  
14287  	// Discover now status for this range.
14288  	DiscoverNowStatus string `json:"discover_now_status,omitempty"`
14289  
14290  	// The discovery basic poll settings for this range.
14291  	DiscoveryBasicPollSettings *DiscoveryBasicpollsettings `json:"discovery_basic_poll_settings,omitempty"`
14292  
14293  	// The discovery blackout setting for this range.
14294  	DiscoveryBlackoutSetting *PropertiesBlackoutsetting `json:"discovery_blackout_setting,omitempty"`
14295  
14296  	// The member that will run discovery for this range.
14297  	DiscoveryMember *string `json:"discovery_member,omitempty"`
14298  
14299  	// The total number of DHCP leases issued for the range.
14300  	DynamicHosts uint32 `json:"dynamic_hosts,omitempty"`
14301  
14302  	// The e-mail lists to which the appliance sends DHCP threshold alarm e-mail
14303  	// messages.
14304  	EmailList []string `json:"email_list,omitempty"`
14305  
14306  	// The dynamic DNS updates flag of a DHCP range object. If set to True, the
14307  	// DHCP server sends DDNS updates to DNS servers in the same Grid, and to
14308  	// external DNS servers.
14309  	EnableDdns *bool `json:"enable_ddns,omitempty"`
14310  
14311  	// Determines if DHCP thresholds are enabled for the range.
14312  	EnableDhcpThresholds *bool `json:"enable_dhcp_thresholds,omitempty"`
14313  
14314  	// Determines whether a discovery is enabled or not for this range. When this
14315  	// is set to False, the discovery for this range is disabled.
14316  	EnableDiscovery *bool `json:"enable_discovery,omitempty"`
14317  
14318  	// Determines if DHCP threshold warnings are sent through email.
14319  	EnableEmailWarnings *bool `json:"enable_email_warnings,omitempty"`
14320  
14321  	// Determines if IFMAP publishing is enabled for the range.
14322  	EnableIfmapPublishing *bool `json:"enable_ifmap_publishing,omitempty"`
14323  
14324  	// Determines if the discovery for the range should be immediately enabled.
14325  	EnableImmediateDiscovery *bool `json:"enable_immediate_discovery,omitempty"`
14326  
14327  	// Set this to True if you want the DHCP server to use a different lease time
14328  	// for PXE clients.
14329  	EnablePxeLeaseTime *bool `json:"enable_pxe_lease_time,omitempty"`
14330  
14331  	// Determines if DHCP threshold warnings are send through SNMP.
14332  	EnableSnmpWarnings *bool `json:"enable_snmp_warnings,omitempty"`
14333  
14334  	// The IPv4 Address end address of the range.
14335  	EndAddr *string `json:"end_addr,omitempty"`
14336  
14337  	// The endpoints that provides data for the DHCP Range object.
14338  	EndpointSources []*CiscoiseEndpoint `json:"endpoint_sources,omitempty"`
14339  
14340  	// These are ranges of IP addresses that the appliance does not use to assign
14341  	// to clients. You can use these exclusion addresses as static IP addresses.
14342  	// They contain the start and end addresses of the exclusion range, and
14343  	// optionally, information about this exclusion range.
14344  	Exclude []*Exclusionrange `json:"exclude,omitempty"`
14345  
14346  	// Extensible attributes associated with the object. For valid values for
14347  	// extensible attributes, see {extattrs:values}.
14348  	Ea EA `json:"extattrs"`
14349  
14350  	// The name of the failover association: the server in this failover
14351  	// association will serve the IPv4 range in case the main server is out of
14352  	// service. {range:range} must be set to 'FAILOVER' or 'FAILOVER_MS' if you
14353  	// want the failover association specified here to serve the range.
14354  	FailoverAssociation *string `json:"failover_association,omitempty"`
14355  
14356  	// This field contains the fingerprint filters for this DHCP range. The
14357  	// appliance uses matching rules in these filters to select the address range
14358  	// from which it assigns a lease.
14359  	FingerprintFilterRules []*Filterrule `json:"fingerprint_filter_rules,omitempty"`
14360  
14361  	// The percentage of DHCP range usage threshold above which range usage is not
14362  	// expected and may warrant your attention. When the high watermark is reached,
14363  	// the Infoblox appliance generates a syslog message and sends a warning (if
14364  	// enabled). A number that specifies the percentage of allocated addresses. The
14365  	// range is from 1 to 100.
14366  	HighWaterMark *uint32 `json:"high_water_mark,omitempty"`
14367  
14368  	// The percentage of DHCP range usage below which the corresponding SNMP trap
14369  	// is reset. A number that specifies the percentage of allocated addresses. The
14370  	// range is from 1 to 100. The high watermark reset value must be lower than
14371  	// the high watermark value.
14372  	HighWaterMarkReset *uint32 `json:"high_water_mark_reset,omitempty"`
14373  
14374  	// If this field is set to False, the appliance returns all DHCP options the
14375  	// client is eligible to receive, rather than only the list of options the
14376  	// client has requested.
14377  	IgnoreDhcpOptionListRequest *bool `json:"ignore_dhcp_option_list_request,omitempty"`
14378  
14379  	// Indicates whether the appliance will ignore DHCP client IDs or MAC
14380  	// addresses. Valid values are "NONE", "CLIENT", or "MACADDR". The default is
14381  	// "NONE".
14382  	IgnoreId string `json:"ignore_id,omitempty"`
14383  
14384  	// A list of MAC addresses the appliance will ignore.
14385  	IgnoreMacAddresses []string `json:"ignore_mac_addresses,omitempty"`
14386  
14387  	// This field will be 'true' if this particular range is part of a split scope.
14388  	IsSplitScope bool `json:"is_split_scope,omitempty"`
14389  
14390  	// Permission for known clients. This can be 'Allow' or 'Deny'. If set to
14391  	// 'Deny' known clients will be denied IP addresses. Known clients include
14392  	// roaming hosts and clients with fixed addresses or DHCP host entries. Unknown
14393  	// clients include clients that are not roaming hosts and clients that do not
14394  	// have fixed addresses or DHCP host entries.
14395  	KnownClients *string `json:"known_clients,omitempty"`
14396  
14397  	// An integer that specifies the period of time (in seconds) that frees and
14398  	// backs up leases remained in the database before they are automatically
14399  	// deleted. To disable lease scavenging, set the parameter to -1. The minimum
14400  	// positive value must be greater than 86400 seconds (1 day).
14401  	LeaseScavengeTime int `json:"lease_scavenge_time,omitempty"`
14402  
14403  	// This field contains the logic filters to be applied to this range. This list
14404  	// corresponds to the match rules that are written to the dhcpd configuration
14405  	// file.
14406  	LogicFilterRules []*Logicfilterrule `json:"logic_filter_rules,omitempty"`
14407  
14408  	// The percentage of DHCP range usage below which the Infoblox appliance
14409  	// generates a syslog message and sends a warning (if enabled). A number that
14410  	// specifies the percentage of allocated addresses. The range is from 1 to 100.
14411  	LowWaterMark *uint32 `json:"low_water_mark,omitempty"`
14412  
14413  	// The percentage of DHCP range usage threshold below which range usage is not
14414  	// expected and may warrant your attention. When the low watermark is crossed,
14415  	// the Infoblox appliance generates a syslog message and sends a warning (if
14416  	// enabled). A number that specifies the percentage of allocated addresses. The
14417  	// range is from 1 to 100. The low watermark reset value must be higher than
14418  	// the low watermark value.
14419  	LowWaterMarkReset *uint32 `json:"low_water_mark_reset,omitempty"`
14420  
14421  	// This field contains the MAC filters to be applied to this range. The
14422  	// appliance uses the matching rules of these filters to select the address
14423  	// range from which it assigns a lease.
14424  	MacFilterRules []*Filterrule `json:"mac_filter_rules,omitempty"`
14425  
14426  	// The member that will provide service for this range. {range:range} needs to
14427  	// be set to 'MEMBER' if you want the server specified here to serve the range.
14428  	// For searching by this field you should use a HTTP method that contains a
14429  	// body (POST or PUT) with Dhcp Member structure dhcpmember and the request
14430  	// should have option _method=GET.
14431  	Member *Dhcpmember `json:"member,omitempty"`
14432  
14433  	// The Microsoft Active Directory user related information.
14434  	MsAdUserData *MsserverAduserData `json:"ms_ad_user_data,omitempty"`
14435  
14436  	// This field contains the Microsoft DHCP options for this range.
14437  	MsOptions []*Msdhcpoption `json:"ms_options,omitempty"`
14438  
14439  	// The Microsoft server that will provide service for this range. {range:range}
14440  	// needs to be set to 'MS_SERVER' if you want the server specified here to
14441  	// serve the range. For searching by this field you should use a HTTP method
14442  	// that contains a body (POST or PUT) with MS DHCP server structure
14443  	// msdhcpserver and the request should have option _method=GET.
14444  	MsServer *Msdhcpserver `json:"ms_server,omitempty"`
14445  
14446  	// This field contains the NAC filters to be applied to this range. The
14447  	// appliance uses the matching rules of these filters to select the address
14448  	// range from which it assigns a lease.
14449  	NacFilterRules []*Filterrule `json:"nac_filter_rules,omitempty"`
14450  
14451  	// This field contains the name of the Microsoft scope.
14452  	Name *string `json:"name,omitempty"`
14453  
14454  	// The network to which this range belongs, in IPv4 Address/CIDR format.
14455  	Network *string `json:"network,omitempty"`
14456  
14457  	// The name of the network view in which this range resides.
14458  	NetworkView *string `json:"network_view,omitempty"`
14459  
14460  	// The name in FQDN and/or IPv4 Address of the next server that the host needs
14461  	// to boot.
14462  	Nextserver *string `json:"nextserver,omitempty"`
14463  
14464  	// This field contains the Option filters to be applied to this range. The
14465  	// appliance uses the matching rules of these filters to select the address
14466  	// range from which it assigns a lease.
14467  	OptionFilterRules []*Filterrule `json:"option_filter_rules,omitempty"`
14468  
14469  	// An array of DHCP option dhcpoption structs that lists the DHCP options
14470  	// associated with the object.
14471  	Options []*Dhcpoption `json:"options,omitempty"`
14472  
14473  	// The port control blackout setting for this range.
14474  	PortControlBlackoutSetting *PropertiesBlackoutsetting `json:"port_control_blackout_setting,omitempty"`
14475  
14476  	// The PXE lease time value of a DHCP Range object. Some hosts use PXE (Preboot
14477  	// Execution Environment) to boot remotely from a server. To better manage your
14478  	// IP resources, set a different lease time for PXE boot requests. You can
14479  	// configure the DHCP server to allocate an IP address with a shorter lease
14480  	// time to hosts that send PXE boot requests, so IP addresses are not leased
14481  	// longer than necessary. A 32-bit unsigned integer that represents the
14482  	// duration, in seconds, for which the update is cached. Zero indicates that
14483  	// the update is not cached.
14484  	PxeLeaseTime *uint32 `json:"pxe_lease_time,omitempty"`
14485  
14486  	// If the field is set to True, the leases are kept in the Recycle Bin until
14487  	// one week after expiration. Otherwise, the leases are permanently deleted.
14488  	RecycleLeases *bool `json:"recycle_leases,omitempty"`
14489  
14490  	// This field contains the Relay Agent filters to be applied to this range. The
14491  	// appliance uses the matching rules of these filters to select the address
14492  	// range from which it assigns a lease.
14493  	RelayAgentFilterRules []*Filterrule `json:"relay_agent_filter_rules,omitempty"`
14494  
14495  	// Restarts the member service.
14496  	RestartIfNeeded *bool `json:"restart_if_needed,omitempty"`
14497  
14498  	// If the field is set to True, the discovery blackout setting will be used for
14499  	// port control blackout setting.
14500  	SamePortControlDiscoveryBlackout *bool `json:"same_port_control_discovery_blackout,omitempty"`
14501  
14502  	// The type of server that is going to serve the range.
14503  	ServerAssociationType string `json:"server_association_type,omitempty"`
14504  
14505  	// The Microsoft member to which the split scope is assigned. See
14506  	// {next_available_ip:next_available_ip} for more information
14507  	SplitMember *Msdhcpserver `json:"split_member,omitempty"`
14508  
14509  	// This field controls the percentage used when creating a split scope. Valid
14510  	// values are numbers between 1 and 99. If the value is 40, it means that the
14511  	// top 40% of the exclusion will be created on the DHCP range assigned to
14512  	// {next_available_ip:next_available_ip} and the lower 60% of the range will be
14513  	// assigned to DHCP range assigned to {next_available_ip:next_available_ip}
14514  	SplitScopeExclusionPercent uint32 `json:"split_scope_exclusion_percent,omitempty"`
14515  
14516  	// The IPv4 Address starting address of the range.
14517  	StartAddr *string `json:"start_addr,omitempty"`
14518  
14519  	// The number of static DHCP addresses configured in the range.
14520  	StaticHosts uint32 `json:"static_hosts,omitempty"`
14521  
14522  	// The DHCP Range Cisco ISE subscribe settings.
14523  	SubscribeSettings *CiscoiseSubscribesetting `json:"subscribe_settings,omitempty"`
14524  
14525  	// If set on creation, the range will be created according to the values
14526  	// specified in the named template.
14527  	Template string `json:"template,omitempty"`
14528  
14529  	// The total number of DHCP addresses configured in the range.
14530  	TotalHosts uint32 `json:"total_hosts,omitempty"`
14531  
14532  	// Permission for unknown clients. This can be 'Allow' or 'Deny'. If set to
14533  	// 'Deny', unknown clients will be denied IP addresses. Known clients include
14534  	// roaming hosts and clients with fixed addresses or DHCP host entries. Unknown
14535  	// clients include clients that are not roaming hosts and clients that do not
14536  	// have fixed addresses or DHCP host entries.
14537  	UnknownClients *string `json:"unknown_clients,omitempty"`
14538  
14539  	// This field controls whether the DHCP server updates DNS when a DHCP lease is
14540  	// renewed.
14541  	UpdateDnsOnLeaseRenewal *bool `json:"update_dns_on_lease_renewal,omitempty"`
14542  
14543  	// Use flag for: discovery_blackout_setting , port_control_blackout_setting,
14544  	// same_port_control_discovery_blackout
14545  	UseBlackoutSetting *bool `json:"use_blackout_setting,omitempty"`
14546  
14547  	// Use flag for: bootfile
14548  	UseBootfile *bool `json:"use_bootfile,omitempty"`
14549  
14550  	// Use flag for: bootserver
14551  	UseBootserver *bool `json:"use_bootserver,omitempty"`
14552  
14553  	// Use flag for: ddns_domainname
14554  	UseDdnsDomainname *bool `json:"use_ddns_domainname,omitempty"`
14555  
14556  	// Use flag for: ddns_generate_hostname
14557  	UseDdnsGenerateHostname *bool `json:"use_ddns_generate_hostname,omitempty"`
14558  
14559  	// Use flag for: deny_bootp
14560  	UseDenyBootp *bool `json:"use_deny_bootp,omitempty"`
14561  
14562  	// Use flag for: discovery_basic_poll_settings
14563  	UseDiscoveryBasicPollingSettings *bool `json:"use_discovery_basic_polling_settings,omitempty"`
14564  
14565  	// Use flag for: email_list
14566  	UseEmailList *bool `json:"use_email_list,omitempty"`
14567  
14568  	// Use flag for: enable_ddns
14569  	UseEnableDdns *bool `json:"use_enable_ddns,omitempty"`
14570  
14571  	// Use flag for: enable_dhcp_thresholds
14572  	UseEnableDhcpThresholds *bool `json:"use_enable_dhcp_thresholds,omitempty"`
14573  
14574  	// Use flag for: discovery_member , enable_discovery
14575  	UseEnableDiscovery *bool `json:"use_enable_discovery,omitempty"`
14576  
14577  	// Use flag for: enable_ifmap_publishing
14578  	UseEnableIfmapPublishing *bool `json:"use_enable_ifmap_publishing,omitempty"`
14579  
14580  	// Use flag for: ignore_dhcp_option_list_request
14581  	UseIgnoreDhcpOptionListRequest *bool `json:"use_ignore_dhcp_option_list_request,omitempty"`
14582  
14583  	// Use flag for: ignore_id
14584  	UseIgnoreId *bool `json:"use_ignore_id,omitempty"`
14585  
14586  	// Use flag for: known_clients
14587  	UseKnownClients *bool `json:"use_known_clients,omitempty"`
14588  
14589  	// Use flag for: lease_scavenge_time
14590  	UseLeaseScavengeTime *bool `json:"use_lease_scavenge_time,omitempty"`
14591  
14592  	// Use flag for: logic_filter_rules
14593  	UseLogicFilterRules *bool `json:"use_logic_filter_rules,omitempty"`
14594  
14595  	// Use flag for: ms_options
14596  	UseMsOptions *bool `json:"use_ms_options,omitempty"`
14597  
14598  	// Use flag for: nextserver
14599  	UseNextserver *bool `json:"use_nextserver,omitempty"`
14600  
14601  	// Use flag for: options
14602  	UseOptions *bool `json:"use_options,omitempty"`
14603  
14604  	// Use flag for: pxe_lease_time
14605  	UsePxeLeaseTime *bool `json:"use_pxe_lease_time,omitempty"`
14606  
14607  	// Use flag for: recycle_leases
14608  	UseRecycleLeases *bool `json:"use_recycle_leases,omitempty"`
14609  
14610  	// Use flag for: subscribe_settings
14611  	UseSubscribeSettings *bool `json:"use_subscribe_settings,omitempty"`
14612  
14613  	// Use flag for: unknown_clients
14614  	UseUnknownClients *bool `json:"use_unknown_clients,omitempty"`
14615  
14616  	// Use flag for: update_dns_on_lease_renewal
14617  	UseUpdateDnsOnLeaseRenewal *bool `json:"use_update_dns_on_lease_renewal,omitempty"`
14618  }
14619  
14620  func (Range) ObjectType() string {
14621  	return "range"
14622  }
14623  
14624  func (obj Range) ReturnFields() []string {
14625  	if obj.returnFields == nil {
14626  		obj.returnFields = []string{"comment", "end_addr", "network", "network_view", "start_addr"}
14627  	}
14628  	return obj.returnFields
14629  }
14630  
14631  // Rangetemplate represents Infoblox object rangetemplate.
14632  // The range template used to create a range objects in a quick and consistant
14633  // way. Range object created from a range template will inherit most properties
14634  // defined in range template object so most of the range template properties
14635  // are the same as the range object properties.
14636  type Rangetemplate struct {
14637  	IBBase `json:"-"`
14638  
14639  	Ref string `json:"_ref,omitempty"`
14640  
14641  	// The bootfile name for the range. You can configure the DHCP server to
14642  	// support clients that use the boot file name option in their DHCPREQUEST
14643  	// messages.
14644  	Bootfile *string `json:"bootfile,omitempty"`
14645  
14646  	// The bootserver address for the range. You can specify the name and/or IP
14647  	// address of the boot server that the host needs to boot. The boot server IPv4
14648  	// Address or name in FQDN format.
14649  	Bootserver *string `json:"bootserver,omitempty"`
14650  
14651  	// This flag controls whether this template can be used to create network
14652  	// objects in a cloud-computing deployment.
14653  	CloudApiCompatible *bool `json:"cloud_api_compatible,omitempty"`
14654  
14655  	// A descriptive comment of a range template object.
14656  	Comment *string `json:"comment,omitempty"`
14657  
14658  	// The dynamic DNS domain name the appliance uses specifically for DDNS updates
14659  	// for this range.
14660  	DdnsDomainname *string `json:"ddns_domainname,omitempty"`
14661  
14662  	// If this field is set to True, the DHCP server generates a hostname and
14663  	// updates DNS with it when the DHCP client request does not contain a
14664  	// hostname.
14665  	DdnsGenerateHostname *bool `json:"ddns_generate_hostname,omitempty"`
14666  
14667  	// The vconnector member that the object should be delegated to when created
14668  	// from this range template.
14669  	DelegatedMember *Dhcpmember `json:"delegated_member,omitempty"`
14670  
14671  	// If True, send NAK forcing the client to take the new address.
14672  	DenyAllClients *bool `json:"deny_all_clients,omitempty"`
14673  
14674  	// Determines if BOOTP settings are disabled and BOOTP requests will be denied.
14675  	DenyBootp *bool `json:"deny_bootp,omitempty"`
14676  
14677  	// The e-mail lists to which the appliance sends DHCP threshold alarm e-mail
14678  	// messages.
14679  	EmailList []string `json:"email_list,omitempty"`
14680  
14681  	// Determines if the DHCP server sends DDNS updates to DNS servers in the same
14682  	// Grid, and to external DNS servers.
14683  	EnableDdns *bool `json:"enable_ddns,omitempty"`
14684  
14685  	// Determines if DHCP thresholds are enabled for the range.
14686  	EnableDhcpThresholds *bool `json:"enable_dhcp_thresholds,omitempty"`
14687  
14688  	// Determines if DHCP threshold warnings are sent through email.
14689  	EnableEmailWarnings *bool `json:"enable_email_warnings,omitempty"`
14690  
14691  	// Set this to True if you want the DHCP server to use a different lease time
14692  	// for PXE clients.
14693  	EnablePxeLeaseTime *bool `json:"enable_pxe_lease_time,omitempty"`
14694  
14695  	// Determines if DHCP threshold warnings are sent through SNMP.
14696  	EnableSnmpWarnings *bool `json:"enable_snmp_warnings,omitempty"`
14697  
14698  	// These are ranges of IP addresses that the appliance does not use to assign
14699  	// to clients. You can use these exclusion addresses as static IP addresses.
14700  	// They contain the start and end addresses of the exclusion range, and
14701  	// optionally, information about this exclusion range.
14702  	Exclude []*Exclusionrangetemplate `json:"exclude,omitempty"`
14703  
14704  	// Extensible attributes associated with the object. For valid values for
14705  	// extensible attributes, see {extattrs:values}.
14706  	Ea EA `json:"extattrs"`
14707  
14708  	// The name of the failover association: the server in this failover
14709  	// association will serve the IPv4 range in case the main server is out of
14710  	// service. {rangetemplate:rangetemplate} must be set to 'FAILOVER' or
14711  	// 'FAILOVER_MS' if you want the failover association specified here to serve
14712  	// the range.
14713  	FailoverAssociation *string `json:"failover_association,omitempty"`
14714  
14715  	// This field contains the fingerprint filters for this DHCP range. The
14716  	// appliance uses matching rules in these filters to select the address range
14717  	// from which it assigns a lease.
14718  	FingerprintFilterRules []*Filterrule `json:"fingerprint_filter_rules,omitempty"`
14719  
14720  	// The percentage of DHCP range usage threshold above which range usage is not
14721  	// expected and may warrant your attention. When the high watermark is reached,
14722  	// the Infoblox appliance generates a syslog message and sends a warning (if
14723  	// enabled). A number that specifies the percentage of allocated addresses. The
14724  	// range is from 1 to 100.
14725  	HighWaterMark *uint32 `json:"high_water_mark,omitempty"`
14726  
14727  	// The percentage of DHCP range usage below which the corresponding SNMP trap
14728  	// is reset. A number that specifies the percentage of allocated addresses. The
14729  	// range is from 1 to 100. The high watermark reset value must be lower than
14730  	// the high watermark value.
14731  	HighWaterMarkReset *uint32 `json:"high_water_mark_reset,omitempty"`
14732  
14733  	// If this field is set to False, the appliance returns all DHCP options the
14734  	// client is eligible to receive, rather than only the list of options the
14735  	// client has requested.
14736  	IgnoreDhcpOptionListRequest *bool `json:"ignore_dhcp_option_list_request,omitempty"`
14737  
14738  	// Permission for known clients. If set to 'Deny' known clients will be denied
14739  	// IP addresses. Known clients include roaming hosts and clients with fixed
14740  	// addresses or DHCP host entries. Unknown clients include clients that are not
14741  	// roaming hosts and clients that do not have fixed addresses or DHCP host
14742  	// entries.
14743  	KnownClients string `json:"known_clients,omitempty"`
14744  
14745  	// An integer that specifies the period of time (in seconds) that frees and
14746  	// backs up leases remained in the database before they are automatically
14747  	// deleted. To disable lease scavenging, set the parameter to -1. The minimum
14748  	// positive value must be greater than 86400 seconds (1 day).
14749  	LeaseScavengeTime int `json:"lease_scavenge_time,omitempty"`
14750  
14751  	// This field contains the logic filters to be applied on this range. This list
14752  	// corresponds to the match rules that are written to the dhcpd configuration
14753  	// file.
14754  	LogicFilterRules []*Logicfilterrule `json:"logic_filter_rules,omitempty"`
14755  
14756  	// The percentage of DHCP range usage below which the Infoblox appliance
14757  	// generates a syslog message and sends a warning (if enabled). A number that
14758  	// specifies the percentage of allocated addresses. The range is from 1 to 100.
14759  	LowWaterMark *uint32 `json:"low_water_mark,omitempty"`
14760  
14761  	// The percentage of DHCP range usage threshold below which range usage is not
14762  	// expected and may warrant your attention. When the low watermark is crossed,
14763  	// the Infoblox appliance generates a syslog message and sends a warning (if
14764  	// enabled). A number that specifies the percentage of allocated addresses. The
14765  	// range is from 1 to 100. The low watermark reset value must be higher than
14766  	// the low watermark value.
14767  	LowWaterMarkReset *uint32 `json:"low_water_mark_reset,omitempty"`
14768  
14769  	// This field contains the MAC filters to be applied to this range. The
14770  	// appliance uses the matching rules of these filters to select the address
14771  	// range from which it assigns a lease.
14772  	MacFilterRules []*Filterrule `json:"mac_filter_rules,omitempty"`
14773  
14774  	// The member that will provide service for this range.
14775  	// {rangetemplate:rangetemplate} needs to be set to 'MEMBER' if you want the
14776  	// server specified here to serve the range. For searching by this field you
14777  	// should use a HTTP method that contains a body (POST or PUT) with Dhcp Member
14778  	// structure dhcpmember and the request should have option _method=GET.
14779  	Member *Dhcpmember `json:"member,omitempty"`
14780  
14781  	// The Microsoft DHCP options for this range.
14782  	MsOptions []*Msdhcpoption `json:"ms_options,omitempty"`
14783  
14784  	// The Microsoft server that will provide service for this range.
14785  	// {rangetemplate:rangetemplate} needs to be set to 'MS_SERVER' if you want the
14786  	// server specified here to serve the range. For searching by this field you
14787  	// should use a HTTP method that contains a body (POST or PUT) with MS DHCP
14788  	// server structure msdhcpserver and the request should have option
14789  	// _method=GET.
14790  	MsServer *Msdhcpserver `json:"ms_server,omitempty"`
14791  
14792  	// This field contains the NAC filters to be applied to this range. The
14793  	// appliance uses the matching rules of these filters to select the address
14794  	// range from which it assigns a lease.
14795  	NacFilterRules []*Filterrule `json:"nac_filter_rules,omitempty"`
14796  
14797  	// The name of a range template object.
14798  	Name *string `json:"name,omitempty"`
14799  
14800  	// The name in FQDN and/or IPv4 Address format of the next server that the host
14801  	// needs to boot.
14802  	Nextserver *string `json:"nextserver,omitempty"`
14803  
14804  	// The number of addresses for this range.
14805  	NumberOfAddresses *uint32 `json:"number_of_addresses,omitempty"`
14806  
14807  	// The start address offset for this range.
14808  	Offset *uint32 `json:"offset,omitempty"`
14809  
14810  	// This field contains the Option filters to be applied to this range. The
14811  	// appliance uses the matching rules of these filters to select the address
14812  	// range from which it assigns a lease.
14813  	OptionFilterRules []*Filterrule `json:"option_filter_rules,omitempty"`
14814  
14815  	// An array of DHCP option dhcpoption structs that lists the DHCP options
14816  	// associated with the object.
14817  	Options []*Dhcpoption `json:"options,omitempty"`
14818  
14819  	// The PXE lease time value for a range object. Some hosts use PXE (Preboot
14820  	// Execution Environment) to boot remotely from a server. To better manage your
14821  	// IP resources, set a different lease time for PXE boot requests. You can
14822  	// configure the DHCP server to allocate an IP address with a shorter lease
14823  	// time to hosts that send PXE boot requests, so IP addresses are not leased
14824  	// longer than necessary. A 32-bit unsigned integer that represents the
14825  	// duration, in seconds, for which the update is cached. Zero indicates that
14826  	// the update is not cached.
14827  	PxeLeaseTime *uint32 `json:"pxe_lease_time,omitempty"`
14828  
14829  	// If the field is set to True, the leases are kept in the Recycle Bin until
14830  	// one week after expiration. Otherwise, the leases are permanently deleted.
14831  	RecycleLeases *bool `json:"recycle_leases,omitempty"`
14832  
14833  	// This field contains the Relay Agent filters to be applied to this range. The
14834  	// appliance uses the matching rules of these filters to select the address
14835  	// range from which it assigns a lease.
14836  	RelayAgentFilterRules []*Filterrule `json:"relay_agent_filter_rules,omitempty"`
14837  
14838  	// The type of server that is going to serve the range.
14839  	ServerAssociationType string `json:"server_association_type,omitempty"`
14840  
14841  	// Permission for unknown clients. If set to 'Deny' unknown clients will be
14842  	// denied IP addresses. Known clients include roaming hosts and clients with
14843  	// fixed addresses or DHCP host entries. Unknown clients include clients that
14844  	// are not roaming hosts and clients that do not have fixed addresses or DHCP
14845  	// host entries.
14846  	UnknownClients string `json:"unknown_clients,omitempty"`
14847  
14848  	// This field controls whether the DHCP server updates DNS when a DHCP lease is
14849  	// renewed.
14850  	UpdateDnsOnLeaseRenewal *bool `json:"update_dns_on_lease_renewal,omitempty"`
14851  
14852  	// Use flag for: bootfile
14853  	UseBootfile *bool `json:"use_bootfile,omitempty"`
14854  
14855  	// Use flag for: bootserver
14856  	UseBootserver *bool `json:"use_bootserver,omitempty"`
14857  
14858  	// Use flag for: ddns_domainname
14859  	UseDdnsDomainname *bool `json:"use_ddns_domainname,omitempty"`
14860  
14861  	// Use flag for: ddns_generate_hostname
14862  	UseDdnsGenerateHostname *bool `json:"use_ddns_generate_hostname,omitempty"`
14863  
14864  	// Use flag for: deny_bootp
14865  	UseDenyBootp *bool `json:"use_deny_bootp,omitempty"`
14866  
14867  	// Use flag for: email_list
14868  	UseEmailList *bool `json:"use_email_list,omitempty"`
14869  
14870  	// Use flag for: enable_ddns
14871  	UseEnableDdns *bool `json:"use_enable_ddns,omitempty"`
14872  
14873  	// Use flag for: enable_dhcp_thresholds
14874  	UseEnableDhcpThresholds *bool `json:"use_enable_dhcp_thresholds,omitempty"`
14875  
14876  	// Use flag for: ignore_dhcp_option_list_request
14877  	UseIgnoreDhcpOptionListRequest *bool `json:"use_ignore_dhcp_option_list_request,omitempty"`
14878  
14879  	// Use flag for: known_clients
14880  	UseKnownClients *bool `json:"use_known_clients,omitempty"`
14881  
14882  	// Use flag for: lease_scavenge_time
14883  	UseLeaseScavengeTime *bool `json:"use_lease_scavenge_time,omitempty"`
14884  
14885  	// Use flag for: logic_filter_rules
14886  	UseLogicFilterRules *bool `json:"use_logic_filter_rules,omitempty"`
14887  
14888  	// Use flag for: ms_options
14889  	UseMsOptions *bool `json:"use_ms_options,omitempty"`
14890  
14891  	// Use flag for: nextserver
14892  	UseNextserver *bool `json:"use_nextserver,omitempty"`
14893  
14894  	// Use flag for: options
14895  	UseOptions *bool `json:"use_options,omitempty"`
14896  
14897  	// Use flag for: pxe_lease_time
14898  	UsePxeLeaseTime *bool `json:"use_pxe_lease_time,omitempty"`
14899  
14900  	// Use flag for: recycle_leases
14901  	UseRecycleLeases *bool `json:"use_recycle_leases,omitempty"`
14902  
14903  	// Use flag for: unknown_clients
14904  	UseUnknownClients *bool `json:"use_unknown_clients,omitempty"`
14905  
14906  	// Use flag for: update_dns_on_lease_renewal
14907  	UseUpdateDnsOnLeaseRenewal *bool `json:"use_update_dns_on_lease_renewal,omitempty"`
14908  }
14909  
14910  func (Rangetemplate) ObjectType() string {
14911  	return "rangetemplate"
14912  }
14913  
14914  func (obj Rangetemplate) ReturnFields() []string {
14915  	if obj.returnFields == nil {
14916  		obj.returnFields = []string{"comment", "name", "number_of_addresses", "offset"}
14917  	}
14918  	return obj.returnFields
14919  }
14920  
14921  // RecordA represents Infoblox object record:a.
14922  // An A (address) record maps a domain name to an IPv4 address. To define a
14923  // specific name-to-address mapping, add an A record to a previously defined
14924  // authoritative forward-mapping zone.
14925  type RecordA struct {
14926  	IBBase `json:"-"`
14927  
14928  	Ref string `json:"_ref,omitempty"`
14929  
14930  	// Aws Route 53 record information.
14931  	AwsRte53RecordInfo *Awsrte53recordinfo `json:"aws_rte53_record_info,omitempty"`
14932  
14933  	// Structure containing all cloud API related information for this object.
14934  	CloudInfo *GridCloudapiInfo `json:"cloud_info,omitempty"`
14935  
14936  	// Comment for the record; maximum 256 characters.
14937  	Comment *string `json:"comment,omitempty"`
14938  
14939  	// The time of the record creation in Epoch seconds format.
14940  	CreationTime *UnixTime `json:"creation_time,omitempty"`
14941  
14942  	// The record creator. Note that changing creator from or to 'SYSTEM' value is
14943  	// not allowed.
14944  	Creator string `json:"creator,omitempty"`
14945  
14946  	// The GSS-TSIG principal that owns this record.
14947  	DdnsPrincipal *string `json:"ddns_principal,omitempty"`
14948  
14949  	// Determines if the DDNS updates for this record are allowed or not.
14950  	DdnsProtected *bool `json:"ddns_protected,omitempty"`
14951  
14952  	// Determines if the record is disabled or not. False means that the record is
14953  	// enabled.
14954  	Disable *bool `json:"disable,omitempty"`
14955  
14956  	// The discovered data for this A record.
14957  	DiscoveredData *Discoverydata `json:"discovered_data,omitempty"`
14958  
14959  	// The name for an A record in punycode format.
14960  	DnsName string `json:"dns_name,omitempty"`
14961  
14962  	// Extensible attributes associated with the object. For valid values for
14963  	// extensible attributes, see {extattrs:values}.
14964  	Ea EA `json:"extattrs"`
14965  
14966  	// Determines if the reclamation is allowed for the record or not.
14967  	ForbidReclamation *bool `json:"forbid_reclamation,omitempty"`
14968  
14969  	// The IPv4 Address of the record.
14970  	Ipv4Addr *string `json:"ipv4addr,omitempty"`
14971  
14972  	// The time of the last DNS query in Epoch seconds format.
14973  	LastQueried *UnixTime `json:"last_queried,omitempty"`
14974  
14975  	// The Microsoft Active Directory user related information.
14976  	MsAdUserData *MsserverAduserData `json:"ms_ad_user_data,omitempty"`
14977  
14978  	// Name for A record in FQDN format. This value can be in unicode format.
14979  	Name *string `json:"name,omitempty"`
14980  
14981  	// Determines if the record is reclaimable or not.
14982  	Reclaimable bool `json:"reclaimable,omitempty"`
14983  
14984  	// Delete option that indicates whether the associated PTR records should be
14985  	// removed while deleting the specified A record.
14986  	RemoveAssociatedPtr bool `json:"remove_associated_ptr,omitempty"`
14987  
14988  	// The name of the shared record group in which the record resides. This field
14989  	// exists only on db_objects if this record is a shared record.
14990  	SharedRecordGroup string `json:"shared_record_group,omitempty"`
14991  
14992  	// The Time To Live (TTL) value for record. A 32-bit unsigned integer that
14993  	// represents the duration, in seconds, for which the record is valid (cached).
14994  	// Zero indicates that the record should not be cached.
14995  	Ttl *uint32 `json:"ttl,omitempty"`
14996  
14997  	// Use flag for: ttl
14998  	UseTtl *bool `json:"use_ttl,omitempty"`
14999  
15000  	// The name of the DNS view in which the record resides. Example: "external".
15001  	View string `json:"view,omitempty"`
15002  
15003  	// The name of the zone in which the record resides. Example: "zone.com". If a
15004  	// view is not specified when searching by zone, the default view is used.
15005  	Zone string `json:"zone,omitempty"`
15006  }
15007  
15008  func (RecordA) ObjectType() string {
15009  	return "record:a"
15010  }
15011  
15012  func (obj RecordA) ReturnFields() []string {
15013  	if obj.returnFields == nil {
15014  		obj.returnFields = []string{"ipv4addr", "name", "view"}
15015  	}
15016  	return obj.returnFields
15017  }
15018  
15019  func NewEmptyRecordA() *RecordA {
15020  	res := &RecordA{}
15021  	res.returnFields = []string{
15022  		"extattrs", "ipv4addr", "name", "view", "zone", "comment", "ttl", "use_ttl"}
15023  
15024  	return res
15025  }
15026  
15027  func NewRecordA(
15028  	view string,
15029  	zone string,
15030  	name string,
15031  	ipAddr string,
15032  	ttl uint32,
15033  	useTTL bool,
15034  	comment string,
15035  	eas EA,
15036  	ref string) *RecordA {
15037  
15038  	res := NewEmptyRecordA()
15039  	res.View = view
15040  	res.Zone = zone
15041  	res.Name = &name
15042  	res.Ipv4Addr = &ipAddr
15043  	res.Ttl = &ttl
15044  	res.UseTtl = &useTTL
15045  	res.Comment = &comment
15046  	res.Ea = eas
15047  	res.Ref = ref
15048  
15049  	return res
15050  }
15051  
15052  // RecordAAAA represents Infoblox object record:aaaa.
15053  // An AAAA (address) record maps a domain name to an IPv6 address. To define a
15054  // specific name-to-address mapping, add an AAAA record to a previously defined
15055  // authoritative forward-mapping zone.
15056  type RecordAAAA struct {
15057  	IBBase `json:"-"`
15058  
15059  	Ref string `json:"_ref,omitempty"`
15060  
15061  	// Aws Route 53 record information.
15062  	AwsRte53RecordInfo *Awsrte53recordinfo `json:"aws_rte53_record_info,omitempty"`
15063  
15064  	// Structure containing all cloud API related information for this object.
15065  	CloudInfo *GridCloudapiInfo `json:"cloud_info,omitempty"`
15066  
15067  	// Comment for the record; maximum 256 characters.
15068  	Comment *string `json:"comment,omitempty"`
15069  
15070  	// The time of the record creation in Epoch seconds format.
15071  	CreationTime *UnixTime `json:"creation_time,omitempty"`
15072  
15073  	// The record creator. Note that changing creator from or to 'SYSTEM' value is
15074  	// not allowed.
15075  	Creator string `json:"creator,omitempty"`
15076  
15077  	// The GSS-TSIG principal that owns this record.
15078  	DdnsPrincipal *string `json:"ddns_principal,omitempty"`
15079  
15080  	// Determines if the DDNS updates for this record are allowed or not.
15081  	DdnsProtected *bool `json:"ddns_protected,omitempty"`
15082  
15083  	// Determines if the record is disabled or not. False means that the record is
15084  	// enabled.
15085  	Disable *bool `json:"disable,omitempty"`
15086  
15087  	// The discovered data for this AAAA record.
15088  	DiscoveredData *Discoverydata `json:"discovered_data,omitempty"`
15089  
15090  	// The name for an AAAA record in punycode format.
15091  	DnsName string `json:"dns_name,omitempty"`
15092  
15093  	// Extensible attributes associated with the object. For valid values for
15094  	// extensible attributes, see {extattrs:values}.
15095  	Ea EA `json:"extattrs"`
15096  
15097  	// Determines if the reclamation is allowed for the record or not.
15098  	ForbidReclamation *bool `json:"forbid_reclamation,omitempty"`
15099  
15100  	// The IPv6 Address of the record.
15101  	Ipv6Addr *string `json:"ipv6addr,omitempty"`
15102  
15103  	// The time of the last DNS query in Epoch seconds format.
15104  	LastQueried *UnixTime `json:"last_queried,omitempty"`
15105  
15106  	// The Microsoft Active Directory user related information.
15107  	MsAdUserData *MsserverAduserData `json:"ms_ad_user_data,omitempty"`
15108  
15109  	// Name for the AAAA record in FQDN format. This value can be in unicode
15110  	// format.
15111  	Name *string `json:"name,omitempty"`
15112  
15113  	// Determines if the record is reclaimable or not.
15114  	Reclaimable bool `json:"reclaimable,omitempty"`
15115  
15116  	// Delete option that indicates whether the associated PTR records should be
15117  	// removed while deleting the specified A record.
15118  	RemoveAssociatedPtr bool `json:"remove_associated_ptr,omitempty"`
15119  
15120  	// The name of the shared record group in which the record resides. This field
15121  	// exists only on db_objects if this record is a shared record.
15122  	SharedRecordGroup string `json:"shared_record_group,omitempty"`
15123  
15124  	// The Time To Live (TTL) value for the record. A 32-bit unsigned integer that
15125  	// represents the duration, in seconds, for which the record is valid (cached).
15126  	// Zero indicates that the record should not be cached.
15127  	Ttl *uint32 `json:"ttl,omitempty"`
15128  
15129  	// Use flag for: ttl
15130  	UseTtl *bool `json:"use_ttl,omitempty"`
15131  
15132  	// The name of the DNS view in which the record resides. Example: "external".
15133  	View string `json:"view,omitempty"`
15134  
15135  	// The name of the zone in which the record resides. Example: "zone.com". If a
15136  	// view is not specified when searching by zone, the default view is used.
15137  	Zone string `json:"zone,omitempty"`
15138  }
15139  
15140  func (RecordAAAA) ObjectType() string {
15141  	return "record:aaaa"
15142  }
15143  
15144  func (obj RecordAAAA) ReturnFields() []string {
15145  	if obj.returnFields == nil {
15146  		obj.returnFields = []string{"ipv6addr", "name", "view"}
15147  	}
15148  	return obj.returnFields
15149  }
15150  
15151  func NewEmptyRecordAAAA() *RecordAAAA {
15152  	res := &RecordAAAA{}
15153  	res.returnFields = []string{"extattrs", "ipv6addr", "name", "view", "zone", "use_ttl", "ttl", "comment"}
15154  
15155  	return res
15156  }
15157  
15158  func NewRecordAAAA(
15159  	view string,
15160  	name string,
15161  	ipAddr string,
15162  	useTtl bool,
15163  	ttl uint32,
15164  	comment string,
15165  	eas EA,
15166  	ref string) *RecordAAAA {
15167  
15168  	res := NewEmptyRecordAAAA()
15169  	res.View = view
15170  	res.Name = &name
15171  	res.Ipv6Addr = &ipAddr
15172  	res.UseTtl = &useTtl
15173  	res.Ttl = &ttl
15174  	res.Comment = &comment
15175  	res.Ea = eas
15176  	res.Ref = ref
15177  
15178  	return res
15179  }
15180  
15181  // RecordAlias represents Infoblox object record:alias.
15182  // Alias resource record allows you to create typed aliases for standard DNS
15183  // resource records which are resolved dynamically by an authoritative server.
15184  // Unlike CNAME Alias can be created in the zone apex.
15185  type RecordAlias struct {
15186  	IBBase `json:"-"`
15187  
15188  	Ref string `json:"_ref,omitempty"`
15189  
15190  	// Aws Route 53 record information.
15191  	AwsRte53RecordInfo *Awsrte53recordinfo `json:"aws_rte53_record_info,omitempty"`
15192  
15193  	// Structure containing all cloud API related information for this object.
15194  	CloudInfo *GridCloudapiInfo `json:"cloud_info,omitempty"`
15195  
15196  	// Comment for the record; maximum 256 characters.
15197  	Comment *string `json:"comment,omitempty"`
15198  
15199  	// The record creator.
15200  	Creator string `json:"creator,omitempty"`
15201  
15202  	// Determines if the record is disabled or not. False means that the record is
15203  	// enabled.
15204  	Disable *bool `json:"disable,omitempty"`
15205  
15206  	// The name for an Alias record in punycode format.
15207  	DnsName string `json:"dns_name,omitempty"`
15208  
15209  	// Target name in punycode format.
15210  	DnsTargetName string `json:"dns_target_name,omitempty"`
15211  
15212  	// Extensible attributes associated with the object. For valid values for
15213  	// extensible attributes, see {extattrs:values}.
15214  	Ea EA `json:"extattrs"`
15215  
15216  	// The time of the last DNS query in Epoch seconds format.
15217  	LastQueried *UnixTime `json:"last_queried,omitempty"`
15218  
15219  	// The name for an Alias record in FQDN format. This value can be in unicode
15220  	// format. Regular expression search is not supported for unicode values.
15221  	Name *string `json:"name,omitempty"`
15222  
15223  	// Target name in FQDN format. This value can be in unicode format.
15224  	TargetName *string `json:"target_name,omitempty"`
15225  
15226  	// Target type.
15227  	TargetType string `json:"target_type,omitempty"`
15228  
15229  	// The Time To Live (TTL) value for record. A 32-bit unsigned integer that
15230  	// represents the duration, in seconds, for which the record is valid (cached).
15231  	// Zero indicates that the record should not be cached.
15232  	Ttl *uint32 `json:"ttl,omitempty"`
15233  
15234  	// Use flag for: ttl
15235  	UseTtl *bool `json:"use_ttl,omitempty"`
15236  
15237  	// The name of the DNS View in which the record resides. Example: "external".
15238  	View *string `json:"view,omitempty"`
15239  
15240  	// The name of the zone in which the record resides. Example: "zone.com". If a
15241  	// view is not specified when searching by zone, the default view is used.
15242  	Zone string `json:"zone,omitempty"`
15243  }
15244  
15245  func (RecordAlias) ObjectType() string {
15246  	return "record:alias"
15247  }
15248  
15249  func (obj RecordAlias) ReturnFields() []string {
15250  	if obj.returnFields == nil {
15251  		obj.returnFields = []string{"name", "target_name", "target_type", "view"}
15252  	}
15253  	return obj.returnFields
15254  }
15255  
15256  // RecordCaa represents Infoblox object record:caa.
15257  // The Certification Authority Authorization (CAA) DNS resource record (RR) is
15258  // used to specify which certificate authorities (CAs) are allowed to issue
15259  // certificates for a domain. For further details see RFC-6844.
15260  type RecordCaa struct {
15261  	IBBase `json:"-"`
15262  
15263  	Ref string `json:"_ref,omitempty"`
15264  
15265  	// Flag of CAA record.
15266  	CaFlag *uint32 `json:"ca_flag,omitempty"`
15267  
15268  	// Tag of CAA record.
15269  	CaTag *string `json:"ca_tag,omitempty"`
15270  
15271  	// Value of CAA record
15272  	CaValue *string `json:"ca_value,omitempty"`
15273  
15274  	// Structure containing all cloud API related information for this object.
15275  	CloudInfo *GridCloudapiInfo `json:"cloud_info,omitempty"`
15276  
15277  	// Comment for the record; maximum 256 characters.
15278  	Comment *string `json:"comment,omitempty"`
15279  
15280  	// The creation time of the record.
15281  	CreationTime *UnixTime `json:"creation_time,omitempty"`
15282  
15283  	// The record creator. Note that changing creator from or to 'SYSTEM' value is
15284  	// not allowed.
15285  	Creator string `json:"creator,omitempty"`
15286  
15287  	// The GSS-TSIG principal that owns this record.
15288  	DdnsPrincipal *string `json:"ddns_principal,omitempty"`
15289  
15290  	// Determines if the DDNS updates for this record are allowed or not.
15291  	DdnsProtected *bool `json:"ddns_protected,omitempty"`
15292  
15293  	// Determines if the record is disabled or not. False means that the record is
15294  	// enabled.
15295  	Disable *bool `json:"disable,omitempty"`
15296  
15297  	// The name of the CAA record in punycode format.
15298  	DnsName string `json:"dns_name,omitempty"`
15299  
15300  	// Extensible attributes associated with the object. For valid values for
15301  	// extensible attributes, see {extattrs:values}.
15302  	Ea EA `json:"extattrs"`
15303  
15304  	// Determines if the reclamation is allowed for the record or not.
15305  	ForbidReclamation *bool `json:"forbid_reclamation,omitempty"`
15306  
15307  	// The time of the last DNS query in Epoch seconds format.
15308  	LastQueried *UnixTime `json:"last_queried,omitempty"`
15309  
15310  	// The CAA record name in FQDN format. This value can be in unicode format.
15311  	Name *string `json:"name,omitempty"`
15312  
15313  	// Determines if the record is reclaimable or not.
15314  	Reclaimable bool `json:"reclaimable,omitempty"`
15315  
15316  	// The Time to Live (TTL) value for the record. A 32-bit unsigned integer that
15317  	// represents the duration, in seconds, for which the record is valid (cached).
15318  	// Zero indicates that the record should not be cached.
15319  	Ttl *uint32 `json:"ttl,omitempty"`
15320  
15321  	// Use flag for: ttl
15322  	UseTtl *bool `json:"use_ttl,omitempty"`
15323  
15324  	// The name of the DNS view in which the record resides. Example: "external".
15325  	View *string `json:"view,omitempty"`
15326  
15327  	// The name of the zone in which the record resides. Example: "zone.com". If a
15328  	// view is not specified when searching by zone, the default view is used.
15329  	Zone string `json:"zone,omitempty"`
15330  }
15331  
15332  func (RecordCaa) ObjectType() string {
15333  	return "record:caa"
15334  }
15335  
15336  func (obj RecordCaa) ReturnFields() []string {
15337  	if obj.returnFields == nil {
15338  		obj.returnFields = []string{"name", "view"}
15339  	}
15340  	return obj.returnFields
15341  }
15342  
15343  // RecordCNAME represents Infoblox object record:cname.
15344  // A CNAME record maps an alias to a canonical name. You can use CNAME records
15345  // in both forward- and IPv4 reverse-mapping zones to serve two different
15346  // purposes. (At this time, you cannot use CNAME records with IPv6
15347  // reverse-mapping zones.)
15348  type RecordCNAME struct {
15349  	IBBase `json:"-"`
15350  
15351  	Ref string `json:"_ref,omitempty"`
15352  
15353  	// Aws Route 53 record information.
15354  	AwsRte53RecordInfo *Awsrte53recordinfo `json:"aws_rte53_record_info,omitempty"`
15355  
15356  	// Canonical name in FQDN format. This value can be in unicode format.
15357  	Canonical *string `json:"canonical,omitempty"`
15358  
15359  	// Structure containing all cloud API related information for this object.
15360  	CloudInfo *GridCloudapiInfo `json:"cloud_info,omitempty"`
15361  
15362  	// Comment for the record; maximum 256 characters.
15363  	Comment *string `json:"comment,omitempty"`
15364  
15365  	// The time of the record creation in Epoch seconds format.
15366  	CreationTime *UnixTime `json:"creation_time,omitempty"`
15367  
15368  	// The record creator. Note that changing creator from or to 'SYSTEM' value is
15369  	// not allowed.
15370  	Creator string `json:"creator,omitempty"`
15371  
15372  	// The GSS-TSIG principal that owns this record.
15373  	DdnsPrincipal *string `json:"ddns_principal,omitempty"`
15374  
15375  	// Determines if the DDNS updates for this record are allowed or not.
15376  	DdnsProtected *bool `json:"ddns_protected,omitempty"`
15377  
15378  	// Determines if the record is disabled or not. False means that the record is
15379  	// enabled.
15380  	Disable *bool `json:"disable,omitempty"`
15381  
15382  	// Canonical name in punycode format.
15383  	DnsCanonical string `json:"dns_canonical,omitempty"`
15384  
15385  	// The name for the CNAME record in punycode format.
15386  	DnsName string `json:"dns_name,omitempty"`
15387  
15388  	// Extensible attributes associated with the object. For valid values for
15389  	// extensible attributes, see {extattrs:values}.
15390  	Ea EA `json:"extattrs"`
15391  
15392  	// Determines if the reclamation is allowed for the record or not.
15393  	ForbidReclamation *bool `json:"forbid_reclamation,omitempty"`
15394  
15395  	// The time of the last DNS query in Epoch seconds format.
15396  	LastQueried *UnixTime `json:"last_queried,omitempty"`
15397  
15398  	// The name for a CNAME record in FQDN format. This value can be in unicode
15399  	// format. Regular expression search is not supported for unicode values.
15400  	Name *string `json:"name,omitempty"`
15401  
15402  	// Determines if the record is reclaimable or not.
15403  	Reclaimable bool `json:"reclaimable,omitempty"`
15404  
15405  	// The name of the shared record group in which the record resides. This field
15406  	// exists only on db_objects if this record is a shared record.
15407  	SharedRecordGroup string `json:"shared_record_group,omitempty"`
15408  
15409  	// The Time To Live (TTL) value for record. A 32-bit unsigned integer that
15410  	// represents the duration, in seconds, for which the record is valid (cached).
15411  	// Zero indicates that the record should not be cached.
15412  	Ttl *uint32 `json:"ttl,omitempty"`
15413  
15414  	// Use flag for: ttl
15415  	UseTtl *bool `json:"use_ttl,omitempty"`
15416  
15417  	// The name of the DNS view in which the record resides. Example: "external".
15418  	View *string `json:"view,omitempty"`
15419  
15420  	// The name of the zone in which the record resides. Example: "zone.com". If a
15421  	// view is not specified when searching by zone, the default view is used.
15422  	Zone string `json:"zone,omitempty"`
15423  }
15424  
15425  func (RecordCNAME) ObjectType() string {
15426  	return "record:cname"
15427  }
15428  
15429  func (obj RecordCNAME) ReturnFields() []string {
15430  	if obj.returnFields == nil {
15431  		obj.returnFields = []string{"canonical", "name", "view"}
15432  	}
15433  	return obj.returnFields
15434  }
15435  
15436  func NewEmptyRecordCNAME() *RecordCNAME {
15437  	res := &RecordCNAME{}
15438  	res.returnFields = []string{"extattrs", "canonical", "name", "view", "zone", "comment", "ttl", "use_ttl"}
15439  
15440  	return res
15441  }
15442  
15443  func NewRecordCNAME(dnsView string,
15444  	canonical string,
15445  	recordName string,
15446  	useTtl bool,
15447  	ttl uint32,
15448  	comment string,
15449  	ea EA,
15450  	ref string) *RecordCNAME {
15451  
15452  	res := NewEmptyRecordCNAME()
15453  
15454  	res.View = &dnsView
15455  	if *res.View == "" {
15456  		res.View = nil
15457  	}
15458  
15459  	res.Canonical = &canonical
15460  	res.Name = &recordName
15461  	res.UseTtl = &useTtl
15462  	res.Ttl = &ttl
15463  	res.Comment = &comment
15464  	res.Ea = ea
15465  	res.Ref = ref
15466  
15467  	return res
15468  }
15469  
15470  // RecordDhcid represents Infoblox object record:dhcid.
15471  // The DHCID DNS resource record (RR) is used to associate the DNS domain names
15472  // with the DHCP clients using the domain names.
15473  type RecordDhcid struct {
15474  	IBBase `json:"-"`
15475  
15476  	Ref string `json:"_ref,omitempty"`
15477  
15478  	// The creation time of the record.
15479  	CreationTime *UnixTime `json:"creation_time,omitempty"`
15480  
15481  	// The record creator.
15482  	Creator string `json:"creator,omitempty"`
15483  
15484  	// The Base64 encoded DHCP client information.
15485  	Dhcid string `json:"dhcid,omitempty"`
15486  
15487  	// The name for the DHCID record in punycode format.
15488  	DnsName string `json:"dns_name,omitempty"`
15489  
15490  	// The name of the DHCID record in FQDN format.
15491  	Name string `json:"name,omitempty"`
15492  
15493  	// The Time To Live (TTL) value for the record. A 32-bit unsigned integer that
15494  	// represents the duration, in seconds, for which the record is valid (cached).
15495  	// Zero indicates that the record should not be cached.
15496  	Ttl uint32 `json:"ttl,omitempty"`
15497  
15498  	// Use flag for: ttl
15499  	UseTtl bool `json:"use_ttl,omitempty"`
15500  
15501  	// The name of the DNS view in which the record resides. Example: "external".
15502  	View string `json:"view,omitempty"`
15503  
15504  	// The name of the zone in which the record resides. Example: "zone.com". If a
15505  	// view is not specified when searching by zone, the default view is used.
15506  	Zone string `json:"zone,omitempty"`
15507  }
15508  
15509  func (RecordDhcid) ObjectType() string {
15510  	return "record:dhcid"
15511  }
15512  
15513  func (obj RecordDhcid) ReturnFields() []string {
15514  	if obj.returnFields == nil {
15515  		obj.returnFields = []string{"name", "view"}
15516  	}
15517  	return obj.returnFields
15518  }
15519  
15520  // RecordDname represents Infoblox object record:dname.
15521  // A DNAME record maps all the names in one domain to those in another domain,
15522  // essentially substituting one domain name suffix with the other.
15523  type RecordDname struct {
15524  	IBBase `json:"-"`
15525  
15526  	Ref string `json:"_ref,omitempty"`
15527  
15528  	// The structure containing all cloud API related information for this object.
15529  	CloudInfo *GridCloudapiInfo `json:"cloud_info,omitempty"`
15530  
15531  	// The comment for the record.
15532  	Comment *string `json:"comment,omitempty"`
15533  
15534  	// The time of the record creation in Epoch seconds format.
15535  	CreationTime *UnixTime `json:"creation_time,omitempty"`
15536  
15537  	// The record creator.
15538  	Creator string `json:"creator,omitempty"`
15539  
15540  	// The GSS-TSIG principal that owns this record.
15541  	DdnsPrincipal *string `json:"ddns_principal,omitempty"`
15542  
15543  	// Determines if the DDNS updates for this record are allowed.
15544  	DdnsProtected *bool `json:"ddns_protected,omitempty"`
15545  
15546  	// Determines if the record is disabled.
15547  	Disable *bool `json:"disable,omitempty"`
15548  
15549  	// Name of a DNS DNAME record in punycode format.
15550  	DnsName string `json:"dns_name,omitempty"`
15551  
15552  	// The target domain name of the DNS DNAME record in punycode format.
15553  	DnsTarget string `json:"dns_target,omitempty"`
15554  
15555  	// Extensible attributes associated with the object. For valid values for
15556  	// extensible attributes, see {extattrs:values}.
15557  	Ea EA `json:"extattrs"`
15558  
15559  	// Determines if reclamation is allowed for the record.
15560  	ForbidReclamation *bool `json:"forbid_reclamation,omitempty"`
15561  
15562  	// The time of the last DNS query in Epoch seconds format.
15563  	LastQueried *UnixTime `json:"last_queried,omitempty"`
15564  
15565  	// The name of the DNS DNAME record in FQDN format.
15566  	Name *string `json:"name,omitempty"`
15567  
15568  	// Determines if the record is reclaimable.
15569  	Reclaimable bool `json:"reclaimable,omitempty"`
15570  
15571  	// The name of the shared record group in which the record resides. This field
15572  	// exists only on db_objects if this record is a shared record.
15573  	SharedRecordGroup string `json:"shared_record_group,omitempty"`
15574  
15575  	// The target domain name of the DNS DNAME record in FQDN format.
15576  	Target *string `json:"target,omitempty"`
15577  
15578  	// Time To Live (TTL) value for the record. A 32-bit unsigned integer that
15579  	// represents the duration, in seconds, that the record is valid (cached). Zero
15580  	// indicates that the record should not be cached.
15581  	Ttl *uint32 `json:"ttl,omitempty"`
15582  
15583  	// Use flag for: ttl
15584  	UseTtl *bool `json:"use_ttl,omitempty"`
15585  
15586  	// The name of the DNS View in which the record resides, for example
15587  	// "external".
15588  	View string `json:"view,omitempty"`
15589  
15590  	// The name of the zone in which the record resides. For example: "zone.com".
15591  	// If a view is not specified when searching by zone, the default view is used.
15592  	Zone string `json:"zone,omitempty"`
15593  }
15594  
15595  func (RecordDname) ObjectType() string {
15596  	return "record:dname"
15597  }
15598  
15599  func (obj RecordDname) ReturnFields() []string {
15600  	if obj.returnFields == nil {
15601  		obj.returnFields = []string{"name", "target", "view"}
15602  	}
15603  	return obj.returnFields
15604  }
15605  
15606  // RecordDnskey represents Infoblox object record:dnskey.
15607  // The DNSKEY resource record stores public keys for the DNSSEC authentication
15608  // process. The DNSKEY records are generated automatically when the
15609  // corresponding authoritative zone is signed. The DNSKEY resource record
15610  // object is read-only.
15611  type RecordDnskey struct {
15612  	IBBase `json:"-"`
15613  
15614  	Ref string `json:"_ref,omitempty"`
15615  
15616  	// The public key encryption algorithm of a DNSKEY Record object.
15617  	Algorithm string `json:"algorithm,omitempty"`
15618  
15619  	// The comment for the record.
15620  	Comment string `json:"comment,omitempty"`
15621  
15622  	// The creation time of the record.
15623  	CreationTime *UnixTime `json:"creation_time,omitempty"`
15624  
15625  	// The record creator.
15626  	Creator string `json:"creator,omitempty"`
15627  
15628  	// Name of a DNSKEY record in punycode format.
15629  	DnsName string `json:"dns_name,omitempty"`
15630  
15631  	// The flags field is a 16-bit unsigned integer. Currently, only two bits of
15632  	// this value are used: the least significant bit and bit 7. The other bits are
15633  	// reserved for future use and must be zero. If bit 7 is set to 1, the key is a
15634  	// DNS zone key. Otherwise, the key is not a zone key and cannot be used to
15635  	// verify zone data. The least significant bit indicates "secure entry point
15636  	// property". If it is not zero, the key is a key signing key (KSK type).
15637  	// Otherwise, the key type is ZSK.
15638  	Flags int `json:"flags,omitempty"`
15639  
15640  	// The key tag identifying the public key of a DNSKEY Record object.
15641  	KeyTag uint32 `json:"key_tag,omitempty"`
15642  
15643  	// The time of the last DNS query in Epoch seconds format.
15644  	LastQueried *UnixTime `json:"last_queried,omitempty"`
15645  
15646  	// The name of the DNSKEY record in FQDN format. It has to be the same as the
15647  	// zone, where the record resides.
15648  	Name string `json:"name,omitempty"`
15649  
15650  	// The public key. The format of the returned value depends on the key
15651  	// algorithm.
15652  	PublicKey string `json:"public_key,omitempty"`
15653  
15654  	// The Time To Live (TTL) value for the record. A 32-bit unsigned integer that
15655  	// represents the duration, in seconds, for which the record is valid (cached).
15656  	// Zero indicates that the record should not be cached.
15657  	Ttl uint32 `json:"ttl,omitempty"`
15658  
15659  	// Use flag for: ttl
15660  	UseTtl bool `json:"use_ttl,omitempty"`
15661  
15662  	// The name of the DNS View in which the record resides. Example: "external".
15663  	View string `json:"view,omitempty"`
15664  
15665  	// The name of the zone in which the record resides. Example: "zone.com". If a
15666  	// view is not specified when searching by zone, the default view is used.
15667  	Zone string `json:"zone,omitempty"`
15668  }
15669  
15670  func (RecordDnskey) ObjectType() string {
15671  	return "record:dnskey"
15672  }
15673  
15674  func (obj RecordDnskey) ReturnFields() []string {
15675  	if obj.returnFields == nil {
15676  		obj.returnFields = []string{"name", "view"}
15677  	}
15678  	return obj.returnFields
15679  }
15680  
15681  // RecordDs represents Infoblox object record:ds.
15682  // The DS key record is a part of the DNS security extension records. The DS RR
15683  // contains a hash of a child zone’s KSK and can be used as a trust anchor in
15684  // some security-aware resolvers and to create a secure delegation point for a
15685  // signed subzone in DNS servers. It is used to authorize the DNSKEY records of
15686  // the child zone and thus to establish the DNSSEC chain of trust.
15687  type RecordDs struct {
15688  	IBBase `json:"-"`
15689  
15690  	Ref string `json:"_ref,omitempty"`
15691  
15692  	// The algorithm of the DNSKEY RR to which this DS RR refers. It uses the same
15693  	// algorithm values and types as the corresponding DNSKEY RR.
15694  	Algorithm string `json:"algorithm,omitempty"`
15695  
15696  	// Structure containing all cloud API related information for this object.
15697  	CloudInfo *GridCloudapiInfo `json:"cloud_info,omitempty"`
15698  
15699  	// The comment for the record.
15700  	Comment string `json:"comment,omitempty"`
15701  
15702  	// The creation time of the record.
15703  	CreationTime *UnixTime `json:"creation_time,omitempty"`
15704  
15705  	// Creator of the record.
15706  	Creator string `json:"creator,omitempty"`
15707  
15708  	// The digest of the DNSKEY resource record that is stored in a DS Record
15709  	// object.
15710  	Digest string `json:"digest,omitempty"`
15711  
15712  	// The algorithm used to construct the digest.
15713  	DigestType string `json:"digest_type,omitempty"`
15714  
15715  	// The name for the DS record in punycode format.
15716  	DnsName string `json:"dns_name,omitempty"`
15717  
15718  	// The key tag value that is used to determine which key to use to verify
15719  	// signatures.
15720  	KeyTag uint32 `json:"key_tag,omitempty"`
15721  
15722  	// The time of the last DNS query in Epoch seconds format.
15723  	LastQueried *UnixTime `json:"last_queried,omitempty"`
15724  
15725  	// The name of the DNS DS record in FQDN format.
15726  	Name string `json:"name,omitempty"`
15727  
15728  	// The Time To Live (TTL) value for the record. A 32-bit unsigned integer that
15729  	// represents the duration, in seconds, for which the record is valid (cached).
15730  	// Zero indicates that the record should not be cached.
15731  	Ttl uint32 `json:"ttl,omitempty"`
15732  
15733  	// Use flag for: ttl
15734  	UseTtl bool `json:"use_ttl,omitempty"`
15735  
15736  	// The name of the DNS View in which the record resides. Example: "external".
15737  	View string `json:"view,omitempty"`
15738  
15739  	// The name of the zone in which the record resides. Example: "zone.com". If a
15740  	// view is not specified when searching by zone, the default view is used.
15741  	Zone string `json:"zone,omitempty"`
15742  }
15743  
15744  func (RecordDs) ObjectType() string {
15745  	return "record:ds"
15746  }
15747  
15748  func (obj RecordDs) ReturnFields() []string {
15749  	if obj.returnFields == nil {
15750  		obj.returnFields = []string{"name", "view"}
15751  	}
15752  	return obj.returnFields
15753  }
15754  
15755  // RecordDtclbdn represents Infoblox object record:dtclbdn.
15756  // Load Balanced Domain Name (LBDN) is a Load balanced domain name record type,
15757  // which is served by Infoblox Name Servers. LBDN is a qualified domain name
15758  // associated with a specific service such as ftp.abc.com or www.abc.com. A
15759  // LBDN record must be associated to a zone for which Infoblox is authoritative
15760  // for. User may assign multiple “Resource Pools” to a LBDN record. User
15761  // may also assign one or more DNS Distribution (Load balancing) methods an
15762  // LBDN record. User must not be able to create multiple LBDNs for the same
15763  // name.
15764  type RecordDtclbdn struct {
15765  	IBBase `json:"-"`
15766  
15767  	Ref string `json:"_ref,omitempty"`
15768  
15769  	// The comment for the DTC LBDN record object; maximum 256 characters.
15770  	Comment string `json:"comment,omitempty"`
15771  
15772  	// Determines whether the DTC LBDN is disabled or not.
15773  	Disable bool `json:"disable,omitempty"`
15774  
15775  	// Extensible attributes associated with the object. For valid values for
15776  	// extensible attributes, see {extattrs:values}.
15777  	Ea EA `json:"extattrs"`
15778  
15779  	// The time of the last DNS query in Epoch seconds format.
15780  	LastQueried *UnixTime `json:"last_queried,omitempty"`
15781  
15782  	// The DTC LBDN object.
15783  	Lbdn string `json:"lbdn,omitempty"`
15784  
15785  	// The display name of the DTC LBDN record.
15786  	Name string `json:"name,omitempty"`
15787  
15788  	// An FQDN pattern, LBDN wildcards can be used.
15789  	Pattern string `json:"pattern,omitempty"`
15790  
15791  	// The name of the DNS View in which the record resides.
15792  	View string `json:"view,omitempty"`
15793  
15794  	// The name of the zone in which the record resides.
15795  	Zone string `json:"zone,omitempty"`
15796  }
15797  
15798  func (RecordDtclbdn) ObjectType() string {
15799  	return "record:dtclbdn"
15800  }
15801  
15802  func (obj RecordDtclbdn) ReturnFields() []string {
15803  	if obj.returnFields == nil {
15804  		obj.returnFields = []string{"comment", "name", "view", "zone"}
15805  	}
15806  	return obj.returnFields
15807  }
15808  
15809  // HostRecord represents Infoblox object record:host.
15810  // A host record defines attributes for a node, such as the name-to-address and
15811  // address-to-name mapping. This alleviates having to specify an A record and a
15812  // PTR record separately for the same node. A host can also define aliases and
15813  // DHCP fixed address nodes. The zone must be created first before adding a
15814  // host record for the zone.
15815  type HostRecord struct {
15816  	IBBase `json:"-"`
15817  
15818  	Ref string `json:"_ref,omitempty"`
15819  
15820  	// This is a list of aliases for the host. The aliases must be in FQDN format.
15821  	// This value can be in unicode format.
15822  	Aliases []string `json:"aliases"`
15823  
15824  	// This field controls whether the credential is used for both the Telnet and
15825  	// SSH credentials. If set to False, the credential is used only for SSH.
15826  	AllowTelnet *bool `json:"allow_telnet,omitempty"`
15827  
15828  	// The CLI credentials for the host record.
15829  	CliCredentials []*DiscoveryClicredential `json:"cli_credentials,omitempty"`
15830  
15831  	// Structure containing all cloud API related information for this object.
15832  	CloudInfo *GridCloudapiInfo `json:"cloud_info,omitempty"`
15833  
15834  	// Comment for the record; maximum 256 characters.
15835  	Comment *string `json:"comment,omitempty"`
15836  
15837  	// When configure_for_dns is false, the host does not have parent zone
15838  	// information.
15839  	EnableDns *bool `json:"configure_for_dns,omitempty"`
15840  
15841  	// The time of the record creation in Epoch seconds format.
15842  	CreationTime *UnixTime `json:"creation_time,omitempty"`
15843  
15844  	// Determines if the DDNS updates for this record are allowed or not.
15845  	DdnsProtected *bool `json:"ddns_protected,omitempty"`
15846  
15847  	// The description of the device.
15848  	DeviceDescription *string `json:"device_description,omitempty"`
15849  
15850  	// The location of the device.
15851  	DeviceLocation *string `json:"device_location,omitempty"`
15852  
15853  	// The type of the device.
15854  	DeviceType *string `json:"device_type,omitempty"`
15855  
15856  	// The vendor of the device.
15857  	DeviceVendor *string `json:"device_vendor,omitempty"`
15858  
15859  	// Determines if the record is disabled or not. False means that the record is
15860  	// enabled.
15861  	Disable *bool `json:"disable,omitempty"`
15862  
15863  	// Determines if the discovery for the record is disabled or not. False means
15864  	// that the discovery is enabled.
15865  	DisableDiscovery *bool `json:"disable_discovery,omitempty"`
15866  
15867  	// The list of aliases for the host in punycode format.
15868  	DnsAliases []string `json:"dns_aliases,omitempty"`
15869  
15870  	// The name for a host record in punycode format.
15871  	DnsName string `json:"dns_name,omitempty"`
15872  
15873  	// Determines if the discovery for the record should be immediately enabled.
15874  	EnableImmediateDiscovery *bool `json:"enable_immediate_discovery,omitempty"`
15875  
15876  	// Extensible attributes associated with the object. For valid values for
15877  	// extensible attributes, see {extattrs:values}.
15878  	Ea EA `json:"extattrs"`
15879  
15880  	// This is a list of IPv4 Addresses for the host.
15881  	Ipv4Addrs []HostRecordIpv4Addr `json:"ipv4addrs"`
15882  
15883  	// This is a list of IPv6 Addresses for the host.
15884  	Ipv6Addrs []HostRecordIpv6Addr `json:"ipv6addrs"`
15885  
15886  	// The time of the last DNS query in Epoch seconds format.
15887  	LastQueried *UnixTime `json:"last_queried,omitempty"`
15888  
15889  	// The Microsoft Active Directory user related information.
15890  	MsAdUserData *MsserverAduserData `json:"ms_ad_user_data,omitempty"`
15891  
15892  	// The host name in FQDN format This value can be in unicode format. Regular
15893  	// expression search is not supported for unicode values.
15894  	Name *string `json:"name,omitempty"`
15895  
15896  	// The name of the network view in which the host record resides.
15897  	NetworkView string `json:"network_view,omitempty"`
15898  
15899  	// Restarts the member service.
15900  	RestartIfNeeded *bool `json:"restart_if_needed,omitempty"`
15901  
15902  	// The value of this field specifies the order in which resource record sets
15903  	// are returned. The possible values are "cyclic", "random" and "fixed".
15904  	RrsetOrder *string `json:"rrset_order,omitempty"`
15905  
15906  	// The SNMPv3 credential for a host record.
15907  	Snmp3Credential *DiscoverySnmp3credential `json:"snmp3_credential,omitempty"`
15908  
15909  	// The SNMPv1 or SNMPv2 credential for a host record.
15910  	SnmpCredential *DiscoverySnmpcredential `json:"snmp_credential,omitempty"`
15911  
15912  	// The Time To Live (TTL) value for record. A 32-bit unsigned integer that
15913  	// represents the duration, in seconds, for which the record is valid (cached).
15914  	// Zero indicates that the record should not be cached.
15915  	Ttl *uint32 `json:"ttl,omitempty"`
15916  
15917  	// If set to true, the CLI credential will override member-level settings.
15918  	UseCliCredentials *bool `json:"use_cli_credentials,omitempty"`
15919  
15920  	// Determines if the SNMPv3 credential should be used for the record.
15921  	UseSnmp3Credential *bool `json:"use_snmp3_credential,omitempty"`
15922  
15923  	// If set to true, the SNMP credential will override member-level settings.
15924  	UseSnmpCredential *bool `json:"use_snmp_credential,omitempty"`
15925  
15926  	// Use flag for: ttl
15927  	UseTtl *bool `json:"use_ttl,omitempty"`
15928  
15929  	// The name of the DNS view in which the record resides. Example: "external".
15930  	View *string `json:"view,omitempty"`
15931  
15932  	// The name of the zone in which the record resides. Example: "zone.com". If a
15933  	// view is not specified when searching by zone, the default view is used.
15934  	Zone string `json:"zone,omitempty"`
15935  }
15936  
15937  func (HostRecord) ObjectType() string {
15938  	return "record:host"
15939  }
15940  
15941  func (obj HostRecord) ReturnFields() []string {
15942  	if obj.returnFields == nil {
15943  		obj.returnFields = []string{"ipv4addrs", "ipv6addrs", "name", "view"}
15944  	}
15945  	return obj.returnFields
15946  }
15947  
15948  func NewEmptyHostRecord() *HostRecord {
15949  	res := &HostRecord{}
15950  	res.returnFields = []string{"extattrs", "ipv4addrs", "ipv6addrs", "name", "view", "zone", "comment", "network_view", "aliases", "use_ttl", "ttl", "configure_for_dns"}
15951  	return res
15952  }
15953  
15954  func NewHostRecord(
15955  	netView string,
15956  	name string,
15957  	ipv4Addr string,
15958  	ipv6Addr string,
15959  	ipv4AddrList []HostRecordIpv4Addr,
15960  	ipv6AddrList []HostRecordIpv6Addr,
15961  	eas EA,
15962  	enableDNS bool,
15963  	dnsView string,
15964  	zone string,
15965  	ref string,
15966  	useTtl bool,
15967  	ttl uint32,
15968  	comment string,
15969  	aliases []string,
15970  	disable bool) *HostRecord {
15971  
15972  	res := NewEmptyHostRecord()
15973  	res.NetworkView = netView
15974  	res.Name = &name
15975  	res.Ea = eas
15976  	res.View = &dnsView
15977  	if *res.View == "" {
15978  		res.View = nil
15979  	}
15980  	res.Zone = zone
15981  	res.Ref = ref
15982  	res.Comment = &comment
15983  	res.Disable = &disable
15984  	//res.Ipv4Addr = ipv4Addr
15985  	//res.Ipv6Addr = ipv6Addr
15986  	res.Ipv4Addrs = ipv4AddrList
15987  	res.Ipv6Addrs = ipv6AddrList
15988  	res.UseTtl = &useTtl
15989  	res.Ttl = &ttl
15990  	res.Aliases = aliases
15991  	res.EnableDns = &enableDNS
15992  
15993  	return res
15994  }
15995  
15996  // HostRecordIpv4Addr represents Infoblox object record:host_ipv4addr.
15997  // A Host Address is an object used to specify addresses in the record.host
15998  // object.
15999  type HostRecordIpv4Addr struct {
16000  	IBBase `json:"-"`
16001  
16002  	Ref string `json:"_ref,omitempty"`
16003  
16004  	// The name of the boot file the client must download.
16005  	Bootfile *string `json:"bootfile,omitempty"`
16006  
16007  	// The IP address or hostname of the boot file server where the boot file is
16008  	// stored.
16009  	Bootserver *string `json:"bootserver,omitempty"`
16010  
16011  	// Set this to True to enable the DHCP configuration for this host address.
16012  	EnableDhcp *bool `json:"configure_for_dhcp,omitempty"`
16013  
16014  	// Set this to True to disable the BOOTP settings and deny BOOTP boot requests.
16015  	DenyBootp *bool `json:"deny_bootp,omitempty"`
16016  
16017  	// The discovery status of this Host Address.
16018  	DiscoverNowStatus string `json:"discover_now_status,omitempty"`
16019  
16020  	// The discovered data for this Host Address.
16021  	DiscoveredData *Discoverydata `json:"discovered_data,omitempty"`
16022  
16023  	// Set this to True if you want the DHCP server to use a different lease time
16024  	// for PXE clients. You can specify the duration of time it takes a host to
16025  	// connect to a boot server, such as a TFTP server, and download the file it
16026  	// needs to boot. For example, set a longer lease time if the client downloads
16027  	// an OS (operating system) or configuration file, or set a shorter lease time
16028  	// if the client downloads only configuration changes. Enter the lease time for
16029  	// the preboot execution environment for hosts to boot remotely from a server.
16030  	EnablePxeLeaseTime *bool `json:"enable_pxe_lease_time,omitempty"`
16031  
16032  	// The host to which the host address belongs, in FQDN format. It is only
16033  	// present when the host address object is not returned as part of a host.
16034  	Host string `json:"host,omitempty"`
16035  
16036  	// If this field is set to false, the appliance returns all DHCP options the
16037  	// client is eligible to receive, rather than only the list of options the
16038  	// client has requested.
16039  	IgnoreClientRequestedOptions *bool `json:"ignore_client_requested_options,omitempty"`
16040  
16041  	// The IPv4 Address of the host.
16042  	Ipv4Addr *string `json:"ipv4addr,omitempty"`
16043  
16044  	// This flag reflects whether the MAC address for this host address is invalid.
16045  	IsInvalidMac bool `json:"is_invalid_mac,omitempty"`
16046  
16047  	// The time of the last DNS query in Epoch seconds format.
16048  	LastQueried *UnixTime `json:"last_queried,omitempty"`
16049  
16050  	// This field contains the logic filters to be applied on the this host
16051  	// address. This list corresponds to the match rules that are written to the
16052  	// dhcpd configuration file.
16053  	LogicFilterRules []*Logicfilterrule `json:"logic_filter_rules,omitempty"`
16054  
16055  	// The MAC address for this host address.
16056  	Mac *string `json:"mac,omitempty"`
16057  
16058  	// Set this to 'MAC_ADDRESS' to assign the IP address to the selected host,
16059  	// provided that the MAC address of the requesting host matches the MAC address
16060  	// that you specify in the field. Set this to 'RESERVED' to reserve this
16061  	// particular IP address for future use, or if the IP address is statically
16062  	// configured on a system (the Infoblox server does not assign the address from
16063  	// a DHCP request).
16064  	MatchClient *string `json:"match_client,omitempty"`
16065  
16066  	// The Microsoft Active Directory user related information.
16067  	MsAdUserData *MsserverAduserData `json:"ms_ad_user_data,omitempty"`
16068  
16069  	// The network of the host address, in FQDN/CIDR format.
16070  	Network string `json:"network,omitempty"`
16071  
16072  	// The name of the network view in which the host address resides.
16073  	NetworkView string `json:"network_view,omitempty"`
16074  
16075  	// The name in FQDN format and/or IPv4 Address of the next server that the host
16076  	// needs to boot.
16077  	Nextserver *string `json:"nextserver,omitempty"`
16078  
16079  	// An array of DHCP option dhcpoption structs that lists the DHCP options
16080  	// associated with the object.
16081  	Options []*Dhcpoption `json:"options,omitempty"`
16082  
16083  	// The lease time for PXE clients, see *enable_pxe_lease_time* for more
16084  	// information.
16085  	PxeLeaseTime *uint32 `json:"pxe_lease_time,omitempty"`
16086  
16087  	// The reference to the reserved interface to which the device belongs.
16088  	ReservedInterface *string `json:"reserved_interface,omitempty"`
16089  
16090  	// Use flag for: bootfile
16091  	UseBootfile *bool `json:"use_bootfile,omitempty"`
16092  
16093  	// Use flag for: bootserver
16094  	UseBootserver *bool `json:"use_bootserver,omitempty"`
16095  
16096  	// Use flag for: deny_bootp
16097  	UseDenyBootp *bool `json:"use_deny_bootp,omitempty"`
16098  
16099  	// Set this to True when using this host address for EA inheritance.
16100  	UseForEaInheritance *bool `json:"use_for_ea_inheritance,omitempty"`
16101  
16102  	// Use flag for: ignore_client_requested_options
16103  	UseIgnoreClientRequestedOptions *bool `json:"use_ignore_client_requested_options,omitempty"`
16104  
16105  	// Use flag for: logic_filter_rules
16106  	UseLogicFilterRules *bool `json:"use_logic_filter_rules,omitempty"`
16107  
16108  	// Use flag for: nextserver
16109  	UseNextserver *bool `json:"use_nextserver,omitempty"`
16110  
16111  	// Use flag for: options
16112  	UseOptions *bool `json:"use_options,omitempty"`
16113  
16114  	// Use flag for: pxe_lease_time
16115  	UsePxeLeaseTime *bool `json:"use_pxe_lease_time,omitempty"`
16116  }
16117  
16118  func (HostRecordIpv4Addr) ObjectType() string {
16119  	return "record:host_ipv4addr"
16120  }
16121  
16122  func (obj HostRecordIpv4Addr) ReturnFields() []string {
16123  	if obj.returnFields == nil {
16124  		obj.returnFields = []string{"configure_for_dhcp", "host", "ipv4addr", "mac"}
16125  	}
16126  	return obj.returnFields
16127  }
16128  
16129  func NewEmptyHostRecordIpv4Addr() *HostRecordIpv4Addr {
16130  	return &HostRecordIpv4Addr{}
16131  }
16132  
16133  func NewHostRecordIpv4Addr(
16134  	ipAddr string,
16135  	macAddr string,
16136  	enableDhcp bool,
16137  	ref string) *HostRecordIpv4Addr {
16138  
16139  	res := NewEmptyHostRecordIpv4Addr()
16140  	res.Ipv4Addr = &ipAddr
16141  	res.Mac = &macAddr
16142  	res.Ref = ref
16143  	res.EnableDhcp = &enableDhcp
16144  
16145  	return res
16146  }
16147  
16148  // HostRecordIpv6Addr represents Infoblox object record:host_ipv6addr.
16149  // An IPv6 host address is an object used to specify addresses in the
16150  // record.host object.
16151  type HostRecordIpv6Addr struct {
16152  	IBBase `json:"-"`
16153  
16154  	Ref string `json:"_ref,omitempty"`
16155  
16156  	// Type of the DHCP IPv6 Host Address object.
16157  	AddressType string `json:"address_type,omitempty"`
16158  
16159  	// Set this to True to enable the DHCP configuration for this IPv6 host
16160  	// address.
16161  	EnableDhcp *bool `json:"configure_for_dhcp,omitempty"`
16162  
16163  	// The discovery status of this IPv6 Host Address.
16164  	DiscoverNowStatus string `json:"discover_now_status,omitempty"`
16165  
16166  	// The discovered data for this host address.
16167  	DiscoveredData *Discoverydata `json:"discovered_data,omitempty"`
16168  
16169  	// Use this method to set or retrieve the domain_name value of the DHCP IPv6
16170  	// Host Address object.
16171  	DomainName *string `json:"domain_name,omitempty"`
16172  
16173  	// The IPv6 addresses of DNS recursive name servers to which the DHCP client
16174  	// can send name resolution requests. The DHCP server includes this information
16175  	// in the DNS Recursive Name Server option in Advertise, Rebind,
16176  	// Information-Request, and Reply messages.
16177  	DomainNameServers []string `json:"domain_name_servers,omitempty"`
16178  
16179  	// DHCPv6 Unique Identifier (DUID) of the address object.
16180  	Duid *string `json:"duid,omitempty"`
16181  
16182  	// The host to which the IPv6 host address belongs, in FQDN format. It is only
16183  	// present when the host address object is not returned as part of a host.
16184  	Host string `json:"host,omitempty"`
16185  
16186  	// The IPv6 Address prefix of the DHCP IPv6 Host Address object.
16187  	Ipv6Addr *string `json:"ipv6addr,omitempty"`
16188  
16189  	// The IPv6 Address prefix of the DHCP IPv6 Host Address object.
16190  	Ipv6prefix *string `json:"ipv6prefix,omitempty"`
16191  
16192  	// Prefix bits of the DHCP IPv6 Host Address object.
16193  	Ipv6prefixBits *uint32 `json:"ipv6prefix_bits,omitempty"`
16194  
16195  	// The time of the last DNS query in Epoch seconds format.
16196  	LastQueried *UnixTime `json:"last_queried,omitempty"`
16197  
16198  	// This field contains the logic filters to be applied on the this host
16199  	// address. This list corresponds to the match rules that are written to the
16200  	// dhcpd configuration file.
16201  	LogicFilterRules []*Logicfilterrule `json:"logic_filter_rules,omitempty"`
16202  
16203  	// Set this to 'DUID' to assign the IP address to the selected host, provided
16204  	// that the DUID of the requesting host matches the DUID that you specify in
16205  	// the field. Set this to 'RESERVED' to reserve this particular IP address for
16206  	// future use, or if the IP address is statically configured on a system (the
16207  	// Infoblox server does not assign the address from a DHCP request).
16208  	MatchClient *string `json:"match_client,omitempty"`
16209  
16210  	// The Microsoft Active Directory user related information.
16211  	MsAdUserData *MsserverAduserData `json:"ms_ad_user_data,omitempty"`
16212  
16213  	// The network of the host address, in FQDN/CIDR format.
16214  	Network string `json:"network,omitempty"`
16215  
16216  	// The name of the network view in which the host address resides.
16217  	NetworkView string `json:"network_view,omitempty"`
16218  
16219  	// An array of DHCP option dhcpoption structs that lists the DHCP options
16220  	// associated with the object.
16221  	Options []*Dhcpoption `json:"options,omitempty"`
16222  
16223  	// Use this method to set or retrieve the preferred lifetime value of the DHCP
16224  	// IPv6 Host Address object.
16225  	PreferredLifetime *uint32 `json:"preferred_lifetime,omitempty"`
16226  
16227  	// The reference to the reserved interface to which the device belongs.
16228  	ReservedInterface *string `json:"reserved_interface,omitempty"`
16229  
16230  	// Use flag for: domain_name
16231  	UseDomainName *bool `json:"use_domain_name,omitempty"`
16232  
16233  	// Use flag for: domain_name_servers
16234  	UseDomainNameServers *bool `json:"use_domain_name_servers,omitempty"`
16235  
16236  	// Set this to True when using this host address for EA inheritance.
16237  	UseForEaInheritance *bool `json:"use_for_ea_inheritance,omitempty"`
16238  
16239  	// Use flag for: logic_filter_rules
16240  	UseLogicFilterRules *bool `json:"use_logic_filter_rules,omitempty"`
16241  
16242  	// Use flag for: options
16243  	UseOptions *bool `json:"use_options,omitempty"`
16244  
16245  	// Use flag for: preferred_lifetime
16246  	UsePreferredLifetime *bool `json:"use_preferred_lifetime,omitempty"`
16247  
16248  	// Use flag for: valid_lifetime
16249  	UseValidLifetime *bool `json:"use_valid_lifetime,omitempty"`
16250  
16251  	// Use this method to set or retrieve the valid lifetime value of the DHCP IPv6
16252  	// Host Address object.
16253  	ValidLifetime *uint32 `json:"valid_lifetime,omitempty"`
16254  }
16255  
16256  func (HostRecordIpv6Addr) ObjectType() string {
16257  	return "record:host_ipv6addr"
16258  }
16259  
16260  func (obj HostRecordIpv6Addr) ReturnFields() []string {
16261  	if obj.returnFields == nil {
16262  		obj.returnFields = []string{"configure_for_dhcp", "duid", "host", "ipv6addr"}
16263  	}
16264  	return obj.returnFields
16265  }
16266  
16267  func NewEmptyHostRecordIpv6Addr() *HostRecordIpv6Addr {
16268  	return &HostRecordIpv6Addr{}
16269  }
16270  
16271  func NewHostRecordIpv6Addr(
16272  	ipAddr string,
16273  	duid string,
16274  	enableDhcp bool,
16275  	ref string) *HostRecordIpv6Addr {
16276  
16277  	res := NewEmptyHostRecordIpv6Addr()
16278  	res.Ipv6Addr = &ipAddr
16279  	res.Duid = &duid
16280  	res.Ref = ref
16281  	res.EnableDhcp = &enableDhcp
16282  
16283  	return res
16284  }
16285  
16286  // RecordMX represents Infoblox object record:mx.
16287  // An MX (mail exchanger) record maps a domain name to a mail exchanger. A mail
16288  // exchanger is a server that either delivers or forwards mail. You can specify
16289  // one or more mail exchangers for a zone, as well as the preference for using
16290  // each mail exchanger. A standard MX record applies to a particular domain or
16291  // subdomain.
16292  type RecordMX struct {
16293  	IBBase `json:"-"`
16294  
16295  	Ref string `json:"_ref,omitempty"`
16296  
16297  	// Aws Route 53 record information.
16298  	AwsRte53RecordInfo *Awsrte53recordinfo `json:"aws_rte53_record_info,omitempty"`
16299  
16300  	// Structure containing all cloud API related information for this object.
16301  	CloudInfo *GridCloudapiInfo `json:"cloud_info,omitempty"`
16302  
16303  	// Comment for the record; maximum 256 characters.
16304  	Comment *string `json:"comment,omitempty"`
16305  
16306  	// The time of the record creation in Epoch seconds format.
16307  	CreationTime *UnixTime `json:"creation_time,omitempty"`
16308  
16309  	// The record creator. Note that changing creator from or to 'SYSTEM' value is
16310  	// not allowed.
16311  	Creator string `json:"creator,omitempty"`
16312  
16313  	// The GSS-TSIG principal that owns this record.
16314  	DdnsPrincipal *string `json:"ddns_principal,omitempty"`
16315  
16316  	// Determines if the DDNS updates for this record are allowed or not.
16317  	DdnsProtected *bool `json:"ddns_protected,omitempty"`
16318  
16319  	// Determines if the record is disabled or not. False means that the record is
16320  	// enabled.
16321  	Disable *bool `json:"disable,omitempty"`
16322  
16323  	// The Mail exchanger name in punycode format.
16324  	DnsMailExchanger string `json:"dns_mail_exchanger,omitempty"`
16325  
16326  	// The name for a MX record in punycode format.
16327  	DnsName string `json:"dns_name,omitempty"`
16328  
16329  	// Extensible attributes associated with the object. For valid values for
16330  	// extensible attributes, see {extattrs:values}.
16331  	Ea EA `json:"extattrs"`
16332  
16333  	// Determines if the reclamation is allowed for the record or not.
16334  	ForbidReclamation *bool `json:"forbid_reclamation,omitempty"`
16335  
16336  	// The time of the last DNS query in Epoch seconds format.
16337  	LastQueried *UnixTime `json:"last_queried,omitempty"`
16338  
16339  	// Mail exchanger name in FQDN format. This value can be in unicode format.
16340  	MailExchanger *string `json:"mail_exchanger,omitempty"`
16341  
16342  	// Name for the MX record in FQDN format. This value can be in unicode format.
16343  	Name *string `json:"name,omitempty"`
16344  
16345  	// Preference value, 0 to 65535 (inclusive) in 32-bit unsigned integer format.
16346  	Preference *uint32 `json:"preference,omitempty"`
16347  
16348  	// Determines if the record is reclaimable or not.
16349  	Reclaimable bool `json:"reclaimable,omitempty"`
16350  
16351  	// The name of the shared record group in which the record resides. This field
16352  	// exists only on db_objects if this record is a shared record.
16353  	SharedRecordGroup string `json:"shared_record_group,omitempty"`
16354  
16355  	// The Time To Live (TTL) value for record. A 32-bit unsigned integer that
16356  	// represents the duration, in seconds, for which the record is valid (cached).
16357  	// Zero indicates that the record should not be cached.
16358  	Ttl *uint32 `json:"ttl,omitempty"`
16359  
16360  	// Use flag for: ttl
16361  	UseTtl *bool `json:"use_ttl,omitempty"`
16362  
16363  	// The name of the DNS view in which the record resides. Example: "external".
16364  	View *string `json:"view,omitempty"`
16365  
16366  	// The name of the zone in which the record resides. Example: "zone.com". If a
16367  	// view is not specified when searching by zone, the default view is used.
16368  	Zone string `json:"zone,omitempty"`
16369  }
16370  
16371  func (RecordMX) ObjectType() string {
16372  	return "record:mx"
16373  }
16374  
16375  func (obj RecordMX) ReturnFields() []string {
16376  	if obj.returnFields == nil {
16377  		obj.returnFields = []string{"mail_exchanger", "name", "preference", "view"}
16378  	}
16379  	return obj.returnFields
16380  }
16381  
16382  // RecordNaptr represents Infoblox object record:naptr.
16383  // A DNS NAPTR object represents a Naming Authority Pointer (NAPTR) resource
16384  // record. This resource record specifies a regular expression-based rewrite
16385  // rule that, when applied to an existing string, produces a new domain name or
16386  // URI.
16387  type RecordNaptr struct {
16388  	IBBase `json:"-"`
16389  
16390  	Ref string `json:"_ref,omitempty"`
16391  
16392  	// Structure containing all cloud API related information for this object.
16393  	CloudInfo *GridCloudapiInfo `json:"cloud_info,omitempty"`
16394  
16395  	// Comment for the record; maximum 256 characters.
16396  	Comment *string `json:"comment,omitempty"`
16397  
16398  	// The time of the record creation in Epoch seconds format.
16399  	CreationTime *UnixTime `json:"creation_time,omitempty"`
16400  
16401  	// The record creator. Note that changing creator from or to 'SYSTEM' value is
16402  	// not allowed.
16403  	Creator string `json:"creator,omitempty"`
16404  
16405  	// The GSS-TSIG principal that owns this record.
16406  	DdnsPrincipal *string `json:"ddns_principal,omitempty"`
16407  
16408  	// Determines if the DDNS updates for this record are allowed or not.
16409  	DdnsProtected *bool `json:"ddns_protected,omitempty"`
16410  
16411  	// Determines if the record is disabled or not. False means that the record is
16412  	// enabled.
16413  	Disable *bool `json:"disable,omitempty"`
16414  
16415  	// The name of the NAPTR record in punycode format.
16416  	DnsName string `json:"dns_name,omitempty"`
16417  
16418  	// The replacement field of the NAPTR record in punycode format.
16419  	DnsReplacement string `json:"dns_replacement,omitempty"`
16420  
16421  	// Extensible attributes associated with the object. For valid values for
16422  	// extensible attributes, see {extattrs:values}.
16423  	Ea EA `json:"extattrs"`
16424  
16425  	// The flags used to control the interpretation of the fields for an NAPTR
16426  	// record object. Supported values for the flags field are "U", "S", "P" and
16427  	// "A".
16428  	Flags *string `json:"flags,omitempty"`
16429  
16430  	// Determines if the reclamation is allowed for the record or not.
16431  	ForbidReclamation *bool `json:"forbid_reclamation,omitempty"`
16432  
16433  	// The time of the last DNS query in Epoch seconds format.
16434  	LastQueried *UnixTime `json:"last_queried,omitempty"`
16435  
16436  	// The name of the NAPTR record in FQDN format. This value can be in unicode
16437  	// format.
16438  	Name *string `json:"name,omitempty"`
16439  
16440  	// The order parameter of the NAPTR records. This parameter specifies the order
16441  	// in which the NAPTR rules are applied when multiple rules are present. Valid
16442  	// values are from 0 to 65535 (inclusive), in 32-bit unsigned integer format.
16443  	Order *uint32 `json:"order,omitempty"`
16444  
16445  	// The preference of the NAPTR record. The preference field determines the
16446  	// order NAPTR records are processed when multiple records with the same order
16447  	// parameter are present. Valid values are from 0 to 65535 (inclusive), in
16448  	// 32-bit unsigned integer format.
16449  	Preference *uint32 `json:"preference,omitempty"`
16450  
16451  	// Determines if the record is reclaimable or not.
16452  	Reclaimable bool `json:"reclaimable,omitempty"`
16453  
16454  	// The regular expression-based rewriting rule of the NAPTR record. This should
16455  	// be a POSIX compliant regular expression, including the substitution rule and
16456  	// flags. Refer to RFC 2915 for the field syntax details.
16457  	Regexp *string `json:"regexp,omitempty"`
16458  
16459  	// The replacement field of the NAPTR record object. For nonterminal NAPTR
16460  	// records, this field specifies the next domain name to look up. This value
16461  	// can be in unicode format.
16462  	Replacement *string `json:"replacement,omitempty"`
16463  
16464  	// The services field of the NAPTR record object; maximum 128 characters. The
16465  	// services field contains protocol and service identifiers, such as "http+E2U"
16466  	// or "SIPS+D2T".
16467  	Services *string `json:"services,omitempty"`
16468  
16469  	// The Time to Live (TTL) value for the NAPTR record. A 32-bit unsigned integer
16470  	// that represents the duration, in seconds, for which the record is valid
16471  	// (cached). Zero indicates that the record should not be cached.
16472  	Ttl *uint32 `json:"ttl,omitempty"`
16473  
16474  	// Use flag for: ttl
16475  	UseTtl *bool `json:"use_ttl,omitempty"`
16476  
16477  	// The name of the DNS view in which the record resides. Example: "external".
16478  	View string `json:"view,omitempty"`
16479  
16480  	// The name of the zone in which the record resides. Example: "zone.com". If a
16481  	// view is not specified when searching by zone, the default view is used.
16482  	Zone string `json:"zone,omitempty"`
16483  }
16484  
16485  func (RecordNaptr) ObjectType() string {
16486  	return "record:naptr"
16487  }
16488  
16489  func (obj RecordNaptr) ReturnFields() []string {
16490  	if obj.returnFields == nil {
16491  		obj.returnFields = []string{"name", "order", "preference", "regexp", "replacement", "services", "view"}
16492  	}
16493  	return obj.returnFields
16494  }
16495  
16496  // RecordNS represents Infoblox object record:ns.
16497  // A DNS NS record identifies an authoritative DNS server for a domain. Each
16498  // authoritative DNS server must have an NS record. The appliance automatically
16499  // creates an NS record when you assign a grid member as the primary server for
16500  // a zone. You can manually create NS records for other zones.
16501  type RecordNS struct {
16502  	IBBase `json:"-"`
16503  
16504  	Ref string `json:"_ref,omitempty"`
16505  
16506  	// The list of zone name servers.
16507  	Addresses []*ZoneNameServer `json:"addresses,omitempty"`
16508  
16509  	// Structure containing all cloud API related information for this object.
16510  	CloudInfo *GridCloudapiInfo `json:"cloud_info,omitempty"`
16511  
16512  	// The record creator.
16513  	Creator string `json:"creator,omitempty"`
16514  
16515  	// The name of the NS record in punycode format.
16516  	DnsName string `json:"dns_name,omitempty"`
16517  
16518  	// The time of the last DNS query in Epoch seconds format.
16519  	LastQueried *UnixTime `json:"last_queried,omitempty"`
16520  
16521  	// The MS delegation point name.
16522  	MsDelegationName *string `json:"ms_delegation_name,omitempty"`
16523  
16524  	// The name of the NS record in FQDN format. This value can be in unicode
16525  	// format.
16526  	Name string `json:"name,omitempty"`
16527  
16528  	// The domain name of an authoritative server for the redirected zone.
16529  	Nameserver *string `json:"nameserver,omitempty"`
16530  
16531  	// The host name policy for the record.
16532  	Policy string `json:"policy,omitempty"`
16533  
16534  	// The name of the DNS view in which the record resides. Example: "external".
16535  	View string `json:"view,omitempty"`
16536  
16537  	// The name of the zone in which the record resides. Example: "zone.com". If a
16538  	// view is not specified when searching by zone, the default view is used.
16539  	Zone string `json:"zone,omitempty"`
16540  }
16541  
16542  func (RecordNS) ObjectType() string {
16543  	return "record:ns"
16544  }
16545  
16546  func (obj RecordNS) ReturnFields() []string {
16547  	if obj.returnFields == nil {
16548  		obj.returnFields = []string{"name", "nameserver", "view"}
16549  	}
16550  	return obj.returnFields
16551  }
16552  
16553  // RecordNsec represents Infoblox object record:nsec.
16554  // NSEC resource record is one of the resource records included in the DNS
16555  // security extension mechanism (DNSSEC). This record is used to provide
16556  // authenticated denial of existence of a resource record in response to a
16557  // resolver query.
16558  type RecordNsec struct {
16559  	IBBase `json:"-"`
16560  
16561  	Ref string `json:"_ref,omitempty"`
16562  
16563  	// Structure containing all cloud API related information for this object.
16564  	CloudInfo *GridCloudapiInfo `json:"cloud_info,omitempty"`
16565  
16566  	// Time that the record was created.
16567  	CreationTime *UnixTime `json:"creation_time,omitempty"`
16568  
16569  	// Creator of the record.
16570  	Creator string `json:"creator,omitempty"`
16571  
16572  	// Name for an NSEC record in punycode format.
16573  	DnsName string `json:"dns_name,omitempty"`
16574  
16575  	// Name of the next owner in punycode format.
16576  	DnsNextOwnerName string `json:"dns_next_owner_name,omitempty"`
16577  
16578  	// The time of the last DNS query in Epoch seconds format.
16579  	LastQueried *UnixTime `json:"last_queried,omitempty"`
16580  
16581  	// The name of the NSEC record in FQDN format.
16582  	Name string `json:"name,omitempty"`
16583  
16584  	// Name of the next owner that has authoritative data or that contains a
16585  	// delegation point NS record.
16586  	NextOwnerName string `json:"next_owner_name,omitempty"`
16587  
16588  	// The RRSet types that exist at the original owner name of the NSEC RR.
16589  	RrsetTypes []string `json:"rrset_types,omitempty"`
16590  
16591  	// The Time To Live (TTL) value for the record. A 32-bit unsigned integer that
16592  	// represents the duration, in seconds, for which the record is valid (cached).
16593  	// Zero indicates that the record should not be cached.
16594  	Ttl uint32 `json:"ttl,omitempty"`
16595  
16596  	// Use flag for: ttl
16597  	UseTtl bool `json:"use_ttl,omitempty"`
16598  
16599  	// The name of the DNS View in which the record resides. Example: "external".
16600  	View string `json:"view,omitempty"`
16601  
16602  	// The name of the zone in which the record resides. Example: "zone.com". If a
16603  	// view is not specified when searching by zone, the default view is used.
16604  	Zone string `json:"zone,omitempty"`
16605  }
16606  
16607  func (RecordNsec) ObjectType() string {
16608  	return "record:nsec"
16609  }
16610  
16611  func (obj RecordNsec) ReturnFields() []string {
16612  	if obj.returnFields == nil {
16613  		obj.returnFields = []string{"name", "view"}
16614  	}
16615  	return obj.returnFields
16616  }
16617  
16618  // RecordNsec3 represents Infoblox object record:nsec3.
16619  // When a name server receives a request for a domain name that does not exist
16620  // in a zone, the name server sends an authenticated negative response in the
16621  // form of an NSEC or NSEC3 RR. NSEC and NSEC3 records contain the next secure
16622  // domain name in a zone and list the RR types present at the NSEC or NSEC3
16623  // RR’s owner name. The difference between an NSEC and NSEC3 RRs is that the
16624  // owner name in an NSEC3 RR is a cryptographic hash of the original owner name
16625  // prepended to the name of the zone. NSEC3 RRs protect against zone
16626  // enumeration.
16627  type RecordNsec3 struct {
16628  	IBBase `json:"-"`
16629  
16630  	Ref string `json:"_ref,omitempty"`
16631  
16632  	// The hash algorithm that was used.
16633  	Algorithm string `json:"algorithm,omitempty"`
16634  
16635  	// Structure containing all cloud API related information for this object.
16636  	CloudInfo *GridCloudapiInfo `json:"cloud_info,omitempty"`
16637  
16638  	// The creation time of the record.
16639  	CreationTime *UnixTime `json:"creation_time,omitempty"`
16640  
16641  	// Creator of the record.
16642  	Creator string `json:"creator,omitempty"`
16643  
16644  	// Name for an NSEC3 record in punycode format.
16645  	DnsName string `json:"dns_name,omitempty"`
16646  
16647  	// The set of 8 one-bit flags, of which only one flag, the Opt-Out flag, is
16648  	// defined by RFC 5155. The Opt-Out flag indicates whether the NSEC3 record
16649  	// covers unsigned delegations.
16650  	Flags uint32 `json:"flags,omitempty"`
16651  
16652  	// The number of times the hash function was performed.
16653  	Iterations uint32 `json:"iterations,omitempty"`
16654  
16655  	// The time of the last DNS query in Epoch seconds format.
16656  	LastQueried *UnixTime `json:"last_queried,omitempty"`
16657  
16658  	// The name of the NSEC3 record in FQDN format.
16659  	Name string `json:"name,omitempty"`
16660  
16661  	// The hashed next owner name that has authoritative data or that contains a
16662  	// delegation point NS record.
16663  	NextOwnerName string `json:"next_owner_name,omitempty"`
16664  
16665  	// The RRSet types that exist at the original owner name of the NSEC3 RR.
16666  	RrsetTypes []string `json:"rrset_types,omitempty"`
16667  
16668  	// A series of case-insensitive hexadecimal digits. It is appended to the
16669  	// original owner name as protection against pre-calculated dictionary attacks.
16670  	// A new salt value is generated when ZSK rolls over. You can control the
16671  	// period of the rollover. For random salt values, the selected length is
16672  	// between one and 15 octets.
16673  	Salt string `json:"salt,omitempty"`
16674  
16675  	// The Time To Live (TTL) value for the record. A 32-bit unsigned integer that
16676  	// represents the duration, in seconds, for which the record is valid (cached).
16677  	// Zero indicates that the record should not be cached.
16678  	Ttl uint32 `json:"ttl,omitempty"`
16679  
16680  	// Use flag for: ttl
16681  	UseTtl bool `json:"use_ttl,omitempty"`
16682  
16683  	// The name of the DNS View in which the record resides. Example: "external".
16684  	View string `json:"view,omitempty"`
16685  
16686  	// The name of the zone in which the record resides. Example: "zone.com". If a
16687  	// view is not specified when searching by zone, the default view is used.
16688  	Zone string `json:"zone,omitempty"`
16689  }
16690  
16691  func (RecordNsec3) ObjectType() string {
16692  	return "record:nsec3"
16693  }
16694  
16695  func (obj RecordNsec3) ReturnFields() []string {
16696  	if obj.returnFields == nil {
16697  		obj.returnFields = []string{"name", "view"}
16698  	}
16699  	return obj.returnFields
16700  }
16701  
16702  // RecordNsec3param represents Infoblox object record:nsec3param.
16703  // An authoritative DNS server uses NSEC3PARAM RRs to determine which NSEC3
16704  // records it includes in its negative responses. An NSEC3PARAM RR contains the
16705  // parameters that an authoritative server needs to calculate hashed owner
16706  // names. As stated in RFC 5155, the presence of an NSEC3PARAM RR at a zone
16707  // apex indicates that the specified parameters may be used by authoritative
16708  // servers to choose an appropriate set of NSEC3 RRs for negative responses.
16709  type RecordNsec3param struct {
16710  	IBBase `json:"-"`
16711  
16712  	Ref string `json:"_ref,omitempty"`
16713  
16714  	// The hash algorithm that was used.
16715  	Algorithm string `json:"algorithm,omitempty"`
16716  
16717  	// Structure containing all cloud API related information for this object.
16718  	CloudInfo *GridCloudapiInfo `json:"cloud_info,omitempty"`
16719  
16720  	// The creation time of the record.
16721  	CreationTime *UnixTime `json:"creation_time,omitempty"`
16722  
16723  	// Creator of the record.
16724  	Creator string `json:"creator,omitempty"`
16725  
16726  	// Name for an NSEC3PARAM record in punycode format.
16727  	DnsName string `json:"dns_name,omitempty"`
16728  
16729  	// The set of 8 one-bit flags, of which only one flag, the Opt-Out flag, is
16730  	// defined by RFC 5155. The Opt-Out flag indicates whether the NSEC3 record
16731  	// covers unsigned delegations.
16732  	Flags uint32 `json:"flags,omitempty"`
16733  
16734  	// The number of times the hash function was performed.
16735  	Iterations uint32 `json:"iterations,omitempty"`
16736  
16737  	// The time of the last DNS query in Epoch seconds format.
16738  	LastQueried *UnixTime `json:"last_queried,omitempty"`
16739  
16740  	// The name of the NSEC3PARAM record in FQDN format. It has to be the same as
16741  	// the zone, where the record resides.
16742  	Name string `json:"name,omitempty"`
16743  
16744  	// A series of case-insensitive hexadecimal digits. It is appended to the
16745  	// original owner name as protection against pre-calculated dictionary attacks.
16746  	// A new salt value is generated when the ZSK rolls over, for which the user
16747  	// can control the period. For a random salt value, the selected length is
16748  	// between one and 15 octets.
16749  	Salt string `json:"salt,omitempty"`
16750  
16751  	// The Time To Live (TTL) value for the record. A 32-bit unsigned integer that
16752  	// represents the duration, in seconds, for which the record is valid (cached).
16753  	// Zero indicates that the record should not be cached.
16754  	Ttl uint32 `json:"ttl,omitempty"`
16755  
16756  	// Use flag for: ttl
16757  	UseTtl bool `json:"use_ttl,omitempty"`
16758  
16759  	// The name of the DNS View in which the record resides. Example: "external".
16760  	View string `json:"view,omitempty"`
16761  
16762  	// The name of the zone in which the record resides. Example: "zone.com". If a
16763  	// view is not specified when searching by zone, the default view is used.
16764  	Zone string `json:"zone,omitempty"`
16765  }
16766  
16767  func (RecordNsec3param) ObjectType() string {
16768  	return "record:nsec3param"
16769  }
16770  
16771  func (obj RecordNsec3param) ReturnFields() []string {
16772  	if obj.returnFields == nil {
16773  		obj.returnFields = []string{"name", "view"}
16774  	}
16775  	return obj.returnFields
16776  }
16777  
16778  // RecordPTR represents Infoblox object record:ptr.
16779  // In a forward-mapping zone, a PTR (pointer) record maps a domain name to
16780  // another domain name. In a reverse-mapping zone, a PTR (pointer) record maps
16781  // an address to a domain name. To define a specific address-to-name mapping,
16782  // add a PTR record to a previously defined authoritative reverse-mapping zone.
16783  type RecordPTR struct {
16784  	IBBase `json:"-"`
16785  
16786  	Ref string `json:"_ref,omitempty"`
16787  
16788  	// Aws Route 53 record information.
16789  	AwsRte53RecordInfo *Awsrte53recordinfo `json:"aws_rte53_record_info,omitempty"`
16790  
16791  	// Structure containing all cloud API related information for this object.
16792  	CloudInfo *GridCloudapiInfo `json:"cloud_info,omitempty"`
16793  
16794  	// Comment for the record; maximum 256 characters.
16795  	Comment *string `json:"comment,omitempty"`
16796  
16797  	// The time of the record creation in Epoch seconds format.
16798  	CreationTime *UnixTime `json:"creation_time,omitempty"`
16799  
16800  	// The record creator. Note that changing creator from or to 'SYSTEM' value is
16801  	// not allowed.
16802  	Creator string `json:"creator,omitempty"`
16803  
16804  	// The GSS-TSIG principal that owns this record.
16805  	DdnsPrincipal *string `json:"ddns_principal,omitempty"`
16806  
16807  	// Determines if the DDNS updates for this record are allowed or not.
16808  	DdnsProtected *bool `json:"ddns_protected,omitempty"`
16809  
16810  	// Determines if the record is disabled or not. False means that the record is
16811  	// enabled.
16812  	Disable *bool `json:"disable,omitempty"`
16813  
16814  	// The discovered data for this PTR record.
16815  	DiscoveredData *Discoverydata `json:"discovered_data,omitempty"`
16816  
16817  	// The name for a DNS PTR record in punycode format.
16818  	DnsName string `json:"dns_name,omitempty"`
16819  
16820  	// The domain name of the DNS PTR record in punycode format.
16821  	DnsPtrdname string `json:"dns_ptrdname,omitempty"`
16822  
16823  	// Extensible attributes associated with the object. For valid values for
16824  	// extensible attributes, see {extattrs:values}.
16825  	Ea EA `json:"extattrs"`
16826  
16827  	// Determines if the reclamation is allowed for the record or not.
16828  	ForbidReclamation *bool `json:"forbid_reclamation,omitempty"`
16829  
16830  	// The IPv4 Address of the record.
16831  	Ipv4Addr *string `json:"ipv4addr,omitempty"`
16832  
16833  	// The IPv6 Address of the record.
16834  	Ipv6Addr *string `json:"ipv6addr,omitempty"`
16835  
16836  	// The time of the last DNS query in Epoch seconds format.
16837  	LastQueried *UnixTime `json:"last_queried,omitempty"`
16838  
16839  	// The Microsoft Active Directory user related information.
16840  	MsAdUserData *MsserverAduserData `json:"ms_ad_user_data,omitempty"`
16841  
16842  	// The name of the DNS PTR record in FQDN format.
16843  	Name *string `json:"name,omitempty"`
16844  
16845  	// The domain name of the DNS PTR record in FQDN format.
16846  	PtrdName *string `json:"ptrdname,omitempty"`
16847  
16848  	// Determines if the record is reclaimable or not.
16849  	Reclaimable bool `json:"reclaimable,omitempty"`
16850  
16851  	// The name of the shared record group in which the record resides. This field
16852  	// exists only on db_objects if this record is a shared record.
16853  	SharedRecordGroup string `json:"shared_record_group,omitempty"`
16854  
16855  	// Time To Live (TTL) value for the record. A 32-bit unsigned integer that
16856  	// represents the duration, in seconds, that the record is valid (cached). Zero
16857  	// indicates that the record should not be cached.
16858  	Ttl *uint32 `json:"ttl,omitempty"`
16859  
16860  	// Use flag for: ttl
16861  	UseTtl *bool `json:"use_ttl,omitempty"`
16862  
16863  	// Name of the DNS View in which the record resides, for example "external".
16864  	View string `json:"view,omitempty"`
16865  
16866  	// The name of the zone in which the record resides. For example: "zone.com".
16867  	// If a view is not specified when searching by zone, the default view is used.
16868  	Zone string `json:"zone,omitempty"`
16869  }
16870  
16871  func (RecordPTR) ObjectType() string {
16872  	return "record:ptr"
16873  }
16874  
16875  func (obj RecordPTR) ReturnFields() []string {
16876  	if obj.returnFields == nil {
16877  		obj.returnFields = []string{"ptrdname", "view"}
16878  	}
16879  	return obj.returnFields
16880  }
16881  
16882  func NewEmptyRecordPTR() *RecordPTR {
16883  	res := RecordPTR{}
16884  	res.returnFields = []string{"extattrs", "ipv4addr", "ipv6addr", "name", "ptrdname", "view", "zone", "comment", "use_ttl", "ttl"}
16885  
16886  	return &res
16887  }
16888  
16889  func NewRecordPTR(dnsView string, ptrdname string, useTtl bool, ttl uint32, comment string, ea EA) *RecordPTR {
16890  	res := NewEmptyRecordPTR()
16891  	res.View = dnsView
16892  	res.PtrdName = &ptrdname
16893  	res.UseTtl = &useTtl
16894  	res.Ttl = &ttl
16895  	res.Comment = &comment
16896  	res.Ea = ea
16897  
16898  	return res
16899  }
16900  
16901  // RecordRpzA represents Infoblox object record:rpz:a.
16902  // An RPZ Substitute (A Record) Rule maps a domain name to a substitute IPv4
16903  // address. To define a specific name-to-address mapping, add an Substitute (A
16904  // Record) Rule to a previously defined Response Policy Zone.
16905  type RecordRpzA struct {
16906  	IBBase `json:"-"`
16907  
16908  	Ref string `json:"_ref,omitempty"`
16909  
16910  	// The comment for the record; maximum 256 characters.
16911  	Comment *string `json:"comment,omitempty"`
16912  
16913  	// Determines if the record is disabled or not. False means that the record is
16914  	// enabled.
16915  	Disable *bool `json:"disable,omitempty"`
16916  
16917  	// Extensible attributes associated with the object. For valid values for
16918  	// extensible attributes, see {extattrs:values}.
16919  	Ea EA `json:"extattrs"`
16920  
16921  	// The IPv4 Address of the substitute rule.
16922  	Ipv4Addr *string `json:"ipv4addr,omitempty"`
16923  
16924  	// The name for a record in FQDN format. This value cannot be in unicode
16925  	// format.
16926  	Name *string `json:"name,omitempty"`
16927  
16928  	// The name of a response policy zone in which the record resides.
16929  	RpZone *string `json:"rp_zone,omitempty"`
16930  
16931  	// The Time To Live (TTL) value for record. A 32-bit unsigned integer that
16932  	// represents the duration, in seconds, for which the record is valid (cached).
16933  	// Zero indicates that the record should not be cached.
16934  	Ttl *uint32 `json:"ttl,omitempty"`
16935  
16936  	// Use flag for: ttl
16937  	UseTtl *bool `json:"use_ttl,omitempty"`
16938  
16939  	// The name of the DNS View in which the record resides. Example: "external".
16940  	View *string `json:"view,omitempty"`
16941  
16942  	// The name of the zone in which the record resides. Example: "zone.com". If a
16943  	// view is not specified when searching by zone, the default view is used.
16944  	Zone string `json:"zone,omitempty"`
16945  }
16946  
16947  func (RecordRpzA) ObjectType() string {
16948  	return "record:rpz:a"
16949  }
16950  
16951  func (obj RecordRpzA) ReturnFields() []string {
16952  	if obj.returnFields == nil {
16953  		obj.returnFields = []string{"ipv4addr", "name", "view"}
16954  	}
16955  	return obj.returnFields
16956  }
16957  
16958  // RecordRpzAIpaddress represents Infoblox object record:rpz:a:ipaddress.
16959  // An RPZ AIpAddress is an Substitute (IPv4 Address) Rule that maps an IP
16960  // address represented by a host name to a substitute IPv4 address. To define a
16961  // specific address-to-address mapping, add an Substitute (IPv4 Address) Rule
16962  // to a previously defined Response Policy Zone.
16963  type RecordRpzAIpaddress struct {
16964  	IBBase `json:"-"`
16965  
16966  	Ref string `json:"_ref,omitempty"`
16967  
16968  	// The comment for the record; maximum 256 characters.
16969  	Comment *string `json:"comment,omitempty"`
16970  
16971  	// Determines if the record is disabled or not. False means that the record is
16972  	// enabled.
16973  	Disable *bool `json:"disable,omitempty"`
16974  
16975  	// Extensible attributes associated with the object. For valid values for
16976  	// extensible attributes, see {extattrs:values}.
16977  	Ea EA `json:"extattrs"`
16978  
16979  	// The IPv4 Address of the substitute rule.
16980  	Ipv4Addr *string `json:"ipv4addr,omitempty"`
16981  
16982  	// The name for a record in FQDN format. This value cannot be in unicode
16983  	// format.
16984  	Name *string `json:"name,omitempty"`
16985  
16986  	// The name of a response policy zone in which the record resides.
16987  	RpZone *string `json:"rp_zone,omitempty"`
16988  
16989  	// The Time To Live (TTL) value for record. A 32-bit unsigned integer that
16990  	// represents the duration, in seconds, for which the record is valid (cached).
16991  	// Zero indicates that the record should not be cached.
16992  	Ttl *uint32 `json:"ttl,omitempty"`
16993  
16994  	// Use flag for: ttl
16995  	UseTtl *bool `json:"use_ttl,omitempty"`
16996  
16997  	// The name of the DNS View in which the record resides. Example: "external".
16998  	View *string `json:"view,omitempty"`
16999  
17000  	// The name of the zone in which the record resides. Example: "zone.com". If a
17001  	// view is not specified when searching by zone, the default view is used.
17002  	Zone string `json:"zone,omitempty"`
17003  }
17004  
17005  func (RecordRpzAIpaddress) ObjectType() string {
17006  	return "record:rpz:a:ipaddress"
17007  }
17008  
17009  func (obj RecordRpzAIpaddress) ReturnFields() []string {
17010  	if obj.returnFields == nil {
17011  		obj.returnFields = []string{"ipv4addr", "name", "view"}
17012  	}
17013  	return obj.returnFields
17014  }
17015  
17016  // RecordRpzAaaa represents Infoblox object record:rpz:aaaa.
17017  // An RPZ Substitute (AAAA Record) Rule, maps a domain name to a substitute
17018  // IPv6 address. To define a specific name-to-address mapping, add an
17019  // Substitute (AAAA Record) Rule to a previously defined Response Policy Zone.
17020  type RecordRpzAaaa struct {
17021  	IBBase `json:"-"`
17022  
17023  	Ref string `json:"_ref,omitempty"`
17024  
17025  	// The comment for the record; maximum 256 characters.
17026  	Comment *string `json:"comment,omitempty"`
17027  
17028  	// Determines if the record is disabled or not. False means that the record is
17029  	// enabled.
17030  	Disable *bool `json:"disable,omitempty"`
17031  
17032  	// Extensible attributes associated with the object. For valid values for
17033  	// extensible attributes, see {extattrs:values}.
17034  	Ea EA `json:"extattrs"`
17035  
17036  	// The IPv6 Address of the substitute rule.
17037  	Ipv6Addr *string `json:"ipv6addr,omitempty"`
17038  
17039  	// The name for a record in FQDN format. This value cannot be in unicode
17040  	// format.
17041  	Name *string `json:"name,omitempty"`
17042  
17043  	// The name of a response policy zone in which the record resides.
17044  	RpZone *string `json:"rp_zone,omitempty"`
17045  
17046  	// The Time To Live (TTL) value for record. A 32-bit unsigned integer that
17047  	// represents the duration, in seconds, for which the record is valid (cached).
17048  	// Zero indicates that the record should not be cached.
17049  	Ttl *uint32 `json:"ttl,omitempty"`
17050  
17051  	// Use flag for: ttl
17052  	UseTtl *bool `json:"use_ttl,omitempty"`
17053  
17054  	// The name of the DNS View in which the record resides. Example: "external".
17055  	View *string `json:"view,omitempty"`
17056  
17057  	// The name of the zone in which the record resides. Example: "zone.com". If a
17058  	// view is not specified when searching by zone, the default view is used.
17059  	Zone string `json:"zone,omitempty"`
17060  }
17061  
17062  func (RecordRpzAaaa) ObjectType() string {
17063  	return "record:rpz:aaaa"
17064  }
17065  
17066  func (obj RecordRpzAaaa) ReturnFields() []string {
17067  	if obj.returnFields == nil {
17068  		obj.returnFields = []string{"ipv6addr", "name", "view"}
17069  	}
17070  	return obj.returnFields
17071  }
17072  
17073  // RecordRpzAaaaIpaddress represents Infoblox object record:rpz:aaaa:ipaddress.
17074  // An RPZ Substitute (IPv6 Address) Rule maps an IP address represented by a
17075  // host name to a substitute IPv6 address. To define a specific
17076  // address-to-address mapping, add an RPZ Substitute (IPv6 Address) Rule to a
17077  // previously defined Response Policy Zone.
17078  type RecordRpzAaaaIpaddress struct {
17079  	IBBase `json:"-"`
17080  
17081  	Ref string `json:"_ref,omitempty"`
17082  
17083  	// The comment for the record; maximum 256 characters.
17084  	Comment *string `json:"comment,omitempty"`
17085  
17086  	// Determines if the record is disabled or not. False means that the record is
17087  	// enabled.
17088  	Disable *bool `json:"disable,omitempty"`
17089  
17090  	// Extensible attributes associated with the object. For valid values for
17091  	// extensible attributes, see {extattrs:values}.
17092  	Ea EA `json:"extattrs"`
17093  
17094  	// The IPv6 Address of the substitute rule.
17095  	Ipv6Addr *string `json:"ipv6addr,omitempty"`
17096  
17097  	// The name for a record in FQDN format. This value cannot be in unicode
17098  	// format.
17099  	Name *string `json:"name,omitempty"`
17100  
17101  	// The name of a response policy zone in which the record resides.
17102  	RpZone *string `json:"rp_zone,omitempty"`
17103  
17104  	// The Time To Live (TTL) value for record. A 32-bit unsigned integer that
17105  	// represents the duration, in seconds, for which the record is valid (cached).
17106  	// Zero indicates that the record should not be cached.
17107  	Ttl *uint32 `json:"ttl,omitempty"`
17108  
17109  	// Use flag for: ttl
17110  	UseTtl *bool `json:"use_ttl,omitempty"`
17111  
17112  	// The name of the DNS View in which the record resides. Example: "external".
17113  	View *string `json:"view,omitempty"`
17114  
17115  	// The name of the zone in which the record resides. Example: "zone.com". If a
17116  	// view is not specified when searching by zone, the default view is used.
17117  	Zone string `json:"zone,omitempty"`
17118  }
17119  
17120  func (RecordRpzAaaaIpaddress) ObjectType() string {
17121  	return "record:rpz:aaaa:ipaddress"
17122  }
17123  
17124  func (obj RecordRpzAaaaIpaddress) ReturnFields() []string {
17125  	if obj.returnFields == nil {
17126  		obj.returnFields = []string{"ipv6addr", "name", "view"}
17127  	}
17128  	return obj.returnFields
17129  }
17130  
17131  // RecordRpzCname represents Infoblox object record:rpz:cname.
17132  // An RPZ CNAME record represents different RPZ rules, depending on the value
17133  // of the canonical name. The intention of this object is to support QNAME
17134  // Trigger policy. The QNAME policy trigger applies to requested domain names
17135  // (QNAME). This record represents Passthru Domain Name Rule, Block Domain Name
17136  // (No Such Domain) Rule, Block Domain Name (No Data) Rule and Substitute
17137  // (Domain Name) Rule.
17138  type RecordRpzCname struct {
17139  	IBBase `json:"-"`
17140  
17141  	Ref string `json:"_ref,omitempty"`
17142  
17143  	// The canonical name in FQDN format. This value can be in unicode format.
17144  	Canonical *string `json:"canonical,omitempty"`
17145  
17146  	// The comment for the record; maximum 256 characters.
17147  	Comment *string `json:"comment,omitempty"`
17148  
17149  	// Determines if the record is disabled or not. False means that the record is
17150  	// enabled.
17151  	Disable *bool `json:"disable,omitempty"`
17152  
17153  	// Extensible attributes associated with the object. For valid values for
17154  	// extensible attributes, see {extattrs:values}.
17155  	Ea EA `json:"extattrs"`
17156  
17157  	// The name for a record in FQDN format. This value cannot be in unicode
17158  	// format.
17159  	Name *string `json:"name,omitempty"`
17160  
17161  	// The name of a response policy zone in which the record resides.
17162  	RpZone *string `json:"rp_zone,omitempty"`
17163  
17164  	// The Time To Live (TTL) value for record. A 32-bit unsigned integer that
17165  	// represents the duration, in seconds, for which the record is valid (cached).
17166  	// Zero indicates that the record should not be cached.
17167  	Ttl *uint32 `json:"ttl,omitempty"`
17168  
17169  	// Use flag for: ttl
17170  	UseTtl *bool `json:"use_ttl,omitempty"`
17171  
17172  	// The name of the DNS View in which the record resides. Example: "external".
17173  	View *string `json:"view,omitempty"`
17174  
17175  	// The name of the zone in which the record resides. Example: "zone.com". If a
17176  	// view is not specified when searching by zone, the default view is used.
17177  	Zone string `json:"zone,omitempty"`
17178  }
17179  
17180  func (RecordRpzCname) ObjectType() string {
17181  	return "record:rpz:cname"
17182  }
17183  
17184  func (obj RecordRpzCname) ReturnFields() []string {
17185  	if obj.returnFields == nil {
17186  		obj.returnFields = []string{"canonical", "name", "view"}
17187  	}
17188  	return obj.returnFields
17189  }
17190  
17191  // RecordRpzCnameClientipaddress represents Infoblox object record:rpz:cname:clientipaddress.
17192  // A DNS RPZ CNAMEClientIpAddress record represents different RPZ rules,
17193  // depending on the value of the canonical name. This record represents
17194  // Passthru IP Address Rule, Block IP Address (No Such Domain) Rule, Block IP
17195  // Address (No Data) Rule.
17196  type RecordRpzCnameClientipaddress struct {
17197  	IBBase `json:"-"`
17198  
17199  	Ref string `json:"_ref,omitempty"`
17200  
17201  	// The canonical name in FQDN format. This value can be in unicode format.
17202  	Canonical *string `json:"canonical,omitempty"`
17203  
17204  	// The comment for the record; maximum 256 characters.
17205  	Comment *string `json:"comment,omitempty"`
17206  
17207  	// Determines if the record is disabled or not. False means that the record is
17208  	// enabled.
17209  	Disable *bool `json:"disable,omitempty"`
17210  
17211  	// Extensible attributes associated with the object. For valid values for
17212  	// extensible attributes, see {extattrs:values}.
17213  	Ea EA `json:"extattrs"`
17214  
17215  	// Indicates whether the record is an IPv4 record. If the return value is
17216  	// "true", it is an IPv4 record. Ohterwise, it is an IPv6 record.
17217  	IsIpv4 bool `json:"is_ipv4,omitempty"`
17218  
17219  	// The name for a record in FQDN format. This value cannot be in unicode
17220  	// format.
17221  	Name *string `json:"name,omitempty"`
17222  
17223  	// The name of a response policy zone in which the record resides.
17224  	RpZone *string `json:"rp_zone,omitempty"`
17225  
17226  	// The Time To Live (TTL) value for record. A 32-bit unsigned integer that
17227  	// represents the duration, in seconds, for which the record is valid (cached).
17228  	// Zero indicates that the record should not be cached.
17229  	Ttl *uint32 `json:"ttl,omitempty"`
17230  
17231  	// Use flag for: ttl
17232  	UseTtl *bool `json:"use_ttl,omitempty"`
17233  
17234  	// The name of the DNS View in which the record resides. Example: "external".
17235  	View *string `json:"view,omitempty"`
17236  
17237  	// The name of the zone in which the record resides. Example: "zone.com". If a
17238  	// view is not specified when searching by zone, the default view is used.
17239  	Zone string `json:"zone,omitempty"`
17240  }
17241  
17242  func (RecordRpzCnameClientipaddress) ObjectType() string {
17243  	return "record:rpz:cname:clientipaddress"
17244  }
17245  
17246  func (obj RecordRpzCnameClientipaddress) ReturnFields() []string {
17247  	if obj.returnFields == nil {
17248  		obj.returnFields = []string{"canonical", "name", "view"}
17249  	}
17250  	return obj.returnFields
17251  }
17252  
17253  // RecordRpzCnameClientipaddressdn represents Infoblox object record:rpz:cname:clientipaddressdn.
17254  // A DNS Substitute Domain Name (Based on Client IP Address) rule represents
17255  // different Response Policy Zone (RPZ) rules, depending on the value of the
17256  // canonical name.
17257  type RecordRpzCnameClientipaddressdn struct {
17258  	IBBase `json:"-"`
17259  
17260  	Ref string `json:"_ref,omitempty"`
17261  
17262  	// The canonical name in FQDN format. This value can be in unicode format.
17263  	Canonical *string `json:"canonical,omitempty"`
17264  
17265  	// The comment for the record; maximum 256 characters.
17266  	Comment *string `json:"comment,omitempty"`
17267  
17268  	// Determines if the record is disabled or not. False means that the record is
17269  	// enabled.
17270  	Disable *bool `json:"disable,omitempty"`
17271  
17272  	// Extensible attributes associated with the object. For valid values for
17273  	// extensible attributes, see {extattrs:values}.
17274  	Ea EA `json:"extattrs"`
17275  
17276  	// Indicates whether the record is an IPv4 record. If the return value is
17277  	// "true", it is an IPv4 record. Ohterwise, it is an IPv6 record.
17278  	IsIpv4 bool `json:"is_ipv4,omitempty"`
17279  
17280  	// The name for a record in FQDN format. This value cannot be in unicode
17281  	// format.
17282  	Name *string `json:"name,omitempty"`
17283  
17284  	// The name of a response policy zone in which the record resides.
17285  	RpZone *string `json:"rp_zone,omitempty"`
17286  
17287  	// The Time To Live (TTL) value for record. A 32-bit unsigned integer that
17288  	// represents the duration, in seconds, for which the record is valid (cached).
17289  	// Zero indicates that the record should not be cached.
17290  	Ttl *uint32 `json:"ttl,omitempty"`
17291  
17292  	// Use flag for: ttl
17293  	UseTtl *bool `json:"use_ttl,omitempty"`
17294  
17295  	// The name of the DNS View in which the record resides. Example: "external".
17296  	View *string `json:"view,omitempty"`
17297  
17298  	// The name of the zone in which the record resides. Example: "zone.com". If a
17299  	// view is not specified when searching by zone, the default view is used.
17300  	Zone string `json:"zone,omitempty"`
17301  }
17302  
17303  func (RecordRpzCnameClientipaddressdn) ObjectType() string {
17304  	return "record:rpz:cname:clientipaddressdn"
17305  }
17306  
17307  func (obj RecordRpzCnameClientipaddressdn) ReturnFields() []string {
17308  	if obj.returnFields == nil {
17309  		obj.returnFields = []string{"canonical", "name", "view"}
17310  	}
17311  	return obj.returnFields
17312  }
17313  
17314  // RecordRpzCnameIpaddress represents Infoblox object record:rpz:cname:ipaddress.
17315  // A DNS RPZ CNAMEIpAddress record represents different RPZ rules, depending on
17316  // the value of the canonical name. This record represents Passthru IP Address
17317  // Rule, Block IP Address (No Such Domain) Rule, Block IP Address (No Data)
17318  // Rule.
17319  type RecordRpzCnameIpaddress struct {
17320  	IBBase `json:"-"`
17321  
17322  	Ref string `json:"_ref,omitempty"`
17323  
17324  	// The canonical name in FQDN format. This value can be in unicode format.
17325  	Canonical *string `json:"canonical,omitempty"`
17326  
17327  	// The comment for the record; maximum 256 characters.
17328  	Comment *string `json:"comment,omitempty"`
17329  
17330  	// Determines if the record is disabled or not. False means that the record is
17331  	// enabled.
17332  	Disable *bool `json:"disable,omitempty"`
17333  
17334  	// Extensible attributes associated with the object. For valid values for
17335  	// extensible attributes, see {extattrs:values}.
17336  	Ea EA `json:"extattrs"`
17337  
17338  	// Indicates whether the record is an IPv4 record. If the return value is
17339  	// "true", it is an IPv4 record. Ohterwise, it is an IPv6 record.
17340  	IsIpv4 bool `json:"is_ipv4,omitempty"`
17341  
17342  	// The name for a record in FQDN format. This value cannot be in unicode
17343  	// format.
17344  	Name *string `json:"name,omitempty"`
17345  
17346  	// The name of a response policy zone in which the record resides.
17347  	RpZone *string `json:"rp_zone,omitempty"`
17348  
17349  	// The Time To Live (TTL) value for record. A 32-bit unsigned integer that
17350  	// represents the duration, in seconds, for which the record is valid (cached).
17351  	// Zero indicates that the record should not be cached.
17352  	Ttl *uint32 `json:"ttl,omitempty"`
17353  
17354  	// Use flag for: ttl
17355  	UseTtl *bool `json:"use_ttl,omitempty"`
17356  
17357  	// The name of the DNS View in which the record resides. Example: "external".
17358  	View *string `json:"view,omitempty"`
17359  
17360  	// The name of the zone in which the record resides. Example: "zone.com". If a
17361  	// view is not specified when searching by zone, the default view is used.
17362  	Zone string `json:"zone,omitempty"`
17363  }
17364  
17365  func (RecordRpzCnameIpaddress) ObjectType() string {
17366  	return "record:rpz:cname:ipaddress"
17367  }
17368  
17369  func (obj RecordRpzCnameIpaddress) ReturnFields() []string {
17370  	if obj.returnFields == nil {
17371  		obj.returnFields = []string{"canonical", "name", "view"}
17372  	}
17373  	return obj.returnFields
17374  }
17375  
17376  // RecordRpzCnameIpaddressdn represents Infoblox object record:rpz:cname:ipaddressdn.
17377  // A DNS Substitute Domain Name (Based on IP Address) rule represents different
17378  // Response Policy Zone (RPZ) rules, depending on the value of the canonical
17379  // name.
17380  type RecordRpzCnameIpaddressdn struct {
17381  	IBBase `json:"-"`
17382  
17383  	Ref string `json:"_ref,omitempty"`
17384  
17385  	// The canonical name in FQDN format. This value can be in unicode format.
17386  	Canonical *string `json:"canonical,omitempty"`
17387  
17388  	// The comment for the record; maximum 256 characters.
17389  	Comment *string `json:"comment,omitempty"`
17390  
17391  	// Determines if the record is disabled or not. False means that the record is
17392  	// enabled.
17393  	Disable *bool `json:"disable,omitempty"`
17394  
17395  	// Extensible attributes associated with the object. For valid values for
17396  	// extensible attributes, see {extattrs:values}.
17397  	Ea EA `json:"extattrs"`
17398  
17399  	// Indicates whether the record is an IPv4 record. If the return value is
17400  	// "true", it is an IPv4 record. Ohterwise, it is an IPv6 record.
17401  	IsIpv4 bool `json:"is_ipv4,omitempty"`
17402  
17403  	// The name for a record in FQDN format. This value cannot be in unicode
17404  	// format.
17405  	Name *string `json:"name,omitempty"`
17406  
17407  	// The name of a response policy zone in which the record resides.
17408  	RpZone *string `json:"rp_zone,omitempty"`
17409  
17410  	// The Time To Live (TTL) value for record. A 32-bit unsigned integer that
17411  	// represents the duration, in seconds, for which the record is valid (cached).
17412  	// Zero indicates that the record should not be cached.
17413  	Ttl *uint32 `json:"ttl,omitempty"`
17414  
17415  	// Use flag for: ttl
17416  	UseTtl *bool `json:"use_ttl,omitempty"`
17417  
17418  	// The name of the DNS View in which the record resides. Example: "external".
17419  	View *string `json:"view,omitempty"`
17420  
17421  	// The name of the zone in which the record resides. Example: "zone.com". If a
17422  	// view is not specified when searching by zone, the default view is used.
17423  	Zone string `json:"zone,omitempty"`
17424  }
17425  
17426  func (RecordRpzCnameIpaddressdn) ObjectType() string {
17427  	return "record:rpz:cname:ipaddressdn"
17428  }
17429  
17430  func (obj RecordRpzCnameIpaddressdn) ReturnFields() []string {
17431  	if obj.returnFields == nil {
17432  		obj.returnFields = []string{"canonical", "name", "view"}
17433  	}
17434  	return obj.returnFields
17435  }
17436  
17437  // RecordRpzMx represents Infoblox object record:rpz:mx.
17438  // An RPZ Substitute (MX Record) Rule maps a domain name to a mail exchanger. A
17439  // mail exchanger is a server that either delivers or forwards mail.
17440  type RecordRpzMx struct {
17441  	IBBase `json:"-"`
17442  
17443  	Ref string `json:"_ref,omitempty"`
17444  
17445  	// The comment for the record; maximum 256 characters.
17446  	Comment *string `json:"comment,omitempty"`
17447  
17448  	// Determines if the record is disabled or not. False means that the record is
17449  	// enabled.
17450  	Disable *bool `json:"disable,omitempty"`
17451  
17452  	// Extensible attributes associated with the object. For valid values for
17453  	// extensible attributes, see {extattrs:values}.
17454  	Ea EA `json:"extattrs"`
17455  
17456  	// Mail exchanger name in FQDN format. This value can be in unicode format.
17457  	MailExchanger *string `json:"mail_exchanger,omitempty"`
17458  
17459  	// The name for a record in FQDN format. This value cannot be in unicode
17460  	// format.
17461  	Name *string `json:"name,omitempty"`
17462  
17463  	// Preference value, 0 to 65535 (inclusive) in 32-bit unsigned integer format.
17464  	Preference *uint32 `json:"preference,omitempty"`
17465  
17466  	// The name of a response policy zone in which the record resides.
17467  	RpZone *string `json:"rp_zone,omitempty"`
17468  
17469  	// The Time To Live (TTL) value for record. A 32-bit unsigned integer that
17470  	// represents the duration, in seconds, for which the record is valid (cached).
17471  	// Zero indicates that the record should not be cached.
17472  	Ttl *uint32 `json:"ttl,omitempty"`
17473  
17474  	// Use flag for: ttl
17475  	UseTtl *bool `json:"use_ttl,omitempty"`
17476  
17477  	// The name of the DNS View in which the record resides. Example: "external".
17478  	View *string `json:"view,omitempty"`
17479  
17480  	// The name of the zone in which the record resides. Example: "zone.com". If a
17481  	// view is not specified when searching by zone, the default view is used.
17482  	Zone string `json:"zone,omitempty"`
17483  }
17484  
17485  func (RecordRpzMx) ObjectType() string {
17486  	return "record:rpz:mx"
17487  }
17488  
17489  func (obj RecordRpzMx) ReturnFields() []string {
17490  	if obj.returnFields == nil {
17491  		obj.returnFields = []string{"mail_exchanger", "name", "preference", "view"}
17492  	}
17493  	return obj.returnFields
17494  }
17495  
17496  // RecordRpzNaptr represents Infoblox object record:rpz:naptr.
17497  // An RPZ Substitute (NAPTR Record) Rule object represents the substitution
17498  // rule for DNS Naming Authority Pointer (NAPTR) records. This rule specifies a
17499  // regular expression-based rewrite rule that, when applied to an existing
17500  // string, produces a new domain name or URI.
17501  type RecordRpzNaptr struct {
17502  	IBBase `json:"-"`
17503  
17504  	Ref string `json:"_ref,omitempty"`
17505  
17506  	// The comment for the record; maximum 256 characters.
17507  	Comment *string `json:"comment,omitempty"`
17508  
17509  	// Determines if the record is disabled or not. False means that the record is
17510  	// enabled.
17511  	Disable *bool `json:"disable,omitempty"`
17512  
17513  	// Extensible attributes associated with the object. For valid values for
17514  	// extensible attributes, see {extattrs:values}.
17515  	Ea EA `json:"extattrs"`
17516  
17517  	// The flags used to control the interpretation of the fields for a Substitute
17518  	// (NAPTR Record) Rule object. Supported values for the flags field are "U",
17519  	// "S", "P" and "A".
17520  	Flags *string `json:"flags,omitempty"`
17521  
17522  	// The time of the last DNS query in Epoch seconds format.
17523  	LastQueried *UnixTime `json:"last_queried,omitempty"`
17524  
17525  	// The name for a record in FQDN format. This value cannot be in unicode
17526  	// format.
17527  	Name *string `json:"name,omitempty"`
17528  
17529  	// The order parameter of the Substitute (NAPTR Record) Rule records. This
17530  	// parameter specifies the order in which the NAPTR rules are applied when
17531  	// multiple rules are present. Valid values are from 0 to 65535 (inclusive), in
17532  	// 32-bit unsigned integer format.
17533  	Order *uint32 `json:"order,omitempty"`
17534  
17535  	// The preference of the Substitute (NAPTR Record) Rule record. The preference
17536  	// field determines the order NAPTR records are processed when multiple records
17537  	// with the same order parameter are present. Valid values are from 0 to 65535
17538  	// (inclusive), in 32-bit unsigned integer format.
17539  	Preference *uint32 `json:"preference,omitempty"`
17540  
17541  	// The regular expression-based rewriting rule of the Substitute (NAPTR Record)
17542  	// Rule record. This should be a POSIX compliant regular expression, including
17543  	// the substitution rule and flags. Refer to RFC 2915 for the field syntax
17544  	// details.
17545  	Regexp *string `json:"regexp,omitempty"`
17546  
17547  	// The replacement field of the Substitute (NAPTR Record) Rule object. For
17548  	// nonterminal NAPTR records, this field specifies the next domain name to look
17549  	// up. This value can be in unicode format.
17550  	Replacement *string `json:"replacement,omitempty"`
17551  
17552  	// The name of a response policy zone in which the record resides.
17553  	RpZone *string `json:"rp_zone,omitempty"`
17554  
17555  	// The services field of the Substitute (NAPTR Record) Rule object; maximum 128
17556  	// characters. The services field contains protocol and service identifiers,
17557  	// such as "http+E2U" or "SIPS+D2T".
17558  	Services *string `json:"services,omitempty"`
17559  
17560  	// The Time To Live (TTL) value for record. A 32-bit unsigned integer that
17561  	// represents the duration, in seconds, for which the record is valid (cached).
17562  	// Zero indicates that the record should not be cached.
17563  	Ttl *uint32 `json:"ttl,omitempty"`
17564  
17565  	// Use flag for: ttl
17566  	UseTtl *bool `json:"use_ttl,omitempty"`
17567  
17568  	// The name of the DNS View in which the record resides. Example: "external".
17569  	View *string `json:"view,omitempty"`
17570  
17571  	// The name of the zone in which the record resides. Example: "zone.com". If a
17572  	// view is not specified when searching by zone, the default view is used.
17573  	Zone string `json:"zone,omitempty"`
17574  }
17575  
17576  func (RecordRpzNaptr) ObjectType() string {
17577  	return "record:rpz:naptr"
17578  }
17579  
17580  func (obj RecordRpzNaptr) ReturnFields() []string {
17581  	if obj.returnFields == nil {
17582  		obj.returnFields = []string{"name", "order", "preference", "regexp", "replacement", "services", "view"}
17583  	}
17584  	return obj.returnFields
17585  }
17586  
17587  // RecordRpzPtr represents Infoblox object record:rpz:ptr.
17588  // An RPZ Substitute (PTR Record) Rule object represents a Pointer (PTR)
17589  // resource record. To define a specific address-to-name mapping, add an RPZ
17590  // Substitute (PTR Record) Rule to a previously defined Response Policy Zone.
17591  type RecordRpzPtr struct {
17592  	IBBase `json:"-"`
17593  
17594  	Ref string `json:"_ref,omitempty"`
17595  
17596  	// The comment for the record; maximum 256 characters.
17597  	Comment *string `json:"comment,omitempty"`
17598  
17599  	// Determines if the record is disabled or not. False means that the record is
17600  	// enabled.
17601  	Disable *bool `json:"disable,omitempty"`
17602  
17603  	// Extensible attributes associated with the object. For valid values for
17604  	// extensible attributes, see {extattrs:values}.
17605  	Ea EA `json:"extattrs"`
17606  
17607  	// The IPv4 Address of the substitute rule.
17608  	Ipv4Addr *string `json:"ipv4addr,omitempty"`
17609  
17610  	// The IPv6 Address of the substitute rule.
17611  	Ipv6Addr *string `json:"ipv6addr,omitempty"`
17612  
17613  	// The name of the RPZ Substitute (PTR Record) Rule object in FQDN format.
17614  	Name *string `json:"name,omitempty"`
17615  
17616  	// The domain name of the RPZ Substitute (PTR Record) Rule object in FQDN
17617  	// format.
17618  	PtrdName *string `json:"ptrdname,omitempty"`
17619  
17620  	// The name of a response policy zone in which the record resides.
17621  	RpZone *string `json:"rp_zone,omitempty"`
17622  
17623  	// The Time To Live (TTL) value for record. A 32-bit unsigned integer that
17624  	// represents the duration, in seconds, for which the record is valid (cached).
17625  	// Zero indicates that the record should not be cached.
17626  	Ttl *uint32 `json:"ttl,omitempty"`
17627  
17628  	// Use flag for: ttl
17629  	UseTtl *bool `json:"use_ttl,omitempty"`
17630  
17631  	// The name of the DNS View in which the record resides. Example: "external".
17632  	View *string `json:"view,omitempty"`
17633  
17634  	// The name of the zone in which the record resides. Example: "zone.com". If a
17635  	// view is not specified when searching by zone, the default view is used.
17636  	Zone string `json:"zone,omitempty"`
17637  }
17638  
17639  func (RecordRpzPtr) ObjectType() string {
17640  	return "record:rpz:ptr"
17641  }
17642  
17643  func (obj RecordRpzPtr) ReturnFields() []string {
17644  	if obj.returnFields == nil {
17645  		obj.returnFields = []string{"ptrdname", "view"}
17646  	}
17647  	return obj.returnFields
17648  }
17649  
17650  // RecordRpzSrv represents Infoblox object record:rpz:srv.
17651  // An RPZ Substitute (SRV Record) Rule object represents the substitution rule
17652  // for DNS SRV records.
17653  type RecordRpzSrv struct {
17654  	IBBase `json:"-"`
17655  
17656  	Ref string `json:"_ref,omitempty"`
17657  
17658  	// The comment for the record; maximum 256 characters.
17659  	Comment *string `json:"comment,omitempty"`
17660  
17661  	// Determines if the record is disabled or not. False means that the record is
17662  	// enabled.
17663  	Disable *bool `json:"disable,omitempty"`
17664  
17665  	// Extensible attributes associated with the object. For valid values for
17666  	// extensible attributes, see {extattrs:values}.
17667  	Ea EA `json:"extattrs"`
17668  
17669  	// The name for a record in FQDN format. This value cannot be in unicode
17670  	// format.
17671  	Name *string `json:"name,omitempty"`
17672  
17673  	// The port of the Substitute (SRV Record) Rule. Valid values are from 0 to
17674  	// 65535 (inclusive), in 32-bit unsigned integer format.
17675  	Port *uint32 `json:"port,omitempty"`
17676  
17677  	// The priority of the Substitute (SRV Record) Rule. Valid values are from 0 to
17678  	// 65535 (inclusive), in 32-bit unsigned integer format.
17679  	Priority *uint32 `json:"priority,omitempty"`
17680  
17681  	// The name of a response policy zone in which the record resides.
17682  	RpZone *string `json:"rp_zone,omitempty"`
17683  
17684  	// The target of the Substitute (SRV Record) Rule in FQDN format. This value
17685  	// can be in unicode format.
17686  	Target *string `json:"target,omitempty"`
17687  
17688  	// The Time To Live (TTL) value for record. A 32-bit unsigned integer that
17689  	// represents the duration, in seconds, for which the record is valid (cached).
17690  	// Zero indicates that the record should not be cached.
17691  	Ttl *uint32 `json:"ttl,omitempty"`
17692  
17693  	// Use flag for: ttl
17694  	UseTtl *bool `json:"use_ttl,omitempty"`
17695  
17696  	// The name of the DNS View in which the record resides. Example: "external".
17697  	View *string `json:"view,omitempty"`
17698  
17699  	// The weight of the Substitute (SRV Record) Rule. Valid values are from 0 to
17700  	// 65535 (inclusive), in 32-bit unsigned integer format.
17701  	Weight *uint32 `json:"weight,omitempty"`
17702  
17703  	// The name of the zone in which the record resides. Example: "zone.com". If a
17704  	// view is not specified when searching by zone, the default view is used.
17705  	Zone string `json:"zone,omitempty"`
17706  }
17707  
17708  func (RecordRpzSrv) ObjectType() string {
17709  	return "record:rpz:srv"
17710  }
17711  
17712  func (obj RecordRpzSrv) ReturnFields() []string {
17713  	if obj.returnFields == nil {
17714  		obj.returnFields = []string{"name", "port", "priority", "target", "view", "weight"}
17715  	}
17716  	return obj.returnFields
17717  }
17718  
17719  // RecordRpzTxt represents Infoblox object record:rpz:txt.
17720  // An RPZ Substitute (TXT Record) Rule object represents the substitution rule
17721  // for DNS TXT records.
17722  type RecordRpzTxt struct {
17723  	IBBase `json:"-"`
17724  
17725  	Ref string `json:"_ref,omitempty"`
17726  
17727  	// The comment for the record; maximum 256 characters.
17728  	Comment *string `json:"comment,omitempty"`
17729  
17730  	// Determines if the record is disabled or not. False means that the record is
17731  	// enabled.
17732  	Disable *bool `json:"disable,omitempty"`
17733  
17734  	// Extensible attributes associated with the object. For valid values for
17735  	// extensible attributes, see {extattrs:values}.
17736  	Ea EA `json:"extattrs"`
17737  
17738  	// The name for a record in FQDN format. This value cannot be in unicode
17739  	// format.
17740  	Name *string `json:"name,omitempty"`
17741  
17742  	// The name of a response policy zone in which the record resides.
17743  	RpZone *string `json:"rp_zone,omitempty"`
17744  
17745  	// Text associated with the record. It can contain up to 255 bytes per
17746  	// substring, up to a total of 512 bytes. To enter leading, trailing, or
17747  	// embedded spaces in the text, add quotes around the text to preserve the
17748  	// spaces.
17749  	Text *string `json:"text,omitempty"`
17750  
17751  	// The Time To Live (TTL) value for record. A 32-bit unsigned integer that
17752  	// represents the duration, in seconds, for which the record is valid (cached).
17753  	// Zero indicates that the record should not be cached.
17754  	Ttl *uint32 `json:"ttl,omitempty"`
17755  
17756  	// Use flag for: ttl
17757  	UseTtl *bool `json:"use_ttl,omitempty"`
17758  
17759  	// The name of the DNS View in which the record resides. Example: "external".
17760  	View *string `json:"view,omitempty"`
17761  
17762  	// The name of the zone in which the record resides. Example: "zone.com". If a
17763  	// view is not specified when searching by zone, the default view is used.
17764  	Zone string `json:"zone,omitempty"`
17765  }
17766  
17767  func (RecordRpzTxt) ObjectType() string {
17768  	return "record:rpz:txt"
17769  }
17770  
17771  func (obj RecordRpzTxt) ReturnFields() []string {
17772  	if obj.returnFields == nil {
17773  		obj.returnFields = []string{"name", "text", "view"}
17774  	}
17775  	return obj.returnFields
17776  }
17777  
17778  // RecordRrsig represents Infoblox object record:rrsig.
17779  // RRSIG records are one of the resource records in DNSSEC. These records store
17780  // digital signatures of resource record sets (RRsets). Digital signatures are
17781  // used to authenticate data that is in the signed RRsets.
17782  type RecordRrsig struct {
17783  	IBBase `json:"-"`
17784  
17785  	Ref string `json:"_ref,omitempty"`
17786  
17787  	// The cryptographic algorithm that was used to create the signature. It uses
17788  	// the same algorithm types as the DNSKEY record indicated in the key tag
17789  	// field.
17790  	Algorithm string `json:"algorithm,omitempty"`
17791  
17792  	// Structure containing all cloud API related information for this object.
17793  	CloudInfo *GridCloudapiInfo `json:"cloud_info,omitempty"`
17794  
17795  	// The creation time of the record.
17796  	CreationTime *UnixTime `json:"creation_time,omitempty"`
17797  
17798  	// The record creator.
17799  	Creator string `json:"creator,omitempty"`
17800  
17801  	// Name for an RRSIG record in punycode format.
17802  	DnsName string `json:"dns_name,omitempty"`
17803  
17804  	// The domain name, in punycode format, of the zone that contains the signed
17805  	// RRset.
17806  	DnsSignerName string `json:"dns_signer_name,omitempty"`
17807  
17808  	// The expiry time of an RRSIG record in Epoch seconds format.
17809  	ExpirationTime *UnixTime `json:"expiration_time,omitempty"`
17810  
17811  	// The inception time of an RRSIG record in Epoch seconds format.
17812  	InceptionTime *UnixTime `json:"inception_time,omitempty"`
17813  
17814  	// The key tag value of the DNSKEY RR that validates the signature.
17815  	KeyTag uint32 `json:"key_tag,omitempty"`
17816  
17817  	// The number of labels in the name of the RRset signed with the RRSIG object.
17818  	Labels uint32 `json:"labels,omitempty"`
17819  
17820  	// The time of the last DNS query in Epoch seconds format.
17821  	LastQueried *UnixTime `json:"last_queried,omitempty"`
17822  
17823  	// The name of the RRSIG record in FQDN format.
17824  	Name string `json:"name,omitempty"`
17825  
17826  	// The TTL value of the RRset covered by the RRSIG record.
17827  	OriginalTtl uint32 `json:"original_ttl,omitempty"`
17828  
17829  	// The Base64 encoded cryptographic signature that covers the RRSIG RDATA of
17830  	// the RRSIG Record object.
17831  	Signature string `json:"signature,omitempty"`
17832  
17833  	// The domain name of the zone in FQDN format that contains the signed RRset.
17834  	SignerName string `json:"signer_name,omitempty"`
17835  
17836  	// The Time To Live (TTL) value for the record. A 32-bit unsigned integer that
17837  	// represents the duration, in seconds, for which the record is valid (cached).
17838  	// Zero indicates that the record should not be cached.
17839  	Ttl uint32 `json:"ttl,omitempty"`
17840  
17841  	// The RR type covered by the RRSIG record.
17842  	TypeCovered string `json:"type_covered,omitempty"`
17843  
17844  	// Use flag for: ttl
17845  	UseTtl bool `json:"use_ttl,omitempty"`
17846  
17847  	// The name of the DNS View in which the record resides. Example: "external".
17848  	View string `json:"view,omitempty"`
17849  
17850  	// The name of the zone in which the record resides. Example: "zone.com". If a
17851  	// view is not specified when searching by zone, the default view is used.
17852  	Zone string `json:"zone,omitempty"`
17853  }
17854  
17855  func (RecordRrsig) ObjectType() string {
17856  	return "record:rrsig"
17857  }
17858  
17859  func (obj RecordRrsig) ReturnFields() []string {
17860  	if obj.returnFields == nil {
17861  		obj.returnFields = []string{"name", "view"}
17862  	}
17863  	return obj.returnFields
17864  }
17865  
17866  // RecordSRV represents Infoblox object record:srv.
17867  // A DNS SRV object represents an SRV resource record, which is also known as a
17868  // service record. An SRV record provides information on available services.
17869  type RecordSRV struct {
17870  	IBBase `json:"-"`
17871  
17872  	Ref string `json:"_ref,omitempty"`
17873  
17874  	// Aws Route 53 record information.
17875  	AwsRte53RecordInfo *Awsrte53recordinfo `json:"aws_rte53_record_info,omitempty"`
17876  
17877  	// Structure containing all cloud API related information for this object.
17878  	CloudInfo *GridCloudapiInfo `json:"cloud_info,omitempty"`
17879  
17880  	// Comment for the record; maximum 256 characters.
17881  	Comment *string `json:"comment,omitempty"`
17882  
17883  	// The time of the record creation in Epoch seconds format.
17884  	CreationTime *UnixTime `json:"creation_time,omitempty"`
17885  
17886  	// The record creator. Note that changing creator from or to 'SYSTEM' value is
17887  	// not allowed.
17888  	Creator string `json:"creator,omitempty"`
17889  
17890  	// The GSS-TSIG principal that owns this record.
17891  	DdnsPrincipal *string `json:"ddns_principal,omitempty"`
17892  
17893  	// Determines if the DDNS updates for this record are allowed or not.
17894  	DdnsProtected *bool `json:"ddns_protected,omitempty"`
17895  
17896  	// Determines if the record is disabled or not. False means that the record is
17897  	// enabled.
17898  	Disable *bool `json:"disable,omitempty"`
17899  
17900  	// The name for an SRV record in punycode format.
17901  	DnsName string `json:"dns_name,omitempty"`
17902  
17903  	// The name for a SRV record in punycode format.
17904  	DnsTarget string `json:"dns_target,omitempty"`
17905  
17906  	// Extensible attributes associated with the object. For valid values for
17907  	// extensible attributes, see {extattrs:values}.
17908  	Ea EA `json:"extattrs"`
17909  
17910  	// Determines if the reclamation is allowed for the record or not.
17911  	ForbidReclamation *bool `json:"forbid_reclamation,omitempty"`
17912  
17913  	// The time of the last DNS query in Epoch seconds format.
17914  	LastQueried *UnixTime `json:"last_queried,omitempty"`
17915  
17916  	// A name in FQDN format. This value can be in unicode format.
17917  	Name *string `json:"name,omitempty"`
17918  
17919  	// The port of the SRV record. Valid values are from 0 to 65535 (inclusive), in
17920  	// 32-bit unsigned integer format.
17921  	Port *uint32 `json:"port,omitempty"`
17922  
17923  	// The priority of the SRV record. Valid values are from 0 to 65535
17924  	// (inclusive), in 32-bit unsigned integer format.
17925  	Priority *uint32 `json:"priority,omitempty"`
17926  
17927  	// Determines if the record is reclaimable or not.
17928  	Reclaimable bool `json:"reclaimable,omitempty"`
17929  
17930  	// The name of the shared record group in which the record resides. This field
17931  	// exists only on db_objects if this record is a shared record.
17932  	SharedRecordGroup string `json:"shared_record_group,omitempty"`
17933  
17934  	// The target of the SRV record in FQDN format. This value can be in unicode
17935  	// format.
17936  	Target *string `json:"target,omitempty"`
17937  
17938  	// The Time to Live (TTL) value for the record. A 32-bit unsigned integer that
17939  	// represents the duration, in seconds, for which the record is valid (cached).
17940  	// Zero indicates that the record should not be cached.
17941  	Ttl *uint32 `json:"ttl,omitempty"`
17942  
17943  	// Use flag for: ttl
17944  	UseTtl *bool `json:"use_ttl,omitempty"`
17945  
17946  	// The name of the DNS view in which the record resides. Example: "external".
17947  	View string `json:"view,omitempty"`
17948  
17949  	// The weight of the SRV record. Valid values are from 0 to 65535 (inclusive),
17950  	// in 32-bit unsigned integer format.
17951  	Weight *uint32 `json:"weight,omitempty"`
17952  
17953  	// The name of the zone in which the record resides. Example: "zone.com". If a
17954  	// view is not specified when searching by zone, the default view is used.
17955  	Zone string `json:"zone,omitempty"`
17956  }
17957  
17958  func (RecordSRV) ObjectType() string {
17959  	return "record:srv"
17960  }
17961  
17962  func (obj RecordSRV) ReturnFields() []string {
17963  	if obj.returnFields == nil {
17964  		obj.returnFields = []string{"name", "port", "priority", "target", "view", "weight"}
17965  	}
17966  	return obj.returnFields
17967  }
17968  
17969  // RecordTlsa represents Infoblox object record:tlsa.
17970  // The TLSA DNS resource record (RR) is used to associate a TLS server
17971  // certificate or public key with the domain name where the record is found,
17972  // thus forming a ‘TLSA certificate association’. For further details see
17973  // RFC-6698. Note that you must specify only one view for the attribute
17974  // ‘views’.
17975  type RecordTlsa struct {
17976  	IBBase `json:"-"`
17977  
17978  	Ref string `json:"_ref,omitempty"`
17979  
17980  	// Hex dump of either raw data for matching type 0, or the hash of the raw data
17981  	// for matching types 1 and 2.
17982  	CertificateData *string `json:"certificate_data,omitempty"`
17983  
17984  	// Specifies the provided association that will be used to match the
17985  	// certificate presented in the TLS handshake. Based on RFC-6698.
17986  	CertificateUsage *uint32 `json:"certificate_usage,omitempty"`
17987  
17988  	// Structure containing all cloud API related information for this object.
17989  	CloudInfo *GridCloudapiInfo `json:"cloud_info,omitempty"`
17990  
17991  	// Comment for the record; maximum 256 characters.
17992  	Comment *string `json:"comment,omitempty"`
17993  
17994  	// The record creator. Note that changing creator from or to 'SYSTEM' value is
17995  	// not allowed.
17996  	Creator string `json:"creator,omitempty"`
17997  
17998  	// Determines if the record is disabled or not. False means that the record is
17999  	// enabled.
18000  	Disable *bool `json:"disable,omitempty"`
18001  
18002  	// The name of the TLSA record in punycode format.
18003  	DnsName string `json:"dns_name,omitempty"`
18004  
18005  	// Extensible attributes associated with the object. For valid values for
18006  	// extensible attributes, see {extattrs:values}.
18007  	Ea EA `json:"extattrs"`
18008  
18009  	// The time of the last DNS query in Epoch seconds format.
18010  	LastQueried *UnixTime `json:"last_queried,omitempty"`
18011  
18012  	// Specifies how the certificate association is presented. Based on RFC-6698.
18013  	MatchedType *uint32 `json:"matched_type,omitempty"`
18014  
18015  	// The TLSA record name in FQDN format. This value can be in unicode format.
18016  	Name *string `json:"name,omitempty"`
18017  
18018  	// Specifies which part of the TLS certificate presented by the server will be
18019  	// matched against the association data. Based on RFC-6698.
18020  	Selector *uint32 `json:"selector,omitempty"`
18021  
18022  	// The Time to Live (TTL) value for the record. A 32-bit unsigned integer that
18023  	// represents the duration, in seconds, for which the record is valid (cached).
18024  	// Zero indicates that the record should not be cached.
18025  	Ttl *uint32 `json:"ttl,omitempty"`
18026  
18027  	// Use flag for: ttl
18028  	UseTtl *bool `json:"use_ttl,omitempty"`
18029  
18030  	// The name of the DNS view in which the record resides. Example: "external".
18031  	View *string `json:"view,omitempty"`
18032  
18033  	// The name of the zone in which the record resides. Example: "zone.com". If a
18034  	// view is not specified when searching by zone, the default view is used.
18035  	Zone string `json:"zone,omitempty"`
18036  }
18037  
18038  func (RecordTlsa) ObjectType() string {
18039  	return "record:tlsa"
18040  }
18041  
18042  func (obj RecordTlsa) ReturnFields() []string {
18043  	if obj.returnFields == nil {
18044  		obj.returnFields = []string{"name", "view"}
18045  	}
18046  	return obj.returnFields
18047  }
18048  
18049  // RecordTXT represents Infoblox object record:txt.
18050  // A TXT (text record) record contains supplemental information for a host. For
18051  // example, if you have a sales server that serves only North America, you can
18052  // create a text record stating this fact. You can create more than one text
18053  // record for a domain name.
18054  type RecordTXT struct {
18055  	IBBase `json:"-"`
18056  
18057  	Ref string `json:"_ref,omitempty"`
18058  
18059  	// Aws Route 53 record information.
18060  	AwsRte53RecordInfo *Awsrte53recordinfo `json:"aws_rte53_record_info,omitempty"`
18061  
18062  	// Structure containing all cloud API related information for this object.
18063  	CloudInfo *GridCloudapiInfo `json:"cloud_info,omitempty"`
18064  
18065  	// Comment for the record; maximum 256 characters.
18066  	Comment *string `json:"comment,omitempty"`
18067  
18068  	// The time of the record creation in Epoch seconds format.
18069  	CreationTime *UnixTime `json:"creation_time,omitempty"`
18070  
18071  	// The record creator. Note that changing creator from or to 'SYSTEM' value is
18072  	// not allowed.
18073  	Creator string `json:"creator,omitempty"`
18074  
18075  	// The GSS-TSIG principal that owns this record.
18076  	DdnsPrincipal *string `json:"ddns_principal,omitempty"`
18077  
18078  	// Determines if the DDNS updates for this record are allowed or not.
18079  	DdnsProtected *bool `json:"ddns_protected,omitempty"`
18080  
18081  	// Determines if the record is disabled or not. False means that the record is
18082  	// enabled.
18083  	Disable *bool `json:"disable,omitempty"`
18084  
18085  	// The name for a TXT record in punycode format.
18086  	DnsName string `json:"dns_name,omitempty"`
18087  
18088  	// Extensible attributes associated with the object. For valid values for
18089  	// extensible attributes, see {extattrs:values}.
18090  	Ea EA `json:"extattrs"`
18091  
18092  	// Determines if the reclamation is allowed for the record or not.
18093  	ForbidReclamation *bool `json:"forbid_reclamation,omitempty"`
18094  
18095  	// The time of the last DNS query in Epoch seconds format.
18096  	LastQueried *UnixTime `json:"last_queried,omitempty"`
18097  
18098  	// Name for the TXT record in FQDN format. This value can be in unicode format.
18099  	Name *string `json:"name,omitempty"`
18100  
18101  	// Determines if the record is reclaimable or not.
18102  	Reclaimable bool `json:"reclaimable,omitempty"`
18103  
18104  	// The name of the shared record group in which the record resides. This field
18105  	// exists only on db_objects if this record is a shared record.
18106  	SharedRecordGroup string `json:"shared_record_group,omitempty"`
18107  
18108  	// Text associated with the record. It can contain up to 255 bytes per
18109  	// substring, up to a total of 512 bytes. To enter leading, trailing, or
18110  	// embedded spaces in the text, add quotes around the text to preserve the
18111  	// spaces.
18112  	Text *string `json:"text,omitempty"`
18113  
18114  	// The Time To Live (TTL) value for the record. A 32-bit unsigned integer that
18115  	// represents the duration, in seconds, for which the record is valid (cached).
18116  	// Zero indicates that the record should not be cached.
18117  	Ttl *uint32 `json:"ttl,omitempty"`
18118  
18119  	// Use flag for: ttl
18120  	UseTtl *bool `json:"use_ttl,omitempty"`
18121  
18122  	// The name of the DNS view in which the record resides. Example: "external".
18123  	View *string `json:"view,omitempty"`
18124  
18125  	// The name of the zone in which the record resides. Example: "zone.com". If a
18126  	// view is not specified when searching by zone, the default view is used.
18127  	Zone string `json:"zone,omitempty"`
18128  }
18129  
18130  func (RecordTXT) ObjectType() string {
18131  	return "record:txt"
18132  }
18133  
18134  func (obj RecordTXT) ReturnFields() []string {
18135  	if obj.returnFields == nil {
18136  		obj.returnFields = []string{"name", "text", "view"}
18137  	}
18138  	return obj.returnFields
18139  }
18140  
18141  func NewEmptyRecordTXT() *RecordTXT {
18142  	res := RecordTXT{}
18143  	res.returnFields = []string{"view", "zone", "name", "text", "ttl", "use_ttl", "comment", "extattrs"}
18144  
18145  	return &res
18146  }
18147  
18148  func NewRecordTXT(
18149  	dnsview string,
18150  	zone string,
18151  	recordname string,
18152  	text string,
18153  	ttl uint32,
18154  	useTtl bool,
18155  	comment string,
18156  	eas EA) *RecordTXT {
18157  
18158  	res := NewEmptyRecordTXT()
18159  	res.View = &dnsview
18160  	if *res.View == "" {
18161  		res.View = nil
18162  	}
18163  	res.Zone = zone
18164  	res.Name = &recordname
18165  	res.Text = &text
18166  	res.Ttl = &ttl
18167  	res.UseTtl = &useTtl
18168  	res.Comment = &comment
18169  	res.Ea = eas
18170  
18171  	return res
18172  }
18173  
18174  // RecordUnknown represents Infoblox object record:unknown.
18175  // An “RR of unknown type” is an RR whose RDATA format is not known to the
18176  // DNS implementation at hand, and whose type is not an assigned QTYPE or
18177  // Meta-TYPE as specified in 2929] nor within the range reserved in that
18178  // section for assignment only to QTYPEs and Meta-TYPEs. The purpose of the
18179  // Unknown resource record is to allow future DNS implementations to handle new
18180  // RR types transparently. For further details see RFC-3597.
18181  type RecordUnknown struct {
18182  	IBBase `json:"-"`
18183  
18184  	Ref string `json:"_ref,omitempty"`
18185  
18186  	// Structure containing all cloud API related information for this object.
18187  	CloudInfo *GridCloudapiInfo `json:"cloud_info,omitempty"`
18188  
18189  	// Comment for the record; maximum 256 characters.
18190  	Comment *string `json:"comment,omitempty"`
18191  
18192  	// The record creator. Note that changing creator from or to 'SYSTEM' value is
18193  	// not allowed.
18194  	Creator string `json:"creator,omitempty"`
18195  
18196  	// Determines if the record is disabled or not. False means that the record is
18197  	// enabled.
18198  	Disable *bool `json:"disable,omitempty"`
18199  
18200  	// Standard textual representation of the RDATA.
18201  	DisplayRdata string `json:"display_rdata,omitempty"`
18202  
18203  	// The name of the unknown record in punycode format.
18204  	DnsName string `json:"dns_name,omitempty"`
18205  
18206  	// Determines if host name policy is applicable for the record.
18207  	EnableHostNamePolicy *bool `json:"enable_host_name_policy,omitempty"`
18208  
18209  	// Extensible attributes associated with the object. For valid values for
18210  	// extensible attributes, see {extattrs:values}.
18211  	Ea EA `json:"extattrs"`
18212  
18213  	// The time of the last DNS query in Epoch seconds format.
18214  	LastQueried *UnixTime `json:"last_queried,omitempty"`
18215  
18216  	// The Unknown record name in FQDN format. This value can be in unicode format.
18217  	Name *string `json:"name,omitempty"`
18218  
18219  	// The host name policy for the record.
18220  	Policy string `json:"policy,omitempty"`
18221  
18222  	// Specifies type of unknown resource record.
18223  	RecordType *string `json:"record_type,omitempty"`
18224  
18225  	// The list of rdata subfield values of unknown resource record.
18226  	SubfieldValues []*Rdatasubfield `json:"subfield_values,omitempty"`
18227  
18228  	// The Time to Live (TTL) value for the record. A 32-bit unsigned integer that
18229  	// represents the duration, in seconds, for which the record is valid (cached).
18230  	// Zero indicates that the record should not be cached.
18231  	Ttl *uint32 `json:"ttl,omitempty"`
18232  
18233  	// Use flag for: ttl
18234  	UseTtl *bool `json:"use_ttl,omitempty"`
18235  
18236  	// The name of the DNS view in which the record resides. Example: "external".
18237  	View *string `json:"view,omitempty"`
18238  
18239  	// The name of the zone in which the record resides. Example: "zone.com". If a
18240  	// view is not specified when searching by zone, the default view is used.
18241  	Zone string `json:"zone,omitempty"`
18242  }
18243  
18244  func (RecordUnknown) ObjectType() string {
18245  	return "record:unknown"
18246  }
18247  
18248  func (obj RecordUnknown) ReturnFields() []string {
18249  	if obj.returnFields == nil {
18250  		obj.returnFields = []string{"name", "view"}
18251  	}
18252  	return obj.returnFields
18253  }
18254  
18255  // Recordnamepolicy represents Infoblox object recordnamepolicy.
18256  // You can enforce naming policy for the hostnames of A, AAAA, Host, MX, NS and
18257  // bulk host records based on user-defined or default patterns. For MX and NS
18258  // records, the hostname restrictions apply to the text in the RDATA field of
18259  // the resource record name. Records that you created before you enabled the
18260  // hostname checking policy need not to comply with the hostname restriction
18261  // that you specify.
18262  type Recordnamepolicy struct {
18263  	IBBase `json:"-"`
18264  
18265  	Ref string `json:"_ref,omitempty"`
18266  
18267  	// Determines whether the record name policy is Grid default.
18268  	IsDefault *bool `json:"is_default,omitempty"`
18269  
18270  	// The name of the record name policy object.
18271  	Name *string `json:"name,omitempty"`
18272  
18273  	// Determines whether the record name policy is a predefined one.
18274  	PreDefined bool `json:"pre_defined,omitempty"`
18275  
18276  	// The POSIX regular expression the record names should match in order to
18277  	// comply with the record name policy.
18278  	Regex *string `json:"regex,omitempty"`
18279  }
18280  
18281  func (Recordnamepolicy) ObjectType() string {
18282  	return "recordnamepolicy"
18283  }
18284  
18285  func (obj Recordnamepolicy) ReturnFields() []string {
18286  	if obj.returnFields == nil {
18287  		obj.returnFields = []string{"is_default", "name", "regex"}
18288  	}
18289  	return obj.returnFields
18290  }
18291  
18292  // Restartservicestatus represents Infoblox object restartservicestatus.
18293  // This object represents the service status. Use the the
18294  // requestrestartservicestatus function call in object grid or the
18295  // requestrestartservicestatus function call in object member to refresh the
18296  // status.
18297  type Restartservicestatus struct {
18298  	IBBase `json:"-"`
18299  
18300  	Ref string `json:"_ref,omitempty"`
18301  
18302  	// The status of the DHCP service.
18303  	DhcpStatus string `json:"dhcp_status,omitempty"`
18304  
18305  	// The status of the DNS service.
18306  	DnsStatus string `json:"dns_status,omitempty"`
18307  
18308  	// The name of this Grid member in FQDN format.
18309  	Member string `json:"member,omitempty"`
18310  
18311  	// The status of the reporting service.
18312  	ReportingStatus string `json:"reporting_status,omitempty"`
18313  }
18314  
18315  func (Restartservicestatus) ObjectType() string {
18316  	return "restartservicestatus"
18317  }
18318  
18319  func (obj Restartservicestatus) ReturnFields() []string {
18320  	if obj.returnFields == nil {
18321  		obj.returnFields = []string{"dhcp_status", "dns_status", "member", "reporting_status"}
18322  	}
18323  	return obj.returnFields
18324  }
18325  
18326  // Rir represents Infoblox object rir.
18327  // An RIR is an entity that manages the Internet number resources, which
18328  // include IP addresses and autonomous system numbers, within a specific region
18329  // of the world. RIRs use SWIP (Shared WHOIS Project) or RWhois (Referral
18330  // WHOIS) servers to provide address allocation information for IP address
18331  // blocks. Typically, an RIR determines the address blocks to be allocated for
18332  // specific organizations (typically ISPs), while an ISP manages the allocated
18333  // address blocks, associated organizations and corresponding RIR
18334  // registrations. An organization can determine when to request for more
18335  // address data with their RIRs every few months.
18336  type Rir struct {
18337  	IBBase `json:"-"`
18338  
18339  	Ref string `json:"_ref,omitempty"`
18340  
18341  	// The communication mode for RIR.
18342  	CommunicationMode string `json:"communication_mode,omitempty"`
18343  
18344  	// The e-mail address for RIR.
18345  	Email *string `json:"email,omitempty"`
18346  
18347  	// The name of RIR.
18348  	Name string `json:"name,omitempty"`
18349  
18350  	// The WebAPI URL for RIR.
18351  	Url *string `json:"url,omitempty"`
18352  
18353  	// Use flag for: email
18354  	UseEmail *bool `json:"use_email,omitempty"`
18355  
18356  	// Use flag for: url
18357  	UseUrl *bool `json:"use_url,omitempty"`
18358  }
18359  
18360  func (Rir) ObjectType() string {
18361  	return "rir"
18362  }
18363  
18364  func (obj Rir) ReturnFields() []string {
18365  	if obj.returnFields == nil {
18366  		obj.returnFields = []string{"communication_mode", "email", "name", "url"}
18367  	}
18368  	return obj.returnFields
18369  }
18370  
18371  // RirOrganization represents Infoblox object rir:organization.
18372  // An RIR organization provides information about an entity that has registered
18373  // a network resource in the RIPE database. This entity can be a company (such
18374  // as an ISP), a nonprofit group, or an individual. You can add RIR
18375  // organizations defined in the RIPE database and start managing their data
18376  // through NIOS.
18377  type RirOrganization struct {
18378  	IBBase `json:"-"`
18379  
18380  	Ref string `json:"_ref,omitempty"`
18381  
18382  	// Extensible attributes associated with the object. For valid values for
18383  	// extensible attributes, see {extattrs:values}.
18384  	Ea EA `json:"extattrs"`
18385  
18386  	// The RIR organization identifier.
18387  	Id *string `json:"id,omitempty"`
18388  
18389  	// The RIR organization maintainer.
18390  	Maintainer *string `json:"maintainer,omitempty"`
18391  
18392  	// The RIR organization name.
18393  	Name *string `json:"name,omitempty"`
18394  
18395  	// The password for the maintainer of RIR organization.
18396  	Password *string `json:"password,omitempty"`
18397  
18398  	// The RIR associated with RIR organization.
18399  	Rir *string `json:"rir,omitempty"`
18400  
18401  	// The sender e-mail address for RIR organization.
18402  	SenderEmail *string `json:"sender_email,omitempty"`
18403  }
18404  
18405  func (RirOrganization) ObjectType() string {
18406  	return "rir:organization"
18407  }
18408  
18409  func (obj RirOrganization) ReturnFields() []string {
18410  	if obj.returnFields == nil {
18411  		obj.returnFields = []string{"id", "maintainer", "name", "rir", "sender_email"}
18412  	}
18413  	return obj.returnFields
18414  }
18415  
18416  // RoamingHost represents Infoblox object roaminghost.
18417  // A roaming host is a specific host that a DHCP server always assigns when a
18418  // lease request comes from a particular MAC address of the client.
18419  type RoamingHost struct {
18420  	IBBase `json:"-"`
18421  
18422  	Ref string `json:"_ref,omitempty"`
18423  
18424  	// The address type for this roaming host.
18425  	AddressType string `json:"address_type,omitempty"`
18426  
18427  	// The bootfile name for the roaming host. You can configure the DHCP server to
18428  	// support clients that use the boot file name option in their DHCPREQUEST
18429  	// messages.
18430  	Bootfile *string `json:"bootfile,omitempty"`
18431  
18432  	// The boot server address for the roaming host. You can specify the name
18433  	// and/or IP address of the boot server that the host needs to boot. The boot
18434  	// server IPv4 Address or name in FQDN format.
18435  	Bootserver *string `json:"bootserver,omitempty"`
18436  
18437  	// This field controls whether there is a prepend for the
18438  	// dhcp-client-identifier of a roaming host.
18439  	ClientIdentifierPrependZero *bool `json:"client_identifier_prepend_zero,omitempty"`
18440  
18441  	// Comment for the roaming host; maximum 256 characters.
18442  	Comment *string `json:"comment,omitempty"`
18443  
18444  	// The DDNS domain name for this roaming host.
18445  	DdnsDomainname *string `json:"ddns_domainname,omitempty"`
18446  
18447  	// The DDNS host name for this roaming host.
18448  	DdnsHostname *string `json:"ddns_hostname,omitempty"`
18449  
18450  	// If set to true, BOOTP settings are disabled and BOOTP requests will be
18451  	// denied.
18452  	DenyBootp *bool `json:"deny_bootp,omitempty"`
18453  
18454  	// The DHCP client ID for the roaming host.
18455  	DhcpClientIdentifier *string `json:"dhcp_client_identifier,omitempty"`
18456  
18457  	// Determines whether a roaming host is disabled or not. When this is set to
18458  	// False, the roaming host is enabled.
18459  	Disable *bool `json:"disable,omitempty"`
18460  
18461  	// The dynamic DNS updates flag of the roaming host object. If set to True, the
18462  	// DHCP server sends DDNS updates to DNS servers in the same Grid, and to
18463  	// external DNS servers.
18464  	EnableDdns *bool `json:"enable_ddns,omitempty"`
18465  
18466  	// Set this to True if you want the DHCP server to use a different lease time
18467  	// for PXE clients.
18468  	EnablePxeLeaseTime *bool `json:"enable_pxe_lease_time,omitempty"`
18469  
18470  	// Extensible attributes associated with the object. For valid values for
18471  	// extensible attributes, see {extattrs:values}.
18472  	Ea EA `json:"extattrs"`
18473  
18474  	// Set this to True to use the roaming host name as its ddns_hostname.
18475  	ForceRoamingHostname *bool `json:"force_roaming_hostname,omitempty"`
18476  
18477  	// If this field is set to False, the appliance returns all the DHCP options
18478  	// the client is eligible to receive, rather than only the list of options the
18479  	// client has requested.
18480  	IgnoreDhcpOptionListRequest *bool `json:"ignore_dhcp_option_list_request,omitempty"`
18481  
18482  	// The client hostname of a DHCP roaming host object. This field specifies the
18483  	// host name that the DHCP client sends to the Infoblox appliance using DHCP
18484  	// option 12.
18485  	Ipv6ClientHostname string `json:"ipv6_client_hostname,omitempty"`
18486  
18487  	// The IPv6 DDNS domain name for this roaming host.
18488  	Ipv6DdnsDomainname *string `json:"ipv6_ddns_domainname,omitempty"`
18489  
18490  	// The IPv6 DDNS host name for this roaming host.
18491  	Ipv6DdnsHostname *string `json:"ipv6_ddns_hostname,omitempty"`
18492  
18493  	// The IPv6 domain name for this roaming host.
18494  	Ipv6DomainName *string `json:"ipv6_domain_name,omitempty"`
18495  
18496  	// The IPv6 addresses of DNS recursive name servers to which the DHCP client
18497  	// can send name resolution requests. The DHCP server includes this information
18498  	// in the DNS Recursive Name Server option in Advertise, Rebind,
18499  	// Information-Request, and Reply messages.
18500  	Ipv6DomainNameServers []string `json:"ipv6_domain_name_servers,omitempty"`
18501  
18502  	// The DUID value for this roaming host.
18503  	Ipv6Duid *string `json:"ipv6_duid,omitempty"`
18504  
18505  	// Set this to True to enable IPv6 DDNS.
18506  	Ipv6EnableDdns *bool `json:"ipv6_enable_ddns,omitempty"`
18507  
18508  	// Set this to True to use the roaming host name as its ddns_hostname.
18509  	Ipv6ForceRoamingHostname *bool `json:"ipv6_force_roaming_hostname,omitempty"`
18510  
18511  	// The identification method for an IPv6 or mixed IPv4/IPv6 roaming host.
18512  	// Currently, the only supported value for this field is "DUID", which
18513  	// corresponds to identification by DHCPv6 unique ID.
18514  	Ipv6MatchOption string `json:"ipv6_match_option,omitempty"`
18515  
18516  	// An array of DHCP option dhcpoption structs that lists the DHCP options
18517  	// associated with the object.
18518  	Ipv6Options []*Dhcpoption `json:"ipv6_options,omitempty"`
18519  
18520  	// If set on creation, the roaming host will be created according to the values
18521  	// specified in the named IPv6 roaming host template.
18522  	Ipv6Template string `json:"ipv6_template,omitempty"`
18523  
18524  	// The MAC address for this roaming host.
18525  	Mac *string `json:"mac,omitempty"`
18526  
18527  	// The match-client value for this roaming host. Valid values are:
18528  	// "MAC_ADDRESS": The fixed IP address is leased to the matching MAC address.
18529  	// "CLIENT_ID": The fixed IP address is leased to the matching DHCP client
18530  	// identifier.
18531  	MatchClient string `json:"match_client,omitempty"`
18532  
18533  	// The name of this roaming host.
18534  	Name *string `json:"name,omitempty"`
18535  
18536  	// The name of the network view in which this roaming host resides.
18537  	NetworkView *string `json:"network_view,omitempty"`
18538  
18539  	// The name in FQDN and/or IPv4 Address format of the next server that the host
18540  	// needs to boot.
18541  	Nextserver *string `json:"nextserver,omitempty"`
18542  
18543  	// An array of DHCP option dhcpoption structs that lists the DHCP options
18544  	// associated with the object.
18545  	Options []*Dhcpoption `json:"options,omitempty"`
18546  
18547  	// The preferred lifetime value for this roaming host object.
18548  	PreferredLifetime *uint32 `json:"preferred_lifetime,omitempty"`
18549  
18550  	// The PXE lease time value for this roaming host object. Some hosts use PXE
18551  	// (Preboot Execution Environment) to boot remotely from a server. To better
18552  	// manage your IP resources, set a different lease time for PXE boot requests.
18553  	// You can configure the DHCP server to allocate an IP address with a shorter
18554  	// lease time to hosts that send PXE boot requests, so IP addresses are not
18555  	// leased longer than necessary. A 32-bit unsigned integer that represents the
18556  	// duration, in seconds, for which the update is cached. Zero indicates that
18557  	// the update is not cached.
18558  	PxeLeaseTime *uint32 `json:"pxe_lease_time,omitempty"`
18559  
18560  	// If set on creation, the roaming host will be created according to the values
18561  	// specified in the named template.
18562  	Template string `json:"template,omitempty"`
18563  
18564  	// Use flag for: bootfile
18565  	UseBootfile *bool `json:"use_bootfile,omitempty"`
18566  
18567  	// Use flag for: bootserver
18568  	UseBootserver *bool `json:"use_bootserver,omitempty"`
18569  
18570  	// Use flag for: ddns_domainname
18571  	UseDdnsDomainname *bool `json:"use_ddns_domainname,omitempty"`
18572  
18573  	// Use flag for: deny_bootp
18574  	UseDenyBootp *bool `json:"use_deny_bootp,omitempty"`
18575  
18576  	// Use flag for: enable_ddns
18577  	UseEnableDdns *bool `json:"use_enable_ddns,omitempty"`
18578  
18579  	// Use flag for: ignore_dhcp_option_list_request
18580  	UseIgnoreDhcpOptionListRequest *bool `json:"use_ignore_dhcp_option_list_request,omitempty"`
18581  
18582  	// Use flag for: ipv6_ddns_domainname
18583  	UseIpv6DdnsDomainname *bool `json:"use_ipv6_ddns_domainname,omitempty"`
18584  
18585  	// Use flag for: ipv6_domain_name
18586  	UseIpv6DomainName *bool `json:"use_ipv6_domain_name,omitempty"`
18587  
18588  	// Use flag for: ipv6_domain_name_servers
18589  	UseIpv6DomainNameServers *bool `json:"use_ipv6_domain_name_servers,omitempty"`
18590  
18591  	// Use flag for: ipv6_enable_ddns
18592  	UseIpv6EnableDdns *bool `json:"use_ipv6_enable_ddns,omitempty"`
18593  
18594  	// Use flag for: ipv6_options
18595  	UseIpv6Options *bool `json:"use_ipv6_options,omitempty"`
18596  
18597  	// Use flag for: nextserver
18598  	UseNextserver *bool `json:"use_nextserver,omitempty"`
18599  
18600  	// Use flag for: options
18601  	UseOptions *bool `json:"use_options,omitempty"`
18602  
18603  	// Use flag for: preferred_lifetime
18604  	UsePreferredLifetime *bool `json:"use_preferred_lifetime,omitempty"`
18605  
18606  	// Use flag for: pxe_lease_time
18607  	UsePxeLeaseTime *bool `json:"use_pxe_lease_time,omitempty"`
18608  
18609  	// Use flag for: valid_lifetime
18610  	UseValidLifetime *bool `json:"use_valid_lifetime,omitempty"`
18611  
18612  	// The valid lifetime value for this roaming host object.
18613  	ValidLifetime *uint32 `json:"valid_lifetime,omitempty"`
18614  }
18615  
18616  func (RoamingHost) ObjectType() string {
18617  	return "roaminghost"
18618  }
18619  
18620  func (obj RoamingHost) ReturnFields() []string {
18621  	if obj.returnFields == nil {
18622  		obj.returnFields = []string{"address_type", "name", "network_view"}
18623  	}
18624  	return obj.returnFields
18625  }
18626  
18627  // Ruleset represents Infoblox object ruleset.
18628  // Represents a Ruleset object, which is a collection of rules that is used to
18629  // match domain names.
18630  type Ruleset struct {
18631  	IBBase `json:"-"`
18632  
18633  	Ref string `json:"_ref,omitempty"`
18634  
18635  	// Descriptive comment about the Ruleset object.
18636  	Comment *string `json:"comment,omitempty"`
18637  
18638  	// The flag that indicates if the Ruleset object is disabled.
18639  	Disabled *bool `json:"disabled,omitempty"`
18640  
18641  	// The name of this Ruleset object.
18642  	Name *string `json:"name,omitempty"`
18643  
18644  	// The list of Rules assigned to this Ruleset object. Rules can be set only
18645  	// when the Ruleset type is set to "NXDOMAIN".
18646  	NxdomainRules []*Nxdomainrule `json:"nxdomain_rules,omitempty"`
18647  
18648  	// The type of this Ruleset object.
18649  	Type string `json:"type,omitempty"`
18650  }
18651  
18652  func (Ruleset) ObjectType() string {
18653  	return "ruleset"
18654  }
18655  
18656  func (obj Ruleset) ReturnFields() []string {
18657  	if obj.returnFields == nil {
18658  		obj.returnFields = []string{"comment", "disabled", "name", "type"}
18659  	}
18660  	return obj.returnFields
18661  }
18662  
18663  // SamlAuthservice represents Infoblox object saml:authservice.
18664  // This object represents SAML authentication service.
18665  type SamlAuthservice struct {
18666  	IBBase `json:"-"`
18667  
18668  	Ref string `json:"_ref,omitempty"`
18669  
18670  	// The descriptive comment for the SAML authentication service.
18671  	Comment *string `json:"comment,omitempty"`
18672  
18673  	// The SAML Identity Provider to use for authentication.
18674  	Idp *SamlIdp `json:"idp,omitempty"`
18675  
18676  	// The name of the SAML authentication service.
18677  	Name *string `json:"name,omitempty"`
18678  
18679  	// The session timeout in seconds.
18680  	SessionTimeout *uint32 `json:"session_timeout,omitempty"`
18681  }
18682  
18683  func (SamlAuthservice) ObjectType() string {
18684  	return "saml:authservice"
18685  }
18686  
18687  func (obj SamlAuthservice) ReturnFields() []string {
18688  	if obj.returnFields == nil {
18689  		obj.returnFields = []string{"name"}
18690  	}
18691  	return obj.returnFields
18692  }
18693  
18694  // Scavengingtask represents Infoblox object scavengingtask.
18695  // The DNS scavenging task object provides information on scavenging process
18696  // state.
18697  type Scavengingtask struct {
18698  	IBBase `json:"-"`
18699  
18700  	Ref string `json:"_ref,omitempty"`
18701  
18702  	// The scavenging action.
18703  	Action string `json:"action,omitempty"`
18704  
18705  	// The reference to the object associated with the scavenging task.
18706  	AssociatedObject string `json:"associated_object,omitempty"`
18707  
18708  	// The scavenging process end time.
18709  	EndTime *UnixTime `json:"end_time,omitempty"`
18710  
18711  	// The number of processed during scavenging resource records.
18712  	ProcessedRecords uint32 `json:"processed_records,omitempty"`
18713  
18714  	// The number of resource records that are allowed to be reclaimed during the
18715  	// scavenging process.
18716  	ReclaimableRecords uint32 `json:"reclaimable_records,omitempty"`
18717  
18718  	// The number of reclaimed during the scavenging process resource records.
18719  	ReclaimedRecords uint32 `json:"reclaimed_records,omitempty"`
18720  
18721  	// The scavenging process start time.
18722  	StartTime *UnixTime `json:"start_time,omitempty"`
18723  
18724  	// The scavenging process status. This is a read-only attribute.
18725  	Status string `json:"status,omitempty"`
18726  }
18727  
18728  func (Scavengingtask) ObjectType() string {
18729  	return "scavengingtask"
18730  }
18731  
18732  func (obj Scavengingtask) ReturnFields() []string {
18733  	if obj.returnFields == nil {
18734  		obj.returnFields = []string{"action", "associated_object", "status"}
18735  	}
18736  	return obj.returnFields
18737  }
18738  
18739  // ScheduledTask represents Infoblox object scheduledtask.
18740  // This object represents a scheduled task.
18741  type ScheduledTask struct {
18742  	IBBase `json:"-"`
18743  
18744  	Ref string `json:"_ref,omitempty"`
18745  
18746  	// The approval status of the task.
18747  	ApprovalStatus string `json:"approval_status,omitempty"`
18748  
18749  	// The approver of the task.
18750  	Approver string `json:"approver,omitempty"`
18751  
18752  	// The comment specified by the approver of the task.
18753  	ApproverComment *string `json:"approver_comment,omitempty"`
18754  
18755  	// Indicates whether there will be an automatic restart when the appliance
18756  	// executes the task.
18757  	AutomaticRestart *bool `json:"automatic_restart,omitempty"`
18758  
18759  	// A list of objects that are affected by the task.
18760  	ChangedObjects []*Changedobject `json:"changed_objects,omitempty"`
18761  
18762  	// If this scheduled task has dependent tasks, their references will be
18763  	// returned in this field.
18764  	DependentTasks []*ScheduledTask `json:"dependent_tasks,omitempty"`
18765  
18766  	// If this field is set to True the specified task will be executed
18767  	// immediately.
18768  	ExecuteNow *bool `json:"execute_now,omitempty"`
18769  
18770  	// Messages generated by the execution of the scheduled task after its
18771  	// completion.
18772  	ExecutionDetails []string `json:"execution_details,omitempty"`
18773  
18774  	// The type of details generated by the execution of the scheduled task after
18775  	// its completion.
18776  	ExecutionDetailsType string `json:"execution_details_type,omitempty"`
18777  
18778  	// The execution status of the task.
18779  	ExecutionStatus string `json:"execution_status,omitempty"`
18780  
18781  	// The time when the appliance executed the task.
18782  	ExecutionTime *UnixTime `json:"execution_time,omitempty"`
18783  
18784  	// Indicates whether this is a Network Insight scheduled task.
18785  	IsNetworkInsightTask bool `json:"is_network_insight_task,omitempty"`
18786  
18787  	// The member where this task was created.
18788  	Member string `json:"member,omitempty"`
18789  
18790  	// If this scheduled task has a predecessor task set, its reference will be
18791  	// returned in this field.
18792  	PredecessorTask string `json:"predecessor_task,omitempty"`
18793  
18794  	// If set to True, if the scheduled task is a Network Insight task and it
18795  	// failed, a new task will be cloned from this task and re-executed.
18796  	ReExecuteTask *bool `json:"re_execute_task,omitempty"`
18797  
18798  	// The time when the task is scheduled to occur.
18799  	ScheduledTime *UnixTime `json:"scheduled_time,omitempty"`
18800  
18801  	// The time when the task was submitted.
18802  	SubmitTime *UnixTime `json:"submit_time,omitempty"`
18803  
18804  	// The submitter of the task.
18805  	Submitter string `json:"submitter,omitempty"`
18806  
18807  	// The comment specified by the submitter of the task.
18808  	SubmitterComment *string `json:"submitter_comment,omitempty"`
18809  
18810  	// The task ID.
18811  	TaskId uint32 `json:"task_id,omitempty"`
18812  
18813  	// The task type.
18814  	TaskType string `json:"task_type,omitempty"`
18815  
18816  	// The task ticket number.
18817  	TicketNumber string `json:"ticket_number,omitempty"`
18818  }
18819  
18820  func (ScheduledTask) ObjectType() string {
18821  	return "scheduledtask"
18822  }
18823  
18824  func (obj ScheduledTask) ReturnFields() []string {
18825  	if obj.returnFields == nil {
18826  		obj.returnFields = []string{"approval_status", "execution_status", "task_id"}
18827  	}
18828  	return obj.returnFields
18829  }
18830  
18831  // Search represents Infoblox object search.
18832  // The search object is used to perform global searches for multiple object
18833  // types in the database. This object contains only search parameters and
18834  // returns objects that match the search criteria. The returned objects are
18835  // base objects for the respective object types.
18836  type Search struct {
18837  	IBBase `json:"-"`
18838  
18839  	Ref string `json:"_ref,omitempty"`
18840  }
18841  
18842  func (Search) ObjectType() string {
18843  	return "search"
18844  }
18845  
18846  func (obj Search) ReturnFields() []string {
18847  	if obj.returnFields == nil {
18848  		obj.returnFields = []string{}
18849  	}
18850  	return obj.returnFields
18851  }
18852  
18853  // SharedNetwork represents Infoblox object sharednetwork.
18854  // A shared network is a network segment to which you assign two or more
18855  // subnets. When subnets in a shared network contain IP addresses that are
18856  // available for dynamic allocation, the addresses are put into a common pool
18857  // for allocation when client requests arise. When you create a shared network,
18858  // the DHCP server can assign IP addresses to client requests from any subnet
18859  // (that resides on the same network interface) in the shared network.
18860  type SharedNetwork struct {
18861  	IBBase `json:"-"`
18862  
18863  	Ref string `json:"_ref,omitempty"`
18864  
18865  	// Authority for the shared network.
18866  	Authority *bool `json:"authority,omitempty"`
18867  
18868  	// The bootfile name for the shared network. You can configure the DHCP server
18869  	// to support clients that use the boot file name option in their DHCPREQUEST
18870  	// messages.
18871  	Bootfile *string `json:"bootfile,omitempty"`
18872  
18873  	// The bootserver address for the shared network. You can specify the name
18874  	// and/or IP address of the boot server that the host needs to boot. The boot
18875  	// server IPv4 Address or name in FQDN format.
18876  	Bootserver *string `json:"bootserver,omitempty"`
18877  
18878  	// Comment for the shared network, maximum 256 characters.
18879  	Comment *string `json:"comment,omitempty"`
18880  
18881  	// If this field is set to True, the DHCP server generates a hostname and
18882  	// updates DNS with it when the DHCP client request does not contain a
18883  	// hostname.
18884  	DdnsGenerateHostname *bool `json:"ddns_generate_hostname,omitempty"`
18885  
18886  	// This field controls whether only the DHCP server is allowed to update DNS,
18887  	// regardless of the DHCP clients requests. Note that changes for this field
18888  	// take effect only if ddns_use_option81 is True.
18889  	DdnsServerAlwaysUpdates *bool `json:"ddns_server_always_updates,omitempty"`
18890  
18891  	// The DNS update Time to Live (TTL) value of a shared network object. The TTL
18892  	// is a 32-bit unsigned integer that represents the duration, in seconds, for
18893  	// which the update is cached. Zero indicates that the update is not cached.
18894  	DdnsTtl *uint32 `json:"ddns_ttl,omitempty"`
18895  
18896  	// By default, the DHCP server does not update DNS when it allocates a fixed
18897  	// address to a client. You can configure the DHCP server to update the A and
18898  	// PTR records of a client with a fixed address. When this feature is enabled
18899  	// and the DHCP server adds A and PTR records for a fixed address, the DHCP
18900  	// server never discards the records.
18901  	DdnsUpdateFixedAddresses *bool `json:"ddns_update_fixed_addresses,omitempty"`
18902  
18903  	// The support for DHCP Option 81 at the shared network level.
18904  	DdnsUseOption81 *bool `json:"ddns_use_option81,omitempty"`
18905  
18906  	// If set to true, BOOTP settings are disabled and BOOTP requests will be
18907  	// denied.
18908  	DenyBootp *bool `json:"deny_bootp,omitempty"`
18909  
18910  	// The percentage of the total DHCP utilization of the networks belonging to
18911  	// the shared network multiplied by 1000. This is the percentage of the total
18912  	// number of available IP addresses from all the networks belonging to the
18913  	// shared network versus the total number of all IP addresses in all of the
18914  	// networks in the shared network.
18915  	DhcpUtilization uint32 `json:"dhcp_utilization,omitempty"`
18916  
18917  	// A string describing the utilization level of the shared network.
18918  	DhcpUtilizationStatus string `json:"dhcp_utilization_status,omitempty"`
18919  
18920  	// Determines whether a shared network is disabled or not. When this is set to
18921  	// False, the shared network is enabled.
18922  	Disable *bool `json:"disable,omitempty"`
18923  
18924  	// The total number of DHCP leases issued for the shared network.
18925  	DynamicHosts uint32 `json:"dynamic_hosts,omitempty"`
18926  
18927  	// The dynamic DNS updates flag of a shared network object. If set to True, the
18928  	// DHCP server sends DDNS updates to DNS servers in the same Grid, and to
18929  	// external DNS servers.
18930  	EnableDdns *bool `json:"enable_ddns,omitempty"`
18931  
18932  	// Set this to True if you want the DHCP server to use a different lease time
18933  	// for PXE clients.
18934  	EnablePxeLeaseTime *bool `json:"enable_pxe_lease_time,omitempty"`
18935  
18936  	// Extensible attributes associated with the object. For valid values for
18937  	// extensible attributes, see {extattrs:values}.
18938  	Ea EA `json:"extattrs"`
18939  
18940  	// If set to true, the client identifier will be ignored.
18941  	IgnoreClientIdentifier *bool `json:"ignore_client_identifier,omitempty"`
18942  
18943  	// If this field is set to False, the appliance returns all DHCP options the
18944  	// client is eligible to receive, rather than only the list of options the
18945  	// client has requested.
18946  	IgnoreDhcpOptionListRequest *bool `json:"ignore_dhcp_option_list_request,omitempty"`
18947  
18948  	// Indicates whether the appliance will ignore DHCP client IDs or MAC
18949  	// addresses. Valid values are "NONE", "CLIENT", or "MACADDR". The default is
18950  	// "NONE".
18951  	IgnoreId string `json:"ignore_id,omitempty"`
18952  
18953  	// A list of MAC addresses the appliance will ignore.
18954  	IgnoreMacAddresses []string `json:"ignore_mac_addresses,omitempty"`
18955  
18956  	// An integer that specifies the period of time (in seconds) that frees and
18957  	// backs up leases remained in the database before they are automatically
18958  	// deleted. To disable lease scavenging, set the parameter to -1. The minimum
18959  	// positive value must be greater than 86400 seconds (1 day).
18960  	LeaseScavengeTime int `json:"lease_scavenge_time,omitempty"`
18961  
18962  	// This field contains the logic filters to be applied on the this shared
18963  	// network. This list corresponds to the match rules that are written to the
18964  	// dhcpd configuration file.
18965  	LogicFilterRules []*Logicfilterrule `json:"logic_filter_rules,omitempty"`
18966  
18967  	// The Microsoft Active Directory user related information.
18968  	MsAdUserData *MsserverAduserData `json:"ms_ad_user_data,omitempty"`
18969  
18970  	// The name of the IPv6 Shared Network.
18971  	Name *string `json:"name,omitempty"`
18972  
18973  	// The name of the network view in which this shared network resides.
18974  	NetworkView string `json:"network_view,omitempty"`
18975  
18976  	// A list of networks belonging to the shared network Each individual list item
18977  	// must be specified as an object containing a '_ref' parameter to a network
18978  	// reference, for example:: [{ "_ref":
18979  	// "network/ZG5zLm5ldHdvcmskMTAuMwLvMTYvMA", }] if the reference of the wanted
18980  	// network is not known, it is possible to specify search parameters for the
18981  	// network instead in the following way:: [{ "_ref": { 'network': '10.0.0.0/8',
18982  	// } }] note that in this case the search must match exactly one network for
18983  	// the assignment to be successful.
18984  	Networks []*Ipv4Network `json:"networks,omitempty"`
18985  
18986  	// The name in FQDN and/or IPv4 Address of the next server that the host needs
18987  	// to boot.
18988  	Nextserver *string `json:"nextserver,omitempty"`
18989  
18990  	// An array of DHCP option dhcpoption structs that lists the DHCP options
18991  	// associated with the object.
18992  	Options []*Dhcpoption `json:"options,omitempty"`
18993  
18994  	// The PXE lease time value of a shared network object. Some hosts use PXE
18995  	// (Preboot Execution Environment) to boot remotely from a server. To better
18996  	// manage your IP resources, set a different lease time for PXE boot requests.
18997  	// You can configure the DHCP server to allocate an IP address with a shorter
18998  	// lease time to hosts that send PXE boot requests, so IP addresses are not
18999  	// leased longer than necessary. A 32-bit unsigned integer that represents the
19000  	// duration, in seconds, for which the update is cached. Zero indicates that
19001  	// the update is not cached.
19002  	PxeLeaseTime *uint32 `json:"pxe_lease_time,omitempty"`
19003  
19004  	// The number of static DHCP addresses configured in the shared network.
19005  	StaticHosts uint32 `json:"static_hosts,omitempty"`
19006  
19007  	// The total number of DHCP addresses configured in the shared network.
19008  	TotalHosts uint32 `json:"total_hosts,omitempty"`
19009  
19010  	// This field controls whether the DHCP server updates DNS when a DHCP lease is
19011  	// renewed.
19012  	UpdateDnsOnLeaseRenewal *bool `json:"update_dns_on_lease_renewal,omitempty"`
19013  
19014  	// Use flag for: authority
19015  	UseAuthority *bool `json:"use_authority,omitempty"`
19016  
19017  	// Use flag for: bootfile
19018  	UseBootfile *bool `json:"use_bootfile,omitempty"`
19019  
19020  	// Use flag for: bootserver
19021  	UseBootserver *bool `json:"use_bootserver,omitempty"`
19022  
19023  	// Use flag for: ddns_generate_hostname
19024  	UseDdnsGenerateHostname *bool `json:"use_ddns_generate_hostname,omitempty"`
19025  
19026  	// Use flag for: ddns_ttl
19027  	UseDdnsTtl *bool `json:"use_ddns_ttl,omitempty"`
19028  
19029  	// Use flag for: ddns_update_fixed_addresses
19030  	UseDdnsUpdateFixedAddresses *bool `json:"use_ddns_update_fixed_addresses,omitempty"`
19031  
19032  	// Use flag for: ddns_use_option81
19033  	UseDdnsUseOption81 *bool `json:"use_ddns_use_option81,omitempty"`
19034  
19035  	// Use flag for: deny_bootp
19036  	UseDenyBootp *bool `json:"use_deny_bootp,omitempty"`
19037  
19038  	// Use flag for: enable_ddns
19039  	UseEnableDdns *bool `json:"use_enable_ddns,omitempty"`
19040  
19041  	// Use flag for: ignore_client_identifier
19042  	UseIgnoreClientIdentifier *bool `json:"use_ignore_client_identifier,omitempty"`
19043  
19044  	// Use flag for: ignore_dhcp_option_list_request
19045  	UseIgnoreDhcpOptionListRequest *bool `json:"use_ignore_dhcp_option_list_request,omitempty"`
19046  
19047  	// Use flag for: ignore_id
19048  	UseIgnoreId *bool `json:"use_ignore_id,omitempty"`
19049  
19050  	// Use flag for: lease_scavenge_time
19051  	UseLeaseScavengeTime *bool `json:"use_lease_scavenge_time,omitempty"`
19052  
19053  	// Use flag for: logic_filter_rules
19054  	UseLogicFilterRules *bool `json:"use_logic_filter_rules,omitempty"`
19055  
19056  	// Use flag for: nextserver
19057  	UseNextserver *bool `json:"use_nextserver,omitempty"`
19058  
19059  	// Use flag for: options
19060  	UseOptions *bool `json:"use_options,omitempty"`
19061  
19062  	// Use flag for: pxe_lease_time
19063  	UsePxeLeaseTime *bool `json:"use_pxe_lease_time,omitempty"`
19064  
19065  	// Use flag for: update_dns_on_lease_renewal
19066  	UseUpdateDnsOnLeaseRenewal *bool `json:"use_update_dns_on_lease_renewal,omitempty"`
19067  }
19068  
19069  func (SharedNetwork) ObjectType() string {
19070  	return "sharednetwork"
19071  }
19072  
19073  func (obj SharedNetwork) ReturnFields() []string {
19074  	if obj.returnFields == nil {
19075  		obj.returnFields = []string{"comment", "name", "network_view", "networks"}
19076  	}
19077  	return obj.returnFields
19078  }
19079  
19080  // SharedRecordA represents Infoblox object sharedrecord:a.
19081  // A shared A (address) record is similar to a regular A record. It maps a
19082  // domain name to an IPv4 address. The difference is that a shared A record
19083  // should be added to a shared record group. If the shared record group is
19084  // associated with other zones, the shared A record is shared among these
19085  // zones.
19086  type SharedRecordA struct {
19087  	IBBase `json:"-"`
19088  
19089  	Ref string `json:"_ref,omitempty"`
19090  
19091  	// Comment for this shared record; maximum 256 characters.
19092  	Comment *string `json:"comment,omitempty"`
19093  
19094  	// Determines if this shared record is disabled or not. False means that the
19095  	// record is enabled.
19096  	Disable *bool `json:"disable,omitempty"`
19097  
19098  	// The name for this shared record in punycode format.
19099  	DnsName string `json:"dns_name,omitempty"`
19100  
19101  	// Extensible attributes associated with the object. For valid values for
19102  	// extensible attributes, see {extattrs:values}.
19103  	Ea EA `json:"extattrs"`
19104  
19105  	// The IPv4 Address of the shared record.
19106  	Ipv4Addr *string `json:"ipv4addr,omitempty"`
19107  
19108  	// Name for this shared record. This value can be in unicode format.
19109  	Name *string `json:"name,omitempty"`
19110  
19111  	// The name of the shared record group in which the record resides.
19112  	SharedRecordGroup *string `json:"shared_record_group,omitempty"`
19113  
19114  	// The Time To Live (TTL) value for this shared record. A 32-bit unsigned
19115  	// integer that represents the duration, in seconds, for which the shared
19116  	// record is valid (cached). Zero indicates that the shared record should not
19117  	// be cached.
19118  	Ttl *uint32 `json:"ttl,omitempty"`
19119  
19120  	// Use flag for: ttl
19121  	UseTtl *bool `json:"use_ttl,omitempty"`
19122  }
19123  
19124  func (SharedRecordA) ObjectType() string {
19125  	return "sharedrecord:a"
19126  }
19127  
19128  func (obj SharedRecordA) ReturnFields() []string {
19129  	if obj.returnFields == nil {
19130  		obj.returnFields = []string{"ipv4addr", "name", "shared_record_group"}
19131  	}
19132  	return obj.returnFields
19133  }
19134  
19135  // SharedRecordAAAA represents Infoblox object sharedrecord:aaaa.
19136  // A shared AAAA (address) record is similar to a regular AAAA record. It maps
19137  // a domain name to an IPv6 address. The difference is that a shared AAAA
19138  // record should be added to a shared record group. If the shared record group
19139  // is associated with other zones, the shared AAAA record is shared among these
19140  // zones.
19141  type SharedRecordAAAA struct {
19142  	IBBase `json:"-"`
19143  
19144  	Ref string `json:"_ref,omitempty"`
19145  
19146  	// Comment for this shared record; maximum 256 characters.
19147  	Comment *string `json:"comment,omitempty"`
19148  
19149  	// Determines if this shared record is disabled or not. False means that the
19150  	// record is enabled.
19151  	Disable *bool `json:"disable,omitempty"`
19152  
19153  	// The name for this shared record in punycode format.
19154  	DnsName string `json:"dns_name,omitempty"`
19155  
19156  	// Extensible attributes associated with the object. For valid values for
19157  	// extensible attributes, see {extattrs:values}.
19158  	Ea EA `json:"extattrs"`
19159  
19160  	// The IPv6 Address of the shared record.
19161  	Ipv6Addr *string `json:"ipv6addr,omitempty"`
19162  
19163  	// Name for this shared record. This value can be in unicode format.
19164  	Name *string `json:"name,omitempty"`
19165  
19166  	// The name of the shared record group in which the record resides.
19167  	SharedRecordGroup *string `json:"shared_record_group,omitempty"`
19168  
19169  	// The Time To Live (TTL) value for this shared record. A 32-bit unsigned
19170  	// integer that represents the duration, in seconds, for which the shared
19171  	// record is valid (cached). Zero indicates that the shared record should not
19172  	// be cached.
19173  	Ttl *uint32 `json:"ttl,omitempty"`
19174  
19175  	// Use flag for: ttl
19176  	UseTtl *bool `json:"use_ttl,omitempty"`
19177  }
19178  
19179  func (SharedRecordAAAA) ObjectType() string {
19180  	return "sharedrecord:aaaa"
19181  }
19182  
19183  func (obj SharedRecordAAAA) ReturnFields() []string {
19184  	if obj.returnFields == nil {
19185  		obj.returnFields = []string{"ipv6addr", "name", "shared_record_group"}
19186  	}
19187  	return obj.returnFields
19188  }
19189  
19190  // SharedrecordCname represents Infoblox object sharedrecord:cname.
19191  // A shared CNAME (canonical name) record is similar to a regular CNAME record.
19192  // The difference is that a shared CNAME record should be added to a shared
19193  // record group. If the shared record group is associated with other zones, the
19194  // shared CNAME record is shared among these zones.
19195  type SharedrecordCname struct {
19196  	IBBase `json:"-"`
19197  
19198  	Ref string `json:"_ref,omitempty"`
19199  
19200  	// Canonical name in FQDN format. This value can be in unicode format.
19201  	Canonical *string `json:"canonical,omitempty"`
19202  
19203  	// Comment for this shared record; maximum 256 characters.
19204  	Comment *string `json:"comment,omitempty"`
19205  
19206  	// Determines if this shared record is disabled or not. False means that the
19207  	// record is enabled.
19208  	Disable *bool `json:"disable,omitempty"`
19209  
19210  	// Canonical name in punycode format.
19211  	DnsCanonical string `json:"dns_canonical,omitempty"`
19212  
19213  	// The name for this shared record in punycode format.
19214  	DnsName string `json:"dns_name,omitempty"`
19215  
19216  	// Extensible attributes associated with the object. For valid values for
19217  	// extensible attributes, see {extattrs:values}.
19218  	Ea EA `json:"extattrs"`
19219  
19220  	// Name for this shared record. This value can be in unicode format.
19221  	Name *string `json:"name,omitempty"`
19222  
19223  	// The name of the shared record group in which the record resides.
19224  	SharedRecordGroup *string `json:"shared_record_group,omitempty"`
19225  
19226  	// The Time To Live (TTL) value for this shared record. A 32-bit unsigned
19227  	// integer that represents the duration, in seconds, for which the shared
19228  	// record is valid (cached). Zero indicates that the shared record should not
19229  	// be cached.
19230  	Ttl *uint32 `json:"ttl,omitempty"`
19231  
19232  	// Use flag for: ttl
19233  	UseTtl *bool `json:"use_ttl,omitempty"`
19234  }
19235  
19236  func (SharedrecordCname) ObjectType() string {
19237  	return "sharedrecord:cname"
19238  }
19239  
19240  func (obj SharedrecordCname) ReturnFields() []string {
19241  	if obj.returnFields == nil {
19242  		obj.returnFields = []string{"canonical", "name", "shared_record_group"}
19243  	}
19244  	return obj.returnFields
19245  }
19246  
19247  // SharedRecordMX represents Infoblox object sharedrecord:mx.
19248  // A shared MX (mail exchanger) record is similar to a regular MX record. It
19249  // maps a domain name to a mail exchanger. The difference is that a shared MX
19250  // record should be added to a shared record group. If the shared record group
19251  // is associated with other zones, the shared MX record is shared among these
19252  // zones.
19253  type SharedRecordMX struct {
19254  	IBBase `json:"-"`
19255  
19256  	Ref string `json:"_ref,omitempty"`
19257  
19258  	// Comment for this shared record; maximum 256 characters.
19259  	Comment *string `json:"comment,omitempty"`
19260  
19261  	// Determines if this shared record is disabled or not. False means that the
19262  	// record is enabled.
19263  	Disable *bool `json:"disable,omitempty"`
19264  
19265  	// The name of the mail exchanger in punycode format.
19266  	DnsMailExchanger string `json:"dns_mail_exchanger,omitempty"`
19267  
19268  	// The name for this shared record in punycode format.
19269  	DnsName string `json:"dns_name,omitempty"`
19270  
19271  	// Extensible attributes associated with the object. For valid values for
19272  	// extensible attributes, see {extattrs:values}.
19273  	Ea EA `json:"extattrs"`
19274  
19275  	// The name of the mail exchanger in FQDN format. This value can be in unicode
19276  	// format.
19277  	MailExchanger *string `json:"mail_exchanger,omitempty"`
19278  
19279  	// Name for this shared record. This value can be in unicode format.
19280  	Name *string `json:"name,omitempty"`
19281  
19282  	// The preference value. Valid values are from 0 to 65535 (inclusive), in
19283  	// 32-bit unsigned integer format.
19284  	Preference *uint32 `json:"preference,omitempty"`
19285  
19286  	// The name of the shared record group in which the record resides.
19287  	SharedRecordGroup *string `json:"shared_record_group,omitempty"`
19288  
19289  	// The Time To Live (TTL) value for this shared record. A 32-bit unsigned
19290  	// integer that represents the duration, in seconds, for which the shared
19291  	// record is valid (cached). Zero indicates that the shared record should not
19292  	// be cached.
19293  	Ttl *uint32 `json:"ttl,omitempty"`
19294  
19295  	// Use flag for: ttl
19296  	UseTtl *bool `json:"use_ttl,omitempty"`
19297  }
19298  
19299  func (SharedRecordMX) ObjectType() string {
19300  	return "sharedrecord:mx"
19301  }
19302  
19303  func (obj SharedRecordMX) ReturnFields() []string {
19304  	if obj.returnFields == nil {
19305  		obj.returnFields = []string{"mail_exchanger", "name", "preference", "shared_record_group"}
19306  	}
19307  	return obj.returnFields
19308  }
19309  
19310  // SharedrecordSrv represents Infoblox object sharedrecord:srv.
19311  // A shared SRV (service) record is similar to a regular SRV record. It
19312  // provides information about available services. The difference is that a
19313  // shared SRV record should be added to a shared record group. If the shared
19314  // record group is associated with other zones, the shared SRV record is shared
19315  // among these zones.
19316  type SharedrecordSrv struct {
19317  	IBBase `json:"-"`
19318  
19319  	Ref string `json:"_ref,omitempty"`
19320  
19321  	// Comment for this shared record; maximum 256 characters.
19322  	Comment *string `json:"comment,omitempty"`
19323  
19324  	// Determines if this shared record is disabled or not. False means that the
19325  	// record is enabled.
19326  	Disable *bool `json:"disable,omitempty"`
19327  
19328  	// The name for this shared record in punycode format.
19329  	DnsName string `json:"dns_name,omitempty"`
19330  
19331  	// The name for a shared SRV record in punycode format.
19332  	DnsTarget string `json:"dns_target,omitempty"`
19333  
19334  	// Extensible attributes associated with the object. For valid values for
19335  	// extensible attributes, see {extattrs:values}.
19336  	Ea EA `json:"extattrs"`
19337  
19338  	// Name for this shared record. This value can be in unicode format.
19339  	Name *string `json:"name,omitempty"`
19340  
19341  	// The port of the shared SRV record. Valid values are from 0 to 65535
19342  	// (inclusive), in 32-bit unsigned integer format.
19343  	Port *uint32 `json:"port,omitempty"`
19344  
19345  	// The priority of the shared SRV record. Valid values are from 0 to 65535
19346  	// (inclusive), in 32-bit unsigned integer format.
19347  	Priority *uint32 `json:"priority,omitempty"`
19348  
19349  	// The name of the shared record group in which the record resides.
19350  	SharedRecordGroup *string `json:"shared_record_group,omitempty"`
19351  
19352  	// The target of the shared SRV record in FQDN format. This value can be in
19353  	// unicode format.
19354  	Target *string `json:"target,omitempty"`
19355  
19356  	// The Time To Live (TTL) value for this shared record. A 32-bit unsigned
19357  	// integer that represents the duration, in seconds, for which the shared
19358  	// record is valid (cached). Zero indicates that the shared record should not
19359  	// be cached.
19360  	Ttl *uint32 `json:"ttl,omitempty"`
19361  
19362  	// Use flag for: ttl
19363  	UseTtl *bool `json:"use_ttl,omitempty"`
19364  
19365  	// The weight of the shared SRV record. Valid values are from 0 to 65535
19366  	// (inclusive), in 32-bit unsigned integer format.
19367  	Weight *uint32 `json:"weight,omitempty"`
19368  }
19369  
19370  func (SharedrecordSrv) ObjectType() string {
19371  	return "sharedrecord:srv"
19372  }
19373  
19374  func (obj SharedrecordSrv) ReturnFields() []string {
19375  	if obj.returnFields == nil {
19376  		obj.returnFields = []string{"name", "port", "priority", "shared_record_group", "target", "weight"}
19377  	}
19378  	return obj.returnFields
19379  }
19380  
19381  // SharedRecordTXT represents Infoblox object sharedrecord:txt.
19382  // A shared TXT (text) record is similar to a regular TXT record. It contains
19383  // supplemental information for a host. SPF (Sender Policy Framework) records
19384  // are specialized TXT records that identify the servers that send mail from a
19385  // domain. The difference is that a shared TXT record should be added to a
19386  // shared record group. If the shared record group is associated with other
19387  // zones, the shared TXT record is shared among these zones.
19388  type SharedRecordTXT struct {
19389  	IBBase `json:"-"`
19390  
19391  	Ref string `json:"_ref,omitempty"`
19392  
19393  	// Comment for this shared record; maximum 256 characters.
19394  	Comment *string `json:"comment,omitempty"`
19395  
19396  	// Determines if this shared record is disabled or not. False means that the
19397  	// record is enabled.
19398  	Disable *bool `json:"disable,omitempty"`
19399  
19400  	// The name for this shared record in punycode format.
19401  	DnsName string `json:"dns_name,omitempty"`
19402  
19403  	// Extensible attributes associated with the object. For valid values for
19404  	// extensible attributes, see {extattrs:values}.
19405  	Ea EA `json:"extattrs"`
19406  
19407  	// Name for this shared record. This value can be in unicode format.
19408  	Name *string `json:"name,omitempty"`
19409  
19410  	// The name of the shared record group in which the record resides.
19411  	SharedRecordGroup *string `json:"shared_record_group,omitempty"`
19412  
19413  	// Text associated with the shared record. It can contain up to 255 bytes per
19414  	// substring and up a total of 512 bytes. To enter leading, trailing or
19415  	// embedded spaces in the text, add quotes (" ") around the text to preserve
19416  	// the spaces.
19417  	Text *string `json:"text,omitempty"`
19418  
19419  	// The Time To Live (TTL) value for this shared record. A 32-bit unsigned
19420  	// integer that represents the duration, in seconds, for which the shared
19421  	// record is valid (cached). Zero indicates that the shared record should not
19422  	// be cached.
19423  	Ttl *uint32 `json:"ttl,omitempty"`
19424  
19425  	// Use flag for: ttl
19426  	UseTtl *bool `json:"use_ttl,omitempty"`
19427  }
19428  
19429  func (SharedRecordTXT) ObjectType() string {
19430  	return "sharedrecord:txt"
19431  }
19432  
19433  func (obj SharedRecordTXT) ReturnFields() []string {
19434  	if obj.returnFields == nil {
19435  		obj.returnFields = []string{"name", "shared_record_group", "text"}
19436  	}
19437  	return obj.returnFields
19438  }
19439  
19440  // Sharedrecordgroup represents Infoblox object sharedrecordgroup.
19441  // A shared record group (SRG) is created to contain DNS shared records and
19442  // share them between different zones. For example, if a group of DNS records
19443  // needs to be in three different zones, you can include the records in a
19444  // shared record group and assign the group to the three zones. For more
19445  // information about shared record groups and shared records, please refer to
19446  // Infoblox Administrator Guide.
19447  type Sharedrecordgroup struct {
19448  	IBBase `json:"-"`
19449  
19450  	Ref string `json:"_ref,omitempty"`
19451  
19452  	// The descriptive comment of this shared record group.
19453  	Comment *string `json:"comment,omitempty"`
19454  
19455  	// Extensible attributes associated with the object. For valid values for
19456  	// extensible attributes, see {extattrs:values}.
19457  	Ea EA `json:"extattrs"`
19458  
19459  	// The name of this shared record group.
19460  	Name *string `json:"name,omitempty"`
19461  
19462  	// The record name policy of this shared record group.
19463  	RecordNamePolicy *string `json:"record_name_policy,omitempty"`
19464  
19465  	// Use flag for: record_name_policy
19466  	UseRecordNamePolicy *bool `json:"use_record_name_policy,omitempty"`
19467  
19468  	// The list of zones associated with this shared record group.
19469  	ZoneAssociations []string `json:"zone_associations,omitempty"`
19470  }
19471  
19472  func (Sharedrecordgroup) ObjectType() string {
19473  	return "sharedrecordgroup"
19474  }
19475  
19476  func (obj Sharedrecordgroup) ReturnFields() []string {
19477  	if obj.returnFields == nil {
19478  		obj.returnFields = []string{"comment", "name"}
19479  	}
19480  	return obj.returnFields
19481  }
19482  
19483  // SmartfolderChildren represents Infoblox object smartfolder:children.
19484  // The Smart Folder children object is used to read the objects that are
19485  // associated with either a Smart Folder (global or personal) or a set of
19486  // queries that users can make without saving a Smart Folder object on the
19487  // appliance.
19488  type SmartfolderChildren struct {
19489  	IBBase `json:"-"`
19490  
19491  	Ref string `json:"_ref,omitempty"`
19492  
19493  	// The object retuned by the Smart Folder query.
19494  	Resource string `json:"resource,omitempty"`
19495  
19496  	// The value returned by the Smart Folder query.
19497  	Value *SmartfolderQueryitemvalue `json:"value,omitempty"`
19498  
19499  	// The type of the returned value.
19500  	ValueType string `json:"value_type,omitempty"`
19501  }
19502  
19503  func (SmartfolderChildren) ObjectType() string {
19504  	return "smartfolder:children"
19505  }
19506  
19507  func (obj SmartfolderChildren) ReturnFields() []string {
19508  	if obj.returnFields == nil {
19509  		obj.returnFields = []string{"resource", "value", "value_type"}
19510  	}
19511  	return obj.returnFields
19512  }
19513  
19514  // SmartfolderGlobal represents Infoblox object smartfolder:global.
19515  // Smart Folders are used to organize your core network services data.
19516  // Depending on your administrative roles and business needs, you can filter
19517  // your data object types, names, extensible attributes and discovered data and
19518  // then place the filtered results in a Smart Folder.
19519  type SmartfolderGlobal struct {
19520  	IBBase `json:"-"`
19521  
19522  	Ref string `json:"_ref,omitempty"`
19523  
19524  	// The global Smart Folder descriptive comment.
19525  	Comment *string `json:"comment,omitempty"`
19526  
19527  	// Global Smart Folder grouping rules.
19528  	GroupBys []*SmartfolderGroupby `json:"group_bys,omitempty"`
19529  
19530  	// The global Smart Folder name.
19531  	Name *string `json:"name,omitempty"`
19532  
19533  	// The global Smart Folder filter queries.
19534  	QueryItems []*SmartfolderQueryitem `json:"query_items,omitempty"`
19535  }
19536  
19537  func (SmartfolderGlobal) ObjectType() string {
19538  	return "smartfolder:global"
19539  }
19540  
19541  func (obj SmartfolderGlobal) ReturnFields() []string {
19542  	if obj.returnFields == nil {
19543  		obj.returnFields = []string{"comment", "name"}
19544  	}
19545  	return obj.returnFields
19546  }
19547  
19548  // SmartfolderPersonal represents Infoblox object smartfolder:personal.
19549  // Smart Folders are used to organize your core network services data.
19550  // Depending on your administrative roles and business needs, you can filter
19551  // your data object types, names, extensible attributes and discovered data and
19552  // then place the filtered results in a Smart Folder.
19553  type SmartfolderPersonal struct {
19554  	IBBase `json:"-"`
19555  
19556  	Ref string `json:"_ref,omitempty"`
19557  
19558  	// The personal Smart Folder descriptive comment.
19559  	Comment *string `json:"comment,omitempty"`
19560  
19561  	// The personal Smart Folder groupping rules.
19562  	GroupBys []*SmartfolderGroupby `json:"group_bys,omitempty"`
19563  
19564  	// Determines whether the personal Smart Folder is a shortcut.
19565  	IsShortcut bool `json:"is_shortcut,omitempty"`
19566  
19567  	// The personal Smart Folder name.
19568  	Name *string `json:"name,omitempty"`
19569  
19570  	// The personal Smart Folder filter queries.
19571  	QueryItems []*SmartfolderQueryitem `json:"query_items,omitempty"`
19572  }
19573  
19574  func (SmartfolderPersonal) ObjectType() string {
19575  	return "smartfolder:personal"
19576  }
19577  
19578  func (obj SmartfolderPersonal) ReturnFields() []string {
19579  	if obj.returnFields == nil {
19580  		obj.returnFields = []string{"comment", "is_shortcut", "name"}
19581  	}
19582  	return obj.returnFields
19583  }
19584  
19585  // SNMPUser represents Infoblox object snmpuser.
19586  // This object contains information related to SNMPv3 users.
19587  type SNMPUser struct {
19588  	IBBase `json:"-"`
19589  
19590  	Ref string `json:"_ref,omitempty"`
19591  
19592  	// Determines an authentication password for the user. This is a write-only
19593  	// attribute.
19594  	AuthenticationPassword *string `json:"authentication_password,omitempty"`
19595  
19596  	// The authentication protocol to be used for this user.
19597  	AuthenticationProtocol string `json:"authentication_protocol,omitempty"`
19598  
19599  	// A descriptive comment for the SNMPv3 User.
19600  	Comment *string `json:"comment,omitempty"`
19601  
19602  	// Determines if SNMPv3 user is disabled or not.
19603  	Disable *bool `json:"disable,omitempty"`
19604  
19605  	// Extensible attributes associated with the object. For valid values for
19606  	// extensible attributes, see {extattrs:values}.
19607  	Ea EA `json:"extattrs"`
19608  
19609  	// The name of the user.
19610  	Name *string `json:"name,omitempty"`
19611  
19612  	// Determines a password for the privacy protocol.
19613  	PrivacyPassword *string `json:"privacy_password,omitempty"`
19614  
19615  	// The privacy protocol to be used for this user.
19616  	PrivacyProtocol string `json:"privacy_protocol,omitempty"`
19617  }
19618  
19619  func (SNMPUser) ObjectType() string {
19620  	return "snmpuser"
19621  }
19622  
19623  func (obj SNMPUser) ReturnFields() []string {
19624  	if obj.returnFields == nil {
19625  		obj.returnFields = []string{"comment", "name"}
19626  	}
19627  	return obj.returnFields
19628  }
19629  
19630  // Superhost represents Infoblox object superhost.
19631  // The collection of correlated IPAM records which is related to single device.
19632  type Superhost struct {
19633  	IBBase `json:"-"`
19634  
19635  	Ref string `json:"_ref,omitempty"`
19636  
19637  	// The comment for Super Host.
19638  	Comment *string `json:"comment,omitempty"`
19639  
19640  	// True if we have to delete all DNS/DHCP associated objects with Super Host,
19641  	// false by default.
19642  	DeleteAssociatedObjects *bool `json:"delete_associated_objects,omitempty"`
19643  
19644  	// A list of DHCP objects refs which are associated with Super Host.
19645  	DhcpAssociatedObjects []*Ipv4FixedAddress `json:"dhcp_associated_objects,omitempty"`
19646  
19647  	// Disable all DNS/DHCP associated objects with Super Host if True, False by
19648  	// default.
19649  	Disabled *bool `json:"disabled,omitempty"`
19650  
19651  	// A list of object refs of the DNS resource records which are associated with
19652  	// Super Host.
19653  	DnsAssociatedObjects []*RecordA `json:"dns_associated_objects,omitempty"`
19654  
19655  	// Extensible attributes associated with the object. For valid values for
19656  	// extensible attributes, see {extattrs:values}.
19657  	Ea EA `json:"extattrs"`
19658  
19659  	// Name of the Superhost.
19660  	Name *string `json:"name,omitempty"`
19661  }
19662  
19663  func (Superhost) ObjectType() string {
19664  	return "superhost"
19665  }
19666  
19667  func (obj Superhost) ReturnFields() []string {
19668  	if obj.returnFields == nil {
19669  		obj.returnFields = []string{"comment", "name"}
19670  	}
19671  	return obj.returnFields
19672  }
19673  
19674  // Superhostchild represents Infoblox object superhostchild.
19675  // The superhostchild object is a read-only synthetic object used to retrieve
19676  // records assigned to superhost.
19677  type Superhostchild struct {
19678  	IBBase `json:"-"`
19679  
19680  	Ref string `json:"_ref,omitempty"`
19681  
19682  	// The record object, if supported by the WAPI. Otherwise, the value is "None".
19683  	AssociatedObject string `json:"associated_object,omitempty"`
19684  
19685  	// The record comment.
19686  	Comment string `json:"comment,omitempty"`
19687  
19688  	// Time at which DNS RR was created.
19689  	CreationTimestamp *UnixTime `json:"creation_timestamp,omitempty"`
19690  
19691  	// Specific data of DNS/DHCP records.
19692  	Data string `json:"data,omitempty"`
19693  
19694  	// True if the child DNS/DHCP object is disabled.
19695  	Disabled bool `json:"disabled,omitempty"`
19696  
19697  	// Name of the associated DNS/DHCP object.
19698  	Name string `json:"name,omitempty"`
19699  
19700  	// The name of the network view in which this network record resides.
19701  	NetworkView string `json:"network_view,omitempty"`
19702  
19703  	// Name of the Super Host object in which record resides.
19704  	Parent string `json:"parent,omitempty"`
19705  
19706  	// Name of a parent zone/network.
19707  	RecordParent string `json:"record_parent,omitempty"`
19708  
19709  	// The record type. When searching for an unspecified record type, the search
19710  	// is performed for all records.
19711  	Type string `json:"type,omitempty"`
19712  
19713  	// Name of the DNS View in which the record resides.
19714  	View string `json:"view,omitempty"`
19715  }
19716  
19717  func (Superhostchild) ObjectType() string {
19718  	return "superhostchild"
19719  }
19720  
19721  func (obj Superhostchild) ReturnFields() []string {
19722  	if obj.returnFields == nil {
19723  		obj.returnFields = []string{"comment", "data", "name", "network_view", "parent", "record_parent", "type", "view"}
19724  	}
19725  	return obj.returnFields
19726  }
19727  
19728  // SyslogEndpoint represents Infoblox object syslog:endpoint.
19729  // The name part of the syslog:endpoint object reference has the following
19730  // components:
19731  type SyslogEndpoint struct {
19732  	IBBase `json:"-"`
19733  
19734  	Ref string `json:"_ref,omitempty"`
19735  
19736  	// Extensible attributes associated with the object. For valid values for
19737  	// extensible attributes, see {extattrs:values}.
19738  	Ea EA `json:"extattrs"`
19739  
19740  	// The log level for a notification REST endpoint.
19741  	LogLevel string `json:"log_level,omitempty"`
19742  
19743  	// The name of a Syslog endpoint.
19744  	Name *string `json:"name,omitempty"`
19745  
19746  	// The outbound member that will generate events.
19747  	OutboundMemberType string `json:"outbound_member_type,omitempty"`
19748  
19749  	// The list of members for outbound events.
19750  	OutboundMembers []string `json:"outbound_members,omitempty"`
19751  
19752  	// List of syslog servers
19753  	SyslogServers []*SyslogEndpointServers `json:"syslog_servers,omitempty"`
19754  
19755  	// The Syslog template instance. You cannot change the parameters of the Syslog
19756  	// endpoint template instance.
19757  	TemplateInstance *NotificationRestTemplateinstance `json:"template_instance,omitempty"`
19758  
19759  	// The timeout of session management (in seconds).
19760  	Timeout *uint32 `json:"timeout,omitempty"`
19761  
19762  	// The vendor identifier.
19763  	VendorIdentifier *string `json:"vendor_identifier,omitempty"`
19764  
19765  	// The user name for WAPI integration.
19766  	WapiUserName *string `json:"wapi_user_name,omitempty"`
19767  
19768  	// The user password for WAPI integration.
19769  	WapiUserPassword *string `json:"wapi_user_password,omitempty"`
19770  }
19771  
19772  func (SyslogEndpoint) ObjectType() string {
19773  	return "syslog:endpoint"
19774  }
19775  
19776  func (obj SyslogEndpoint) ReturnFields() []string {
19777  	if obj.returnFields == nil {
19778  		obj.returnFields = []string{"name", "outbound_member_type"}
19779  	}
19780  	return obj.returnFields
19781  }
19782  
19783  // TacacsplusAuthservice represents Infoblox object tacacsplus:authservice.
19784  // This object is used to supply configuration for TACACS+ authentication
19785  // service.
19786  type TacacsplusAuthservice struct {
19787  	IBBase `json:"-"`
19788  
19789  	Ref string `json:"_ref,omitempty"`
19790  
19791  	// The number of the accounting retries before giving up and moving on to the
19792  	// next server.
19793  	AcctRetries *uint32 `json:"acct_retries,omitempty"`
19794  
19795  	// The accounting retry period in milliseconds.
19796  	AcctTimeout *uint32 `json:"acct_timeout,omitempty"`
19797  
19798  	// The number of the authentication/authorization retries before giving up and
19799  	// moving on to the next server.
19800  	AuthRetries *uint32 `json:"auth_retries,omitempty"`
19801  
19802  	// The authentication/authorization timeout period in milliseconds.
19803  	AuthTimeout *uint32 `json:"auth_timeout,omitempty"`
19804  
19805  	// The TACACS+ authentication service descriptive comment.
19806  	Comment *string `json:"comment,omitempty"`
19807  
19808  	// Determines whether the TACACS+ authentication service object is disabled.
19809  	Disable *bool `json:"disable,omitempty"`
19810  
19811  	// The TACACS+ authentication service name.
19812  	Name *string `json:"name,omitempty"`
19813  
19814  	// The list of the TACACS+ servers used for authentication.
19815  	Servers []*TacacsplusServer `json:"servers,omitempty"`
19816  }
19817  
19818  func (TacacsplusAuthservice) ObjectType() string {
19819  	return "tacacsplus:authservice"
19820  }
19821  
19822  func (obj TacacsplusAuthservice) ReturnFields() []string {
19823  	if obj.returnFields == nil {
19824  		obj.returnFields = []string{"comment", "disable", "name"}
19825  	}
19826  	return obj.returnFields
19827  }
19828  
19829  // Taxii represents Infoblox object taxii.
19830  // The Taxii Member object provides information about Taxii service
19831  // configuration such as the start/stop flag and RPZ (Response Policy Zone)
19832  // configuration.
19833  type Taxii struct {
19834  	IBBase `json:"-"`
19835  
19836  	Ref string `json:"_ref,omitempty"`
19837  
19838  	// Indicates whether the Taxii service is running on the given member or not.
19839  	EnableService *bool `json:"enable_service,omitempty"`
19840  
19841  	// The IPv4 Address of the Grid member.
19842  	Ipv4Addr string `json:"ipv4addr,omitempty"`
19843  
19844  	// The IPv6 Address of the Grid member.
19845  	Ipv6Addr string `json:"ipv6addr,omitempty"`
19846  
19847  	// The name of the Taxii Member.
19848  	Name string `json:"name,omitempty"`
19849  
19850  	// Taxii service RPZ configuration list.
19851  	TaxiiRpzConfig []*TaxiiRpzconfig `json:"taxii_rpz_config,omitempty"`
19852  }
19853  
19854  func (Taxii) ObjectType() string {
19855  	return "taxii"
19856  }
19857  
19858  func (obj Taxii) ReturnFields() []string {
19859  	if obj.returnFields == nil {
19860  		obj.returnFields = []string{"ipv4addr", "ipv6addr", "name"}
19861  	}
19862  	return obj.returnFields
19863  }
19864  
19865  // Tftpfiledir represents Infoblox object tftpfiledir.
19866  // The TFTP file/directory object provides facilities for creating a directory
19867  // structure for file distribution, modifying the directory name and
19868  // permission, creating virtual TFTP root directories, and browsing the
19869  // contents of the directories.
19870  type Tftpfiledir struct {
19871  	IBBase `json:"-"`
19872  
19873  	Ref string `json:"_ref,omitempty"`
19874  
19875  	// The path to the directory that contains file or subdirectory.
19876  	Directory string `json:"directory,omitempty"`
19877  
19878  	// Determines whether the TFTP entity is synchronized to Grid Master.
19879  	IsSyncedToGm bool `json:"is_synced_to_gm,omitempty"`
19880  
19881  	// The time when the file or directory was last modified.
19882  	LastModify *UnixTime `json:"last_modify,omitempty"`
19883  
19884  	// The TFTP directory or file name.
19885  	Name *string `json:"name,omitempty"`
19886  
19887  	// The type of TFTP file system entity (directory or file).
19888  	Type string `json:"type,omitempty"`
19889  
19890  	// The replication members with TFTP client addresses where this virtual folder
19891  	// is applicable.
19892  	VtftpDirMembers []*Vtftpdirmember `json:"vtftp_dir_members,omitempty"`
19893  }
19894  
19895  func (Tftpfiledir) ObjectType() string {
19896  	return "tftpfiledir"
19897  }
19898  
19899  func (obj Tftpfiledir) ReturnFields() []string {
19900  	if obj.returnFields == nil {
19901  		obj.returnFields = []string{"directory", "name", "type"}
19902  	}
19903  	return obj.returnFields
19904  }
19905  
19906  // ThreatanalyticsAnalyticsWhitelist represents Infoblox object threatanalytics:analytics_whitelist.
19907  // The threat analytics whitelist object contains trusted domains on which NIOS
19908  // allows DNS traffic.
19909  type ThreatanalyticsAnalyticsWhitelist struct {
19910  	IBBase `json:"-"`
19911  
19912  	Ref string `json:"_ref,omitempty"`
19913  
19914  	// Whitelist version string.
19915  	Version string `json:"version,omitempty"`
19916  }
19917  
19918  func (ThreatanalyticsAnalyticsWhitelist) ObjectType() string {
19919  	return "threatanalytics:analytics_whitelist"
19920  }
19921  
19922  func (obj ThreatanalyticsAnalyticsWhitelist) ReturnFields() []string {
19923  	if obj.returnFields == nil {
19924  		obj.returnFields = []string{"version"}
19925  	}
19926  	return obj.returnFields
19927  }
19928  
19929  // ThreatanalyticsModuleset represents Infoblox object threatanalytics:moduleset.
19930  // The threat analytics module set represents the installation or update of
19931  // module information.
19932  type ThreatanalyticsModuleset struct {
19933  	IBBase `json:"-"`
19934  
19935  	Ref string `json:"_ref,omitempty"`
19936  
19937  	// The version number of the threat analytics module set.
19938  	Version string `json:"version,omitempty"`
19939  }
19940  
19941  func (ThreatanalyticsModuleset) ObjectType() string {
19942  	return "threatanalytics:moduleset"
19943  }
19944  
19945  func (obj ThreatanalyticsModuleset) ReturnFields() []string {
19946  	if obj.returnFields == nil {
19947  		obj.returnFields = []string{"version"}
19948  	}
19949  	return obj.returnFields
19950  }
19951  
19952  // ThreatanalyticsWhitelist represents Infoblox object threatanalytics:whitelist.
19953  // The threat analytics whitelist object contains trusted domains on which NIOS
19954  // allows DNS traffic.
19955  type ThreatanalyticsWhitelist struct {
19956  	IBBase `json:"-"`
19957  
19958  	Ref string `json:"_ref,omitempty"`
19959  
19960  	// The descriptive comment for the threat analytics whitelist.
19961  	Comment *string `json:"comment,omitempty"`
19962  
19963  	// Determines whether the threat analytics whitelist is disabled.
19964  	Disable *bool `json:"disable,omitempty"`
19965  
19966  	// The FQDN of the threat analytics whitelist.
19967  	Fqdn *string `json:"fqdn,omitempty"`
19968  
19969  	// The type of the threat analytics whitelist.
19970  	Type string `json:"type,omitempty"`
19971  }
19972  
19973  func (ThreatanalyticsWhitelist) ObjectType() string {
19974  	return "threatanalytics:whitelist"
19975  }
19976  
19977  func (obj ThreatanalyticsWhitelist) ReturnFields() []string {
19978  	if obj.returnFields == nil {
19979  		obj.returnFields = []string{"comment", "disable", "fqdn"}
19980  	}
19981  	return obj.returnFields
19982  }
19983  
19984  // ThreatinsightCloudclient represents Infoblox object threatinsight:cloudclient.
19985  // You can use the Threat Insight Cloud Client object to configure the
19986  // detection and authentication of domains in the Cloud, and then apply them to
19987  // on-premises DNS firewall RPZ zones within a configurable time frame.
19988  type ThreatinsightCloudclient struct {
19989  	IBBase `json:"-"`
19990  
19991  	Ref string `json:"_ref,omitempty"`
19992  
19993  	// The RPZs to which you apply newly detected domains through the Infoblox
19994  	// Threat Insight Cloud Client.
19995  	BlacklistRpzList []*ZoneRp `json:"blacklist_rpz_list,omitempty"`
19996  
19997  	// Determines whether the Threat Insight in Cloud Client is enabled.
19998  	Enable *bool `json:"enable,omitempty"`
19999  
20000  	// Force a refresh if at least one RPZ is configured.
20001  	ForceRefresh *bool `json:"force_refresh,omitempty"`
20002  
20003  	// The time interval (in seconds) for requesting newly detected domains by the
20004  	// Infoblox Threat Insight Cloud Client and applying them to the list of
20005  	// configured RPZs.
20006  	Interval *uint32 `json:"interval,omitempty"`
20007  }
20008  
20009  func (ThreatinsightCloudclient) ObjectType() string {
20010  	return "threatinsight:cloudclient"
20011  }
20012  
20013  func (obj ThreatinsightCloudclient) ReturnFields() []string {
20014  	if obj.returnFields == nil {
20015  		obj.returnFields = []string{"enable", "interval"}
20016  	}
20017  	return obj.returnFields
20018  }
20019  
20020  // ThreatprotectionGridRule represents Infoblox object threatprotection:grid:rule.
20021  // This object provides information about the threat protection custom rule
20022  // settings.
20023  type ThreatprotectionGridRule struct {
20024  	IBBase `json:"-"`
20025  
20026  	Ref string `json:"_ref,omitempty"`
20027  
20028  	// The list of allowed actions of the custom rule.
20029  	AllowedActions []string `json:"allowed_actions,omitempty"`
20030  
20031  	// The rule category the custom rule assigned to.
20032  	Category string `json:"category,omitempty"`
20033  
20034  	// The human readable comment for the custom rule.
20035  	Comment *string `json:"comment,omitempty"`
20036  
20037  	// The rule config of the template.
20038  	Config *ThreatprotectionRuleconfig `json:"config,omitempty"`
20039  
20040  	// The description of the custom rule.
20041  	Description string `json:"description,omitempty"`
20042  
20043  	// Determines if the custom rule is disabled.
20044  	Disabled *bool `json:"disabled,omitempty"`
20045  
20046  	// Determines if factory reset is enabled for the custom rule.
20047  	IsFactoryResetEnabled bool `json:"is_factory_reset_enabled,omitempty"`
20048  
20049  	// The name of the rule custom rule concatenated with its rule config
20050  	// parameters.
20051  	Name string `json:"name,omitempty"`
20052  
20053  	// The version of the ruleset the custom rule assigned to.
20054  	Ruleset string `json:"ruleset,omitempty"`
20055  
20056  	// The Rule ID.
20057  	Sid uint32 `json:"sid,omitempty"`
20058  
20059  	// The threat protection rule template used to create this rule.
20060  	Template *string `json:"template,omitempty"`
20061  
20062  	// The type of the custom rule.
20063  	Type string `json:"type,omitempty"`
20064  }
20065  
20066  func (ThreatprotectionGridRule) ObjectType() string {
20067  	return "threatprotection:grid:rule"
20068  }
20069  
20070  func (obj ThreatprotectionGridRule) ReturnFields() []string {
20071  	if obj.returnFields == nil {
20072  		obj.returnFields = []string{"name", "ruleset", "sid"}
20073  	}
20074  	return obj.returnFields
20075  }
20076  
20077  // ThreatprotectionProfile represents Infoblox object threatprotection:profile.
20078  // The Threat Protection profile object facilitates configuring groups of
20079  // Threat Protection members that have similar traffic properties. A member can
20080  // be either associated with a Threat Protection profile or inherit the ruleset
20081  // from the Grid or override the ruleset individually at the member level.
20082  type ThreatprotectionProfile struct {
20083  	IBBase `json:"-"`
20084  
20085  	Ref string `json:"_ref,omitempty"`
20086  
20087  	// The comment for the Threat Protection profile.
20088  	Comment *string `json:"comment,omitempty"`
20089  
20090  	// The current Threat Protection profile ruleset.
20091  	CurrentRuleset *string `json:"current_ruleset,omitempty"`
20092  
20093  	// Determines if multiple BIND responses via TCP connection are disabled.
20094  	DisableMultipleDnsTcpRequest *bool `json:"disable_multiple_dns_tcp_request,omitempty"`
20095  
20096  	// The number of events logged per second per rule.
20097  	EventsPerSecondPerRule *uint32 `json:"events_per_second_per_rule,omitempty"`
20098  
20099  	// Extensible attributes associated with the object. For valid values for
20100  	// extensible attributes, see {extattrs:values}.
20101  	Ea EA `json:"extattrs"`
20102  
20103  	// The list of members that are associated with the profile.
20104  	Members []string `json:"members,omitempty"`
20105  
20106  	// The name of the Threat Protection profile.
20107  	Name *string `json:"name,omitempty"`
20108  
20109  	// The source member. It can be used only during the create operation for
20110  	// cloning a profile from an existing member.
20111  	SourceMember string `json:"source_member,omitempty"`
20112  
20113  	// The source profile. It can be used only during the create operation for
20114  	// cloning a profile from an existing profile.
20115  	SourceProfile string `json:"source_profile,omitempty"`
20116  
20117  	// Use flag for: current_ruleset
20118  	UseCurrentRuleset *bool `json:"use_current_ruleset,omitempty"`
20119  
20120  	// Use flag for: disable_multiple_dns_tcp_request
20121  	UseDisableMultipleDnsTcpRequest *bool `json:"use_disable_multiple_dns_tcp_request,omitempty"`
20122  
20123  	// Use flag for: events_per_second_per_rule
20124  	UseEventsPerSecondPerRule *bool `json:"use_events_per_second_per_rule,omitempty"`
20125  }
20126  
20127  func (ThreatprotectionProfile) ObjectType() string {
20128  	return "threatprotection:profile"
20129  }
20130  
20131  func (obj ThreatprotectionProfile) ReturnFields() []string {
20132  	if obj.returnFields == nil {
20133  		obj.returnFields = []string{"comment", "name"}
20134  	}
20135  	return obj.returnFields
20136  }
20137  
20138  // ThreatprotectionProfileRule represents Infoblox object threatprotection:profile:rule.
20139  // This object provides information about the Threat protection profile rule
20140  // settings.
20141  type ThreatprotectionProfileRule struct {
20142  	IBBase `json:"-"`
20143  
20144  	Ref string `json:"_ref,omitempty"`
20145  
20146  	// The threat protection rule configuration.
20147  	Config *ThreatprotectionRuleconfig `json:"config,omitempty"`
20148  
20149  	// Determines if the rule is enabled or not for the profile.
20150  	Disable *bool `json:"disable,omitempty"`
20151  
20152  	// The name of the Threat protection profile.
20153  	Profile string `json:"profile,omitempty"`
20154  
20155  	// The rule object name.
20156  	Rule string `json:"rule,omitempty"`
20157  
20158  	// The snort rule ID.
20159  	Sid uint32 `json:"sid,omitempty"`
20160  
20161  	// Use flag for: config
20162  	UseConfig *bool `json:"use_config,omitempty"`
20163  
20164  	// Use flag for: disable
20165  	UseDisable *bool `json:"use_disable,omitempty"`
20166  }
20167  
20168  func (ThreatprotectionProfileRule) ObjectType() string {
20169  	return "threatprotection:profile:rule"
20170  }
20171  
20172  func (obj ThreatprotectionProfileRule) ReturnFields() []string {
20173  	if obj.returnFields == nil {
20174  		obj.returnFields = []string{"profile", "rule"}
20175  	}
20176  	return obj.returnFields
20177  }
20178  
20179  // ThreatprotectionRule represents Infoblox object threatprotection:rule.
20180  // This object provides information about the member Threat protection rule
20181  // settings.
20182  type ThreatprotectionRule struct {
20183  	IBBase `json:"-"`
20184  
20185  	Ref string `json:"_ref,omitempty"`
20186  
20187  	// The threat protection rule configuration.
20188  	Config *ThreatprotectionRuleconfig `json:"config,omitempty"`
20189  
20190  	// Determines if the rule is enabled or not for the member.
20191  	Disable *bool `json:"disable,omitempty"`
20192  
20193  	// The name of the Threat protection member.
20194  	Member string `json:"member,omitempty"`
20195  
20196  	// The rule object name.
20197  	Rule string `json:"rule,omitempty"`
20198  
20199  	// The Rule ID.
20200  	Sid uint32 `json:"sid,omitempty"`
20201  
20202  	// Use flag for: config
20203  	UseConfig *bool `json:"use_config,omitempty"`
20204  
20205  	// Use flag for: disable
20206  	UseDisable *bool `json:"use_disable,omitempty"`
20207  }
20208  
20209  func (ThreatprotectionRule) ObjectType() string {
20210  	return "threatprotection:rule"
20211  }
20212  
20213  func (obj ThreatprotectionRule) ReturnFields() []string {
20214  	if obj.returnFields == nil {
20215  		obj.returnFields = []string{"member", "rule"}
20216  	}
20217  	return obj.returnFields
20218  }
20219  
20220  // ThreatprotectionRulecategory represents Infoblox object threatprotection:rulecategory.
20221  // This object provides information about the threat protection rule category
20222  // settings.
20223  type ThreatprotectionRulecategory struct {
20224  	IBBase `json:"-"`
20225  
20226  	Ref string `json:"_ref,omitempty"`
20227  
20228  	// Determines if factory reset is enabled for this rule category.
20229  	IsFactoryResetEnabled bool `json:"is_factory_reset_enabled,omitempty"`
20230  
20231  	// The name of the rule category.
20232  	Name string `json:"name,omitempty"`
20233  
20234  	// The version of the ruleset the category assigned to.
20235  	Ruleset string `json:"ruleset,omitempty"`
20236  }
20237  
20238  func (ThreatprotectionRulecategory) ObjectType() string {
20239  	return "threatprotection:rulecategory"
20240  }
20241  
20242  func (obj ThreatprotectionRulecategory) ReturnFields() []string {
20243  	if obj.returnFields == nil {
20244  		obj.returnFields = []string{"name", "ruleset"}
20245  	}
20246  	return obj.returnFields
20247  }
20248  
20249  // ThreatprotectionRuleset represents Infoblox object threatprotection:ruleset.
20250  // This object represent the Grid protection ruleset information.
20251  type ThreatprotectionRuleset struct {
20252  	IBBase `json:"-"`
20253  
20254  	Ref string `json:"_ref,omitempty"`
20255  
20256  	// Determines the way the ruleset was added.
20257  	AddType string `json:"add_type,omitempty"`
20258  
20259  	// The time when the ruleset was added.
20260  	AddedTime *UnixTime `json:"added_time,omitempty"`
20261  
20262  	// The human readable comment for the ruleset.
20263  	Comment *string `json:"comment,omitempty"`
20264  
20265  	// Determines if the ruleset will not be deleted during upgrade.
20266  	DoNotDelete *bool `json:"do_not_delete,omitempty"`
20267  
20268  	// Determines if factory reset is enabled for this ruleset.
20269  	IsFactoryResetEnabled bool `json:"is_factory_reset_enabled,omitempty"`
20270  
20271  	// The users of the ruleset.
20272  	UsedBy []string `json:"used_by,omitempty"`
20273  
20274  	// The ruleset version.
20275  	Version string `json:"version,omitempty"`
20276  }
20277  
20278  func (ThreatprotectionRuleset) ObjectType() string {
20279  	return "threatprotection:ruleset"
20280  }
20281  
20282  func (obj ThreatprotectionRuleset) ReturnFields() []string {
20283  	if obj.returnFields == nil {
20284  		obj.returnFields = []string{"add_type", "version"}
20285  	}
20286  	return obj.returnFields
20287  }
20288  
20289  // ThreatprotectionRuletemplate represents Infoblox object threatprotection:ruletemplate.
20290  // This object provides information about the threat protection rule template
20291  // settings.
20292  type ThreatprotectionRuletemplate struct {
20293  	IBBase `json:"-"`
20294  
20295  	Ref string `json:"_ref,omitempty"`
20296  
20297  	// The list of allowed actions of rhe rule template.
20298  	AllowedActions []string `json:"allowed_actions,omitempty"`
20299  
20300  	// The rule category this template assigned to.
20301  	Category string `json:"category,omitempty"`
20302  
20303  	// The rule config of this template.
20304  	DefaultConfig *ThreatprotectionRuleconfig `json:"default_config,omitempty"`
20305  
20306  	// The description of the rule template.
20307  	Description string `json:"description,omitempty"`
20308  
20309  	// The name of the rule template.
20310  	Name string `json:"name,omitempty"`
20311  
20312  	// The version of the ruleset the template assigned to.
20313  	Ruleset string `json:"ruleset,omitempty"`
20314  
20315  	// The Rule ID.
20316  	Sid uint32 `json:"sid,omitempty"`
20317  }
20318  
20319  func (ThreatprotectionRuletemplate) ObjectType() string {
20320  	return "threatprotection:ruletemplate"
20321  }
20322  
20323  func (obj ThreatprotectionRuletemplate) ReturnFields() []string {
20324  	if obj.returnFields == nil {
20325  		obj.returnFields = []string{"name", "ruleset", "sid"}
20326  	}
20327  	return obj.returnFields
20328  }
20329  
20330  // ThreatprotectionStatistics represents Infoblox object threatprotection:statistics.
20331  // This object provides information about the threat protection statistics.
20332  type ThreatprotectionStatistics struct {
20333  	IBBase `json:"-"`
20334  
20335  	Ref string `json:"_ref,omitempty"`
20336  
20337  	// The Grid member name to get threat protection statistics. If nothing is
20338  	// specified then event statistics is returned for the Grid.
20339  	Member string `json:"member,omitempty"`
20340  
20341  	// The list of event statistical information for the Grid or particular
20342  	// members.
20343  	StatInfos []*ThreatprotectionStatinfo `json:"stat_infos,omitempty"`
20344  }
20345  
20346  func (ThreatprotectionStatistics) ObjectType() string {
20347  	return "threatprotection:statistics"
20348  }
20349  
20350  func (obj ThreatprotectionStatistics) ReturnFields() []string {
20351  	if obj.returnFields == nil {
20352  		obj.returnFields = []string{"member", "stat_infos"}
20353  	}
20354  	return obj.returnFields
20355  }
20356  
20357  // Upgradegroup represents Infoblox object upgradegroup.
20358  // To minimize the impact of Grid upgrades on system operations, you can
20359  // organize members into upgrade groups and schedule their software
20360  // distributions. The upgrade group object provides configuration of upgrade
20361  // and software distribution for members included in the upgrade group.
20362  type Upgradegroup struct {
20363  	IBBase `json:"-"`
20364  
20365  	Ref string `json:"_ref,omitempty"`
20366  
20367  	// The upgrade group descriptive comment.
20368  	Comment *string `json:"comment,omitempty"`
20369  
20370  	// The distribution dependent group name.
20371  	DistributionDependentGroup *string `json:"distribution_dependent_group,omitempty"`
20372  
20373  	// The distribution scheduling policy.
20374  	DistributionPolicy string `json:"distribution_policy,omitempty"`
20375  
20376  	// The time of the next scheduled distribution.
20377  	DistributionTime *UnixTime `json:"distribution_time,omitempty"`
20378  
20379  	// The upgrade group members.
20380  	Members []*UpgradegroupMember `json:"members,omitempty"`
20381  
20382  	// The upgrade group name.
20383  	Name *string `json:"name,omitempty"`
20384  
20385  	// The time zone for scheduling operations.
20386  	TimeZone string `json:"time_zone,omitempty"`
20387  
20388  	// The upgrade dependent group name.
20389  	UpgradeDependentGroup *string `json:"upgrade_dependent_group,omitempty"`
20390  
20391  	// The upgrade scheduling policy.
20392  	UpgradePolicy string `json:"upgrade_policy,omitempty"`
20393  
20394  	// The time of the next scheduled upgrade.
20395  	UpgradeTime *UnixTime `json:"upgrade_time,omitempty"`
20396  }
20397  
20398  func (Upgradegroup) ObjectType() string {
20399  	return "upgradegroup"
20400  }
20401  
20402  func (obj Upgradegroup) ReturnFields() []string {
20403  	if obj.returnFields == nil {
20404  		obj.returnFields = []string{"comment", "name"}
20405  	}
20406  	return obj.returnFields
20407  }
20408  
20409  // Upgradeschedule represents Infoblox object upgradeschedule.
20410  // You can schedule lite and full upgrades for certain NIOS versions. When you
20411  // schedule an upgrade, you schedule the upgrade for the Grid Master and the
20412  // upgrade groups, including the Default group. The Grid Master must always
20413  // upgrade before the upgrade groups.
20414  type Upgradeschedule struct {
20415  	IBBase `json:"-"`
20416  
20417  	Ref string `json:"_ref,omitempty"`
20418  
20419  	// Determines whether the upgrade schedule is active.
20420  	Active *bool `json:"active,omitempty"`
20421  
20422  	// The start time of the upgrade.
20423  	StartTime *UnixTime `json:"start_time,omitempty"`
20424  
20425  	// The time zone for upgrade start time.
20426  	TimeZone string `json:"time_zone,omitempty"`
20427  
20428  	// The upgrade groups scheduling settings.
20429  	UpgradeGroups []*UpgradegroupSchedule `json:"upgrade_groups,omitempty"`
20430  }
20431  
20432  func (Upgradeschedule) ObjectType() string {
20433  	return "upgradeschedule"
20434  }
20435  
20436  func (obj Upgradeschedule) ReturnFields() []string {
20437  	if obj.returnFields == nil {
20438  		obj.returnFields = []string{"active", "start_time", "time_zone"}
20439  	}
20440  	return obj.returnFields
20441  }
20442  
20443  // UpgradeStatus represents Infoblox object upgradestatus.
20444  // The Upgrade Status object is used to view the upgrade status of Infoblox
20445  // Grid elements.
20446  type UpgradeStatus struct {
20447  	IBBase `json:"-"`
20448  
20449  	Ref string `json:"_ref,omitempty"`
20450  
20451  	// Determines if distribution is allowed for the Grid.
20452  	AllowDistribution bool `json:"allow_distribution,omitempty"`
20453  
20454  	// Determines if distribution scheduling is allowed.
20455  	AllowDistributionScheduling bool `json:"allow_distribution_scheduling,omitempty"`
20456  
20457  	// Determines if upgrade is allowed for the Grid.
20458  	AllowUpgrade bool `json:"allow_upgrade,omitempty"`
20459  
20460  	// Determines if the Grid is allowed to cancel an upgrade.
20461  	AllowUpgradeCancel bool `json:"allow_upgrade_cancel,omitempty"`
20462  
20463  	// Determines if the Grid is allowed to pause an upgrade.
20464  	AllowUpgradePause bool `json:"allow_upgrade_pause,omitempty"`
20465  
20466  	// Determines if the Grid is allowed to resume an upgrade.
20467  	AllowUpgradeResume bool `json:"allow_upgrade_resume,omitempty"`
20468  
20469  	// Determine if the Grid is allowed to schedule an upgrade.
20470  	AllowUpgradeScheduling bool `json:"allow_upgrade_scheduling,omitempty"`
20471  
20472  	// Determines if the Grid is allowed to test an upgrade.
20473  	AllowUpgradeTest bool `json:"allow_upgrade_test,omitempty"`
20474  
20475  	// Determine if the Grid is allowed to upload a build.
20476  	AllowUpload bool `json:"allow_upload,omitempty"`
20477  
20478  	// The alternative version.
20479  	AlternateVersion string `json:"alternate_version,omitempty"`
20480  
20481  	// Comment in readable format for an upgrade group a or virtual node.
20482  	Comment string `json:"comment,omitempty"`
20483  
20484  	// The current version.
20485  	CurrentVersion string `json:"current_version,omitempty"`
20486  
20487  	// Current version summary for the 'type' requested. This field can be
20488  	// requested for the Grid, a certain group that has virtual nodes as
20489  	// subelements, or for the overall group status.
20490  	CurrentVersionSummary string `json:"current_version_summary,omitempty"`
20491  
20492  	// Determines if the distribution schedule is active for the Grid.
20493  	DistributionScheduleActive bool `json:"distribution_schedule_active,omitempty"`
20494  
20495  	// The Grid master distribution schedule time.
20496  	DistributionScheduleTime *UnixTime `json:"distribution_schedule_time,omitempty"`
20497  
20498  	// The current state of distribution process.
20499  	DistributionState string `json:"distribution_state,omitempty"`
20500  
20501  	// The version that is distributed.
20502  	DistributionVersion string `json:"distribution_version,omitempty"`
20503  
20504  	// Distribution version summary for the 'type' requested. This field can be
20505  	// requested for the Grid, a certain group that has virtual nodes as
20506  	// subelements, or for the overall group status.
20507  	DistributionVersionSummary string `json:"distribution_version_summary,omitempty"`
20508  
20509  	// The status of a certain element with regards to the type requested.
20510  	ElementStatus string `json:"element_status,omitempty"`
20511  
20512  	// The state of the Grid.
20513  	GridState string `json:"grid_state,omitempty"`
20514  
20515  	// The state of a group.
20516  	GroupState string `json:"group_state,omitempty"`
20517  
20518  	// Status of the HA pair.
20519  	HaStatus string `json:"ha_status,omitempty"`
20520  
20521  	// The list of hotfixes.
20522  	Hotfixes []*Hotfix `json:"hotfixes,omitempty"`
20523  
20524  	// The IPv4 Address of virtual node or physical one.
20525  	Ipv4Address string `json:"ipv4_address,omitempty"`
20526  
20527  	// The IPv6 Address of virtual node or physical one.
20528  	Ipv6Address string `json:"ipv6_address,omitempty"`
20529  
20530  	// Member that participates in the upgrade process.
20531  	Member string `json:"member,omitempty"`
20532  
20533  	// The Grid message.
20534  	Message string `json:"message,omitempty"`
20535  
20536  	// Status of the physical node in the HA pair.
20537  	PnodeRole string `json:"pnode_role,omitempty"`
20538  
20539  	// Determines if the upgrade process is reverted.
20540  	Reverted bool `json:"reverted,omitempty"`
20541  
20542  	// The status time.
20543  	StatusTime *UnixTime `json:"status_time,omitempty"`
20544  
20545  	// Status of a certain group, virtual node or physical node.
20546  	StatusValue string `json:"status_value,omitempty"`
20547  
20548  	// Timestamp of when the status was updated.
20549  	StatusValueUpdateTime *UnixTime `json:"status_value_update_time,omitempty"`
20550  
20551  	// The list of upgrade process steps.
20552  	Steps []*Upgradestep `json:"steps,omitempty"`
20553  
20554  	// The number of steps done.
20555  	StepsCompleted int `json:"steps_completed,omitempty"`
20556  
20557  	// Total number steps in the upgrade process.
20558  	StepsTotal int `json:"steps_total,omitempty"`
20559  
20560  	// The type of subelements to be requested. If 'type' is 'GROUP', or 'VNODE',
20561  	// then 'upgrade_group' or 'member' should have proper values for an operation
20562  	// to return data specific for the values passed. Otherwise, overall data is
20563  	// returned for every group or physical node.
20564  	SubelementType string `json:"subelement_type,omitempty"`
20565  
20566  	// Number of subelements that have accomplished an upgrade.
20567  	SubelementsCompleted int `json:"subelements_completed,omitempty"`
20568  
20569  	// The upgrade process information of subelements.
20570  	SubelementsStatus []*UpgradeStatus `json:"subelements_status,omitempty"`
20571  
20572  	// Number of subelements number in a certain group, virtual node, or the Grid.
20573  	SubelementsTotal int `json:"subelements_total,omitempty"`
20574  
20575  	// The type of upper level elements to be requested.
20576  	Type string `json:"type,omitempty"`
20577  
20578  	// Upgrade group that participates in the upgrade process.
20579  	UpgradeGroup string `json:"upgrade_group,omitempty"`
20580  
20581  	// Determines if the upgrade schedule is active.
20582  	UpgradeScheduleActive bool `json:"upgrade_schedule_active,omitempty"`
20583  
20584  	// The upgrade state of the Grid.
20585  	UpgradeState string `json:"upgrade_state,omitempty"`
20586  
20587  	// The upgrade test status of the Grid.
20588  	UpgradeTestStatus string `json:"upgrade_test_status,omitempty"`
20589  
20590  	// The version that is uploaded.
20591  	UploadVersion string `json:"upload_version,omitempty"`
20592  
20593  	// Upload version summary for the 'type' requested. This field can be requested
20594  	// for the Grid, a certain group that has virtual nodes as subelements, or
20595  	// overall group status.
20596  	UploadVersionSummary string `json:"upload_version_summary,omitempty"`
20597  }
20598  
20599  func (UpgradeStatus) ObjectType() string {
20600  	return "upgradestatus"
20601  }
20602  
20603  func (obj UpgradeStatus) ReturnFields() []string {
20604  	if obj.returnFields == nil {
20605  		obj.returnFields = []string{"alternate_version", "comment", "current_version", "distribution_version", "element_status", "grid_state", "group_state", "ha_status", "hotfixes", "ipv4_address", "ipv6_address", "member", "message", "pnode_role", "reverted", "status_value", "status_value_update_time", "steps", "steps_completed", "steps_total", "type", "upgrade_group", "upgrade_state", "upgrade_test_status", "upload_version"}
20606  	}
20607  	return obj.returnFields
20608  }
20609  
20610  func NewUpgradeStatus(upgradeStatus UpgradeStatus) *UpgradeStatus {
20611  	result := upgradeStatus
20612  	returnFields := []string{"subelements_status", "type"}
20613  	result.returnFields = returnFields
20614  	return &result
20615  }
20616  
20617  // UserProfile represents Infoblox object userprofile.
20618  // The user profile of the admin who has logged in.
20619  type UserProfile struct {
20620  	IBBase `json:"-"`
20621  
20622  	Ref string `json:"_ref,omitempty"`
20623  
20624  	// Determines the active dashboard type.
20625  	ActiveDashboardType string `json:"active_dashboard_type,omitempty"`
20626  
20627  	// The Admin Group object to which the admin belongs. An admin user can belong
20628  	// to only one admin group at a time.
20629  	AdminGroup string `json:"admin_group,omitempty"`
20630  
20631  	// The number of days left before the admin's password expires.
20632  	DaysToExpire int `json:"days_to_expire,omitempty"`
20633  
20634  	// The email address of the admin.
20635  	Email *string `json:"email,omitempty"`
20636  
20637  	// Determines if extensible attribute values will be returned by global search
20638  	// or not.
20639  	GlobalSearchOnEa *bool `json:"global_search_on_ea,omitempty"`
20640  
20641  	// Determines if global search will search for network insight devices and
20642  	// interfaces or not.
20643  	GlobalSearchOnNiData *bool `json:"global_search_on_ni_data,omitempty"`
20644  
20645  	// List of Admin Group objects that the current user is mapped to.
20646  	GridAdminGroups []string `json:"grid_admin_groups,omitempty"`
20647  
20648  	// The timestamp when the admin last logged in.
20649  	LastLogin *UnixTime `json:"last_login,omitempty"`
20650  
20651  	// Determines how many nodes are displayed at generation levels.
20652  	LbTreeNodesAtGenLevel *uint32 `json:"lb_tree_nodes_at_gen_level,omitempty"`
20653  
20654  	// Determines how many nodes are displayed at the last level.
20655  	LbTreeNodesAtLastLevel *uint32 `json:"lb_tree_nodes_at_last_level,omitempty"`
20656  
20657  	// The maximum count of widgets that can be added to one dashboard.
20658  	MaxCountWidgets *uint32 `json:"max_count_widgets,omitempty"`
20659  
20660  	// The admin name.
20661  	Name string `json:"name,omitempty"`
20662  
20663  	// The current password that will be replaced by a new password. To change a
20664  	// password in the database, you must provide both the current and new password
20665  	// values. This is a write-only attribute.
20666  	OldPassword *string `json:"old_password,omitempty"`
20667  
20668  	// The new password of the admin. To change a password in the database, you
20669  	// must provide both the current and new password values. This is a write-only
20670  	// attribute.
20671  	Password *string `json:"password,omitempty"`
20672  
20673  	// The number of lines of data a table or a single list view can contain.
20674  	TableSize *uint32 `json:"table_size,omitempty"`
20675  
20676  	// The time zone of the admin user.
20677  	TimeZone string `json:"time_zone,omitempty"`
20678  
20679  	// Use flag for: time_zone
20680  	UseTimeZone *bool `json:"use_time_zone,omitempty"`
20681  
20682  	// The admin type.
20683  	UserType string `json:"user_type,omitempty"`
20684  }
20685  
20686  func (UserProfile) ObjectType() string {
20687  	return "userprofile"
20688  }
20689  
20690  func (obj UserProfile) ReturnFields() []string {
20691  	if obj.returnFields == nil {
20692  		obj.returnFields = []string{"name"}
20693  	}
20694  	return obj.returnFields
20695  }
20696  
20697  func NewUserProfile(userprofile UserProfile) *UserProfile {
20698  	res := userprofile
20699  	res.returnFields = []string{"name"}
20700  	return &res
20701  }
20702  
20703  // Vdiscoverytask represents Infoblox object vdiscoverytask.
20704  // This object represents vDiscovery Task.
20705  type Vdiscoverytask struct {
20706  	IBBase `json:"-"`
20707  
20708  	Ref string `json:"_ref,omitempty"`
20709  
20710  	// Allow unsecured connection over HTTPS and bypass validation of the remote
20711  	// SSL certificate.
20712  	AllowUnsecuredConnection *bool `json:"allow_unsecured_connection,omitempty"`
20713  
20714  	// Whether to insert or update cloud EAs with discovery data.
20715  	AutoConsolidateCloudEa *bool `json:"auto_consolidate_cloud_ea,omitempty"`
20716  
20717  	// Whether to replace managed tenant with discovery tenant data.
20718  	AutoConsolidateManagedTenant *bool `json:"auto_consolidate_managed_tenant,omitempty"`
20719  
20720  	// Whether to replace managed virtual machine with discovery vm data.
20721  	AutoConsolidateManagedVm *bool `json:"auto_consolidate_managed_vm,omitempty"`
20722  
20723  	// Template string used to generate host name.
20724  	AutoCreateDnsHostnameTemplate *string `json:"auto_create_dns_hostname_template,omitempty"`
20725  
20726  	// Control whether to create or update DNS record using discovered data.
20727  	AutoCreateDnsRecord *bool `json:"auto_create_dns_record,omitempty"`
20728  
20729  	// Indicates the type of record to create if the auto create DNS record is
20730  	// enabled.
20731  	AutoCreateDnsRecordType string `json:"auto_create_dns_record_type,omitempty"`
20732  
20733  	// Comment on the task.
20734  	Comment *string `json:"comment,omitempty"`
20735  
20736  	// Credentials type used for connecting to the cloud management platform.
20737  	CredentialsType string `json:"credentials_type,omitempty"`
20738  
20739  	// The DNS view name for private IPs.
20740  	DnsViewPrivateIp *string `json:"dns_view_private_ip,omitempty"`
20741  
20742  	// The DNS view name for public IPs.
20743  	DnsViewPublicIp *string `json:"dns_view_public_ip,omitempty"`
20744  
20745  	// The name of the domain to use with keystone v3.
20746  	DomainName *string `json:"domain_name,omitempty"`
20747  
20748  	// Type of discovery driver.
20749  	DriverType string `json:"driver_type,omitempty"`
20750  
20751  	// Whether to enabled the cloud discovery or not.
20752  	Enabled *bool `json:"enabled,omitempty"`
20753  
20754  	// FQDN or IP of the cloud management platform.
20755  	FqdnOrIp *string `json:"fqdn_or_ip,omitempty"`
20756  
20757  	// Identity service version.
20758  	IdentityVersion string `json:"identity_version,omitempty"`
20759  
20760  	// Timestamp of last run.
20761  	LastRun *UnixTime `json:"last_run,omitempty"`
20762  
20763  	// Member on which cloud discovery will be run.
20764  	Member *string `json:"member,omitempty"`
20765  
20766  	// Whether to replace the old data with new or not.
20767  	MergeData *bool `json:"merge_data,omitempty"`
20768  
20769  	// Name of this cloud discovery task. Uniquely identify a task.
20770  	Name *string `json:"name,omitempty"`
20771  
20772  	// Password used for connecting to the cloud management platform.
20773  	Password *string `json:"password,omitempty"`
20774  
20775  	// Connection port used for connecting to the cloud management platform.
20776  	Port *uint32 `json:"port,omitempty"`
20777  
20778  	// Network view for private IPs.
20779  	PrivateNetworkView *string `json:"private_network_view,omitempty"`
20780  
20781  	// Mapping policy for the network view for private IPs in discovery data.
20782  	PrivateNetworkViewMappingPolicy string `json:"private_network_view_mapping_policy,omitempty"`
20783  
20784  	// Connection protocol used for connecting to the cloud management platform.
20785  	Protocol string `json:"protocol,omitempty"`
20786  
20787  	// Network view for public IPs.
20788  	PublicNetworkView *string `json:"public_network_view,omitempty"`
20789  
20790  	// Mapping policy for the network view for public IPs in discovery data.
20791  	PublicNetworkViewMappingPolicy string `json:"public_network_view_mapping_policy,omitempty"`
20792  
20793  	// Schedule setting for cloud discovery task.
20794  	ScheduledRun *SettingSchedule `json:"scheduled_run,omitempty"`
20795  
20796  	// The service_account_file for GCP.
20797  	ServiceAccountFile *string `json:"service_account_file,omitempty"`
20798  
20799  	// Current state of this task.
20800  	State string `json:"state,omitempty"`
20801  
20802  	// State message of the complete discovery process.
20803  	StateMsg string `json:"state_msg,omitempty"`
20804  
20805  	// If set to true, the appliance uses a specific DNS view for private IPs.
20806  	UpdateDnsViewPrivateIp *bool `json:"update_dns_view_private_ip,omitempty"`
20807  
20808  	// If set to true, the appliance uses a specific DNS view for public IPs.
20809  	UpdateDnsViewPublicIp *bool `json:"update_dns_view_public_ip,omitempty"`
20810  
20811  	// Whether to update metadata as a result of this network discovery.
20812  	UpdateMetadata *bool `json:"update_metadata,omitempty"`
20813  
20814  	// If set true, all keystone connection will use "/identity" endpoint and port
20815  	// value will be ignored.
20816  	UseIdentity *bool `json:"use_identity,omitempty"`
20817  
20818  	// Username used for connecting to the cloud management platform.
20819  	Username *string `json:"username,omitempty"`
20820  }
20821  
20822  func (Vdiscoverytask) ObjectType() string {
20823  	return "vdiscoverytask"
20824  }
20825  
20826  func (obj Vdiscoverytask) ReturnFields() []string {
20827  	if obj.returnFields == nil {
20828  		obj.returnFields = []string{"name", "state"}
20829  	}
20830  	return obj.returnFields
20831  }
20832  
20833  // View represents Infoblox object view.
20834  // DNS views provide the ability to serve one version of DNS data to one set of
20835  // clients and another version to another set of clients. With DNS views, the
20836  // appliance can provide a different answer to the same query, depending on the
20837  // source of the query.
20838  type View struct {
20839  	IBBase `json:"-"`
20840  
20841  	Ref string `json:"_ref,omitempty"`
20842  
20843  	// The action to perform when a domain name matches the pattern defined in a
20844  	// rule that is specified by the blacklist_ruleset method. Valid values are
20845  	// "REDIRECT" or "REFUSE". The default value is "REFUSE".
20846  	BlacklistAction string `json:"blacklist_action,omitempty"`
20847  
20848  	// The flag that indicates whether blacklist redirection queries are logged.
20849  	// Specify "true" to enable logging, or "false" to disable it. The default
20850  	// value is "false".
20851  	BlacklistLogQuery *bool `json:"blacklist_log_query,omitempty"`
20852  
20853  	// The array of IP addresses the appliance includes in the response it sends in
20854  	// place of a blacklisted IP address.
20855  	BlacklistRedirectAddresses []string `json:"blacklist_redirect_addresses,omitempty"`
20856  
20857  	// The Time To Live (TTL) value of the synthetic DNS responses resulted from
20858  	// blacklist redirection. The TTL value is a 32-bit unsigned integer that
20859  	// represents the TTL in seconds.
20860  	BlacklistRedirectTtl *uint32 `json:"blacklist_redirect_ttl,omitempty"`
20861  
20862  	// The name of the Ruleset object assigned at the Grid level for blacklist
20863  	// redirection.
20864  	BlacklistRulesets []string `json:"blacklist_rulesets,omitempty"`
20865  
20866  	// Structure containing all cloud API related information for this object.
20867  	CloudInfo *GridCloudapiInfo `json:"cloud_info,omitempty"`
20868  
20869  	// Comment for the DNS view; maximum 64 characters.
20870  	Comment *string `json:"comment,omitempty"`
20871  
20872  	// The list of customized root name servers. You can either select and use
20873  	// Internet root name servers or specify custom root name servers by providing
20874  	// a host name and IP address to which the Infoblox appliance can send queries.
20875  	// Include the specified parameter to set the attribute value. Omit the
20876  	// parameter to retrieve the attribute value.
20877  	CustomRootNameServers []NameServer `json:"custom_root_name_servers,omitempty"`
20878  
20879  	// Defines whether creation timestamp of RR should be updated ' when DDNS
20880  	// update happens even if there is no change to ' the RR.
20881  	DdnsForceCreationTimestampUpdate *bool `json:"ddns_force_creation_timestamp_update,omitempty"`
20882  
20883  	// The DDNS Principal cluster group name.
20884  	DdnsPrincipalGroup *string `json:"ddns_principal_group,omitempty"`
20885  
20886  	// The flag that indicates whether the DDNS principal track is enabled or
20887  	// disabled.
20888  	DdnsPrincipalTracking *bool `json:"ddns_principal_tracking,omitempty"`
20889  
20890  	// The flag that indicates whether an option to restrict DDNS update request
20891  	// based on FQDN patterns is enabled or disabled.
20892  	DdnsRestrictPatterns *bool `json:"ddns_restrict_patterns,omitempty"`
20893  
20894  	// The unordered list of restriction patterns for an option of to restrict DDNS
20895  	// updates based on FQDN patterns.
20896  	DdnsRestrictPatternsList []string `json:"ddns_restrict_patterns_list,omitempty"`
20897  
20898  	// The flag that indicates whether an option to restrict DDNS update request to
20899  	// protected resource records is enabled or disabled.
20900  	DdnsRestrictProtected *bool `json:"ddns_restrict_protected,omitempty"`
20901  
20902  	// The flag that indicates whether DDNS update request for principal other than
20903  	// target resource record's principal is restricted.
20904  	DdnsRestrictSecure *bool `json:"ddns_restrict_secure,omitempty"`
20905  
20906  	// The flag that indicates whether an option to restrict DDNS update request to
20907  	// resource records which are marked as 'STATIC' is enabled or disabled.
20908  	DdnsRestrictStatic *bool `json:"ddns_restrict_static,omitempty"`
20909  
20910  	// Determines if the DNS view is disabled or not. When this is set to False,
20911  	// the DNS view is enabled.
20912  	Disable *bool `json:"disable,omitempty"`
20913  
20914  	// Determines if the DNS64 s enabled or not.
20915  	Dns64Enabled *bool `json:"dns64_enabled,omitempty"`
20916  
20917  	// The list of DNS64 synthesis groups associated with this DNS view.
20918  	Dns64Groups []string `json:"dns64_groups,omitempty"`
20919  
20920  	// Determines if the DNS security extension is enabled or not.
20921  	DnssecEnabled *bool `json:"dnssec_enabled,omitempty"`
20922  
20923  	// Determines if the DNS security extension accepts expired signatures or not.
20924  	DnssecExpiredSignaturesEnabled *bool `json:"dnssec_expired_signatures_enabled,omitempty"`
20925  
20926  	// A list of zones for which the server does not perform DNSSEC validation.
20927  	DnssecNegativeTrustAnchors []string `json:"dnssec_negative_trust_anchors,omitempty"`
20928  
20929  	// The list of trusted keys for the DNS security extension.
20930  	DnssecTrustedKeys []*Dnssectrustedkey `json:"dnssec_trusted_keys,omitempty"`
20931  
20932  	// Determines if the DNS security validation is enabled or not.
20933  	DnssecValidationEnabled *bool `json:"dnssec_validation_enabled,omitempty"`
20934  
20935  	// Advertises the EDNS0 buffer size to the upstream server. The value should be
20936  	// between 512 and 4096 bytes. The recommended value is between 512 and 1220
20937  	// bytes.
20938  	EdnsUdpSize *uint32 `json:"edns_udp_size,omitempty"`
20939  
20940  	// Determines if the blacklist in a DNS view is enabled or not.
20941  	EnableBlacklist *bool `json:"enable_blacklist,omitempty"`
20942  
20943  	// Determines if the fixed RRset order FQDN is enabled or not.
20944  	EnableFixedRrsetOrderFqdns *bool `json:"enable_fixed_rrset_order_fqdns,omitempty"`
20945  
20946  	// Determines if the 'match-recursive-only' option in a DNS view is enabled or
20947  	// not.
20948  	EnableMatchRecursiveOnly *bool `json:"enable_match_recursive_only,omitempty"`
20949  
20950  	// Extensible attributes associated with the object. For valid values for
20951  	// extensible attributes, see {extattrs:values}.
20952  	Ea EA `json:"extattrs"`
20953  
20954  	// The type of AAAA filtering for this DNS view object.
20955  	FilterAaaa string `json:"filter_aaaa,omitempty"`
20956  
20957  	// Applies AAAA filtering to a named ACL, or to a list of IPv4/IPv6 addresses
20958  	// and networks from which queries are received. This field does not allow TSIG
20959  	// keys.
20960  	FilterAaaaList []*Addressac `json:"filter_aaaa_list,omitempty"`
20961  
20962  	// The fixed RRset order FQDN. If this field does not contain an empty value,
20963  	// the appliance will automatically set the enable_fixed_rrset_order_fqdns
20964  	// field to 'true', unless the same request sets the enable field to 'false'.
20965  	FixedRrsetOrderFqdns []*GridDnsFixedrrsetorderfqdn `json:"fixed_rrset_order_fqdns,omitempty"`
20966  
20967  	// Determines if this DNS view sends queries to forwarders only or not. When
20968  	// the value is True, queries are sent to forwarders only, and not to other
20969  	// internal or Internet root servers.
20970  	ForwardOnly *bool `json:"forward_only,omitempty"`
20971  
20972  	// The list of forwarders for the DNS view. A forwarder is a name server to
20973  	// which other name servers first send their off-site queries. The forwarder
20974  	// builds up a cache of information, avoiding the need for other name servers
20975  	// to send queries off-site.
20976  	Forwarders []string `json:"forwarders,omitempty"`
20977  
20978  	// The NIOS appliance provides one default DNS view. You can rename the default
20979  	// view and change its settings, but you cannot delete it. There must always be
20980  	// at least one DNS view in the appliance.
20981  	IsDefault bool `json:"is_default,omitempty"`
20982  
20983  	// The number of seconds to cache lame delegations or lame servers.
20984  	LameTtl *uint32 `json:"lame_ttl,omitempty"`
20985  
20986  	// Determines last queried ACL for the specified IPv4 or IPv6 addresses and
20987  	// networks in scavenging settings.
20988  	LastQueriedAcl []*Addressac `json:"last_queried_acl,omitempty"`
20989  
20990  	// A list of forwarders for the match clients. This list specifies a named ACL,
20991  	// or a list of IPv4/IPv6 addresses, networks, TSIG keys of clients that are
20992  	// allowed or denied access to the DNS view.
20993  	MatchClients []*Addressac `json:"match_clients,omitempty"`
20994  
20995  	// A list of forwarders for the match destinations. This list specifies a name
20996  	// ACL, or a list of IPv4/IPv6 addresses, networks, TSIG keys of clients that
20997  	// are allowed or denied access to the DNS view.
20998  	MatchDestinations []*Addressac `json:"match_destinations,omitempty"`
20999  
21000  	// The maximum number of seconds to cache ordinary (positive) answers.
21001  	MaxCacheTtl *uint32 `json:"max_cache_ttl,omitempty"`
21002  
21003  	// The maximum number of seconds to cache negative (NXDOMAIN) answers.
21004  	MaxNcacheTtl *uint32 `json:"max_ncache_ttl,omitempty"`
21005  
21006  	// The value is used by authoritative DNS servers to never send DNS responses
21007  	// larger than the configured value. The value should be between 512 and 4096
21008  	// bytes. The recommended value is between 512 and 1220 bytes.
21009  	MaxUdpSize *uint32 `json:"max_udp_size,omitempty"`
21010  
21011  	// Name of the DNS view.
21012  	Name *string `json:"name,omitempty"`
21013  
21014  	// The name of the network view object associated with this DNS view.
21015  	NetworkView *string `json:"network_view,omitempty"`
21016  
21017  	// The number of seconds of delay the notify messages are sent to secondaries.
21018  	NotifyDelay *uint32 `json:"notify_delay,omitempty"`
21019  
21020  	// The flag that indicates whether NXDOMAIN redirection queries are logged.
21021  	// Specify "true" to enable logging, or "false" to disable it. The default
21022  	// value is "false".
21023  	NxdomainLogQuery *bool `json:"nxdomain_log_query,omitempty"`
21024  
21025  	// Determines if NXDOMAIN redirection in a DNS view is enabled or not.
21026  	NxdomainRedirect *bool `json:"nxdomain_redirect,omitempty"`
21027  
21028  	// The array with IPv4 addresses the appliance includes in the response it
21029  	// sends in place of an NXDOMAIN response.
21030  	NxdomainRedirectAddresses []string `json:"nxdomain_redirect_addresses,omitempty"`
21031  
21032  	// The array with IPv6 addresses the appliance includes in the response it
21033  	// sends in place of an NXDOMAIN response.
21034  	NxdomainRedirectAddressesV6 []string `json:"nxdomain_redirect_addresses_v6,omitempty"`
21035  
21036  	// The Time To Live (TTL) value of the synthetic DNS responses resulted from
21037  	// NXDOMAIN redirection. The TTL value is a 32-bit unsigned integer that
21038  	// represents the TTL in seconds.
21039  	NxdomainRedirectTtl *uint32 `json:"nxdomain_redirect_ttl,omitempty"`
21040  
21041  	// The names of the Ruleset objects assigned at the grid level for NXDOMAIN
21042  	// redirection.
21043  	NxdomainRulesets []string `json:"nxdomain_rulesets,omitempty"`
21044  
21045  	// Determines if recursion is enabled or not.
21046  	Recursion *bool `json:"recursion,omitempty"`
21047  
21048  	// The response rate limiting settings for the DNS View.
21049  	ResponseRateLimiting *GridResponseratelimiting `json:"response_rate_limiting,omitempty"`
21050  
21051  	// Determines the type of root name servers.
21052  	RootNameServerType string `json:"root_name_server_type,omitempty"`
21053  
21054  	// Enables the appliance to ignore RPZ-IP triggers with prefix lengths less
21055  	// than the specified minimum prefix length.
21056  	RpzDropIpRuleEnabled *bool `json:"rpz_drop_ip_rule_enabled,omitempty"`
21057  
21058  	// The minimum prefix length for IPv4 RPZ-IP triggers. The appliance ignores
21059  	// RPZ-IP triggers with prefix lengths less than the specified minimum IPv4
21060  	// prefix length.
21061  	RpzDropIpRuleMinPrefixLengthIpv4 *uint32 `json:"rpz_drop_ip_rule_min_prefix_length_ipv4,omitempty"`
21062  
21063  	// The minimum prefix length for IPv6 RPZ-IP triggers. The appliance ignores
21064  	// RPZ-IP triggers with prefix lengths less than the specified minimum IPv6
21065  	// prefix length.
21066  	RpzDropIpRuleMinPrefixLengthIpv6 *uint32 `json:"rpz_drop_ip_rule_min_prefix_length_ipv6,omitempty"`
21067  
21068  	// The flag that indicates whether recursive RPZ lookups are enabled.
21069  	RpzQnameWaitRecurse *bool `json:"rpz_qname_wait_recurse,omitempty"`
21070  
21071  	// The scavenging settings.
21072  	ScavengingSettings *SettingScavenging `json:"scavenging_settings,omitempty"`
21073  
21074  	// A sort list that determines the order of IP addresses in responses sent to
21075  	// DNS queries.
21076  	Sortlist []*Sortlist `json:"sortlist,omitempty"`
21077  
21078  	// Use flag for: blacklist_action , blacklist_log_query,
21079  	// blacklist_redirect_addresses, blacklist_redirect_ttl, blacklist_rulesets,
21080  	// enable_blacklist
21081  	UseBlacklist *bool `json:"use_blacklist,omitempty"`
21082  
21083  	// Use flag for: ddns_force_creation_timestamp_update
21084  	UseDdnsForceCreationTimestampUpdate *bool `json:"use_ddns_force_creation_timestamp_update,omitempty"`
21085  
21086  	// Use flag for: ddns_restrict_patterns_list , ddns_restrict_patterns
21087  	UseDdnsPatternsRestriction *bool `json:"use_ddns_patterns_restriction,omitempty"`
21088  
21089  	// Use flag for: ddns_restrict_secure , ddns_principal_tracking,
21090  	// ddns_principal_group
21091  	UseDdnsPrincipalSecurity *bool `json:"use_ddns_principal_security,omitempty"`
21092  
21093  	// Use flag for: ddns_restrict_protected
21094  	UseDdnsRestrictProtected *bool `json:"use_ddns_restrict_protected,omitempty"`
21095  
21096  	// Use flag for: ddns_restrict_static
21097  	UseDdnsRestrictStatic *bool `json:"use_ddns_restrict_static,omitempty"`
21098  
21099  	// Use flag for: dns64_enabled , dns64_groups
21100  	UseDns64 *bool `json:"use_dns64,omitempty"`
21101  
21102  	// Use flag for: dnssec_enabled , dnssec_expired_signatures_enabled,
21103  	// dnssec_validation_enabled, dnssec_trusted_keys
21104  	UseDnssec *bool `json:"use_dnssec,omitempty"`
21105  
21106  	// Use flag for: edns_udp_size
21107  	UseEdnsUdpSize *bool `json:"use_edns_udp_size,omitempty"`
21108  
21109  	// Use flag for: filter_aaaa , filter_aaaa_list
21110  	UseFilterAaaa *bool `json:"use_filter_aaaa,omitempty"`
21111  
21112  	// Use flag for: fixed_rrset_order_fqdns , enable_fixed_rrset_order_fqdns
21113  	UseFixedRrsetOrderFqdns *bool `json:"use_fixed_rrset_order_fqdns,omitempty"`
21114  
21115  	// Use flag for: forwarders , forward_only
21116  	UseForwarders *bool `json:"use_forwarders,omitempty"`
21117  
21118  	// Use flag for: lame_ttl
21119  	UseLameTtl *bool `json:"use_lame_ttl,omitempty"`
21120  
21121  	// Use flag for: max_cache_ttl
21122  	UseMaxCacheTtl *bool `json:"use_max_cache_ttl,omitempty"`
21123  
21124  	// Use flag for: max_ncache_ttl
21125  	UseMaxNcacheTtl *bool `json:"use_max_ncache_ttl,omitempty"`
21126  
21127  	// Use flag for: max_udp_size
21128  	UseMaxUdpSize *bool `json:"use_max_udp_size,omitempty"`
21129  
21130  	// Use flag for: nxdomain_redirect , nxdomain_redirect_addresses,
21131  	// nxdomain_redirect_addresses_v6, nxdomain_redirect_ttl, nxdomain_log_query,
21132  	// nxdomain_rulesets
21133  	UseNxdomainRedirect *bool `json:"use_nxdomain_redirect,omitempty"`
21134  
21135  	// Use flag for: recursion
21136  	UseRecursion *bool `json:"use_recursion,omitempty"`
21137  
21138  	// Use flag for: response_rate_limiting
21139  	UseResponseRateLimiting *bool `json:"use_response_rate_limiting,omitempty"`
21140  
21141  	// Use flag for: custom_root_name_servers , root_name_server_type
21142  	UseRootNameServer *bool `json:"use_root_name_server,omitempty"`
21143  
21144  	// Use flag for: rpz_drop_ip_rule_enabled ,
21145  	// rpz_drop_ip_rule_min_prefix_length_ipv4,
21146  	// rpz_drop_ip_rule_min_prefix_length_ipv6
21147  	UseRpzDropIpRule *bool `json:"use_rpz_drop_ip_rule,omitempty"`
21148  
21149  	// Use flag for: rpz_qname_wait_recurse
21150  	UseRpzQnameWaitRecurse *bool `json:"use_rpz_qname_wait_recurse,omitempty"`
21151  
21152  	// Use flag for: scavenging_settings , last_queried_acl
21153  	UseScavengingSettings *bool `json:"use_scavenging_settings,omitempty"`
21154  
21155  	// Use flag for: sortlist
21156  	UseSortlist *bool `json:"use_sortlist,omitempty"`
21157  }
21158  
21159  func (View) ObjectType() string {
21160  	return "view"
21161  }
21162  
21163  func (obj View) ReturnFields() []string {
21164  	if obj.returnFields == nil {
21165  		obj.returnFields = []string{"comment", "is_default", "name"}
21166  	}
21167  	return obj.returnFields
21168  }
21169  
21170  // Vlan represents Infoblox object vlan.
21171  // References to vlan are object references.
21172  type Vlan struct {
21173  	IBBase `json:"-"`
21174  
21175  	Ref string `json:"_ref,omitempty"`
21176  
21177  	// List of objects VLAN is assigned to.
21178  	AssignedTo []*Ipv4Network `json:"assigned_to,omitempty"`
21179  
21180  	// A descriptive comment for this VLAN.
21181  	Comment *string `json:"comment,omitempty"`
21182  
21183  	// Contact information for person/team managing or using VLAN.
21184  	Contact *string `json:"contact,omitempty"`
21185  
21186  	// Department where VLAN is used.
21187  	Department *string `json:"department,omitempty"`
21188  
21189  	// Description for the VLAN object, may be potentially used for longer VLAN
21190  	// names.
21191  	Description *string `json:"description,omitempty"`
21192  
21193  	// Extensible attributes associated with the object. For valid values for
21194  	// extensible attributes, see {extattrs:values}.
21195  	Ea EA `json:"extattrs"`
21196  
21197  	// VLAN ID value.
21198  	Id *uint32 `json:"id,omitempty"`
21199  
21200  	// Name of the VLAN.
21201  	Name *string `json:"name,omitempty"`
21202  
21203  	// The VLAN View or VLAN Range to which this VLAN belongs.
21204  	Parent *string `json:"parent,omitempty"`
21205  
21206  	// When set VLAN can only be assigned to IPAM object manually.
21207  	Reserved *bool `json:"reserved,omitempty"`
21208  
21209  	// Status of VLAN object. Can be Assigned, Unassigned, Reserved.
21210  	Status string `json:"status,omitempty"`
21211  }
21212  
21213  func (Vlan) ObjectType() string {
21214  	return "vlan"
21215  }
21216  
21217  func (obj Vlan) ReturnFields() []string {
21218  	if obj.returnFields == nil {
21219  		obj.returnFields = []string{"id", "name", "parent"}
21220  	}
21221  	return obj.returnFields
21222  }
21223  
21224  // Vlanrange represents Infoblox object vlanrange.
21225  // References to vlanrange are object references.
21226  type Vlanrange struct {
21227  	IBBase `json:"-"`
21228  
21229  	Ref string `json:"_ref,omitempty"`
21230  
21231  	// A descriptive comment for this VLAN Range.
21232  	Comment *string `json:"comment,omitempty"`
21233  
21234  	// Vlans delete option. Determines whether all child objects should be removed
21235  	// alongside with the VLAN Range or child objects should be assigned to another
21236  	// parental VLAN Range/View. By default child objects are re-parented.
21237  	DeleteVlans bool `json:"delete_vlans,omitempty"`
21238  
21239  	// End ID for VLAN Range.
21240  	EndVlanId *uint32 `json:"end_vlan_id,omitempty"`
21241  
21242  	// Extensible attributes associated with the object. For valid values for
21243  	// extensible attributes, see {extattrs:values}.
21244  	Ea EA `json:"extattrs"`
21245  
21246  	// Name of the VLAN Range.
21247  	Name *string `json:"name,omitempty"`
21248  
21249  	// If set on creation VLAN objects will be created once VLAN Range created.
21250  	PreCreateVlan *bool `json:"pre_create_vlan,omitempty"`
21251  
21252  	// Start ID for VLAN Range.
21253  	StartVlanId *uint32 `json:"start_vlan_id,omitempty"`
21254  
21255  	// If set on creation prefix string will be used for VLAN name.
21256  	VlanNamePrefix *string `json:"vlan_name_prefix,omitempty"`
21257  
21258  	// The VLAN View to which this VLAN Range belongs.
21259  	VlanView *string `json:"vlan_view,omitempty"`
21260  }
21261  
21262  func (Vlanrange) ObjectType() string {
21263  	return "vlanrange"
21264  }
21265  
21266  func (obj Vlanrange) ReturnFields() []string {
21267  	if obj.returnFields == nil {
21268  		obj.returnFields = []string{"end_vlan_id", "name", "start_vlan_id", "vlan_view"}
21269  	}
21270  	return obj.returnFields
21271  }
21272  
21273  // Vlanview represents Infoblox object vlanview.
21274  // References to vlanview are object references.
21275  type Vlanview struct {
21276  	IBBase `json:"-"`
21277  
21278  	Ref string `json:"_ref,omitempty"`
21279  
21280  	// When set to true VLAN Ranges under VLAN View can have overlapping ID.
21281  	AllowRangeOverlapping *bool `json:"allow_range_overlapping,omitempty"`
21282  
21283  	// A descriptive comment for this VLAN View.
21284  	Comment *string `json:"comment,omitempty"`
21285  
21286  	// End ID for VLAN View.
21287  	EndVlanId *uint32 `json:"end_vlan_id,omitempty"`
21288  
21289  	// Extensible attributes associated with the object. For valid values for
21290  	// extensible attributes, see {extattrs:values}.
21291  	Ea EA `json:"extattrs"`
21292  
21293  	// Name of the VLAN View.
21294  	Name *string `json:"name,omitempty"`
21295  
21296  	// If set on creation VLAN objects will be created once VLAN View created.
21297  	PreCreateVlan *bool `json:"pre_create_vlan,omitempty"`
21298  
21299  	// Start ID for VLAN View.
21300  	StartVlanId *uint32 `json:"start_vlan_id,omitempty"`
21301  
21302  	// If set on creation prefix string will be used for VLAN name.
21303  	VlanNamePrefix *string `json:"vlan_name_prefix,omitempty"`
21304  }
21305  
21306  func (Vlanview) ObjectType() string {
21307  	return "vlanview"
21308  }
21309  
21310  func (obj Vlanview) ReturnFields() []string {
21311  	if obj.returnFields == nil {
21312  		obj.returnFields = []string{"end_vlan_id", "name", "start_vlan_id"}
21313  	}
21314  	return obj.returnFields
21315  }
21316  
21317  // ZoneAuth represents Infoblox object zone_auth.
21318  // An authoritative zone is a zone for which the local (primary or secondary)
21319  // server references its own data when responding to queries. The local server
21320  // is authoritative for the data in this zone and responds to queries for this
21321  // data without referencing another server.
21322  type ZoneAuth struct {
21323  	IBBase `json:"-"`
21324  
21325  	Ref string `json:"_ref,omitempty"`
21326  
21327  	// The IP address of the server that is serving this zone.
21328  	Address string `json:"address,omitempty"`
21329  
21330  	// This field allows the zone to receive GSS-TSIG authenticated DDNS updates
21331  	// from DHCP clients and servers in an AD domain. Note that addresses specified
21332  	// in this field ignore the permission set in the struct which will be set to
21333  	// 'ALLOW'.
21334  	AllowActiveDir []*Addressac `json:"allow_active_dir,omitempty"`
21335  
21336  	// The flag that allows to enable or disable fixed RRset ordering for
21337  	// authoritative forward-mapping zones.
21338  	AllowFixedRrsetOrder *bool `json:"allow_fixed_rrset_order,omitempty"`
21339  
21340  	// The flag that allows DHCP clients to perform GSS-TSIG signed updates for
21341  	// underscore zones.
21342  	AllowGssTsigForUnderscoreZone *bool `json:"allow_gss_tsig_for_underscore_zone,omitempty"`
21343  
21344  	// The flag that enables or disables the zone for GSS-TSIG updates.
21345  	AllowGssTsigZoneUpdates *bool `json:"allow_gss_tsig_zone_updates,omitempty"`
21346  
21347  	// Determines whether DNS queries are allowed from a named ACL, or from a list
21348  	// of IPv4/IPv6 addresses, networks, and TSIG keys for the hosts.
21349  	AllowQuery []*Addressac `json:"allow_query,omitempty"`
21350  
21351  	// Determines whether zone transfers are allowed from a named ACL, or from a
21352  	// list of IPv4/IPv6 addresses, networks, and TSIG keys for the hosts.
21353  	AllowTransfer []*Addressac `json:"allow_transfer,omitempty"`
21354  
21355  	// Determines whether dynamic DNS updates are allowed from a named ACL, or from
21356  	// a list of IPv4/IPv6 addresses, networks, and TSIG keys for the hosts.
21357  	AllowUpdate []*Addressac `json:"allow_update,omitempty"`
21358  
21359  	// The list with IP addresses, networks or TSIG keys for clients, from which
21360  	// forwarded dynamic updates are allowed.
21361  	AllowUpdateForwarding *bool `json:"allow_update_forwarding,omitempty"`
21362  
21363  	// Additional information for Route53 zone.
21364  	AwsRte53ZoneInfo *Awsrte53zoneinfo `json:"aws_rte53_zone_info,omitempty"`
21365  
21366  	// Structure containing all cloud API related information for this object.
21367  	CloudInfo *GridCloudapiInfo `json:"cloud_info,omitempty"`
21368  
21369  	// Comment for the zone; maximum 256 characters.
21370  	Comment *string `json:"comment,omitempty"`
21371  
21372  	// If this flag is set to True then copy allowed IPs from Allow Transfer to
21373  	// Also Notify.
21374  	CopyXferToNotify *bool `json:"copy_xfer_to_notify,omitempty"`
21375  
21376  	// Determines if PTR records are created for hosts automatically, if necessary,
21377  	// when the zone data is imported. This field is meaningful only when
21378  	// import_from is set.
21379  	CreatePtrForBulkHosts *bool `json:"create_ptr_for_bulk_hosts,omitempty"`
21380  
21381  	// Determines if PTR records are created for hosts automatically, if necessary,
21382  	// when the zone data is imported. This field is meaningful only when
21383  	// import_from is set.
21384  	CreatePtrForHosts *bool `json:"create_ptr_for_hosts,omitempty"`
21385  
21386  	// Determines whether automatic creation of subzones is enabled or not.
21387  	CreateUnderscoreZones *bool `json:"create_underscore_zones,omitempty"`
21388  
21389  	// Defines whether creation timestamp of RR should be updated ' when DDNS
21390  	// update happens even if there is no change to ' the RR.
21391  	DdnsForceCreationTimestampUpdate *bool `json:"ddns_force_creation_timestamp_update,omitempty"`
21392  
21393  	// The DDNS Principal cluster group name.
21394  	DdnsPrincipalGroup *string `json:"ddns_principal_group,omitempty"`
21395  
21396  	// The flag that indicates whether the DDNS principal track is enabled or
21397  	// disabled.
21398  	DdnsPrincipalTracking *bool `json:"ddns_principal_tracking,omitempty"`
21399  
21400  	// The flag that indicates whether an option to restrict DDNS update request
21401  	// based on FQDN patterns is enabled or disabled.
21402  	DdnsRestrictPatterns *bool `json:"ddns_restrict_patterns,omitempty"`
21403  
21404  	// The unordered list of restriction patterns for an option of to restrict DDNS
21405  	// updates based on FQDN patterns.
21406  	DdnsRestrictPatternsList []string `json:"ddns_restrict_patterns_list,omitempty"`
21407  
21408  	// The flag that indicates whether an option to restrict DDNS update request to
21409  	// protected resource records is enabled or disabled.
21410  	DdnsRestrictProtected *bool `json:"ddns_restrict_protected,omitempty"`
21411  
21412  	// The flag that indicates whether DDNS update request for principal other than
21413  	// target resource record's principal is restricted.
21414  	DdnsRestrictSecure *bool `json:"ddns_restrict_secure,omitempty"`
21415  
21416  	// The flag that indicates whether an option to restrict DDNS update request to
21417  	// resource records which are marked as 'STATIC' is enabled or disabled.
21418  	DdnsRestrictStatic *bool `json:"ddns_restrict_static,omitempty"`
21419  
21420  	// Determines whether a zone is disabled or not. When this is set to False, the
21421  	// zone is enabled.
21422  	Disable *bool `json:"disable,omitempty"`
21423  
21424  	// Determines whether the name servers that host the zone should forward
21425  	// queries (ended with the domain name of the zone) to any configured
21426  	// forwarders.
21427  	DisableForwarding *bool `json:"disable_forwarding,omitempty"`
21428  
21429  	// The displayed name of the DNS zone.
21430  	DisplayDomain string `json:"display_domain,omitempty"`
21431  
21432  	// The name of this DNS zone in punycode format. For a reverse zone, this is in
21433  	// "address/cidr" format. For other zones, this is in FQDN format in punycode
21434  	// format.
21435  	DnsFqdn string `json:"dns_fqdn,omitempty"`
21436  
21437  	// If this is set to True, DNS integrity check is enabled for this zone.
21438  	DnsIntegrityEnable *bool `json:"dns_integrity_enable,omitempty"`
21439  
21440  	// The frequency, in seconds, of DNS integrity checks for this zone.
21441  	DnsIntegrityFrequency *uint32 `json:"dns_integrity_frequency,omitempty"`
21442  
21443  	// The Grid member that performs DNS integrity checks for this zone.
21444  	DnsIntegrityMember *string `json:"dns_integrity_member,omitempty"`
21445  
21446  	// If this is set to True, more information is logged for DNS integrity checks
21447  	// for this zone.
21448  	DnsIntegrityVerboseLogging *bool `json:"dns_integrity_verbose_logging,omitempty"`
21449  
21450  	// The SOA email for the zone in punycode format.
21451  	DnsSoaEmail string `json:"dns_soa_email,omitempty"`
21452  
21453  	// This structure contains the DNSSEC key parameters for this zone.
21454  	DnssecKeyParams *Dnsseckeyparams `json:"dnssec_key_params,omitempty"`
21455  
21456  	// A list of DNSSEC keys for the zone.
21457  	DnssecKeys []*Dnsseckey `json:"dnssec_keys,omitempty"`
21458  
21459  	// The rollover date for the Key Signing Key.
21460  	DnssecKskRolloverDate *UnixTime `json:"dnssec_ksk_rollover_date,omitempty"`
21461  
21462  	// The rollover date for the Zone Signing Key.
21463  	DnssecZskRolloverDate *UnixTime `json:"dnssec_zsk_rollover_date,omitempty"`
21464  
21465  	// Determines if hosts and bulk hosts are automatically created when the zone
21466  	// data is imported. This field is meaningful only when import_from is set.
21467  	DoHostAbstraction *bool `json:"do_host_abstraction,omitempty"`
21468  
21469  	// The value of the check names policy, which indicates the action the
21470  	// appliance takes when it encounters host names that do not comply with the
21471  	// Strict Hostname Checking policy. This value applies only if the host name
21472  	// restriction policy is set to "Strict Hostname Checking".
21473  	EffectiveCheckNamesPolicy string `json:"effective_check_names_policy,omitempty"`
21474  
21475  	// The selected hostname policy for records under this zone.
21476  	EffectiveRecordNamePolicy string `json:"effective_record_name_policy,omitempty"`
21477  
21478  	// Extensible attributes associated with the object. For valid values for
21479  	// extensible attributes, see {extattrs:values}.
21480  	Ea EA `json:"extattrs"`
21481  
21482  	// The list of external primary servers.
21483  	ExternalPrimaries []NameServer `json:"external_primaries,omitempty"`
21484  
21485  	// The list of external secondary servers.
21486  	ExternalSecondaries []NameServer `json:"external_secondaries,omitempty"`
21487  
21488  	// The name of this DNS zone. For a reverse zone, this is in "address/cidr"
21489  	// format. For other zones, this is in FQDN format. This value can be in
21490  	// unicode format. Note that for a reverse zone, the corresponding zone_format
21491  	// value should be set.
21492  	Fqdn string `json:"fqdn,omitempty"`
21493  
21494  	// The grid primary servers for this zone.
21495  	GridPrimary []*Memberserver `json:"grid_primary,omitempty"`
21496  
21497  	// Determines if the server is duplicated with parent delegation.
21498  	GridPrimarySharedWithMsParentDelegation bool `json:"grid_primary_shared_with_ms_parent_delegation,omitempty"`
21499  
21500  	// The list with Grid members that are secondary servers for this zone.
21501  	GridSecondaries []*Memberserver `json:"grid_secondaries,omitempty"`
21502  
21503  	// The IP address of the Infoblox appliance from which zone data is imported.
21504  	// Setting this address to '255.255.255.255' and do_host_abstraction to 'true'
21505  	// will create Host records from A records in this zone without importing zone
21506  	// data.
21507  	ImportFrom *string `json:"import_from,omitempty"`
21508  
21509  	// This flag is set to True if DNSSEC is enabled for the zone.
21510  	IsDnssecEnabled bool `json:"is_dnssec_enabled,omitempty"`
21511  
21512  	// Determines if the zone is DNSSEC signed.
21513  	IsDnssecSigned bool `json:"is_dnssec_signed,omitempty"`
21514  
21515  	// Determines if multi-master DNS is enabled for the zone.
21516  	IsMultimaster bool `json:"is_multimaster,omitempty"`
21517  
21518  	// The time the zone was last queried on.
21519  	LastQueried *UnixTime `json:"last_queried,omitempty"`
21520  
21521  	// Determines last queried ACL for the specified IPv4 or IPv6 addresses and
21522  	// networks in scavenging settings.
21523  	LastQueriedAcl []*Addressac `json:"last_queried_acl,omitempty"`
21524  
21525  	// If you enable this flag, other administrators cannot make conflicting
21526  	// changes. This is for administration purposes only. The zone will continue to
21527  	// serve DNS data even when it is locked.
21528  	Locked *bool `json:"locked,omitempty"`
21529  
21530  	// The name of a superuser or the administrator who locked this zone.
21531  	LockedBy string `json:"locked_by,omitempty"`
21532  
21533  	// IPv4 Netmask or IPv6 prefix for this zone.
21534  	MaskPrefix string `json:"mask_prefix,omitempty"`
21535  
21536  	// The list of per-member SOA MNAME information.
21537  	MemberSoaMnames []*GridmemberSoamname `json:"member_soa_mnames,omitempty"`
21538  
21539  	// The list of per-member SOA serial information.
21540  	MemberSoaSerials []*GridmemberSoaserial `json:"member_soa_serials,omitempty"`
21541  
21542  	// The flag that determines whether Active Directory is integrated or not. This
21543  	// field is valid only when ms_managed is "STUB", "AUTH_PRIMARY", or
21544  	// "AUTH_BOTH".
21545  	MsAdIntegrated *bool `json:"ms_ad_integrated,omitempty"`
21546  
21547  	// The list of DNS clients that are allowed to perform zone transfers from a
21548  	// Microsoft DNS server. This setting applies only to zones with Microsoft DNS
21549  	// servers that are either primary or secondary servers. This setting does not
21550  	// inherit any value from the Grid or from any member that defines an
21551  	// allow_transfer value. This setting does not apply to any grid member. Use
21552  	// the allow_transfer field to control which DNS clients are allowed to perform
21553  	// zone transfers on Grid members.
21554  	MsAllowTransfer []*Addressac `json:"ms_allow_transfer,omitempty"`
21555  
21556  	// Determines which DNS clients are allowed to perform zone transfers from a
21557  	// Microsoft DNS server. Valid values are: "ADDRESS_AC", to use
21558  	// ms_allow_transfer field for specifying IP addresses, networks and
21559  	// Transaction Signature (TSIG) keys for clients that are allowed to do zone
21560  	// transfers. "ANY", to allow any client. "ANY_NS", to allow only the
21561  	// nameservers listed in this zone. "NONE", to deny all zone transfer requests.
21562  	MsAllowTransferMode string `json:"ms_allow_transfer_mode,omitempty"`
21563  
21564  	// The list of domain controllers that are allowed to create NS records for
21565  	// authoritative zones.
21566  	MsDcNsRecordCreation []*MsserverDcnsrecordcreation `json:"ms_dc_ns_record_creation,omitempty"`
21567  
21568  	// Determines whether an Active Directory-integrated zone with a Microsoft DNS
21569  	// server as primary allows dynamic updates. Valid values are: "SECURE" if the
21570  	// zone allows secure updates only. "NONE" if the zone forbids dynamic updates.
21571  	// "ANY" if the zone accepts both secure and nonsecure updates. This field is
21572  	// valid only if ms_managed is either "AUTH_PRIMARY" or "AUTH_BOTH". If the
21573  	// flag ms_ad_integrated is false, the value "SECURE" is not allowed.
21574  	MsDdnsMode string `json:"ms_ddns_mode,omitempty"`
21575  
21576  	// The flag that indicates whether the zone is assigned to a Microsoft DNS
21577  	// server. This flag returns the authoritative name server type of the
21578  	// Microsoft DNS server. Valid values are: "NONE" if the zone is not assigned
21579  	// to any Microsoft DNS server. "STUB" if the zone is assigned to a Microsoft
21580  	// DNS server as a stub zone. "AUTH_PRIMARY" if only the primary server of the
21581  	// zone is a Microsoft DNS server. "AUTH_SECONDARY" if only the secondary
21582  	// server of the zone is a Microsoft DNS server. "AUTH_BOTH" if both the
21583  	// primary and secondary servers of the zone are Microsoft DNS servers.
21584  	MsManaged string `json:"ms_managed,omitempty"`
21585  
21586  	// The list with the Microsoft DNS servers that are primary servers for the
21587  	// zone. Although a zone typically has just one primary name server, you can
21588  	// specify up to ten independent servers for a single zone.
21589  	MsPrimaries []*Msdnsserver `json:"ms_primaries,omitempty"`
21590  
21591  	// Determines if a Grid member manages the zone served by a Microsoft DNS
21592  	// server in read-only mode. This flag is true when a Grid member manages the
21593  	// zone in read-only mode, false otherwise. When the zone has the ms_read_only
21594  	// flag set to True, no changes can be made to this zone.
21595  	MsReadOnly bool `json:"ms_read_only,omitempty"`
21596  
21597  	// The list with the Microsoft DNS servers that are secondary servers for the
21598  	// zone.
21599  	MsSecondaries []*Msdnsserver `json:"ms_secondaries,omitempty"`
21600  
21601  	// This flag controls whether this zone is synchronized with Microsoft DNS
21602  	// servers.
21603  	MsSyncDisabled *bool `json:"ms_sync_disabled,omitempty"`
21604  
21605  	// The name of MS synchronization master for this zone.
21606  	MsSyncMasterName string `json:"ms_sync_master_name,omitempty"`
21607  
21608  	// The list with the associated network/network container information.
21609  	NetworkAssociations []*Ipv4Network `json:"network_associations,omitempty"`
21610  
21611  	// The name of the network view in which this zone resides.
21612  	NetworkView string `json:"network_view,omitempty"`
21613  
21614  	// The number of seconds in delay with which notify messages are sent to
21615  	// secondaries.
21616  	NotifyDelay *uint32 `json:"notify_delay,omitempty"`
21617  
21618  	// The name server group that serves DNS for this zone.
21619  	NsGroup *string `json:"ns_group"`
21620  
21621  	// The parent zone of this zone. Note that when searching for reverse zones,
21622  	// the "in-addr.arpa" notation should be used.
21623  	Parent string `json:"parent,omitempty"`
21624  
21625  	// The RFC2317 prefix value of this DNS zone. Use this field only when the
21626  	// netmask is greater than 24 bits; that is, for a mask between 25 and 31 bits.
21627  	// Enter a prefix, such as the name of the allocated address block. The prefix
21628  	// can be alphanumeric characters, such as 128/26 , 128-189 , or sub-B.
21629  	Prefix *string `json:"prefix,omitempty"`
21630  
21631  	// The type of the primary server.
21632  	PrimaryType string `json:"primary_type,omitempty"`
21633  
21634  	// The hostname policy for records under this zone.
21635  	RecordNamePolicy *string `json:"record_name_policy,omitempty"`
21636  
21637  	// Determines if this zone is also monitoring resource records.
21638  	RecordsMonitored bool `json:"records_monitored,omitempty"`
21639  
21640  	// Restarts the member service.
21641  	RestartIfNeeded *bool `json:"restart_if_needed,omitempty"`
21642  
21643  	// The time data collection for Not Queried Resource Record was enabled for
21644  	// this zone.
21645  	RrNotQueriedEnabledTime *UnixTime `json:"rr_not_queried_enabled_time,omitempty"`
21646  
21647  	// The scavenging settings.
21648  	ScavengingSettings *SettingScavenging `json:"scavenging_settings,omitempty"`
21649  
21650  	// The serial number in the SOA record incrementally changes every time the
21651  	// record is modified. The Infoblox appliance allows you to change the serial
21652  	// number (in the SOA record) for the primary server so it is higher than the
21653  	// secondary server, thereby ensuring zone transfers come from the primary
21654  	// server (as they should). To change the serial number you need to set a new
21655  	// value at "soa_serial_number" and pass "set_soa_serial_number" as True.
21656  	SetSoaSerialNumber *bool `json:"set_soa_serial_number,omitempty"`
21657  
21658  	// The Time to Live (TTL) value of the SOA record of this zone. This value is
21659  	// the number of seconds that data is cached.
21660  	SoaDefaultTtl *uint32 `json:"soa_default_ttl,omitempty"`
21661  
21662  	// The SOA email value for this zone. This value can be in unicode format.
21663  	SoaEmail *string `json:"soa_email,omitempty"`
21664  
21665  	// This setting defines the amount of time, in seconds, after which the
21666  	// secondary server stops giving out answers about the zone because the zone
21667  	// data is too old to be useful. The default is one week.
21668  	SoaExpire *uint32 `json:"soa_expire,omitempty"`
21669  
21670  	// The negative Time to Live (TTL) value of the SOA of the zone indicates how
21671  	// long a secondary server can cache data for "Does Not Respond" responses.
21672  	SoaNegativeTtl *uint32 `json:"soa_negative_ttl,omitempty"`
21673  
21674  	// This indicates the interval at which a secondary server sends a message to
21675  	// the primary server for a zone to check that its data is current, and
21676  	// retrieve fresh data if it is not.
21677  	SoaRefresh *uint32 `json:"soa_refresh,omitempty"`
21678  
21679  	// This indicates how long a secondary server must wait before attempting to
21680  	// recontact the primary server after a connection failure between the two
21681  	// servers occurs.
21682  	SoaRetry *uint32 `json:"soa_retry,omitempty"`
21683  
21684  	// The serial number in the SOA record incrementally changes every time the
21685  	// record is modified. The Infoblox appliance allows you to change the serial
21686  	// number (in the SOA record) for the primary server so it is higher than the
21687  	// secondary server, thereby ensuring zone transfers come from the primary
21688  	// server (as they should). To change the serial number you need to set a new
21689  	// value at "soa_serial_number" and pass "set_soa_serial_number" as True.
21690  	SoaSerialNumber *uint32 `json:"soa_serial_number,omitempty"`
21691  
21692  	// The associated shared record groups of a DNS zone. If a shared record group
21693  	// is associated with a zone, then all shared records in a shared record group
21694  	// will be shared in the zone.
21695  	Srgs []string `json:"srgs,omitempty"`
21696  
21697  	// Use this field to allow or deny dynamic DNS updates that are forwarded from
21698  	// specific IPv4/IPv6 addresses, networks, or a named ACL. You can also provide
21699  	// TSIG keys for clients that are allowed or denied to perform zone updates.
21700  	// This setting overrides the member-level setting.
21701  	UpdateForwarding []*Addressac `json:"update_forwarding,omitempty"`
21702  
21703  	// Use flag for: allow_active_dir
21704  	UseAllowActiveDir *bool `json:"use_allow_active_dir,omitempty"`
21705  
21706  	// Use flag for: allow_query
21707  	UseAllowQuery *bool `json:"use_allow_query,omitempty"`
21708  
21709  	// Use flag for: allow_transfer
21710  	UseAllowTransfer *bool `json:"use_allow_transfer,omitempty"`
21711  
21712  	// Use flag for: allow_update
21713  	UseAllowUpdate *bool `json:"use_allow_update,omitempty"`
21714  
21715  	// Use flag for: allow_update_forwarding
21716  	UseAllowUpdateForwarding *bool `json:"use_allow_update_forwarding,omitempty"`
21717  
21718  	// Apply policy to dynamic updates and inbound zone transfers (This value
21719  	// applies only if the host name restriction policy is set to "Strict Hostname
21720  	// Checking".)
21721  	UseCheckNamesPolicy *bool `json:"use_check_names_policy,omitempty"`
21722  
21723  	// Use flag for: copy_xfer_to_notify
21724  	UseCopyXferToNotify *bool `json:"use_copy_xfer_to_notify,omitempty"`
21725  
21726  	// Use flag for: ddns_force_creation_timestamp_update
21727  	UseDdnsForceCreationTimestampUpdate *bool `json:"use_ddns_force_creation_timestamp_update,omitempty"`
21728  
21729  	// Use flag for: ddns_restrict_patterns_list , ddns_restrict_patterns
21730  	UseDdnsPatternsRestriction *bool `json:"use_ddns_patterns_restriction,omitempty"`
21731  
21732  	// Use flag for: ddns_restrict_secure , ddns_principal_tracking,
21733  	// ddns_principal_group
21734  	UseDdnsPrincipalSecurity *bool `json:"use_ddns_principal_security,omitempty"`
21735  
21736  	// Use flag for: ddns_restrict_protected
21737  	UseDdnsRestrictProtected *bool `json:"use_ddns_restrict_protected,omitempty"`
21738  
21739  	// Use flag for: ddns_restrict_static
21740  	UseDdnsRestrictStatic *bool `json:"use_ddns_restrict_static,omitempty"`
21741  
21742  	// Use flag for: dnssec_key_params
21743  	UseDnssecKeyParams *bool `json:"use_dnssec_key_params,omitempty"`
21744  
21745  	// This flag controls whether the zone is using an external primary.
21746  	UseExternalPrimary *bool `json:"use_external_primary,omitempty"`
21747  
21748  	// Use flag for: soa_default_ttl , soa_expire, soa_negative_ttl, soa_refresh,
21749  	// soa_retry
21750  	UseGridZoneTimer *bool `json:"use_grid_zone_timer,omitempty"`
21751  
21752  	// Use flag for: import_from
21753  	UseImportFrom *bool `json:"use_import_from,omitempty"`
21754  
21755  	// Use flag for: notify_delay
21756  	UseNotifyDelay *bool `json:"use_notify_delay,omitempty"`
21757  
21758  	// Use flag for: record_name_policy
21759  	UseRecordNamePolicy *bool `json:"use_record_name_policy,omitempty"`
21760  
21761  	// Use flag for: scavenging_settings , last_queried_acl
21762  	UseScavengingSettings *bool `json:"use_scavenging_settings,omitempty"`
21763  
21764  	// Use flag for: soa_email
21765  	UseSoaEmail *bool `json:"use_soa_email,omitempty"`
21766  
21767  	// This is true if the zone is associated with a shared record group.
21768  	UsingSrgAssociations bool `json:"using_srg_associations,omitempty"`
21769  
21770  	// The name of the DNS view in which the zone resides. Example "external".
21771  	View *string `json:"view,omitempty"`
21772  
21773  	// Determines the format of this zone.
21774  	ZoneFormat string `json:"zone_format,omitempty"`
21775  
21776  	// The time when "DNS Zones Last Queried" was turned on for this zone.
21777  	ZoneNotQueriedEnabledTime *UnixTime `json:"zone_not_queried_enabled_time,omitempty"`
21778  }
21779  
21780  func (ZoneAuth) ObjectType() string {
21781  	return "zone_auth"
21782  }
21783  
21784  func (obj ZoneAuth) ReturnFields() []string {
21785  	if obj.returnFields == nil {
21786  		obj.returnFields = []string{"fqdn", "view"}
21787  	}
21788  	return obj.returnFields
21789  }
21790  
21791  func NewZoneAuth(za ZoneAuth) *ZoneAuth {
21792  	res := za
21793  	res.returnFields = []string{"extattrs", "fqdn", "view"}
21794  	return &res
21795  }
21796  
21797  // ZoneAuthDiscrepancy represents Infoblox object zone_auth_discrepancy.
21798  // This object contains information about discrepancies found when performing a
21799  // DNS integrity check for a zone.
21800  type ZoneAuthDiscrepancy struct {
21801  	IBBase `json:"-"`
21802  
21803  	Ref string `json:"_ref,omitempty"`
21804  
21805  	// Information about the discrepancy.
21806  	Description string `json:"description,omitempty"`
21807  
21808  	// The severity of the discrepancy reported.
21809  	Severity string `json:"severity,omitempty"`
21810  
21811  	// The time when the DNS integrity check was last run for this zone.
21812  	Timestamp *UnixTime `json:"timestamp,omitempty"`
21813  
21814  	// The reference of the zone during a search. Otherwise, this is the zone
21815  	// object of the zone to which the discrepancy refers.
21816  	Zone string `json:"zone,omitempty"`
21817  }
21818  
21819  func (ZoneAuthDiscrepancy) ObjectType() string {
21820  	return "zone_auth_discrepancy"
21821  }
21822  
21823  func (obj ZoneAuthDiscrepancy) ReturnFields() []string {
21824  	if obj.returnFields == nil {
21825  		obj.returnFields = []string{"description", "severity", "timestamp", "zone"}
21826  	}
21827  	return obj.returnFields
21828  }
21829  
21830  // ZoneDelegated represents Infoblox object zone_delegated.
21831  // Instead of a local name server, remote name servers (which the local server
21832  // knows) maintain delegated zone data. When the local name server receives a
21833  // query for a delegated zone, it either responds with the NS record for the
21834  // delegated zone server (if recursion is disabled on the local server) or it
21835  // queries the delegated zone server on behalf of the resolver (if recursion is
21836  // enabled).
21837  type ZoneDelegated struct {
21838  	IBBase `json:"-"`
21839  
21840  	Ref string `json:"_ref,omitempty"`
21841  
21842  	// The IP address of the server that is serving this zone.
21843  	Address string `json:"address,omitempty"`
21844  
21845  	// Comment for the zone; maximum 256 characters.
21846  	Comment *string `json:"comment,omitempty"`
21847  
21848  	// This provides information for the remote name server that maintains data for
21849  	// the delegated zone. The Infoblox appliance redirects queries for data for
21850  	// the delegated zone to this remote name server.
21851  	DelegateTo NullableNameServers `json:"delegate_to,omitempty"`
21852  
21853  	// You can specify the Time to Live (TTL) values of auto-generated NS and glue
21854  	// records for a delegated zone. This value is the number of seconds that data
21855  	// is cached.
21856  	DelegatedTtl *uint32 `json:"delegated_ttl,omitempty"`
21857  
21858  	// Determines whether a zone is disabled or not. When this is set to False, the
21859  	// zone is enabled.
21860  	Disable *bool `json:"disable,omitempty"`
21861  
21862  	// The displayed name of the DNS zone.
21863  	DisplayDomain string `json:"display_domain,omitempty"`
21864  
21865  	// The name of this DNS zone in punycode format. For a reverse zone, this is in
21866  	// "address/cidr" format. For other zones, this is in FQDN format in punycode
21867  	// format.
21868  	DnsFqdn string `json:"dns_fqdn,omitempty"`
21869  
21870  	// This flag controls whether automatic generation of RFC 2317 CNAMEs for
21871  	// delegated reverse zones overwrite existing PTR records. The default behavior
21872  	// is to overwrite all the existing records in the range; this corresponds to
21873  	// "allow_ptr_creation_in_parent" set to False. However, when this flag is set
21874  	// to True the existing PTR records are not overwritten.
21875  	EnableRfc2317Exclusion *bool `json:"enable_rfc2317_exclusion,omitempty"`
21876  
21877  	// Extensible attributes associated with the object. For valid values for
21878  	// extensible attributes, see {extattrs:values}.
21879  	Ea EA `json:"extattrs"`
21880  
21881  	// The name of this DNS zone. For a reverse zone, this is in "address/cidr"
21882  	// format. For other zones, this is in FQDN format. This value can be in
21883  	// unicode format. Note that for a reverse zone, the corresponding zone_format
21884  	// value should be set.
21885  	Fqdn string `json:"fqdn,omitempty"`
21886  
21887  	// If you enable this flag, other administrators cannot make conflicting
21888  	// changes. This is for administration purposes only. The zone will continue to
21889  	// serve DNS data even when it is locked.
21890  	Locked *bool `json:"locked,omitempty"`
21891  
21892  	// The name of a superuser or the administrator who locked this zone.
21893  	LockedBy string `json:"locked_by,omitempty"`
21894  
21895  	// IPv4 Netmask or IPv6 prefix for this zone.
21896  	MaskPrefix string `json:"mask_prefix,omitempty"`
21897  
21898  	// The flag that determines whether Active Directory is integrated or not. This
21899  	// field is valid only when ms_managed is "STUB", "AUTH_PRIMARY", or
21900  	// "AUTH_BOTH".
21901  	MsAdIntegrated *bool `json:"ms_ad_integrated,omitempty"`
21902  
21903  	// Determines whether an Active Directory-integrated zone with a Microsoft DNS
21904  	// server as primary allows dynamic updates. Valid values are: "SECURE" if the
21905  	// zone allows secure updates only. "NONE" if the zone forbids dynamic updates.
21906  	// "ANY" if the zone accepts both secure and nonsecure updates. This field is
21907  	// valid only if ms_managed is either "AUTH_PRIMARY" or "AUTH_BOTH". If the
21908  	// flag ms_ad_integrated is false, the value "SECURE" is not allowed.
21909  	MsDdnsMode string `json:"ms_ddns_mode,omitempty"`
21910  
21911  	// The flag that indicates whether the zone is assigned to a Microsoft DNS
21912  	// server. This flag returns the authoritative name server type of the
21913  	// Microsoft DNS server. Valid values are: "NONE" if the zone is not assigned
21914  	// to any Microsoft DNS server. "STUB" if the zone is assigned to a Microsoft
21915  	// DNS server as a stub zone. "AUTH_PRIMARY" if only the primary server of the
21916  	// zone is a Microsoft DNS server. "AUTH_SECONDARY" if only the secondary
21917  	// server of the zone is a Microsoft DNS server. "AUTH_BOTH" if both the
21918  	// primary and secondary servers of the zone are Microsoft DNS servers.
21919  	MsManaged string `json:"ms_managed,omitempty"`
21920  
21921  	// Determines if a Grid member manages the zone served by a Microsoft DNS
21922  	// server in read-only mode. This flag is true when a Grid member manages the
21923  	// zone in read-only mode, false otherwise. When the zone has the ms_read_only
21924  	// flag set to True, no changes can be made to this zone.
21925  	MsReadOnly bool `json:"ms_read_only,omitempty"`
21926  
21927  	// The name of MS synchronization master for this zone.
21928  	MsSyncMasterName string `json:"ms_sync_master_name,omitempty"`
21929  
21930  	// The delegation NS group bound with delegated zone.
21931  	NsGroup *string `json:"ns_group"`
21932  
21933  	// The parent zone of this zone. Note that when searching for reverse zones,
21934  	// the "in-addr.arpa" notation should be used.
21935  	Parent string `json:"parent,omitempty"`
21936  
21937  	// The RFC2317 prefix value of this DNS zone. Use this field only when the
21938  	// netmask is greater than 24 bits; that is, for a mask between 25 and 31 bits.
21939  	// Enter a prefix, such as the name of the allocated address block. The prefix
21940  	// can be alphanumeric characters, such as 128/26 , 128-189 , or sub-B.
21941  	Prefix *string `json:"prefix,omitempty"`
21942  
21943  	// Use flag for: delegated_ttl
21944  	UseDelegatedTtl *bool `json:"use_delegated_ttl,omitempty"`
21945  
21946  	// This is true if the zone is associated with a shared record group.
21947  	UsingSrgAssociations bool `json:"using_srg_associations,omitempty"`
21948  
21949  	// The name of the DNS view in which the zone resides. Example "external".
21950  	View *string `json:"view,omitempty"`
21951  
21952  	// Determines the format of this zone.
21953  	ZoneFormat string `json:"zone_format,omitempty"`
21954  }
21955  
21956  func (ZoneDelegated) ObjectType() string {
21957  	return "zone_delegated"
21958  }
21959  
21960  func (obj ZoneDelegated) ReturnFields() []string {
21961  	if obj.returnFields == nil {
21962  		obj.returnFields = []string{"delegate_to", "fqdn", "view"}
21963  	}
21964  	return obj.returnFields
21965  }
21966  
21967  func NewZoneDelegated(za ZoneDelegated) *ZoneDelegated {
21968  	res := za
21969  	res.SetReturnFields(append(res.ReturnFields(), "comment", "disable", "locked", "ns_group", "delegated_ttl", "use_delegated_ttl", "zone_format", "extattrs"))
21970  
21971  	return &res
21972  }
21973  
21974  // ZoneForward represents Infoblox object zone_forward.
21975  // When you want to forward queries for data in a particular zone, define the
21976  // zone as a forward zone and specify one or more name servers that can resolve
21977  // queries for the zone. For example, define a forward zone so that the NIOS
21978  // appliance forwards queries about a partners internal site to a name server,
21979  // which the partner hosts, configured just for other partners to access.
21980  type ZoneForward struct {
21981  	IBBase `json:"-"`
21982  
21983  	Ref string `json:"_ref,omitempty"`
21984  
21985  	// The IP address of the server that is serving this zone.
21986  	Address string `json:"address,omitempty"`
21987  
21988  	// Comment for the zone; maximum 256 characters.
21989  	Comment *string `json:"comment,omitempty"`
21990  
21991  	// Determines whether a zone is disabled or not. When this is set to False, the
21992  	// zone is enabled.
21993  	Disable *bool `json:"disable,omitempty"`
21994  
21995  	// Determines whether a auto-generation of NS records in parent zone is
21996  	// disabled or not. When this is set to False, the auto-generation is enabled.
21997  	DisableNsGeneration *bool `json:"disable_ns_generation,omitempty"`
21998  
21999  	// The displayed name of the DNS zone.
22000  	DisplayDomain string `json:"display_domain,omitempty"`
22001  
22002  	// The name of this DNS zone in punycode format. For a reverse zone, this is in
22003  	// "address/cidr" format. For other zones, this is in FQDN format in punycode
22004  	// format.
22005  	DnsFqdn string `json:"dns_fqdn,omitempty"`
22006  
22007  	// Extensible attributes associated with the object. For valid values for
22008  	// extensible attributes, see {extattrs:values}.
22009  	Ea EA `json:"extattrs"`
22010  
22011  	// A forward stub server name server group.
22012  	ExternalNsGroup *string `json:"external_ns_group"`
22013  
22014  	// The information for the remote name servers to which you want the Infoblox
22015  	// appliance to forward queries for a specified domain name.
22016  	ForwardTo NullableNameServers `json:"forward_to,omitempty"`
22017  
22018  	// Determines if the appliance sends queries to forwarders only, and not to
22019  	// other internal or Internet root servers.
22020  	ForwardersOnly *bool `json:"forwarders_only,omitempty"`
22021  
22022  	// The information for the Grid members to which you want the Infoblox
22023  	// appliance to forward queries for a specified domain name.
22024  	ForwardingServers *NullableForwardingServers `json:"forwarding_servers,omitempty"`
22025  
22026  	// The name of this DNS zone. For a reverse zone, this is in "address/cidr"
22027  	// format. For other zones, this is in FQDN format. This value can be in
22028  	// unicode format. Note that for a reverse zone, the corresponding zone_format
22029  	// value should be set.
22030  	Fqdn string `json:"fqdn,omitempty"`
22031  
22032  	// If you enable this flag, other administrators cannot make conflicting
22033  	// changes. This is for administration purposes only. The zone will continue to
22034  	// serve DNS data even when it is locked.
22035  	Locked *bool `json:"locked,omitempty"`
22036  
22037  	// The name of a superuser or the administrator who locked this zone.
22038  	LockedBy string `json:"locked_by,omitempty"`
22039  
22040  	// IPv4 Netmask or IPv6 prefix for this zone.
22041  	MaskPrefix string `json:"mask_prefix,omitempty"`
22042  
22043  	// The flag that determines whether Active Directory is integrated or not. This
22044  	// field is valid only when ms_managed is "STUB", "AUTH_PRIMARY", or
22045  	// "AUTH_BOTH".
22046  	MsAdIntegrated *bool `json:"ms_ad_integrated,omitempty"`
22047  
22048  	// Determines whether an Active Directory-integrated zone with a Microsoft DNS
22049  	// server as primary allows dynamic updates. Valid values are: "SECURE" if the
22050  	// zone allows secure updates only. "NONE" if the zone forbids dynamic updates.
22051  	// "ANY" if the zone accepts both secure and nonsecure updates. This field is
22052  	// valid only if ms_managed is either "AUTH_PRIMARY" or "AUTH_BOTH". If the
22053  	// flag ms_ad_integrated is false, the value "SECURE" is not allowed.
22054  	MsDdnsMode string `json:"ms_ddns_mode,omitempty"`
22055  
22056  	// The flag that indicates whether the zone is assigned to a Microsoft DNS
22057  	// server. This flag returns the authoritative name server type of the
22058  	// Microsoft DNS server. Valid values are: "NONE" if the zone is not assigned
22059  	// to any Microsoft DNS server. "STUB" if the zone is assigned to a Microsoft
22060  	// DNS server as a stub zone. "AUTH_PRIMARY" if only the primary server of the
22061  	// zone is a Microsoft DNS server. "AUTH_SECONDARY" if only the secondary
22062  	// server of the zone is a Microsoft DNS server. "AUTH_BOTH" if both the
22063  	// primary and secondary servers of the zone are Microsoft DNS servers.
22064  	MsManaged string `json:"ms_managed,omitempty"`
22065  
22066  	// Determines if a Grid member manages the zone served by a Microsoft DNS
22067  	// server in read-only mode. This flag is true when a Grid member manages the
22068  	// zone in read-only mode, false otherwise. When the zone has the ms_read_only
22069  	// flag set to True, no changes can be made to this zone.
22070  	MsReadOnly bool `json:"ms_read_only,omitempty"`
22071  
22072  	// The name of MS synchronization master for this zone.
22073  	MsSyncMasterName string `json:"ms_sync_master_name,omitempty"`
22074  
22075  	// A forwarding member name server group.
22076  	NsGroup *string `json:"ns_group"`
22077  
22078  	// The parent zone of this zone. Note that when searching for reverse zones,
22079  	// the "in-addr.arpa" notation should be used.
22080  	Parent string `json:"parent,omitempty"`
22081  
22082  	// The RFC2317 prefix value of this DNS zone. Use this field only when the
22083  	// netmask is greater than 24 bits; that is, for a mask between 25 and 31 bits.
22084  	// Enter a prefix, such as the name of the allocated address block. The prefix
22085  	// can be alphanumeric characters, such as 128/26 , 128-189 , or sub-B.
22086  	Prefix *string `json:"prefix,omitempty"`
22087  
22088  	// This is true if the zone is associated with a shared record group.
22089  	UsingSrgAssociations bool `json:"using_srg_associations,omitempty"`
22090  
22091  	// The name of the DNS view in which the zone resides. Example "external".
22092  	View *string `json:"view,omitempty"`
22093  
22094  	// Determines the format of this zone.
22095  	ZoneFormat string `json:"zone_format,omitempty"`
22096  }
22097  
22098  func (ZoneForward) ObjectType() string {
22099  	return "zone_forward"
22100  }
22101  
22102  func (obj ZoneForward) ReturnFields() []string {
22103  	if obj.returnFields == nil {
22104  		obj.returnFields = []string{"forward_to", "fqdn", "view"}
22105  	}
22106  	return obj.returnFields
22107  }
22108  
22109  // ZoneRp represents Infoblox object zone_rp.
22110  // DNS RPZs (Response Policy Zones), a technology developed by ISC (Internet
22111  // System Consortium) for allowing reputable sources to dynamically communicate
22112  // domain name reputation so you can implement policy controls for DNS lookups.
22113  // You can configure RPZs and define RPZ rules to block DNS resolution for
22114  // malicious or unauthorized domain names, or redirect clients to a walled
22115  // garden by substituting responses. You can assign actions to RPZ rules. For
22116  // example, abc.com can have an action of pass thru or substitute (domain) with
22117  // the domain xyz.com. You can also configure a Grid member to act as a lead
22118  // secondary that receives RPZ updates from external reputation sources and
22119  // redistributes the updates to other Grid members.
22120  type ZoneRp struct {
22121  	IBBase `json:"-"`
22122  
22123  	Ref string `json:"_ref,omitempty"`
22124  
22125  	// The IP address of the server that is serving this zone.
22126  	Address string `json:"address,omitempty"`
22127  
22128  	// Comment for the zone; maximum 256 characters.
22129  	Comment *string `json:"comment,omitempty"`
22130  
22131  	// Determines whether a zone is disabled or not. When this is set to False, the
22132  	// zone is enabled.
22133  	Disable *bool `json:"disable,omitempty"`
22134  
22135  	// The displayed name of the DNS zone.
22136  	DisplayDomain string `json:"display_domain,omitempty"`
22137  
22138  	// The SOA email for the zone in punycode format.
22139  	DnsSoaEmail string `json:"dns_soa_email,omitempty"`
22140  
22141  	// Extensible attributes associated with the object. For valid values for
22142  	// extensible attributes, see {extattrs:values}.
22143  	Ea EA `json:"extattrs"`
22144  
22145  	// The list of external primary servers.
22146  	ExternalPrimaries []NameServer `json:"external_primaries,omitempty"`
22147  
22148  	// The list of external secondary servers.
22149  	ExternalSecondaries []NameServer `json:"external_secondaries,omitempty"`
22150  
22151  	// Rules to map fireeye alerts.
22152  	FireeyeRuleMapping *FireeyeRulemapping `json:"fireeye_rule_mapping,omitempty"`
22153  
22154  	// The name of this DNS zone in FQDN format.
22155  	Fqdn string `json:"fqdn,omitempty"`
22156  
22157  	// The grid primary servers for this zone.
22158  	GridPrimary []*Memberserver `json:"grid_primary,omitempty"`
22159  
22160  	// The list with Grid members that are secondary servers for this zone.
22161  	GridSecondaries []*Memberserver `json:"grid_secondaries,omitempty"`
22162  
22163  	// If you enable this flag, other administrators cannot make conflicting
22164  	// changes. This is for administration purposes only. The zone will continue to
22165  	// serve DNS data even when it is locked.
22166  	Locked *bool `json:"locked,omitempty"`
22167  
22168  	// The name of a superuser or the administrator who locked this zone.
22169  	LockedBy string `json:"locked_by,omitempty"`
22170  
22171  	// Determines whether RPZ logging enabled or not at zone level. When this is
22172  	// set to False, the logging is disabled.
22173  	LogRpz *bool `json:"log_rpz,omitempty"`
22174  
22175  	// IPv4 Netmask or IPv6 prefix for this zone.
22176  	MaskPrefix string `json:"mask_prefix,omitempty"`
22177  
22178  	// The list of per-member SOA MNAME information.
22179  	MemberSoaMnames []*GridmemberSoamname `json:"member_soa_mnames,omitempty"`
22180  
22181  	// The list of per-member SOA serial information.
22182  	MemberSoaSerials []*GridmemberSoaserial `json:"member_soa_serials,omitempty"`
22183  
22184  	// The name of the network view in which this zone resides.
22185  	NetworkView string `json:"network_view,omitempty"`
22186  
22187  	// The name server group that serves DNS for this zone.
22188  	NsGroup *string `json:"ns_group,omitempty"`
22189  
22190  	// The parent zone of this zone. Note that when searching for reverse zones,
22191  	// the "in-addr.arpa" notation should be used.
22192  	Parent string `json:"parent,omitempty"`
22193  
22194  	// The RFC2317 prefix value of this DNS zone. Use this field only when the
22195  	// netmask is greater than 24 bits; that is, for a mask between 25 and 31 bits.
22196  	// Enter a prefix, such as the name of the allocated address block. The prefix
22197  	// can be alphanumeric characters, such as 128/26 , 128-189 , or sub-B.
22198  	Prefix *string `json:"prefix,omitempty"`
22199  
22200  	// The type of the primary server.
22201  	PrimaryType string `json:"primary_type,omitempty"`
22202  
22203  	// The hostname policy for records under this zone.
22204  	RecordNamePolicy *string `json:"record_name_policy,omitempty"`
22205  
22206  	// Enables the appliance to ignore RPZ-IP triggers with prefix lengths less
22207  	// than the specified minimum prefix length.
22208  	RpzDropIpRuleEnabled *bool `json:"rpz_drop_ip_rule_enabled,omitempty"`
22209  
22210  	// The minimum prefix length for IPv4 RPZ-IP triggers. The appliance ignores
22211  	// RPZ-IP triggers with prefix lengths less than the specified minimum IPv4
22212  	// prefix length.
22213  	RpzDropIpRuleMinPrefixLengthIpv4 *uint32 `json:"rpz_drop_ip_rule_min_prefix_length_ipv4,omitempty"`
22214  
22215  	// The minimum prefix length for IPv6 RPZ-IP triggers. The appliance ignores
22216  	// RPZ-IP triggers with prefix lengths less than the specified minimum IPv6
22217  	// prefix length.
22218  	RpzDropIpRuleMinPrefixLengthIpv6 *uint32 `json:"rpz_drop_ip_rule_min_prefix_length_ipv6,omitempty"`
22219  
22220  	// The timestamp of the last update for zone data.
22221  	RpzLastUpdatedTime *UnixTime `json:"rpz_last_updated_time,omitempty"`
22222  
22223  	// The response policy zone override policy.
22224  	RpzPolicy string `json:"rpz_policy,omitempty"`
22225  
22226  	// The priority of this response policy zone.
22227  	RpzPriority uint32 `json:"rpz_priority,omitempty"`
22228  
22229  	// This number is for UI to identify the end of qualified zone list.
22230  	RpzPriorityEnd uint32 `json:"rpz_priority_end,omitempty"`
22231  
22232  	// The severity of this response policy zone.
22233  	RpzSeverity string `json:"rpz_severity,omitempty"`
22234  
22235  	// The type of rpz zone.
22236  	RpzType string `json:"rpz_type,omitempty"`
22237  
22238  	// The serial number in the SOA record incrementally changes every time the
22239  	// record is modified. The Infoblox appliance allows you to change the serial
22240  	// number (in the SOA record) for the primary server so it is higher than the
22241  	// secondary server, thereby ensuring zone transfers come from the primary
22242  	// server (as they should). To change the serial number you need to set a new
22243  	// value at "soa_serial_number" and pass "set_soa_serial_number" as True.
22244  	SetSoaSerialNumber *bool `json:"set_soa_serial_number,omitempty"`
22245  
22246  	// The Time to Live (TTL) value of the SOA record of this zone. This value is
22247  	// the number of seconds that data is cached.
22248  	SoaDefaultTtl *uint32 `json:"soa_default_ttl,omitempty"`
22249  
22250  	// The SOA email value for this zone. This value can be in unicode format.
22251  	SoaEmail *string `json:"soa_email,omitempty"`
22252  
22253  	// This setting defines the amount of time, in seconds, after which the
22254  	// secondary server stops giving out answers about the zone because the zone
22255  	// data is too old to be useful. The default is one week.
22256  	SoaExpire *uint32 `json:"soa_expire,omitempty"`
22257  
22258  	// The negative Time to Live (TTL) value of the SOA of the zone indicates how
22259  	// long a secondary server can cache data for "Does Not Respond" responses.
22260  	SoaNegativeTtl *uint32 `json:"soa_negative_ttl,omitempty"`
22261  
22262  	// This indicates the interval at which a secondary server sends a message to
22263  	// the primary server for a zone to check that its data is current, and
22264  	// retrieve fresh data if it is not.
22265  	SoaRefresh *uint32 `json:"soa_refresh,omitempty"`
22266  
22267  	// This indicates how long a secondary server must wait before attempting to
22268  	// recontact the primary server after a connection failure between the two
22269  	// servers occurs.
22270  	SoaRetry *uint32 `json:"soa_retry,omitempty"`
22271  
22272  	// The serial number in the SOA record incrementally changes every time the
22273  	// record is modified. The Infoblox appliance allows you to change the serial
22274  	// number (in the SOA record) for the primary server so it is higher than the
22275  	// secondary server, thereby ensuring zone transfers come from the primary
22276  	// server (as they should). To change the serial number you need to set a new
22277  	// value at "soa_serial_number" and pass "set_soa_serial_number" as True.
22278  	SoaSerialNumber *uint32 `json:"soa_serial_number,omitempty"`
22279  
22280  	// The canonical name of redirect target in substitute policy of response
22281  	// policy zone.
22282  	SubstituteName *string `json:"substitute_name,omitempty"`
22283  
22284  	// This flag controls whether the zone is using an external primary.
22285  	UseExternalPrimary *bool `json:"use_external_primary,omitempty"`
22286  
22287  	// Use flag for: soa_default_ttl , soa_expire, soa_negative_ttl, soa_refresh,
22288  	// soa_retry
22289  	UseGridZoneTimer *bool `json:"use_grid_zone_timer,omitempty"`
22290  
22291  	// Use flag for: log_rpz
22292  	UseLogRpz *bool `json:"use_log_rpz,omitempty"`
22293  
22294  	// Use flag for: record_name_policy
22295  	UseRecordNamePolicy *bool `json:"use_record_name_policy,omitempty"`
22296  
22297  	// Use flag for: rpz_drop_ip_rule_enabled ,
22298  	// rpz_drop_ip_rule_min_prefix_length_ipv4,
22299  	// rpz_drop_ip_rule_min_prefix_length_ipv6
22300  	UseRpzDropIpRule *bool `json:"use_rpz_drop_ip_rule,omitempty"`
22301  
22302  	// Use flag for: soa_email
22303  	UseSoaEmail *bool `json:"use_soa_email,omitempty"`
22304  
22305  	// The name of the DNS view in which the zone resides. Example "external".
22306  	View *string `json:"view,omitempty"`
22307  }
22308  
22309  func (ZoneRp) ObjectType() string {
22310  	return "zone_rp"
22311  }
22312  
22313  func (obj ZoneRp) ReturnFields() []string {
22314  	if obj.returnFields == nil {
22315  		obj.returnFields = []string{"fqdn", "view"}
22316  	}
22317  	return obj.returnFields
22318  }
22319  
22320  // ZoneStub represents Infoblox object zone_stub.
22321  // A stub zone contains records that identify the authoritative name servers in
22322  // the zone. It does not contain resource records for resolving IP addresses to
22323  // hosts in the zone. Instead, it contains the following records:
22324  type ZoneStub struct {
22325  	IBBase `json:"-"`
22326  
22327  	Ref string `json:"_ref,omitempty"`
22328  
22329  	// The IP address of the server that is serving this zone.
22330  	Address string `json:"address,omitempty"`
22331  
22332  	// Comment for the zone; maximum 256 characters.
22333  	Comment *string `json:"comment,omitempty"`
22334  
22335  	// Determines whether a zone is disabled or not. When this is set to False, the
22336  	// zone is enabled.
22337  	Disable *bool `json:"disable,omitempty"`
22338  
22339  	// Determines if the name servers that host the zone should not forward queries
22340  	// that end with the domain name of the zone to any configured forwarders.
22341  	DisableForwarding *bool `json:"disable_forwarding,omitempty"`
22342  
22343  	// The displayed name of the DNS zone.
22344  	DisplayDomain string `json:"display_domain,omitempty"`
22345  
22346  	// The name of this DNS zone in punycode format. For a reverse zone, this is in
22347  	// "address/cidr" format. For other zones, this is in FQDN format in punycode
22348  	// format.
22349  	DnsFqdn string `json:"dns_fqdn,omitempty"`
22350  
22351  	// Extensible attributes associated with the object. For valid values for
22352  	// extensible attributes, see {extattrs:values}.
22353  	Ea EA `json:"extattrs"`
22354  
22355  	// A forward stub server name server group.
22356  	ExternalNsGroup *string `json:"external_ns_group,omitempty"`
22357  
22358  	// The name of this DNS zone. For a reverse zone, this is in "address/cidr"
22359  	// format. For other zones, this is in FQDN format. This value can be in
22360  	// unicode format. Note that for a reverse zone, the corresponding zone_format
22361  	// value should be set.
22362  	Fqdn string `json:"fqdn,omitempty"`
22363  
22364  	// If you enable this flag, other administrators cannot make conflicting
22365  	// changes. This is for administration purposes only. The zone will continue to
22366  	// serve DNS data even when it is locked.
22367  	Locked *bool `json:"locked,omitempty"`
22368  
22369  	// The name of a superuser or the administrator who locked this zone.
22370  	LockedBy string `json:"locked_by,omitempty"`
22371  
22372  	// IPv4 Netmask or IPv6 prefix for this zone.
22373  	MaskPrefix string `json:"mask_prefix,omitempty"`
22374  
22375  	// The flag that determines whether Active Directory is integrated or not. This
22376  	// field is valid only when ms_managed is "STUB", "AUTH_PRIMARY", or
22377  	// "AUTH_BOTH".
22378  	MsAdIntegrated *bool `json:"ms_ad_integrated,omitempty"`
22379  
22380  	// Determines whether an Active Directory-integrated zone with a Microsoft DNS
22381  	// server as primary allows dynamic updates. Valid values are: "SECURE" if the
22382  	// zone allows secure updates only. "NONE" if the zone forbids dynamic updates.
22383  	// "ANY" if the zone accepts both secure and nonsecure updates. This field is
22384  	// valid only if ms_managed is either "AUTH_PRIMARY" or "AUTH_BOTH". If the
22385  	// flag ms_ad_integrated is false, the value "SECURE" is not allowed.
22386  	MsDdnsMode string `json:"ms_ddns_mode,omitempty"`
22387  
22388  	// The flag that indicates whether the zone is assigned to a Microsoft DNS
22389  	// server. This flag returns the authoritative name server type of the
22390  	// Microsoft DNS server. Valid values are: "NONE" if the zone is not assigned
22391  	// to any Microsoft DNS server. "STUB" if the zone is assigned to a Microsoft
22392  	// DNS server as a stub zone. "AUTH_PRIMARY" if only the primary server of the
22393  	// zone is a Microsoft DNS server. "AUTH_SECONDARY" if only the secondary
22394  	// server of the zone is a Microsoft DNS server. "AUTH_BOTH" if both the
22395  	// primary and secondary servers of the zone are Microsoft DNS servers.
22396  	MsManaged string `json:"ms_managed,omitempty"`
22397  
22398  	// Determines if a Grid member manages the zone served by a Microsoft DNS
22399  	// server in read-only mode. This flag is true when a Grid member manages the
22400  	// zone in read-only mode, false otherwise. When the zone has the ms_read_only
22401  	// flag set to True, no changes can be made to this zone.
22402  	MsReadOnly bool `json:"ms_read_only,omitempty"`
22403  
22404  	// The name of MS synchronization master for this zone.
22405  	MsSyncMasterName string `json:"ms_sync_master_name,omitempty"`
22406  
22407  	// A stub member name server group.
22408  	NsGroup *string `json:"ns_group,omitempty"`
22409  
22410  	// The parent zone of this zone. Note that when searching for reverse zones,
22411  	// the "in-addr.arpa" notation should be used.
22412  	Parent string `json:"parent,omitempty"`
22413  
22414  	// The RFC2317 prefix value of this DNS zone. Use this field only when the
22415  	// netmask is greater than 24 bits; that is, for a mask between 25 and 31 bits.
22416  	// Enter a prefix, such as the name of the allocated address block. The prefix
22417  	// can be alphanumeric characters, such as 128/26 , 128-189 , or sub-B.
22418  	Prefix *string `json:"prefix,omitempty"`
22419  
22420  	// The SOA email for the zone. This value can be in unicode format.
22421  	SoaEmail string `json:"soa_email,omitempty"`
22422  
22423  	// This setting defines the amount of time, in seconds, after which the
22424  	// secondary server stops giving out answers about the zone because the zone
22425  	// data is too old to be useful.
22426  	SoaExpire uint32 `json:"soa_expire,omitempty"`
22427  
22428  	// The SOA mname value for this zone. The Infoblox appliance allows you to
22429  	// change the name of the primary server on the SOA record that is
22430  	// automatically created when you initially configure a zone. Use this method
22431  	// to change the name of the primary server on the SOA record. For example, you
22432  	// may want to hide the primary server for a zone. If your device is named
22433  	// dns1.zone.tld, and for security reasons, you want to show a secondary server
22434  	// called dns2.zone.tld as the primary server. To do so, you would go to
22435  	// dns1.zone.tld zone (being the true primary) and change the primary server on
22436  	// the SOA to dns2.zone.tld to hide the true identity of the real primary
22437  	// server. This value can be in unicode format.
22438  	SoaMname string `json:"soa_mname,omitempty"`
22439  
22440  	// The negative Time to Live (TTL) value of the SOA of the zone indicates how
22441  	// long a secondary server can cache data for "Does Not Respond" responses.
22442  	SoaNegativeTtl uint32 `json:"soa_negative_ttl,omitempty"`
22443  
22444  	// This indicates the interval at which a secondary server sends a message to
22445  	// the primary server for a zone to check that its data is current, and
22446  	// retrieve fresh data if it is not.
22447  	SoaRefresh uint32 `json:"soa_refresh,omitempty"`
22448  
22449  	// This indicates how long a secondary server must wait before attempting to
22450  	// recontact the primary server after a connection failure between the two
22451  	// servers occurs.
22452  	SoaRetry uint32 `json:"soa_retry,omitempty"`
22453  
22454  	// The serial number in the SOA record incrementally changes every time the
22455  	// record is modified. The Infoblox appliance allows you to change the serial
22456  	// number (in the SOA record) for the primary server so it is higher than the
22457  	// secondary server, thereby ensuring zone transfers come from the primary
22458  	// server.
22459  	SoaSerialNumber uint32 `json:"soa_serial_number,omitempty"`
22460  
22461  	// The primary servers (masters) of this stub zone.
22462  	StubFrom []NameServer `json:"stub_from,omitempty"`
22463  
22464  	// The Grid member servers of this stub zone. Note that the
22465  	// lead/stealth/grid_replicate/
22466  	// preferred_primaries/override_preferred_primaries fields of the struct will
22467  	// be ignored when set in this field.
22468  	StubMembers []*Memberserver `json:"stub_members,omitempty"`
22469  
22470  	// The Microsoft DNS servers of this stub zone. Note that the stealth field of
22471  	// the struct will be ignored when set in this field.
22472  	StubMsservers []*Msdnsserver `json:"stub_msservers,omitempty"`
22473  
22474  	// This is true if the zone is associated with a shared record group.
22475  	UsingSrgAssociations bool `json:"using_srg_associations,omitempty"`
22476  
22477  	// The name of the DNS view in which the zone resides. Example "external".
22478  	View *string `json:"view,omitempty"`
22479  
22480  	// Determines the format of this zone.
22481  	ZoneFormat string `json:"zone_format,omitempty"`
22482  }
22483  
22484  func (ZoneStub) ObjectType() string {
22485  	return "zone_stub"
22486  }
22487  
22488  func (obj ZoneStub) ReturnFields() []string {
22489  	if obj.returnFields == nil {
22490  		obj.returnFields = []string{"fqdn", "stub_from", "view"}
22491  	}
22492  	return obj.returnFields
22493  }
22494  
22495  // AdAuthServer represents Infoblox struct ad_auth_server
22496  type AdAuthServer struct {
22497  	// The FQDN (Fully Qualified Domain Name) or IP address of the server.
22498  	FqdnOrIp string `json:"fqdn_or_ip,omitempty"`
22499  
22500  	// The authentication port.
22501  	AuthPort uint32 `json:"auth_port,omitempty"`
22502  
22503  	// The descriptive comment for the AD authentication server.
22504  	Comment string `json:"comment,omitempty"`
22505  
22506  	// Determines if the AD authorization server is disabled.
22507  	Disabled bool `json:"disabled,omitempty"`
22508  
22509  	// The type of encryption to use.
22510  	Encryption string `json:"encryption,omitempty"`
22511  
22512  	// Determine if the MGMT port is enabled for the AD authentication server.
22513  	MgmtPort bool `json:"mgmt_port,omitempty"`
22514  
22515  	// Use flag for: mgmt_port
22516  	UseMgmtPort bool `json:"use_mgmt_port,omitempty"`
22517  }
22518  
22519  // Addressac represents Infoblox struct addressac
22520  type Addressac struct {
22521  	// The address this rule applies to or "Any".
22522  	Address string `json:"address,omitempty"`
22523  
22524  	// The permission to use for this address.
22525  	Permission string `json:"permission,omitempty"`
22526  
22527  	// A generated TSIG key. If the external primary server is a NIOS appliance
22528  	// running DNS One 2.x code, this can be set to :2xCOMPAT.
22529  	TsigKey string `json:"tsig_key,omitempty"`
22530  
22531  	// The TSIG key algorithm.
22532  	TsigKeyAlg string `json:"tsig_key_alg,omitempty"`
22533  
22534  	// The name of the TSIG key. If 2.x TSIG compatibility is used, this is set to
22535  	// 'tsig_xfer' on retrieval, and ignored on insert or update.
22536  	TsigKeyName string `json:"tsig_key_name,omitempty"`
22537  
22538  	// Use flag for: tsig_key_name
22539  	UseTsigKeyName bool `json:"use_tsig_key_name,omitempty"`
22540  }
22541  
22542  // AdmingroupAdminsetcommands represents Infoblox struct admingroup:adminsetcommands
22543  type AdmingroupAdminsetcommands struct {
22544  	// If True then CLI user has permission to run the command
22545  	SetAdminGroupAcl bool `json:"set_admin_group_acl,omitempty"`
22546  
22547  	// If True then CLI user has permission to run the command
22548  	EtBfd bool `json:"et_bfd,omitempty"`
22549  
22550  	// If True then CLI user has permission to run the command
22551  	SetBfd bool `json:"set_bfd,omitempty"`
22552  
22553  	// If True then CLI user has permission to run the command
22554  	SetBgp bool `json:"set_bgp,omitempty"`
22555  
22556  	// If True then CLI user has permission to run the command
22557  	SetBloxtools bool `json:"set_bloxtools,omitempty"`
22558  
22559  	// If True then CLI user has permission to run the command
22560  	SetCleanMscache bool `json:"set_clean_mscache,omitempty"`
22561  
22562  	// If True then CLI user has permission to run the command
22563  	SetDebug bool `json:"set_debug,omitempty"`
22564  
22565  	// If True then CLI user has permission to run the command
22566  	SetDebugAnalytics bool `json:"set_debug_analytics,omitempty"`
22567  
22568  	// If True then CLI user has permission to run the command
22569  	SetDeleteTasksInterval bool `json:"set_delete_tasks_interval,omitempty"`
22570  
22571  	// If True then CLI user has permission to run the command
22572  	SetDisableGuiOneClickSupport bool `json:"set_disable_gui_one_click_support,omitempty"`
22573  
22574  	// If True then CLI user has permission to run the command
22575  	SetHardwareType bool `json:"set_hardware_type,omitempty"`
22576  
22577  	// If True then CLI user has permission to run the command
22578  	SetIbtrap bool `json:"set_ibtrap,omitempty"`
22579  
22580  	// If True then CLI user has permission to run the command
22581  	SetLcd bool `json:"set_lcd,omitempty"`
22582  
22583  	// If True then CLI user has permission to run the command
22584  	SetLcdSettings bool `json:"set_lcd_settings,omitempty"`
22585  
22586  	// If True then CLI user has permission to run the command
22587  	SetLines bool `json:"set_lines,omitempty"`
22588  
22589  	// If True then CLI user has permission to run the command
22590  	SetMsMaxConnection bool `json:"set_ms_max_connection,omitempty"`
22591  
22592  	// If True then CLI user has permission to run the command
22593  	SetNosafemode bool `json:"set_nosafemode,omitempty"`
22594  
22595  	// If True then CLI user has permission to run the command
22596  	SetOcsp bool `json:"set_ocsp,omitempty"`
22597  
22598  	// If True then CLI user has permission to run the command
22599  	SetPurgeRestartObjects bool `json:"set_purge_restart_objects,omitempty"`
22600  
22601  	// If True then CLI user has permission to run the command
22602  	SetReportingUserCapabilities bool `json:"set_reporting_user_capabilities,omitempty"`
22603  
22604  	// If True then CLI user has permission to run the command
22605  	SetRpzRecursiveOnly bool `json:"set_rpz_recursive_only,omitempty"`
22606  
22607  	// If True then CLI user has permission to run the command
22608  	SetSafemode bool `json:"set_safemode,omitempty"`
22609  
22610  	// If True then CLI user has permission to run the command
22611  	SetScheduled bool `json:"set_scheduled,omitempty"`
22612  
22613  	// If True then CLI user has permission to run the command
22614  	SetSnmptrap bool `json:"set_snmptrap,omitempty"`
22615  
22616  	// If True then CLI user has permission to run the command
22617  	SetSysname bool `json:"set_sysname,omitempty"`
22618  
22619  	// If True then CLI user has permission to run the command
22620  	SetTerm bool `json:"set_term,omitempty"`
22621  
22622  	// If True then CLI user has permission to run the command
22623  	SetThresholdtrap bool `json:"set_thresholdtrap,omitempty"`
22624  
22625  	// If True then CLI user has permission to run the command
22626  	SetExpertmode bool `json:"set_expertmode,omitempty"`
22627  
22628  	// If True then CLI user has permission to run the command
22629  	SetMaintenancemode bool `json:"set_maintenancemode,omitempty"`
22630  
22631  	// If True then CLI user has permission to run the command
22632  	SetTransferReportingData bool `json:"set_transfer_reporting_data,omitempty"`
22633  
22634  	// If True then CLI user has permission to run the command
22635  	SetTransferSupportbundle bool `json:"set_transfer_supportbundle,omitempty"`
22636  
22637  	// If True then CLI user has permission to run the command
22638  	SetAnalyticsDatabaseDump bool `json:"set_analytics_database_dump,omitempty"`
22639  
22640  	// If True then CLI user has permission to run the command
22641  	SetAnalyticsParameter bool `json:"set_analytics_parameter,omitempty"`
22642  
22643  	// If True then CLI user has permission to run the command
22644  	SetCollectOldLogs bool `json:"set_collect_old_logs,omitempty"`
22645  
22646  	// If True then CLI user has permission to run the command
22647  	SetCoreFilesQuota bool `json:"set_core_files_quota,omitempty"`
22648  
22649  	// If True then CLI user has permission to run the command
22650  	SetHsmGroup bool `json:"set_hsm_group,omitempty"`
22651  
22652  	// If True then CLI user has permission to run the command
22653  	SetWred bool `json:"set_wred,omitempty"`
22654  
22655  	// If True then CLI user has permission to run the command
22656  	SetEnableDohKeyLogging bool `json:"set_enable_doh_key_logging,omitempty"`
22657  
22658  	// If True then CLI user has permission to run the command
22659  	SetEnableDotKeyLogging bool `json:"set_enable_dot_key_logging,omitempty"`
22660  
22661  	// If True then CLI user has permission to run the command
22662  	SetHotfix bool `json:"set_hotfix,omitempty"`
22663  
22664  	// If True then CLI user has permission to run the command
22665  	SetMgm bool `json:"set_mgm,omitempty"`
22666  
22667  	// If True then CLI user has permission to run the command
22668  	SetNtpStratum bool `json:"set_ntp_stratum,omitempty"`
22669  
22670  	// If True then CLI user has permission to run the command
22671  	SetPcDomain bool `json:"set_pc_domain,omitempty"`
22672  
22673  	// If True then CLI user has permission to run the command
22674  	SetReportFrequency bool `json:"set_report_frequency,omitempty"`
22675  
22676  	// If True then enable all fields
22677  	EnableAll bool `json:"enable_all,omitempty"`
22678  
22679  	// If True then disable all fields
22680  	DisableAll bool `json:"disable_all,omitempty"`
22681  }
22682  
22683  // AdmingroupAdminshowcommands represents Infoblox struct admingroup:adminshowcommands
22684  type AdmingroupAdminshowcommands struct {
22685  	// If True then CLI user has permission to run the command
22686  	ShowAdminGroupAcl bool `json:"show_admin_group_acl,omitempty"`
22687  
22688  	// If True then CLI user has permission to run the command
22689  	ShowAnalyticsParameter bool `json:"show_analytics_parameter,omitempty"`
22690  
22691  	// If True then CLI user has permission to run the command
22692  	ShowArp bool `json:"show_arp,omitempty"`
22693  
22694  	// If True then CLI user has permission to run the command
22695  	ShowBfd bool `json:"show_bfd,omitempty"`
22696  
22697  	// If True then CLI user has permission to run the command
22698  	ShowBgp bool `json:"show_bgp,omitempty"`
22699  
22700  	// If True then CLI user has permission to run the command
22701  	ShowBloxtools bool `json:"show_bloxtools,omitempty"`
22702  
22703  	// If True then CLI user has permission to run the command
22704  	ShowCapacity bool `json:"show_capacity,omitempty"`
22705  
22706  	// If True then CLI user has permission to run the command
22707  	ShowClusterdInfo bool `json:"show_clusterd_info,omitempty"`
22708  
22709  	// If True then CLI user has permission to run the command
22710  	ShowConfig bool `json:"show_config,omitempty"`
22711  
22712  	// If True then CLI user has permission to run the command
22713  	ShowCpu bool `json:"show_cpu,omitempty"`
22714  
22715  	// If True then CLI user has permission to run the command
22716  	ShowDate bool `json:"show_date,omitempty"`
22717  
22718  	// If True then CLI user has permission to run the command
22719  	ShowDebug bool `json:"show_debug,omitempty"`
22720  
22721  	// If True then CLI user has permission to run the command
22722  	ShowDebugAnalytics bool `json:"show_debug_analytics,omitempty"`
22723  
22724  	// If True then CLI user has permission to run the command
22725  	ShowDeleteTasksInterval bool `json:"show_delete_tasks_interval,omitempty"`
22726  
22727  	// If True then CLI user has permission to run the command
22728  	ShowDisk bool `json:"show_disk,omitempty"`
22729  
22730  	// If True then CLI user has permission to run the command
22731  	ShowFile bool `json:"show_file,omitempty"`
22732  
22733  	// If True then CLI user has permission to run the command
22734  	ShowHardwareType bool `json:"show_hardware_type,omitempty"`
22735  
22736  	// If True then CLI user has permission to run the command
22737  	ShowHardwareStatus bool `json:"show_hardware_status,omitempty"`
22738  
22739  	// If True then CLI user has permission to run the command
22740  	ShowHwid bool `json:"show_hwid,omitempty"`
22741  
22742  	// If True then CLI user has permission to run the command
22743  	ShowIbtrap bool `json:"show_ibtrap,omitempty"`
22744  
22745  	// If True then CLI user has permission to run the command
22746  	ShowLcd bool `json:"show_lcd,omitempty"`
22747  
22748  	// If True then CLI user has permission to run the command
22749  	ShowLcdInfo bool `json:"show_lcd_info,omitempty"`
22750  
22751  	// If True then CLI user has permission to run the command
22752  	ShowLcdSettings bool `json:"show_lcd_settings,omitempty"`
22753  
22754  	// If True then CLI user has permission to run the command
22755  	ShowLog bool `json:"show_log,omitempty"`
22756  
22757  	// If True then CLI user has permission to run the command
22758  	ShowLogfiles bool `json:"show_logfiles,omitempty"`
22759  
22760  	// If True then CLI user has permission to run the command
22761  	ShowMemory bool `json:"show_memory,omitempty"`
22762  
22763  	// If True then CLI user has permission to run the command
22764  	ShowNtp bool `json:"show_ntp,omitempty"`
22765  
22766  	// If True then CLI user has permission to run the command
22767  	ShowReportingUserCapabilities bool `json:"show_reporting_user_capabilities,omitempty"`
22768  
22769  	// If True then CLI user has permission to run the command
22770  	ShowRpzRecursiveOnly bool `json:"show_rpz_recursive_only,omitempty"`
22771  
22772  	// If True then CLI user has permission to run the command
22773  	ShowScheduled bool `json:"show_scheduled,omitempty"`
22774  
22775  	// If True then CLI user has permission to run the command
22776  	ShowSnmp bool `json:"show_snmp,omitempty"`
22777  
22778  	// If True then CLI user has permission to run the command
22779  	ShowStatus bool `json:"show_status,omitempty"`
22780  
22781  	// If True then CLI user has permission to run the command
22782  	ShowTechSupport bool `json:"show_tech_support,omitempty"`
22783  
22784  	// If True then CLI user has permission to run the command
22785  	ShowTemperature bool `json:"show_temperature,omitempty"`
22786  
22787  	// If True then CLI user has permission to run the command
22788  	ShowThresholdtrap bool `json:"show_thresholdtrap,omitempty"`
22789  
22790  	// If True then CLI user has permission to run the command
22791  	ShowUpgradeHistory bool `json:"show_upgrade_history,omitempty"`
22792  
22793  	// If True then CLI user has permission to run the command
22794  	ShowUptime bool `json:"show_uptime,omitempty"`
22795  
22796  	// If True then CLI user has permission to run the command
22797  	ShowVersion bool `json:"show_version,omitempty"`
22798  
22799  	// If True then CLI user has permission to run the command
22800  	ShowAnalyticsDatabaseDumps bool `json:"show_analytics_database_dumps,omitempty"`
22801  
22802  	// If True then CLI user has permission to run the command
22803  	ShowCores bool `json:"show_cores,omitempty"`
22804  
22805  	// If True then CLI user has permission to run the command
22806  	ShowCoresummary bool `json:"show_coresummary,omitempty"`
22807  
22808  	// If True then CLI user has permission to run the command
22809  	ShowCspThreatDb bool `json:"show_csp_threat_db,omitempty"`
22810  
22811  	// If True then CLI user has permission to run the command
22812  	ShowHsmGroup bool `json:"show_hsm_group,omitempty"`
22813  
22814  	// If True then CLI user has permission to run the command
22815  	ShowHsmInfo bool `json:"show_hsm_info,omitempty"`
22816  
22817  	// If True then CLI user has permission to run the command
22818  	ShowPmap bool `json:"show_pmap,omitempty"`
22819  
22820  	// If True then CLI user has permission to run the command
22821  	ShowProcess bool `json:"show_process,omitempty"`
22822  
22823  	// If True then CLI user has permission to run the command
22824  	ShowPstack bool `json:"show_pstack,omitempty"`
22825  
22826  	// If True then CLI user has permission to run the command
22827  	ShowSafenetSupportInfo bool `json:"show_safenet_support_info,omitempty"`
22828  
22829  	// If True then CLI user has permission to run the command
22830  	ShowWredStats bool `json:"show_wred_stats,omitempty"`
22831  
22832  	// If True then CLI user has permission to run the command
22833  	ShowWredStatus bool `json:"show_wred_status,omitempty"`
22834  
22835  	// If True then CLI user has permission to run the command
22836  	ShowNtpStratum bool `json:"show_ntp_stratum,omitempty"`
22837  
22838  	// If True then CLI user has permission to run the command
22839  	ShowPcDomain bool `json:"show_pc_domain,omitempty"`
22840  
22841  	// If True then CLI user has permission to run the command
22842  	ShowReportFrequency bool `json:"show_report_frequency,omitempty"`
22843  
22844  	// If True then enable all fields
22845  	EnableAll bool `json:"enable_all,omitempty"`
22846  
22847  	// If True then disable all fields
22848  	DisableAll bool `json:"disable_all,omitempty"`
22849  }
22850  
22851  // AdmingroupAdmintoplevelcommands represents Infoblox struct admingroup:admintoplevelcommands
22852  type AdmingroupAdmintoplevelcommands struct {
22853  	// If True then CLI user has permission to run the command
22854  	Ps bool `json:"ps,omitempty"`
22855  
22856  	// If True then CLI user has permission to run the command
22857  	Iostat bool `json:"iostat,omitempty"`
22858  
22859  	// If True then CLI user has permission to run the command
22860  	Netstat bool `json:"netstat,omitempty"`
22861  
22862  	// If True then CLI user has permission to run the command
22863  	Vmstat bool `json:"vmstat,omitempty"`
22864  
22865  	// If True then CLI user has permission to run the command
22866  	Tcpdump bool `json:"tcpdump,omitempty"`
22867  
22868  	// If True then CLI user has permission to run the command
22869  	Rndc bool `json:"rndc,omitempty"`
22870  
22871  	// If True then CLI user has permission to run the command
22872  	Sar bool `json:"sar,omitempty"`
22873  
22874  	// If True then CLI user has permission to run the command
22875  	Resilver bool `json:"resilver,omitempty"`
22876  
22877  	// If True then CLI user has permission to run the command
22878  	RestartProduct bool `json:"restart_product,omitempty"`
22879  
22880  	// If True then CLI user has permission to run the command
22881  	Scrape bool `json:"scrape,omitempty"`
22882  
22883  	// If True then CLI user has permission to run the command
22884  	SamlRestart bool `json:"saml_restart,omitempty"`
22885  
22886  	// If True then CLI user has permission to run the command
22887  	Synctime bool `json:"synctime,omitempty"`
22888  
22889  	// If True then enable all fields
22890  	EnableAll bool `json:"enable_all,omitempty"`
22891  
22892  	// If True then disable all fields
22893  	DisableAll bool `json:"disable_all,omitempty"`
22894  }
22895  
22896  // AdmingroupCloudsetcommands represents Infoblox struct admingroup:cloudsetcommands
22897  type AdmingroupCloudsetcommands struct {
22898  	// If True then CLI user has permission to run the command
22899  	SetCloudServicesPortalForceRefresh bool `json:"set_cloud_services_portal_force_refresh,omitempty"`
22900  
22901  	// If True then CLI user has permission to run the command
22902  	SetCloudServicesPortal bool `json:"set_cloud_services_portal,omitempty"`
22903  
22904  	// If True then enable all fields
22905  	EnableAll bool `json:"enable_all,omitempty"`
22906  
22907  	// If True then disable all fields
22908  	DisableAll bool `json:"disable_all,omitempty"`
22909  }
22910  
22911  // AdmingroupCloudshowcommands represents Infoblox struct admingroup:cloudshowcommands
22912  type AdmingroupCloudshowcommands struct {
22913  	// If True then CLI user has permission to run the command
22914  	ShowCloudServicesPortal bool `json:"show_cloud_services_portal,omitempty"`
22915  
22916  	// If True then enable all fields
22917  	EnableAll bool `json:"enable_all,omitempty"`
22918  
22919  	// If True then disable all fields
22920  	DisableAll bool `json:"disable_all,omitempty"`
22921  }
22922  
22923  // AdmingroupDatabasesetcommands represents Infoblox struct admingroup:databasesetcommands
22924  type AdmingroupDatabasesetcommands struct {
22925  	// If True then CLI user has permission to run the command
22926  	SetNamedMaxJournalSize bool `json:"set_named_max_journal_size,omitempty"`
22927  
22928  	// If True then CLI user has permission to run the command
22929  	SetTxnTrace bool `json:"set_txn_trace,omitempty"`
22930  
22931  	// If True then CLI user has permission to run the command
22932  	SetDatabaseTransfer bool `json:"set_database_transfer,omitempty"`
22933  
22934  	// If True then CLI user has permission to run the command
22935  	SetDbRollover bool `json:"set_db_rollover,omitempty"`
22936  
22937  	// If True then CLI user has permission to run the command
22938  	SetDbSnapshot bool `json:"set_db_snapshot,omitempty"`
22939  
22940  	// If True then CLI user has permission to run the command
22941  	SetDbsize bool `json:"set_dbsize,omitempty"`
22942  
22943  	// If True then CLI user has permission to run the command
22944  	SetDebugTools bool `json:"set_debug_tools,omitempty"`
22945  
22946  	// If True then CLI user has permission to run the command
22947  	SetCircTxnTrace bool `json:"set_circ_txn_trace,omitempty"`
22948  
22949  	// If True then enable all fields
22950  	EnableAll bool `json:"enable_all,omitempty"`
22951  
22952  	// If True then disable all fields
22953  	DisableAll bool `json:"disable_all,omitempty"`
22954  }
22955  
22956  // AdmingroupDatabaseshowcommands represents Infoblox struct admingroup:databaseshowcommands
22957  type AdmingroupDatabaseshowcommands struct {
22958  	// If True then CLI user has permission to run the command
22959  	ShowNamedMaxJournalSize bool `json:"show_named_max_journal_size,omitempty"`
22960  
22961  	// If True then CLI user has permission to run the command
22962  	ShowTxnTrace bool `json:"show_txn_trace,omitempty"`
22963  
22964  	// If True then CLI user has permission to run the command
22965  	ShowDatabaseTransferStatus bool `json:"show_database_transfer_status,omitempty"`
22966  
22967  	// If True then CLI user has permission to run the command
22968  	ShowBackup bool `json:"show_backup,omitempty"`
22969  
22970  	// If True then CLI user has permission to run the command
22971  	ShowDbPh bool `json:"show_db_ph,omitempty"`
22972  
22973  	// If True then CLI user has permission to run the command
22974  	ShowDbsize bool `json:"show_dbsize,omitempty"`
22975  
22976  	// If True then CLI user has permission to run the command
22977  	ShowIbdbstat bool `json:"show_ibdbstat,omitempty"`
22978  
22979  	// If True then enable all fields
22980  	EnableAll bool `json:"enable_all,omitempty"`
22981  
22982  	// If True then disable all fields
22983  	DisableAll bool `json:"disable_all,omitempty"`
22984  }
22985  
22986  // AdmingroupDhcpsetcommands represents Infoblox struct admingroup:dhcpsetcommands
22987  type AdmingroupDhcpsetcommands struct {
22988  	// If True then CLI user has permission to run the command
22989  	SetDhcpdRecvSockBufSize bool `json:"set_dhcpd_recv_sock_buf_size,omitempty"`
22990  
22991  	// If True then CLI user has permission to run the command
22992  	SetLogTxnId bool `json:"set_log_txn_id,omitempty"`
22993  
22994  	// If True then CLI user has permission to run the command
22995  	SetOverloadBootp bool `json:"set_overload_bootp,omitempty"`
22996  
22997  	// If True then CLI user has permission to run the command
22998  	SetRegenerateDhcpUpdaterKeys bool `json:"set_regenerate_dhcp_updater_keys,omitempty"`
22999  
23000  	// If True then enable all fields
23001  	EnableAll bool `json:"enable_all,omitempty"`
23002  
23003  	// If True then disable all fields
23004  	DisableAll bool `json:"disable_all,omitempty"`
23005  }
23006  
23007  // AdmingroupDhcpshowcommands represents Infoblox struct admingroup:dhcpshowcommands
23008  type AdmingroupDhcpshowcommands struct {
23009  	// If True then CLI user has permission to run the command
23010  	ShowDhcpGssTsig bool `json:"show_dhcp_gss_tsig,omitempty"`
23011  
23012  	// If True then CLI user has permission to run the command
23013  	ShowDhcpv6GssTsig bool `json:"show_dhcpv6_gss_tsig,omitempty"`
23014  
23015  	// If True then CLI user has permission to run the command
23016  	ShowDhcpdRecvSockBufSize bool `json:"show_dhcpd_recv_sock_buf_size,omitempty"`
23017  
23018  	// If True then CLI user has permission to run the command
23019  	ShowOverloadBootp bool `json:"show_overload_bootp,omitempty"`
23020  
23021  	// If True then CLI user has permission to run the command
23022  	ShowLogTxnId bool `json:"show_log_txn_id,omitempty"`
23023  
23024  	// If True then enable all fields
23025  	EnableAll bool `json:"enable_all,omitempty"`
23026  
23027  	// If True then disable all fields
23028  	DisableAll bool `json:"disable_all,omitempty"`
23029  }
23030  
23031  // AdmingroupDnssetcommands represents Infoblox struct admingroup:dnssetcommands
23032  type AdmingroupDnssetcommands struct {
23033  	// If True then CLI user has permission to run the command
23034  	SetDns bool `json:"set_dns,omitempty"`
23035  
23036  	// If True then CLI user has permission to run the command
23037  	SetDnsRrl bool `json:"set_dns_rrl,omitempty"`
23038  
23039  	// If True then CLI user has permission to run the command
23040  	SetEnableDnstap bool `json:"set_enable_dnstap,omitempty"`
23041  
23042  	// If True then CLI user has permission to run the command
23043  	SetEnableMatchRecursiveOnly bool `json:"set_enable_match_recursive_only,omitempty"`
23044  
23045  	// If True then CLI user has permission to run the command
23046  	SetExtraDnsNameValidations bool `json:"set_extra_dns_name_validations,omitempty"`
23047  
23048  	// If True then CLI user has permission to run the command
23049  	SetLogGuestLookups bool `json:"set_log_guest_lookups,omitempty"`
23050  
23051  	// If True then CLI user has permission to run the command
23052  	SetMaxRecursionDepth bool `json:"set_max_recursion_depth,omitempty"`
23053  
23054  	// If True then CLI user has permission to run the command
23055  	SetMaxRecursionQueries bool `json:"set_max_recursion_queries,omitempty"`
23056  
23057  	// If True then CLI user has permission to run the command
23058  	SetMonitor bool `json:"set_monitor,omitempty"`
23059  
23060  	// If True then CLI user has permission to run the command
23061  	SetMsDnsReportsSyncInterval bool `json:"set_ms_dns_reports_sync_interval,omitempty"`
23062  
23063  	// If True then CLI user has permission to run the command
23064  	SetMsStickyIp bool `json:"set_ms_sticky_ip,omitempty"`
23065  
23066  	// If True then CLI user has permission to run the command
23067  	SetRestartAnycastWithDnsRestart bool `json:"set_restart_anycast_with_dns_restart,omitempty"`
23068  
23069  	// If True then CLI user has permission to run the command
23070  	SetDnsAccel bool `json:"set_dns_accel,omitempty"`
23071  
23072  	// If True then CLI user has permission to run the command
23073  	SetDnsAccelDebug bool `json:"set_dns_accel_debug,omitempty"`
23074  
23075  	// If True then CLI user has permission to run the command
23076  	SetDnsAutoGen bool `json:"set_dns_auto_gen,omitempty"`
23077  
23078  	// If True then CLI user has permission to run the command
23079  	SetAllowQueryDomain bool `json:"set_allow_query_domain,omitempty"`
23080  
23081  	// If True then enable all fields
23082  	EnableAll bool `json:"enable_all,omitempty"`
23083  
23084  	// If True then disable all fields
23085  	DisableAll bool `json:"disable_all,omitempty"`
23086  }
23087  
23088  // AdmingroupDnsshowcommands represents Infoblox struct admingroup:dnsshowcommands
23089  type AdmingroupDnsshowcommands struct {
23090  	// If True then CLI user has permission to run the command
23091  	ShowLogGuestLookups bool `json:"show_log_guest_lookups,omitempty"`
23092  
23093  	// If True then CLI user has permission to run the command
23094  	ShowDnsGssTsig bool `json:"show_dns_gss_tsig,omitempty"`
23095  
23096  	// If True then CLI user has permission to run the command
23097  	ShowDns bool `json:"show_dns,omitempty"`
23098  
23099  	// If True then CLI user has permission to run the command
23100  	ShowDnstapStats bool `json:"show_dnstap_stats,omitempty"`
23101  
23102  	// If True then CLI user has permission to run the command
23103  	ShowDnstapStatus bool `json:"show_dnstap_status,omitempty"`
23104  
23105  	// If True then CLI user has permission to run the command
23106  	ShowDnsOverTlsConfig bool `json:"show_dns_over_tls_config,omitempty"`
23107  
23108  	// If True then CLI user has permission to run the command
23109  	ShowDnsOverTlsStatus bool `json:"show_dns_over_tls_status,omitempty"`
23110  
23111  	// If True then CLI user has permission to run the command
23112  	ShowDnsOverTlsStats bool `json:"show_dns_over_tls_stats,omitempty"`
23113  
23114  	// If True then CLI user has permission to run the command
23115  	ShowDohConfig bool `json:"show_doh_config,omitempty"`
23116  
23117  	// If True then CLI user has permission to run the command
23118  	ShowDohStatus bool `json:"show_doh_status,omitempty"`
23119  
23120  	// If True then CLI user has permission to run the command
23121  	ShowDohStats bool `json:"show_doh_stats,omitempty"`
23122  
23123  	// If True then CLI user has permission to run the command
23124  	ShowExtraDnsNameValidations bool `json:"show_extra_dns_name_validations,omitempty"`
23125  
23126  	// If True then CLI user has permission to run the command
23127  	ShowMsStickyIp bool `json:"show_ms_sticky_ip,omitempty"`
23128  
23129  	// If True then CLI user has permission to run the command
23130  	ShowDnsRrl bool `json:"show_dns_rrl,omitempty"`
23131  
23132  	// If True then CLI user has permission to run the command
23133  	ShowEnableMatchRecursiveOnly bool `json:"show_enable_match_recursive_only,omitempty"`
23134  
23135  	// If True then CLI user has permission to run the command
23136  	ShowMaxRecursionDepth bool `json:"show_max_recursion_depth,omitempty"`
23137  
23138  	// If True then CLI user has permission to run the command
23139  	ShowMaxRecursionQueries bool `json:"show_max_recursion_queries,omitempty"`
23140  
23141  	// If True then CLI user has permission to run the command
23142  	ShowMonitor bool `json:"show_monitor,omitempty"`
23143  
23144  	// If True then CLI user has permission to run the command
23145  	ShowQueryCapture bool `json:"show_query_capture,omitempty"`
23146  
23147  	// If True then CLI user has permission to run the command
23148  	ShowDtcEa bool `json:"show_dtc_ea,omitempty"`
23149  
23150  	// If True then CLI user has permission to run the command
23151  	ShowDtcGeoip bool `json:"show_dtc_geoip,omitempty"`
23152  
23153  	// If True then CLI user has permission to run the command
23154  	ShowRestartAnycastWithDnsRestart bool `json:"show_restart_anycast_with_dns_restart,omitempty"`
23155  
23156  	// If True then CLI user has permission to run the command
23157  	ShowDnsAccel bool `json:"show_dns_accel,omitempty"`
23158  
23159  	// If True then CLI user has permission to run the command
23160  	ShowDnsAccelDebug bool `json:"show_dns_accel_debug,omitempty"`
23161  
23162  	// If True then CLI user has permission to run the command
23163  	ShowAllowQueryDomain bool `json:"show_allow_query_domain,omitempty"`
23164  
23165  	// If True then CLI user has permission to run the command
23166  	ShowAllowQueryDomainViews bool `json:"show_allow_query_domain_views,omitempty"`
23167  
23168  	// If True then enable all fields
23169  	EnableAll bool `json:"enable_all,omitempty"`
23170  
23171  	// If True then disable all fields
23172  	DisableAll bool `json:"disable_all,omitempty"`
23173  }
23174  
23175  // AdmingroupDnstoplevelcommands represents Infoblox struct admingroup:dnstoplevelcommands
23176  type AdmingroupDnstoplevelcommands struct {
23177  	// If True then CLI user has permission to run the command
23178  	DdnsAdd bool `json:"ddns_add,omitempty"`
23179  
23180  	// If True then CLI user has permission to run the command
23181  	DdnsDelete bool `json:"ddns_delete,omitempty"`
23182  
23183  	// If True then CLI user has permission to run the command
23184  	Delete bool `json:"delete,omitempty"`
23185  
23186  	// If True then CLI user has permission to run the command
23187  	DnsARecordDelete bool `json:"dns_a_record_delete,omitempty"`
23188  
23189  	// If True then enable all fields
23190  	EnableAll bool `json:"enable_all,omitempty"`
23191  
23192  	// If True then disable all fields
23193  	DisableAll bool `json:"disable_all,omitempty"`
23194  }
23195  
23196  // AdmingroupDockersetcommands represents Infoblox struct admingroup:dockersetcommands
23197  type AdmingroupDockersetcommands struct {
23198  	// If True then CLI user has permission to run the command
23199  	SetDockerBridge bool `json:"set_docker_bridge,omitempty"`
23200  
23201  	// If True then enable all fields
23202  	EnableAll bool `json:"enable_all,omitempty"`
23203  
23204  	// If True then disable all fields
23205  	DisableAll bool `json:"disable_all,omitempty"`
23206  }
23207  
23208  // AdmingroupDockershowcommands represents Infoblox struct admingroup:dockershowcommands
23209  type AdmingroupDockershowcommands struct {
23210  	// If True then CLI user has permission to run the command
23211  	ShowDockerBridge bool `json:"show_docker_bridge,omitempty"`
23212  
23213  	// If True then enable all fields
23214  	EnableAll bool `json:"enable_all,omitempty"`
23215  
23216  	// If True then disable all fields
23217  	DisableAll bool `json:"disable_all,omitempty"`
23218  }
23219  
23220  // AdmingroupGridsetcommands represents Infoblox struct admingroup:gridsetcommands
23221  type AdmingroupGridsetcommands struct {
23222  	// If True then CLI user has permission to run the command
23223  	SetDefaultRevertWindow bool `json:"set_default_revert_window,omitempty"`
23224  
23225  	// If True then CLI user has permission to run the command
23226  	SetDscp bool `json:"set_dscp,omitempty"`
23227  
23228  	// If True then CLI user has permission to run the command
23229  	SetMembership bool `json:"set_membership,omitempty"`
23230  
23231  	// If True then CLI user has permission to run the command
23232  	SetNogrid bool `json:"set_nogrid,omitempty"`
23233  
23234  	// If True then CLI user has permission to run the command
23235  	SetNomastergrid bool `json:"set_nomastergrid,omitempty"`
23236  
23237  	// If True then CLI user has permission to run the command
23238  	SetPromoteMaster bool `json:"set_promote_master,omitempty"`
23239  
23240  	// If True then CLI user has permission to run the command
23241  	SetRevertGrid bool `json:"set_revert_grid,omitempty"`
23242  
23243  	// If True then CLI user has permission to run the command
23244  	SetToken bool `json:"set_token,omitempty"`
23245  
23246  	// If True then CLI user has permission to run the command
23247  	SetTestPromoteMaster bool `json:"set_test_promote_master,omitempty"`
23248  
23249  	// If True then enable all fields
23250  	EnableAll bool `json:"enable_all,omitempty"`
23251  
23252  	// If True then disable all fields
23253  	DisableAll bool `json:"disable_all,omitempty"`
23254  }
23255  
23256  // AdmingroupGridshowcommands represents Infoblox struct admingroup:gridshowcommands
23257  type AdmingroupGridshowcommands struct {
23258  	// If True then CLI user has permission to run the command
23259  	ShowTestPromoteMaster bool `json:"show_test_promote_master,omitempty"`
23260  
23261  	// If True then CLI user has permission to run the command
23262  	ShowToken bool `json:"show_token,omitempty"`
23263  
23264  	// If True then enable all fields
23265  	EnableAll bool `json:"enable_all,omitempty"`
23266  
23267  	// If True then disable all fields
23268  	DisableAll bool `json:"disable_all,omitempty"`
23269  
23270  	// If True then CLI user has permission to run the command
23271  	ShowDscp bool `json:"show_dscp,omitempty"`
23272  }
23273  
23274  // AdmingroupLicensingsetcommands represents Infoblox struct admingroup:licensingsetcommands
23275  type AdmingroupLicensingsetcommands struct {
23276  	// If True then CLI user has permission to run the command
23277  	SetLicense bool `json:"set_license,omitempty"`
23278  
23279  	// If True then CLI user has permission to run the command
23280  	SetReportingResetLicense bool `json:"set_reporting_reset_license,omitempty"`
23281  
23282  	// If True then CLI user has permission to run the command
23283  	SetTempLicense bool `json:"set_temp_license,omitempty"`
23284  
23285  	// If True then enable all fields
23286  	EnableAll bool `json:"enable_all,omitempty"`
23287  
23288  	// If True then disable all fields
23289  	DisableAll bool `json:"disable_all,omitempty"`
23290  }
23291  
23292  // AdmingroupLicensingshowcommands represents Infoblox struct admingroup:licensingshowcommands
23293  type AdmingroupLicensingshowcommands struct {
23294  	// If True then CLI user has permission to run the command
23295  	ShowLicense bool `json:"show_license,omitempty"`
23296  
23297  	// If True then CLI user has permission to run the command
23298  	ShowLicensePoolContainer bool `json:"show_license_pool_container,omitempty"`
23299  
23300  	// If True then CLI user has permission to run the command
23301  	ShowLicenseUid bool `json:"show_license_uid,omitempty"`
23302  
23303  	// If True then enable all fields
23304  	EnableAll bool `json:"enable_all,omitempty"`
23305  
23306  	// If True then disable all fields
23307  	DisableAll bool `json:"disable_all,omitempty"`
23308  }
23309  
23310  // AdmingroupLockoutsetting represents Infoblox struct admingroup:lockoutsetting
23311  type AdmingroupLockoutsetting struct {
23312  	// Enable/disable sequential failed login attempts lockout for local users
23313  	EnableSequentialFailedLoginAttemptsLockout bool `json:"enable_sequential_failed_login_attempts_lockout,omitempty"`
23314  
23315  	// The number of failed login attempts
23316  	SequentialAttempts uint32 `json:"sequential_attempts,omitempty"`
23317  
23318  	// Time period the account remains locked after sequential failed login attempt
23319  	// lockout.
23320  	FailedLockoutDuration uint32 `json:"failed_lockout_duration,omitempty"`
23321  
23322  	// Never unlock option is also provided and if set then user account is locked
23323  	// forever and only super user can unlock this account
23324  	NeverUnlockUser bool `json:"never_unlock_user,omitempty"`
23325  }
23326  
23327  // AdmingroupMachinecontroltoplevelcommands represents Infoblox struct admingroup:machinecontroltoplevelcommands
23328  type AdmingroupMachinecontroltoplevelcommands struct {
23329  	// If True then CLI user has permission to run the command
23330  	Reboot bool `json:"reboot,omitempty"`
23331  
23332  	// If True then CLI user has permission to run the command
23333  	Reset bool `json:"reset,omitempty"`
23334  
23335  	// If True then CLI user has permission to run the command
23336  	Shutdown bool `json:"shutdown,omitempty"`
23337  
23338  	// If True then CLI user has permission to run the command
23339  	Restart bool `json:"restart,omitempty"`
23340  
23341  	// If True then enable all fields
23342  	EnableAll bool `json:"enable_all,omitempty"`
23343  
23344  	// If True then disable all fields
23345  	DisableAll bool `json:"disable_all,omitempty"`
23346  }
23347  
23348  // AdmingroupNetworkingsetcommands represents Infoblox struct admingroup:networkingsetcommands
23349  type AdmingroupNetworkingsetcommands struct {
23350  	// If True then CLI user has permission to run the command
23351  	SetConnectionLimit bool `json:"set_connection_limit,omitempty"`
23352  
23353  	// If True then CLI user has permission to run the command
23354  	SetDefaultRoute bool `json:"set_default_route,omitempty"`
23355  
23356  	// If True then CLI user has permission to run the command
23357  	SetInterface bool `json:"set_interface,omitempty"`
23358  
23359  	// If True then CLI user has permission to run the command
23360  	SetIpRateLimit bool `json:"set_ip_rate_limit,omitempty"`
23361  
23362  	// If True then CLI user has permission to run the command
23363  	SetIpv6DisableOnDad bool `json:"set_ipv6_disable_on_dad,omitempty"`
23364  
23365  	// If True then CLI user has permission to run the command
23366  	SetIpv6Neighbor bool `json:"set_ipv6_neighbor,omitempty"`
23367  
23368  	// If True then CLI user has permission to run the command
23369  	SetIpv6Ospf bool `json:"set_ipv6_ospf,omitempty"`
23370  
23371  	// If True then CLI user has permission to run the command
23372  	SetIpv6Status bool `json:"set_ipv6_status,omitempty"`
23373  
23374  	// If True then CLI user has permission to run the command
23375  	SetLom bool `json:"set_lom,omitempty"`
23376  
23377  	// If True then CLI user has permission to run the command
23378  	SetMldVersion1 bool `json:"set_mld_version_1,omitempty"`
23379  
23380  	// If True then CLI user has permission to run the command
23381  	SetNamedRecvSockBufSize bool `json:"set_named_recv_sock_buf_size,omitempty"`
23382  
23383  	// If True then CLI user has permission to run the command
23384  	SetNamedTcpClientsLimit bool `json:"set_named_tcp_clients_limit,omitempty"`
23385  
23386  	// If True then CLI user has permission to run the command
23387  	SetNetwork bool `json:"set_network,omitempty"`
23388  
23389  	// If True then CLI user has permission to run the command
23390  	SetOspf bool `json:"set_ospf,omitempty"`
23391  
23392  	// If True then CLI user has permission to run the command
23393  	SetPrompt bool `json:"set_prompt,omitempty"`
23394  
23395  	// If True then CLI user has permission to run the command
23396  	SetRemoteConsole bool `json:"set_remote_console,omitempty"`
23397  
23398  	// If True then CLI user has permission to run the command
23399  	SetStaticRoute bool `json:"set_static_route,omitempty"`
23400  
23401  	// If True then CLI user has permission to run the command
23402  	SetTcpTimestamps bool `json:"set_tcp_timestamps,omitempty"`
23403  
23404  	// If True then CLI user has permission to run the command
23405  	SetTrafficCapture bool `json:"set_traffic_capture,omitempty"`
23406  
23407  	// If True then CLI user has permission to run the command
23408  	SetWinsForwarding bool `json:"set_wins_forwarding,omitempty"`
23409  
23410  	// If True then enable all fields
23411  	EnableAll bool `json:"enable_all,omitempty"`
23412  
23413  	// If True then disable all fields
23414  	DisableAll bool `json:"disable_all,omitempty"`
23415  }
23416  
23417  // AdmingroupNetworkingshowcommands represents Infoblox struct admingroup:networkingshowcommands
23418  type AdmingroupNetworkingshowcommands struct {
23419  	// If True then CLI user has permission to run the command
23420  	ShowConnectionLimit bool `json:"show_connection_limit,omitempty"`
23421  
23422  	// If True then CLI user has permission to run the command
23423  	ShowConnections bool `json:"show_connections,omitempty"`
23424  
23425  	// If True then CLI user has permission to run the command
23426  	ShowInterface bool `json:"show_interface,omitempty"`
23427  
23428  	// If True then CLI user has permission to run the command
23429  	ShowIpRateLimit bool `json:"show_ip_rate_limit,omitempty"`
23430  
23431  	// If True then CLI user has permission to run the command
23432  	ShowIpv6Bgp bool `json:"show_ipv6_bgp,omitempty"`
23433  
23434  	// If True then CLI user has permission to run the command
23435  	ShowIpv6DisableOnDad bool `json:"show_ipv6_disable_on_dad,omitempty"`
23436  
23437  	// If True then CLI user has permission to run the command
23438  	ShowIpv6Neighbor bool `json:"show_ipv6_neighbor,omitempty"`
23439  
23440  	// If True then CLI user has permission to run the command
23441  	ShowIpv6Ospf bool `json:"show_ipv6_ospf,omitempty"`
23442  
23443  	// If True then CLI user has permission to run the command
23444  	ShowLom bool `json:"show_lom,omitempty"`
23445  
23446  	// If True then CLI user has permission to run the command
23447  	ShowMldVersion bool `json:"show_mld_version,omitempty"`
23448  
23449  	// If True then CLI user has permission to run the command
23450  	ShowNamedRecvSockBufSize bool `json:"show_named_recv_sock_buf_size,omitempty"`
23451  
23452  	// If True then CLI user has permission to run the command
23453  	ShowNamedTcpClientsLimit bool `json:"show_named_tcp_clients_limit,omitempty"`
23454  
23455  	// If True then CLI user has permission to run the command
23456  	ShowNetwork bool `json:"show_network,omitempty"`
23457  
23458  	// If True then CLI user has permission to run the command
23459  	ShowOspf bool `json:"show_ospf,omitempty"`
23460  
23461  	// If True then CLI user has permission to run the command
23462  	ShowRemoteConsole bool `json:"show_remote_console,omitempty"`
23463  
23464  	// If True then CLI user has permission to run the command
23465  	ShowRoutes bool `json:"show_routes,omitempty"`
23466  
23467  	// If True then CLI user has permission to run the command
23468  	ShowStaticRoutes bool `json:"show_static_routes,omitempty"`
23469  
23470  	// If True then CLI user has permission to run the command
23471  	ShowTcpTimestamps bool `json:"show_tcp_timestamps,omitempty"`
23472  
23473  	// If True then CLI user has permission to run the command
23474  	ShowTrafficCaptureStatus bool `json:"show_traffic_capture_status,omitempty"`
23475  
23476  	// If True then CLI user has permission to run the command
23477  	ShowWinsForwarding bool `json:"show_wins_forwarding,omitempty"`
23478  
23479  	// If True then CLI user has permission to run the command
23480  	ShowDefaultRoute bool `json:"show_default_route,omitempty"`
23481  
23482  	// If True then CLI user has permission to run the command
23483  	ShowIproute bool `json:"show_iproute,omitempty"`
23484  
23485  	// If True then CLI user has permission to run the command
23486  	ShowIprule bool `json:"show_iprule,omitempty"`
23487  
23488  	// If True then CLI user has permission to run the command
23489  	ShowIptables bool `json:"show_iptables,omitempty"`
23490  
23491  	// If True then CLI user has permission to run the command
23492  	ShowMtuSize bool `json:"show_mtu_size,omitempty"`
23493  
23494  	// If True then CLI user has permission to run the command
23495  	ShowNetworkConnectivity bool `json:"show_network_connectivity,omitempty"`
23496  
23497  	// If True then CLI user has permission to run the command
23498  	ShowTrafficfiles bool `json:"show_trafficfiles,omitempty"`
23499  
23500  	// If True then CLI user has permission to run the command
23501  	ShowInterfaceStats bool `json:"show_interface_stats,omitempty"`
23502  
23503  	// If True then enable all fields
23504  	EnableAll bool `json:"enable_all,omitempty"`
23505  
23506  	// If True then disable all fields
23507  	DisableAll bool `json:"disable_all,omitempty"`
23508  }
23509  
23510  // AdmingroupPasswordsetting represents Infoblox struct admingroup:passwordsetting
23511  type AdmingroupPasswordsetting struct {
23512  	// Whether password expiry enabled or not.
23513  	ExpireEnable bool `json:"expire_enable,omitempty"`
23514  
23515  	// The days that password must expire
23516  	ExpireDays uint32 `json:"expire_days,omitempty"`
23517  
23518  	// Days to show up reminder prior to expiration
23519  	ReminderDays uint32 `json:"reminder_days,omitempty"`
23520  }
23521  
23522  // AdmingroupSamlsetting represents Infoblox struct admingroup:samlsetting
23523  type AdmingroupSamlsetting struct {
23524  	// Whether or not auto create user.
23525  	AutoCreateUser bool `json:"auto_create_user,omitempty"`
23526  
23527  	// Whether or not persist auto created user after logout.
23528  	PersistAutoCreatedUser bool `json:"persist_auto_created_user,omitempty"`
23529  }
23530  
23531  // AdmingroupSecuritysetcommands represents Infoblox struct admingroup:securitysetcommands
23532  type AdmingroupSecuritysetcommands struct {
23533  	// If True then CLI user has permission to run the command
23534  	SetAdp bool `json:"set_adp,omitempty"`
23535  
23536  	// If True then CLI user has permission to run the command
23537  	SetApacheHttpsCert bool `json:"set_apache_https_cert,omitempty"`
23538  
23539  	// If True then CLI user has permission to run the command
23540  	SetCcMode bool `json:"set_cc_mode,omitempty"`
23541  
23542  	// If True then CLI user has permission to run the command
23543  	SetCertificateAuthAdmins bool `json:"set_certificate_auth_admins,omitempty"`
23544  
23545  	// If True then CLI user has permission to run the command
23546  	SetCertificateAuthServices bool `json:"set_certificate_auth_services,omitempty"`
23547  
23548  	// If True then CLI user has permission to run the command
23549  	SetCheckAuthNs bool `json:"set_check_auth_ns,omitempty"`
23550  
23551  	// If True then CLI user has permission to run the command
23552  	SetCheckSslCertificate bool `json:"set_check_ssl_certificate,omitempty"`
23553  
23554  	// If True then CLI user has permission to run the command
23555  	SetDisableHttpsCertRegeneration bool `json:"set_disable_https_cert_regeneration,omitempty"`
23556  
23557  	// If True then CLI user has permission to run the command
23558  	SetFipsMode bool `json:"set_fips_mode,omitempty"`
23559  
23560  	// If True then CLI user has permission to run the command
23561  	SetReportingCert bool `json:"set_reporting_cert,omitempty"`
23562  
23563  	// If True then CLI user has permission to run the command
23564  	SetSecurity bool `json:"set_security,omitempty"`
23565  
23566  	// If True then CLI user has permission to run the command
23567  	SetSessionTimeout bool `json:"set_session_timeout,omitempty"`
23568  
23569  	// If True then CLI user has permission to run the command
23570  	SetSubscriberSecureData bool `json:"set_subscriber_secure_data,omitempty"`
23571  
23572  	// If True then CLI user has permission to run the command
23573  	SetSupportAccess bool `json:"set_support_access,omitempty"`
23574  
23575  	// If True then CLI user has permission to run the command
23576  	SetSupportInstall bool `json:"set_support_install,omitempty"`
23577  
23578  	// If True then CLI user has permission to run the command
23579  	SetAdpDebug bool `json:"set_adp_debug,omitempty"`
23580  
23581  	// If True then CLI user has permission to run the command
23582  	SetSupportTimeout bool `json:"set_support_timeout,omitempty"`
23583  
23584  	// If True then enable all fields
23585  	EnableAll bool `json:"enable_all,omitempty"`
23586  
23587  	// If True then disable all fields
23588  	DisableAll bool `json:"disable_all,omitempty"`
23589  }
23590  
23591  // AdmingroupSecurityshowcommands represents Infoblox struct admingroup:securityshowcommands
23592  type AdmingroupSecurityshowcommands struct {
23593  	// If True then CLI user has permission to run the command
23594  	ShowFipsMode bool `json:"show_fips_mode,omitempty"`
23595  
23596  	// If True then CLI user has permission to run the command
23597  	ShowCcMode bool `json:"show_cc_mode,omitempty"`
23598  
23599  	// If True then CLI user has permission to run the command
23600  	ShowCertificateAuthAdmins bool `json:"show_certificate_auth_admins,omitempty"`
23601  
23602  	// If True then CLI user has permission to run the command
23603  	ShowCertificateAuthServices bool `json:"show_certificate_auth_services,omitempty"`
23604  
23605  	// If True then CLI user has permission to run the command
23606  	ShowCheckAuthNs bool `json:"show_check_auth_ns,omitempty"`
23607  
23608  	// If True then CLI user has permission to run the command
23609  	ShowCheckSslCertificate bool `json:"show_check_ssl_certificate,omitempty"`
23610  
23611  	// If True then CLI user has permission to run the command
23612  	ShowSecurity bool `json:"show_security,omitempty"`
23613  
23614  	// If True then CLI user has permission to run the command
23615  	ShowSessionTimeout bool `json:"show_session_timeout,omitempty"`
23616  
23617  	// If True then CLI user has permission to run the command
23618  	ShowSubscriberSecureData bool `json:"show_subscriber_secure_data,omitempty"`
23619  
23620  	// If True then CLI user has permission to run the command
23621  	ShowSupportAccess bool `json:"show_support_access,omitempty"`
23622  
23623  	// If True then CLI user has permission to run the command
23624  	ShowVpnCertDates bool `json:"show_vpn_cert_dates,omitempty"`
23625  
23626  	// If True then CLI user has permission to run the command
23627  	ShowAdp bool `json:"show_adp,omitempty"`
23628  
23629  	// If True then CLI user has permission to run the command
23630  	ShowAdpDebug bool `json:"show_adp_debug,omitempty"`
23631  
23632  	// If True then CLI user has permission to run the command
23633  	ShowSupportTimeout bool `json:"show_support_timeout,omitempty"`
23634  
23635  	// If True then enable all fields
23636  	EnableAll bool `json:"enable_all,omitempty"`
23637  
23638  	// If True then disable all fields
23639  	DisableAll bool `json:"disable_all,omitempty"`
23640  }
23641  
23642  // AdmingroupTroubleshootingtoplevelcommands represents Infoblox struct admingroup:troubleshootingtoplevelcommands
23643  type AdmingroupTroubleshootingtoplevelcommands struct {
23644  	// If True then CLI user has permission to run the command
23645  	Ping bool `json:"ping,omitempty"`
23646  
23647  	// If True then CLI user has permission to run the command
23648  	Ping6 bool `json:"ping6,omitempty"`
23649  
23650  	// If True then CLI user has permission to run the command
23651  	Strace bool `json:"strace,omitempty"`
23652  
23653  	// If True then CLI user has permission to run the command
23654  	Traceroute bool `json:"traceroute,omitempty"`
23655  
23656  	// If True then CLI user has permission to run the command
23657  	TrafficCapture bool `json:"traffic_capture,omitempty"`
23658  
23659  	// If True then CLI user has permission to run the command
23660  	Dig bool `json:"dig,omitempty"`
23661  
23662  	// If True then CLI user has permission to run the command
23663  	Rotate bool `json:"rotate,omitempty"`
23664  
23665  	// If True then CLI user has permission to run the command
23666  	Snmpwalk bool `json:"snmpwalk,omitempty"`
23667  
23668  	// If True then CLI user has permission to run the command
23669  	Snmpget bool `json:"snmpget,omitempty"`
23670  
23671  	// If True then CLI user has permission to run the command
23672  	Console bool `json:"console,omitempty"`
23673  
23674  	// If True then CLI user has permission to run the command
23675  	Tracepath bool `json:"tracepath,omitempty"`
23676  
23677  	// If True then enable all fields
23678  	EnableAll bool `json:"enable_all,omitempty"`
23679  
23680  	// If True then disable all fields
23681  	DisableAll bool `json:"disable_all,omitempty"`
23682  }
23683  
23684  // Adsites represents Infoblox struct adsites
23685  type Adsites struct {
23686  	// Flag to override MS Server default IP site link
23687  	UseDefaultIpSiteLink bool `json:"use_default_ip_site_link,omitempty"`
23688  
23689  	// Default IP site link for sites created from NIOS
23690  	DefaultIpSiteLink string `json:"default_ip_site_link,omitempty"`
23691  
23692  	// Flag to override login name and password from the MS Server
23693  	UseLogin bool `json:"use_login,omitempty"`
23694  
23695  	// Microsoft Server login name, with optional
23696  	LoginName string `json:"login_name,omitempty"`
23697  
23698  	// Microsoft Server login password.
23699  	LoginPassword string `json:"login_password,omitempty"`
23700  
23701  	// Flag to override synchronization interval from the MS Server
23702  	UseSynchronizationMinDelay bool `json:"use_synchronization_min_delay,omitempty"`
23703  
23704  	// Minimum number of minutes between two synchronizations
23705  	SynchronizationMinDelay uint32 `json:"synchronization_min_delay,omitempty"`
23706  
23707  	// Flag to override cluster LDAP timeoutMS Server
23708  	UseLdapTimeout bool `json:"use_ldap_timeout,omitempty"`
23709  
23710  	// Timeout in seconds for LDAP connections for this MS Server
23711  	LdapTimeout uint32 `json:"ldap_timeout,omitempty"`
23712  
23713  	// TCP port for LDAP connections for this
23714  	LdapAuthPort uint32 `json:"ldap_auth_port,omitempty"`
23715  
23716  	// Encryption for LDAP connections for this MS Server
23717  	LdapEncryption string `json:"ldap_encryption,omitempty"`
23718  
23719  	// Controls whether the Sites of this MS Server are to be synchronized by the
23720  	// assigned managing member or not
23721  	Managed bool `json:"managed,omitempty"`
23722  
23723  	// Enable/disable read-only synchronization of Sites for this Active Directory
23724  	// domain
23725  	ReadOnly bool `json:"read_only,omitempty"`
23726  
23727  	// Timestamp of the last synchronization attempt
23728  	LastSyncTs *UnixTime `json:"last_sync_ts,omitempty"`
23729  
23730  	// Status of the last synchronization attempt
23731  	LastSyncStatus string `json:"last_sync_status,omitempty"`
23732  
23733  	// The detailed status of the last synchronization attempt.
23734  	LastSyncDetail string `json:"last_sync_detail,omitempty"`
23735  
23736  	// Flag indicating if the server supports IPv6
23737  	SupportsIpv6 bool `json:"supports_ipv6,omitempty"`
23738  }
23739  
23740  // Awsrte53recordinfo represents Infoblox struct awsrte53recordinfo
23741  type Awsrte53recordinfo struct {
23742  	// DNS name of the alias target.
23743  	AliasTargetDnsName string `json:"alias_target_dns_name,omitempty"`
23744  
23745  	// Hosted zone ID of the alias target.
23746  	AliasTargetHostedZoneId string `json:"alias_target_hosted_zone_id,omitempty"`
23747  
23748  	// Indicates if Amazon Route 53 evaluates the health of the alias target.
23749  	AliasTargetEvaluateTargetHealth bool `json:"alias_target_evaluate_target_health,omitempty"`
23750  
23751  	// Indicates whether this is the primary or secondary resource record for
23752  	// Amazon Route 53 failover routing.
23753  	Failover string `json:"failover,omitempty"`
23754  
23755  	// Continent code for Amazon Route 53 geolocation routing.
23756  	GeolocationContinentCode string `json:"geolocation_continent_code,omitempty"`
23757  
23758  	// Country code for Amazon Route 53 geolocation routing.
23759  	GeolocationCountryCode string `json:"geolocation_country_code,omitempty"`
23760  
23761  	// Subdivision code for Amazon Route 53 geolocation routing.
23762  	GeolocationSubdivisionCode string `json:"geolocation_subdivision_code,omitempty"`
23763  
23764  	// ID of the health check that Amazon Route 53 performs for this resource
23765  	// record.
23766  	HealthCheckId string `json:"health_check_id,omitempty"`
23767  
23768  	// Amazon EC2 region where this resource record resides for latency routing.
23769  	Region string `json:"region,omitempty"`
23770  
23771  	// An identifier that differentiates records with the same DNS name and type
23772  	// for weighted, latency, geolocation, and failover routing.
23773  	SetIdentifier string `json:"set_identifier,omitempty"`
23774  
23775  	// Type of Amazon Route 53 resource record.
23776  	Type string `json:"type,omitempty"`
23777  
23778  	// Value that determines the portion of traffic for this record in weighted
23779  	// routing. The range is from 0 to 255.
23780  	Weight uint32 `json:"weight,omitempty"`
23781  }
23782  
23783  // Awsrte53task represents Infoblox struct awsrte53task
23784  type Awsrte53task struct {
23785  	// The name of this task.
23786  	Name string `json:"name,omitempty"`
23787  
23788  	// Indicates if the task is enabled or disabled.
23789  	Disabled bool `json:"disabled,omitempty"`
23790  
23791  	// Indicate the sync status of this task.
23792  	State string `json:"state,omitempty"`
23793  
23794  	// State message for the task.
23795  	StateMsg string `json:"state_msg,omitempty"`
23796  
23797  	// Filter for this task.
23798  	Filter string `json:"filter,omitempty"`
23799  
23800  	// Periodic interval for this task.
23801  	ScheduleInterval uint32 `json:"schedule_interval,omitempty"`
23802  
23803  	// Units for the schedule interval.
23804  	ScheduleUnits string `json:"schedule_units,omitempty"`
23805  
23806  	// Reference to associated AWS user whose credentials are to be used for this
23807  	// task.
23808  	AwsUser string `json:"aws_user,omitempty"`
23809  
23810  	// The timestamp when the last state was logged.
23811  	StatusTimestamp *UnixTime `json:"status_timestamp,omitempty"`
23812  
23813  	// The timestamp when the task was started last.
23814  	LastRun *UnixTime `json:"last_run,omitempty"`
23815  
23816  	// Indicates whether public zones are synchronized.
23817  	SyncPublicZones bool `json:"sync_public_zones,omitempty"`
23818  
23819  	// Indicates whether private zones are synchronized.
23820  	SyncPrivateZones bool `json:"sync_private_zones,omitempty"`
23821  
23822  	// The number of zones synchronized by this task.
23823  	ZoneCount uint32 `json:"zone_count,omitempty"`
23824  
23825  	// Credentials type used for connecting to the cloud management platform.
23826  	CredentialsType string `json:"credentials_type,omitempty"`
23827  }
23828  
23829  // Awsrte53zoneinfo represents Infoblox struct awsrte53zoneinfo
23830  type Awsrte53zoneinfo struct {
23831  	// List of AWS VPC strings that are associated with this zone.
23832  	AssociatedVpcs []string `json:"associated_vpcs,omitempty"`
23833  
23834  	// User specified caller reference when zone was created.
23835  	CallerReference string `json:"caller_reference,omitempty"`
23836  
23837  	// ID of delegation set associated with this zone.
23838  	DelegationSetId string `json:"delegation_set_id,omitempty"`
23839  
23840  	// AWS route 53 assigned ID for this zone.
23841  	HostedZoneId string `json:"hosted_zone_id,omitempty"`
23842  
23843  	// List of AWS name servers that are authoritative for this domain name.
23844  	NameServers []string `json:"name_servers,omitempty"`
23845  
23846  	// Number of resource record sets in the hosted zone.
23847  	RecordSetCount uint32 `json:"record_set_count,omitempty"`
23848  
23849  	// Indicates whether private or public zone.
23850  	Type string `json:"type,omitempty"`
23851  }
23852  
23853  // Bgpas represents Infoblox struct bgpas
23854  type Bgpas struct {
23855  	// The number of this autonomous system.
23856  	As uint32 `json:"as,omitempty"`
23857  
23858  	// The AS keepalive timer (in seconds). The valid value is from 1 to 21845.
23859  	Keepalive uint32 `json:"keepalive,omitempty"`
23860  
23861  	// The AS holddown timer (in seconds). The valid value is from 3 to 65535.
23862  	Holddown uint32 `json:"holddown,omitempty"`
23863  
23864  	// The BGP neighbors for this AS.
23865  	Neighbors []*Bgpneighbor `json:"neighbors,omitempty"`
23866  
23867  	// Determines if link detection on the interface is enabled or not.
23868  	LinkDetect bool `json:"link_detect,omitempty"`
23869  }
23870  
23871  // Bgpneighbor represents Infoblox struct bgpneighbor
23872  type Bgpneighbor struct {
23873  	// The interface that sends BGP advertisement information.
23874  	Interface string `json:"interface,omitempty"`
23875  
23876  	// The IP address of the BGP neighbor.
23877  	NeighborIp string `json:"neighbor_ip,omitempty"`
23878  
23879  	// The remote AS number of the BGP neighbor.
23880  	RemoteAs uint32 `json:"remote_as,omitempty"`
23881  
23882  	// The BGP authentication mode.
23883  	AuthenticationMode string `json:"authentication_mode,omitempty"`
23884  
23885  	// The password for a BGP neighbor. This is required only if
23886  	// authentication_mode is set to "MD5". When the password is entered, the value
23887  	// is preserved even if authentication_mode is changed to "NONE". This is a
23888  	// write-only attribute.
23889  	BgpNeighborPass string `json:"bgp_neighbor_pass,omitempty"`
23890  
23891  	// User comments for this BGP neighbor.
23892  	Comment string `json:"comment,omitempty"`
23893  
23894  	// Determines if the multi-hop support is enabled or not.
23895  	Multihop bool `json:"multihop,omitempty"`
23896  
23897  	// The Time To Live (TTL) value for multi-hop. Valid values are between 1 and
23898  	// 255.
23899  	MultihopTtl uint32 `json:"multihop_ttl,omitempty"`
23900  
23901  	// The BFD template name.
23902  	BfdTemplate string `json:"bfd_template,omitempty"`
23903  
23904  	// Determines if BFD is enabled or not.
23905  	EnableBfd bool `json:"enable_bfd,omitempty"`
23906  }
23907  
23908  // CapacityreportObjectcount represents Infoblox struct capacityreport:objectcount
23909  type CapacityreportObjectcount struct {
23910  	// Object type name.
23911  	TypeName string `json:"type_name,omitempty"`
23912  
23913  	// Number of object type instances created.
23914  	Count uint32 `json:"count,omitempty"`
23915  }
23916  
23917  // CaptiveportalFile represents Infoblox struct captiveportal:file
23918  type CaptiveportalFile struct {
23919  	// The name of the uploaded file.
23920  	Name string `json:"name,omitempty"`
23921  
23922  	// The type of the uploaded file.
23923  	Type string `json:"type,omitempty"`
23924  }
23925  
23926  // Changedobject represents Infoblox struct changedobject
23927  type Changedobject struct {
23928  	// This is a description of the action that is applied to this object.
23929  	Action string `json:"action,omitempty"`
23930  
23931  	// The object name.
23932  	Name string `json:"name,omitempty"`
23933  
23934  	// A value of the object type, this may contain objects that are not yet
23935  	// available in WAPI.
23936  	Type string `json:"type,omitempty"`
23937  
23938  	// The object type. This is undefined if the object is not yet supported.
23939  	ObjectType string `json:"object_type,omitempty"`
23940  
23941  	// A list of properties that are being changed.
23942  	Properties []string `json:"properties,omitempty"`
23943  }
23944  
23945  // CiscoiseEaassociation represents Infoblox struct ciscoise:eaassociation
23946  type CiscoiseEaassociation struct {
23947  	// The Cisco ISE attribute name that is enabled for publishsing from a Cisco
23948  	// ISE endpoint.
23949  	Name string `json:"name,omitempty"`
23950  
23951  	// The name of the extensible attribute definition object the Cisco ISE
23952  	// attribute that is enabled for subscription is mapped on.
23953  	MappedEa string `json:"mapped_ea,omitempty"`
23954  }
23955  
23956  // CiscoisePublishsetting represents Infoblox struct ciscoise:publishsetting
23957  type CiscoisePublishsetting struct {
23958  	// The list of NIOS extensible attributes enalbed for publishsing to Cisco ISE
23959  	// endpoint.
23960  	EnabledAttributes []string `json:"enabled_attributes,omitempty"`
23961  }
23962  
23963  // CiscoiseSubscribesetting represents Infoblox struct ciscoise:subscribesetting
23964  type CiscoiseSubscribesetting struct {
23965  	// The list of Cisco ISE attributes allowed for subscription.
23966  	EnabledAttributes []string `json:"enabled_attributes,omitempty"`
23967  
23968  	// The list of NIOS extensible attributes to Cisco ISE attributes mappings.
23969  	MappedEaAttributes []*CiscoiseEaassociation `json:"mapped_ea_attributes,omitempty"`
23970  }
23971  
23972  // Clientsubnetdomain represents Infoblox struct clientsubnetdomain
23973  type Clientsubnetdomain struct {
23974  	// The FQDN that represents the ECS zone domain name.
23975  	Domain string `json:"domain,omitempty"`
23976  
23977  	// The ECS domain name permission.
23978  	Permission string `json:"permission,omitempty"`
23979  }
23980  
23981  // Dhcpddns represents Infoblox struct dhcpddns
23982  type Dhcpddns struct {
23983  	// Indicate matching type.
23984  	ZoneMatch string `json:"zone_match,omitempty"`
23985  
23986  	// The ref of a DNS zone.
23987  	DnsGridZone string `json:"dns_grid_zone,omitempty"`
23988  
23989  	// The name of a Grid member.
23990  	DnsGridPrimary string `json:"dns_grid_primary,omitempty"`
23991  
23992  	// The name of external zone in FQDN format.
23993  	DnsExtZone string `json:"dns_ext_zone,omitempty"`
23994  
23995  	// The IP address of the External server. Valid when zone_match is "EXTERNAL"
23996  	// or "ANY_EXTERNAL".
23997  	DnsExtPrimary string `json:"dns_ext_primary,omitempty"`
23998  }
23999  
24000  // Dhcpmember represents Infoblox struct dhcpmember
24001  type Dhcpmember struct {
24002  	// The IPv4 Address of the Grid Member.
24003  	Ipv4Addr string `json:"ipv4addr,omitempty"`
24004  
24005  	// The IPv6 Address of the Grid Member.
24006  	Ipv6Addr string `json:"ipv6addr,omitempty"`
24007  
24008  	// The Grid member name
24009  	Name string `json:"name,omitempty"`
24010  }
24011  
24012  // Dhcpoption represents Infoblox struct dhcpoption
24013  type Dhcpoption struct {
24014  	// Name of the DHCP option.
24015  	Name string `json:"name,omitempty"`
24016  
24017  	// The code of the DHCP option.
24018  	Num uint32 `json:"num,omitempty"`
24019  
24020  	// The name of the space this DHCP option is associated to.
24021  	VendorClass string `json:"vendor_class,omitempty"`
24022  
24023  	// Value of the DHCP option
24024  	Value string `json:"value,omitempty"`
24025  
24026  	// Only applies to special options that are displayed separately from other
24027  	// options and have a use flag. These options are: * routers * router-templates
24028  	// * domain-name-servers * domain-name * broadcast-address *
24029  	// broadcast-address-offset * dhcp-lease-time * dhcp6.name-servers
24030  	UseOption bool `json:"use_option,omitempty"`
24031  }
24032  
24033  // Dhcpserver represents Infoblox struct dhcpserver
24034  type Dhcpserver struct {
24035  	// Flag to override login name and password from the MS Server
24036  	UseLogin bool `json:"use_login,omitempty"`
24037  
24038  	// Microsoft Server login name
24039  	LoginName string `json:"login_name,omitempty"`
24040  
24041  	// Microsoft Server login password
24042  	LoginPassword string `json:"login_password,omitempty"`
24043  
24044  	// flag indicating if the DNS service is managed
24045  	Managed bool `json:"managed,omitempty"`
24046  
24047  	// Defines what control to apply on the DNS server
24048  	NextSyncControl string `json:"next_sync_control,omitempty"`
24049  
24050  	// Status of the Microsoft DNS Service
24051  	Status string `json:"status,omitempty"`
24052  
24053  	// Timestamp of the last update
24054  	StatusLastUpdated *UnixTime `json:"status_last_updated,omitempty"`
24055  
24056  	// Override enable monitoring inherited from grid level
24057  	UseEnableMonitoring bool `json:"use_enable_monitoring,omitempty"`
24058  
24059  	// Flag indicating if the DNS service is monitored and controlled
24060  	EnableMonitoring bool `json:"enable_monitoring,omitempty"`
24061  
24062  	// Override setting for Enable Invalid Mac Address
24063  	UseEnableInvalidMac bool `json:"use_enable_invalid_mac,omitempty"`
24064  
24065  	// Enable Invalid Mac Address
24066  	EnableInvalidMac bool `json:"enable_invalid_mac,omitempty"`
24067  
24068  	// Flag indicating if the DHCP supports Failover
24069  	SupportsFailover bool `json:"supports_failover,omitempty"`
24070  
24071  	// Flag to override synchronization interval from the MS Server
24072  	UseSynchronizationMinDelay bool `json:"use_synchronization_min_delay,omitempty"`
24073  
24074  	// Minimum number of minutes between two synchronizations
24075  	SynchronizationMinDelay uint32 `json:"synchronization_min_delay,omitempty"`
24076  }
24077  
24078  // DiscoveryAdvancedpollsetting represents Infoblox struct discovery:advancedpollsetting
24079  type DiscoveryAdvancedpollsetting struct {
24080  	// The TCP scan method.
24081  	TcpScanTechnique string `json:"tcp_scan_technique,omitempty"`
24082  
24083  	// The ping timeout in seconds.
24084  	PingTimeout uint32 `json:"ping_timeout,omitempty"`
24085  
24086  	// The number of ping retries.
24087  	PingRetries uint32 `json:"ping_retries,omitempty"`
24088  
24089  	// The number of days a device remains in database after it is no longer found
24090  	// in network.
24091  	PurgeExpiredDeviceData uint32 `json:"purge_expired_device_data,omitempty"`
24092  
24093  	// Determines if purge of expired end host data is enabled.
24094  	EnablePurgeExpiredEndhostData bool `json:"enable_purge_expired_endhost_data,omitempty"`
24095  
24096  	// The number of days a end host remains in database after it is no longer
24097  	// found in network.
24098  	PurgeExpiredEndhostData uint32 `json:"purge_expired_endhost_data,omitempty"`
24099  
24100  	// The ARP aggregate limit.
24101  	ArpAggregateLimit uint32 `json:"arp_aggregate_limit,omitempty"`
24102  
24103  	// Route limit.
24104  	RouteLimit uint32 `json:"route_limit,omitempty"`
24105  
24106  	// The hourly wait interval between ping sweeps for individual discovery
24107  	// ranges.
24108  	PingSweepInterval uint32 `json:"ping_sweep_interval,omitempty"`
24109  
24110  	// The refresh interval in seconds for ARP cache.
24111  	ArpCacheRefreshInterval uint32 `json:"arp_cache_refresh_interval,omitempty"`
24112  
24113  	// Determines if polling and authenticating using SNMPv2c or later is enabled.
24114  	PollingAuthenticateSnmpv2cOrLaterOnly bool `json:"polling_authenticate_snmpv2c_or_later_only,omitempty"`
24115  
24116  	// Determines if discovery of networks that are not in IPAM is disabled.
24117  	DisableDiscoveryOutsideIpam bool `json:"disable_discovery_outside_ipam,omitempty"`
24118  
24119  	// Determines if DHCP router is used as seed for discovery.
24120  	DhcpRouterAsSeed bool `json:"dhcp_router_as_seed,omitempty"`
24121  
24122  	// Determines if syslogging of IPAM sync events is enabled.
24123  	SyslogIpamEvents bool `json:"syslog_ipam_events,omitempty"`
24124  
24125  	// Determines if syslogging of Network sync events is enabled.
24126  	SyslogNetworkEvents bool `json:"syslog_network_events,omitempty"`
24127  }
24128  
24129  // DiscoveryAdvancedsdnpollsettings represents Infoblox struct discovery:advancedsdnpollsettings
24130  type DiscoveryAdvancedsdnpollsettings struct {
24131  	// Policy of mapping SDN networks to network views. To obtain mapping table use
24132  	// the object discovery:sdnnetwork
24133  	NetworksMappingPolicy string `json:"networks_mapping_policy,omitempty"`
24134  
24135  	// Disable discovery of SDN subnets that are not in IPAM.
24136  	DisableSdnDiscoveryOutsideIpam bool `json:"disable_sdn_discovery_outside_ipam,omitempty"`
24137  }
24138  
24139  // DiscoveryAdvisorsetting represents Infoblox struct discovery:advisorsetting
24140  type DiscoveryAdvisorsetting struct {
24141  	// Use proxy server if true.
24142  	EnableProxy bool `json:"enable_proxy,omitempty"`
24143  
24144  	// Host name or ip address of the proxy server.
24145  	ProxyAddress string `json:"proxy_address,omitempty"`
24146  
24147  	// Port number the proxy listens on.
24148  	ProxyPort uint32 `json:"proxy_port,omitempty"`
24149  
24150  	// Is proxy authorization required?
24151  	UseProxyUsernamePasswd bool `json:"use_proxy_username_passwd,omitempty"`
24152  
24153  	// Proxy username.
24154  	ProxyUsername string `json:"proxy_username,omitempty"`
24155  
24156  	// Proxy password.
24157  	ProxyPassword string `json:"proxy_password,omitempty"`
24158  
24159  	// Application execution interval in seconds. Must be greater than or equal to
24160  	// 86400 seconds (1 day).
24161  	ExecutionInterval uint32 `json:"execution_interval,omitempty"`
24162  
24163  	// Application execution hour.
24164  	ExecutionHour uint32 `json:"execution_hour,omitempty"`
24165  
24166  	// The type of the network interface on consolidator member.
24167  	NetworkInterfaceType string `json:"network_interface_type,omitempty"`
24168  
24169  	// The interface for Advisor application on consolidator member.
24170  	NetworkInterfaceVirtualIp string `json:"network_interface_virtual_ip,omitempty"`
24171  
24172  	// Host name or ip address of the Advisor server
24173  	Address string `json:"address,omitempty"`
24174  
24175  	// Port number the Advisor server listens on
24176  	Port uint32 `json:"port,omitempty"`
24177  
24178  	// Authentication type used for Advisor server
24179  	AuthType string `json:"auth_type,omitempty"`
24180  
24181  	// Advisor AUTH token
24182  	AuthToken string `json:"auth_token,omitempty"`
24183  
24184  	// Username for Advisor server
24185  	Username string `json:"username,omitempty"`
24186  
24187  	// Password for Advisor server
24188  	Password string `json:"password,omitempty"`
24189  
24190  	// Advisor minimal severity
24191  	MinSeverity string `json:"min_severity,omitempty"`
24192  
24193  	// Timestamp of the Advisor last execution attempt'
24194  	LastExecTime *UnixTime `json:"last_exec_time,omitempty"`
24195  
24196  	// Result of the last execution attempt of Advisor
24197  	LastExecStatus string `json:"last_exec_status,omitempty"`
24198  
24199  	// Details of the last execution attempt of Advisor. Describes the error or
24200  	// warning with a string
24201  	LastExecDetails string `json:"last_exec_details,omitempty"`
24202  
24203  	// Timestamp of the Advisor last Run Now attempt'
24204  	LastRunNowTime *UnixTime `json:"last_run_now_time,omitempty"`
24205  
24206  	// Result of the last Run Now attempt of Advisor
24207  	LastRunNowStatus string `json:"last_run_now_status,omitempty"`
24208  
24209  	// Details of the last Run Now attempt of Advisor. Describes the error or
24210  	// warning with a string
24211  	LastRunNowDetails string `json:"last_run_now_details,omitempty"`
24212  }
24213  
24214  // DiscoveryAutoconversionsetting represents Infoblox struct discovery:autoconversionsetting
24215  type DiscoveryAutoconversionsetting struct {
24216  	// The network view name which contains discovered data for convert.
24217  	NetworkView string `json:"network_view,omitempty"`
24218  
24219  	// The object type used to define the converted object.
24220  	Type string `json:"type,omitempty"`
24221  
24222  	// Template string used to generate host names.
24223  	Format string `json:"format,omitempty"`
24224  
24225  	// The string that contains condition of use the auto conversion settings.
24226  	Condition string `json:"condition,omitempty"`
24227  
24228  	// The comment.
24229  	Comment string `json:"comment,omitempty"`
24230  }
24231  
24232  // DiscoveryBasicpollsettings represents Infoblox struct discovery:basicpollsettings
24233  type DiscoveryBasicpollsettings struct {
24234  	// Determines whether port scanning is enabled or not.
24235  	PortScanning bool `json:"port_scanning,omitempty"`
24236  
24237  	// Determines whether device profile is enabled or not.
24238  	DeviceProfile bool `json:"device_profile,omitempty"`
24239  
24240  	// Determines whether SNMP collection is enabled or not.
24241  	SnmpCollection bool `json:"snmp_collection,omitempty"`
24242  
24243  	// Determines whether CLI collection is enabled or not.
24244  	CliCollection bool `json:"cli_collection,omitempty"`
24245  
24246  	// Determines whether netbios scanning is enabled or not.
24247  	NetbiosScanning bool `json:"netbios_scanning,omitempty"`
24248  
24249  	// Determines whether complete ping sweep is enabled or not.
24250  	CompletePingSweep bool `json:"complete_ping_sweep,omitempty"`
24251  
24252  	// Determines whether smart subnet ping sweep is enabled or not.
24253  	SmartSubnetPingSweep bool `json:"smart_subnet_ping_sweep,omitempty"`
24254  
24255  	// Determines whether auto ARP refresh before switch port polling is enabled or
24256  	// not.
24257  	AutoArpRefreshBeforeSwitchPortPolling bool `json:"auto_arp_refresh_before_switch_port_polling,omitempty"`
24258  
24259  	// A switch port data collection polling mode.
24260  	SwitchPortDataCollectionPolling string `json:"switch_port_data_collection_polling,omitempty"`
24261  
24262  	// A Schedule Setting struct that determines switch port data collection
24263  	// polling schedule.
24264  	SwitchPortDataCollectionPollingSchedule *SettingSchedule `json:"switch_port_data_collection_polling_schedule,omitempty"`
24265  
24266  	// Indicates the interval for switch port data collection polling.
24267  	SwitchPortDataCollectionPollingInterval uint32 `json:"switch_port_data_collection_polling_interval,omitempty"`
24268  
24269  	// Credential group.
24270  	CredentialGroup string `json:"credential_group,omitempty"`
24271  }
24272  
24273  // DiscoveryBasicsdnpollsettings represents Infoblox struct discovery:basicsdnpollsettings
24274  type DiscoveryBasicsdnpollsettings struct {
24275  	// Enable/disable SDN discovery.
24276  	SdnDiscovery bool `json:"sdn_discovery,omitempty"`
24277  
24278  	// Default network view to map collected SDN networks.
24279  	DefaultNetworkView string `json:"default_network_view,omitempty"`
24280  
24281  	// SDN end host polling mode.
24282  	EndHostPolling string `json:"end_host_polling,omitempty"`
24283  
24284  	// Valid SDN end host polling interval in seconds. Must be between 1800 and
24285  	// 86400 seconds.
24286  	EndHostPollingInterval uint32 `json:"end_host_polling_interval,omitempty"`
24287  
24288  	// A Schedule Setting struct that determines SDN end host polling schedule.
24289  	EndHostPollingSchedule *SettingSchedule `json:"end_host_polling_schedule,omitempty"`
24290  }
24291  
24292  // DiscoveryClicredential represents Infoblox struct discovery:clicredential
24293  type DiscoveryClicredential struct {
24294  	// The CLI user name.
24295  	User string `json:"user,omitempty"`
24296  
24297  	// The CLI password.
24298  	Password string `json:"password,omitempty"`
24299  
24300  	// The type of the credential.
24301  	CredentialType string `json:"credential_type,omitempty"`
24302  
24303  	// The commment for the credential.
24304  	Comment string `json:"comment,omitempty"`
24305  
24306  	// The Credentials ID.
24307  	Id uint32 `json:"id,omitempty"`
24308  
24309  	// Group for the CLI credential.
24310  	CredentialGroup string `json:"credential_group,omitempty"`
24311  }
24312  
24313  // DiscoveryDevicePortstatistics represents Infoblox struct discovery:device:portstatistics
24314  type DiscoveryDevicePortstatistics struct {
24315  	// The total number of available interfaces on this device.
24316  	InterfacesCount uint32 `json:"interfaces_count,omitempty"`
24317  
24318  	// The total number of interfaces which have both administrative and operating
24319  	// states as 'UP'.
24320  	AdminUpOperUpCount uint32 `json:"admin_up_oper_up_count,omitempty"`
24321  
24322  	// The total number of interfaces which have administrative state 'UP' and oper
24323  	// state 'DOWN'.
24324  	AdminUpOperDownCount uint32 `json:"admin_up_oper_down_count,omitempty"`
24325  
24326  	// The total number of interfaces which have administrative state 'DOWN' and
24327  	// operating state 'DOWN'.
24328  	AdminDownOperDownCount uint32 `json:"admin_down_oper_down_count,omitempty"`
24329  }
24330  
24331  // DiscoveryIfaddrinfo represents Infoblox struct discovery:ifaddrinfo
24332  type DiscoveryIfaddrinfo struct {
24333  	// The IPv4 Address or IPv6 Address of the device.
24334  	Address string `json:"address,omitempty"`
24335  
24336  	// The ref to IPv4/Ipv6 Address.
24337  	AddressObject string `json:"address_object,omitempty"`
24338  
24339  	// The network to which this device belongs, in IPv4 Address/CIDR format.
24340  	Network string `json:"network,omitempty"`
24341  }
24342  
24343  // DiscoveryNetworkinfo represents Infoblox struct discovery:networkinfo
24344  type DiscoveryNetworkinfo struct {
24345  	// The ref to the network to which the management IP address belongs.
24346  	Network string `json:"network,omitempty"`
24347  
24348  	// The Network address in format address/cidr.
24349  	NetworkStr string `json:"network_str,omitempty"`
24350  }
24351  
24352  // DiscoveryPort represents Infoblox struct discovery:port
24353  type DiscoveryPort struct {
24354  	// The discovery port number.
24355  	Port uint32 `json:"port,omitempty"`
24356  
24357  	// The discovery port type.
24358  	Type string `json:"type,omitempty"`
24359  
24360  	// The comment for this discovery port.
24361  	Comment string `json:"comment,omitempty"`
24362  }
24363  
24364  // DiscoveryPortConfigAdminstatus represents Infoblox struct discovery:port:config:adminstatus
24365  type DiscoveryPortConfigAdminstatus struct {
24366  	// The configured admin status value.
24367  	Status string `json:"status,omitempty"`
24368  
24369  	// The associated port control task details.
24370  	Details *DiscoveryPortControlTaskdetails `json:"details,omitempty"`
24371  }
24372  
24373  // DiscoveryPortConfigDescription represents Infoblox struct discovery:port:config:description
24374  type DiscoveryPortConfigDescription struct {
24375  	// The configured description value.
24376  	Description string `json:"description,omitempty"`
24377  
24378  	// The associated port control task details.
24379  	Details *DiscoveryPortControlTaskdetails `json:"details,omitempty"`
24380  }
24381  
24382  // DiscoveryPortConfigVlaninfo represents Infoblox struct discovery:port:config:vlaninfo
24383  type DiscoveryPortConfigVlaninfo struct {
24384  	// The configured data VLAN ID and the name of the interface.
24385  	DataVlanInfo *DiscoveryVlaninfo `json:"data_vlan_info,omitempty"`
24386  
24387  	// The configured voice VLAN id and name of interface.
24388  	VoiceVlanInfo *DiscoveryVlaninfo `json:"voice_vlan_info,omitempty"`
24389  
24390  	// The associated port control task details.
24391  	Details *DiscoveryPortControlTaskdetails `json:"details,omitempty"`
24392  }
24393  
24394  // DiscoveryPortControlTaskdetails represents Infoblox struct discovery:port:control:taskdetails
24395  type DiscoveryPortControlTaskdetails struct {
24396  	// The ID of the associated port control task.
24397  	Id uint32 `json:"id,omitempty"`
24398  
24399  	// The task status of the associated port control task.
24400  	Status string `json:"status,omitempty"`
24401  
24402  	// True if this port control task is completed and matched with current
24403  	// discovered value.
24404  	IsSynchronized bool `json:"is_synchronized,omitempty"`
24405  }
24406  
24407  // DiscoveryScaninterface represents Infoblox struct discovery:scaninterface
24408  type DiscoveryScaninterface struct {
24409  	// The name of the network view associated with the network discovery probing
24410  	// member.
24411  	NetworkView string `json:"network_view,omitempty"`
24412  
24413  	// The probing interface associated with the network discovery probing member.
24414  	Type string `json:"type,omitempty"`
24415  
24416  	// The virtual ip for discovery scan interface on network discovery probing
24417  	// member.
24418  	ScanVirtualIp string `json:"scan_virtual_ip,omitempty"`
24419  }
24420  
24421  // DiscoverySdnconfig represents Infoblox struct discovery:sdnconfig
24422  type DiscoverySdnconfig struct {
24423  	// Type of SDN controller.
24424  	SdnType string `json:"sdn_type,omitempty"`
24425  
24426  	// SDN controller IP addresses or FQDNs.
24427  	Addresses []string `json:"addresses,omitempty"`
24428  
24429  	// The network view associated with SDN controller.
24430  	NetworkView string `json:"network_view,omitempty"`
24431  
24432  	// The connection protocol. Valid values are 'HTTP' and 'HTTPS'.
24433  	Protocol string `json:"protocol,omitempty"`
24434  
24435  	// Unique configuration handle.
24436  	Handle string `json:"handle,omitempty"`
24437  
24438  	// SDN controller login password.
24439  	Password string `json:"password,omitempty"`
24440  
24441  	// SDN controller login name.
24442  	Username string `json:"username,omitempty"`
24443  
24444  	// SDN controller API key.
24445  	ApiKey string `json:"api_key,omitempty"`
24446  
24447  	// True if controller is on-premises, otherwise we consider it is in cloud.
24448  	OnPrem bool `json:"on_prem,omitempty"`
24449  
24450  	// Use global proxy settings to access SDN controller.
24451  	UseGlobalProxy bool `json:"use_global_proxy,omitempty"`
24452  
24453  	// Additional information about the SDN configuration.
24454  	Comment string `json:"comment,omitempty"`
24455  
24456  	// The type of the network interface on discovery member used for SDN
24457  	// controller discovery
24458  	NetworkInterfaceType string `json:"network_interface_type,omitempty"`
24459  
24460  	// Virtual IP of VLAN network interface on discovery member
24461  	NetworkInterfaceVirtualIp string `json:"network_interface_virtual_ip,omitempty"`
24462  
24463  	// Unique key of SDN controller structure. Must be specified for existing
24464  	// sdn_config structures, otherwise they will be removed. If not specified, new
24465  	// structure will be created.
24466  	Uuid string `json:"uuid,omitempty"`
24467  }
24468  
24469  // DiscoverySeedrouter represents Infoblox struct discovery:seedrouter
24470  type DiscoverySeedrouter struct {
24471  	// Address of the seed router.
24472  	Address string `json:"address,omitempty"`
24473  
24474  	// The network view name.
24475  	NetworkView string `json:"network_view,omitempty"`
24476  
24477  	// Description of the seed router.
24478  	Comment string `json:"comment,omitempty"`
24479  }
24480  
24481  // DiscoverySnmp3credential represents Infoblox struct discovery:snmp3credential
24482  type DiscoverySnmp3credential struct {
24483  	// The SNMPv3 user name.
24484  	User string `json:"user,omitempty"`
24485  
24486  	// Authentication protocol for the SNMPv3 user.
24487  	AuthenticationProtocol string `json:"authentication_protocol,omitempty"`
24488  
24489  	// Authentication password for the SNMPv3 user.
24490  	AuthenticationPassword string `json:"authentication_password,omitempty"`
24491  
24492  	// Privacy protocol for the SNMPv3 user.
24493  	PrivacyProtocol string `json:"privacy_protocol,omitempty"`
24494  
24495  	// Privacy password for the SNMPv3 user.
24496  	PrivacyPassword string `json:"privacy_password,omitempty"`
24497  
24498  	// Comments for the SNMPv3 user.
24499  	Comment string `json:"comment,omitempty"`
24500  
24501  	// Group for the SNMPv3 credential.
24502  	CredentialGroup string `json:"credential_group,omitempty"`
24503  }
24504  
24505  // DiscoverySnmpcredential represents Infoblox struct discovery:snmpcredential
24506  type DiscoverySnmpcredential struct {
24507  	// The public community string.
24508  	CommunityString string `json:"community_string,omitempty"`
24509  
24510  	// Comments for the SNMPv1 and SNMPv2 users.
24511  	Comment string `json:"comment,omitempty"`
24512  
24513  	// Group for the SNMPv1 and SNMPv2 credential.
24514  	CredentialGroup string `json:"credential_group,omitempty"`
24515  }
24516  
24517  // DiscoveryStatusinfo represents Infoblox struct discovery:statusinfo
24518  type DiscoveryStatusinfo struct {
24519  	// The overall status of the device.
24520  	Status string `json:"status,omitempty"`
24521  
24522  	// The detailed message.
24523  	Message string `json:"message,omitempty"`
24524  
24525  	// The timestamp when the status was generated.
24526  	Timestamp *UnixTime `json:"timestamp,omitempty"`
24527  }
24528  
24529  // DiscoveryVlaninfo represents Infoblox struct discovery:vlaninfo
24530  type DiscoveryVlaninfo struct {
24531  	// The Vlan ID.
24532  	Id uint32 `json:"id,omitempty"`
24533  
24534  	// The Vlan name.
24535  	Name string `json:"name,omitempty"`
24536  }
24537  
24538  // DiscoveryVrfmappingrule represents Infoblox struct discovery:vrfmappingrule
24539  type DiscoveryVrfmappingrule struct {
24540  	// The name of the network view associated with the VRF mapping rule.
24541  	NetworkView string `json:"network_view,omitempty"`
24542  
24543  	// Extended POSIX regular expression matching the VRF name. The regular
24544  	// expression string should contain the leading caret anchor ^ and the trailing
24545  	// dollar anchor $ symbols.
24546  	Criteria string `json:"criteria,omitempty"`
24547  
24548  	// The comment.
24549  	Comment string `json:"comment,omitempty"`
24550  }
24551  
24552  // Discoverydata represents Infoblox struct discoverydata
24553  type Discoverydata struct {
24554  	// The model name of the end device in the vendor terminology.
24555  	DeviceModel string `json:"device_model,omitempty"`
24556  
24557  	// The system name of the interface associated with the discovered IP address.
24558  	DevicePortName string `json:"device_port_name,omitempty"`
24559  
24560  	// The hardware type of the interface associated with the discovered IP
24561  	// address.
24562  	DevicePortType string `json:"device_port_type,omitempty"`
24563  
24564  	// The type of end host in vendor terminology.
24565  	DeviceType string `json:"device_type,omitempty"`
24566  
24567  	// The vendor name of the end host.
24568  	DeviceVendor string `json:"device_vendor,omitempty"`
24569  
24570  	// The name of the network device associated with the discovered IP address.
24571  	DiscoveredName string `json:"discovered_name,omitempty"`
24572  
24573  	// Specifies whether the IP address was discovered by a NetMRI or NIOS
24574  	// discovery process.
24575  	Discoverer string `json:"discoverer,omitempty"`
24576  
24577  	// For IPv6 address only. The DHCP unique identifier of the discovered host.
24578  	// This is an optional field, and data might not be included.
24579  	Duid string `json:"duid,omitempty"`
24580  
24581  	// The date and time the IP address was first discovered in Epoch seconds
24582  	// format.
24583  	FirstDiscovered *UnixTime `json:"first_discovered,omitempty"`
24584  
24585  	// The port redundant group number.
24586  	IprgNo uint32 `json:"iprg_no,omitempty"`
24587  
24588  	// The status for the IP address within port redundant group.
24589  	IprgState string `json:"iprg_state,omitempty"`
24590  
24591  	// The port redundant group type.
24592  	IprgType string `json:"iprg_type,omitempty"`
24593  
24594  	// The date and time the IP address was last discovered in Epoch seconds
24595  	// format.
24596  	LastDiscovered *UnixTime `json:"last_discovered,omitempty"`
24597  
24598  	// The discovered MAC address for the host. This is the unique identifier of a
24599  	// network device. The discovery acquires the MAC address for hosts that are
24600  	// located on the same network as the Grid member that is running the
24601  	// discovery. This can also be the MAC address of a virtual entity on a
24602  	// specified vSphere server.
24603  	MacAddress string `json:"mac_address,omitempty"`
24604  
24605  	// The management IP address of the end host that has more than one IP.
24606  	MgmtIpAddress string `json:"mgmt_ip_address,omitempty"`
24607  
24608  	// The name returned in the NetBIOS reply or the name you manually register for
24609  	// the discovered host.
24610  	NetbiosName string `json:"netbios_name,omitempty"`
24611  
24612  	// A textual description of the switch that is connected to the end device.
24613  	NetworkComponentDescription string `json:"network_component_description,omitempty"`
24614  
24615  	// The IPv4 Address or IPv6 Address of the switch that is connected to the end
24616  	// device.
24617  	NetworkComponentIp string `json:"network_component_ip,omitempty"`
24618  
24619  	// Model name of the switch port connected to the end host in vendor
24620  	// terminology.
24621  	NetworkComponentModel string `json:"network_component_model,omitempty"`
24622  
24623  	// If a reverse lookup was successful for the IP address associated with this
24624  	// switch, the host name is displayed in this field.
24625  	NetworkComponentName string `json:"network_component_name,omitempty"`
24626  
24627  	// A textual description of the switch port that is connected to the end
24628  	// device.
24629  	NetworkComponentPortDescription string `json:"network_component_port_description,omitempty"`
24630  
24631  	// The name of the switch port connected to the end device.
24632  	NetworkComponentPortName string `json:"network_component_port_name,omitempty"`
24633  
24634  	// The number of the switch port connected to the end device.
24635  	NetworkComponentPortNumber string `json:"network_component_port_number,omitempty"`
24636  
24637  	// Identifies the switch that is connected to the end device.
24638  	NetworkComponentType string `json:"network_component_type,omitempty"`
24639  
24640  	// The vendor name of the switch port connected to the end host.
24641  	NetworkComponentVendor string `json:"network_component_vendor,omitempty"`
24642  
24643  	// The list of opened ports on the IP address, represented as: "TCP: 21,22,23
24644  	// UDP: 137,139". Limited to max total 1000 ports.
24645  	OpenPorts string `json:"open_ports,omitempty"`
24646  
24647  	// The operating system of the detected host or virtual entity. The OS can be
24648  	// one of the following: * Microsoft for all discovered hosts that have a
24649  	// non-null value in the MAC addresses using the NetBIOS discovery method. * A
24650  	// value that a TCP discovery returns. * The OS of a virtual entity on a
24651  	// vSphere server.
24652  	Os string `json:"os,omitempty"`
24653  
24654  	// The negotiated or operational duplex setting of the switch port connected to
24655  	// the end device.
24656  	PortDuplex string `json:"port_duplex,omitempty"`
24657  
24658  	// The link status of the switch port connected to the end device. Indicates
24659  	// whether it is connected.
24660  	PortLinkStatus string `json:"port_link_status,omitempty"`
24661  
24662  	// The interface speed, in Mbps, of the switch port.
24663  	PortSpeed string `json:"port_speed,omitempty"`
24664  
24665  	// The operational status of the switch port. Indicates whether the port is up
24666  	// or down.
24667  	PortStatus string `json:"port_status,omitempty"`
24668  
24669  	// The type of switch port.
24670  	PortType string `json:"port_type,omitempty"`
24671  
24672  	// The description of the VLAN of the switch port that is connected to the end
24673  	// device.
24674  	PortVlanDescription string `json:"port_vlan_description,omitempty"`
24675  
24676  	// The name of the VLAN of the switch port.
24677  	PortVlanName string `json:"port_vlan_name,omitempty"`
24678  
24679  	// The ID of the VLAN of the switch port.
24680  	PortVlanNumber string `json:"port_vlan_number,omitempty"`
24681  
24682  	// The name of the physical network adapter through which the virtual entity is
24683  	// connected to the appliance.
24684  	VAdapter string `json:"v_adapter,omitempty"`
24685  
24686  	// The name of the VMware cluster to which the virtual entity belongs.
24687  	VCluster string `json:"v_cluster,omitempty"`
24688  
24689  	// The name of the vSphere datacenter or container to which the virtual entity
24690  	// belongs.
24691  	VDatacenter string `json:"v_datacenter,omitempty"`
24692  
24693  	// The name of the virtual entity.
24694  	VEntityName string `json:"v_entity_name,omitempty"`
24695  
24696  	// The virtual entity type. This can be blank or one of the following: Virtual
24697  	// Machine, Virtual Host, or Virtual Center. Virtual Center represents a VMware
24698  	// vCenter server.
24699  	VEntityType string `json:"v_entity_type,omitempty"`
24700  
24701  	// The name of the VMware server on which the virtual entity was discovered.
24702  	VHost string `json:"v_host,omitempty"`
24703  
24704  	// The name of the switch to which the virtual entity is connected.
24705  	VSwitch string `json:"v_switch,omitempty"`
24706  
24707  	// Name of the virtual machine.
24708  	VmiName string `json:"vmi_name,omitempty"`
24709  
24710  	// ID of the virtual machine.
24711  	VmiId string `json:"vmi_id,omitempty"`
24712  
24713  	// Port group which the virtual machine belongs to.
24714  	VlanPortGroup string `json:"vlan_port_group,omitempty"`
24715  
24716  	// Name of the virtual switch.
24717  	VswitchName string `json:"vswitch_name,omitempty"`
24718  
24719  	// ID of the virtual switch.
24720  	VswitchId string `json:"vswitch_id,omitempty"`
24721  
24722  	// Type of the virtual switch: standard or distributed.
24723  	VswitchType string `json:"vswitch_type,omitempty"`
24724  
24725  	// Indicates the virtual switch has IPV6 enabled.
24726  	VswitchIpv6Enabled bool `json:"vswitch_ipv6_enabled,omitempty"`
24727  
24728  	// Name of the network adapter on the virtual switch connected with the virtual
24729  	// machine.
24730  	VportName string `json:"vport_name,omitempty"`
24731  
24732  	// MAC address of the network adapter on the virtual switch where the virtual
24733  	// machine connected to.
24734  	VportMacAddress string `json:"vport_mac_address,omitempty"`
24735  
24736  	// Link status of the network adapter on the virtual switch where the virtual
24737  	// machine connected to.
24738  	VportLinkStatus string `json:"vport_link_status,omitempty"`
24739  
24740  	// Configured speed of the network adapter on the virtual switch where the
24741  	// virtual machine connected to. Unit is kb.
24742  	VportConfSpeed string `json:"vport_conf_speed,omitempty"`
24743  
24744  	// Configured mode of the network adapter on the virtual switch where the
24745  	// virtual machine connected to.
24746  	VportConfMode string `json:"vport_conf_mode,omitempty"`
24747  
24748  	// Actual speed of the network adapter on the virtual switch where the virtual
24749  	// machine connected to. Unit is kb.
24750  	VportSpeed string `json:"vport_speed,omitempty"`
24751  
24752  	// Actual mode of the network adapter on the virtual switch where the virtual
24753  	// machine connected to.
24754  	VportMode string `json:"vport_mode,omitempty"`
24755  
24756  	// Type of the network segment on which the current virtual machine/vport
24757  	// connected to.
24758  	VswitchSegmentType string `json:"vswitch_segment_type,omitempty"`
24759  
24760  	// Name of the network segment on which the current virtual machine/vport
24761  	// connected to.
24762  	VswitchSegmentName string `json:"vswitch_segment_name,omitempty"`
24763  
24764  	// ID of the network segment on which the current virtual machine/vport
24765  	// connected to.
24766  	VswitchSegmentId string `json:"vswitch_segment_id,omitempty"`
24767  
24768  	// Port group of the network segment on which the current virtual machine/vport
24769  	// connected to.
24770  	VswitchSegmentPortGroup string `json:"vswitch_segment_port_group,omitempty"`
24771  
24772  	// Numer of available ports reported by the virtual switch on which the virtual
24773  	// machine/vport connected to.
24774  	VswitchAvailablePortsCount uint32 `json:"vswitch_available_ports_count,omitempty"`
24775  
24776  	// Type of virtual tunnel endpoint (VTEP) in the virtual switch.
24777  	VswitchTepType string `json:"vswitch_tep_type,omitempty"`
24778  
24779  	// IP address of the virtual tunnel endpoint (VTEP) in the virtual switch.
24780  	VswitchTepIp string `json:"vswitch_tep_ip,omitempty"`
24781  
24782  	// Port group of the virtual tunnel endpoint (VTEP) in the virtual switch.
24783  	VswitchTepPortGroup string `json:"vswitch_tep_port_group,omitempty"`
24784  
24785  	// VLAN of the virtual tunnel endpoint (VTEP) in the virtual switch.
24786  	VswitchTepVlan string `json:"vswitch_tep_vlan,omitempty"`
24787  
24788  	// DHCP server of the virtual tunnel endpoint (VTEP) in the virtual switch.
24789  	VswitchTepDhcpServer string `json:"vswitch_tep_dhcp_server,omitempty"`
24790  
24791  	// Muticast address of the virtual tunnel endpoint (VTEP) in the virtual
24792  	// swtich.
24793  	VswitchTepMulticast string `json:"vswitch_tep_multicast,omitempty"`
24794  
24795  	// IP address of the physical node on which the virtual machine is hosted.
24796  	VmhostIpAddress string `json:"vmhost_ip_address,omitempty"`
24797  
24798  	// Name of the physical node on which the virtual machine is hosted.
24799  	VmhostName string `json:"vmhost_name,omitempty"`
24800  
24801  	// MAC address of the physical node on which the virtual machine is hosted.
24802  	VmhostMacAddress string `json:"vmhost_mac_address,omitempty"`
24803  
24804  	// CIDR subnet of the physical node on which the virtual machine is hosted.
24805  	VmhostSubnetCidr uint32 `json:"vmhost_subnet_cidr,omitempty"`
24806  
24807  	// List of all physical port names used by the virtual switch on the physical
24808  	// node on which the virtual machine is hosted. Represented as:
24809  	// "eth1,eth2,eth3".
24810  	VmhostNicNames string `json:"vmhost_nic_names,omitempty"`
24811  
24812  	// ID of the tenant which virtual machine belongs to.
24813  	VmiTenantId string `json:"vmi_tenant_id,omitempty"`
24814  
24815  	// If the IP is coming from a Cloud environment, the Cloud Management Platform
24816  	// type.
24817  	CmpType string `json:"cmp_type,omitempty"`
24818  
24819  	// Discovered IP address type.
24820  	VmiIpType string `json:"vmi_ip_type,omitempty"`
24821  
24822  	// Private IP address of the virtual machine.
24823  	VmiPrivateAddress string `json:"vmi_private_address,omitempty"`
24824  
24825  	// Indicates whether the IP address is a public address.
24826  	VmiIsPublicAddress bool `json:"vmi_is_public_address,omitempty"`
24827  
24828  	// The Cisco ISE SSID.
24829  	CiscoIseSsid string `json:"cisco_ise_ssid,omitempty"`
24830  
24831  	// The Endpoint Profile created in Cisco ISE.
24832  	CiscoIseEndpointProfile string `json:"cisco_ise_endpoint_profile,omitempty"`
24833  
24834  	// The Cisco ISE connection session state.
24835  	CiscoIseSessionState string `json:"cisco_ise_session_state,omitempty"`
24836  
24837  	// The Cisco ISE security group name.
24838  	CiscoIseSecurityGroup string `json:"cisco_ise_security_group,omitempty"`
24839  
24840  	// The name of the discovery task.
24841  	TaskName string `json:"task_name,omitempty"`
24842  
24843  	// Location of the network component on which the IP address was discovered.
24844  	NetworkComponentLocation string `json:"network_component_location,omitempty"`
24845  
24846  	// Contact information from the network component on which the IP address was
24847  	// discovered.
24848  	NetworkComponentContact string `json:"network_component_contact,omitempty"`
24849  
24850  	// Location of device on which the IP address was discovered.
24851  	DeviceLocation string `json:"device_location,omitempty"`
24852  
24853  	// Contact information from device on which the IP address was discovered.
24854  	DeviceContact string `json:"device_contact,omitempty"`
24855  
24856  	// Discovered name of Wireless Access Point.
24857  	ApName string `json:"ap_name,omitempty"`
24858  
24859  	// Discovered IP address of Wireless Access Point.
24860  	ApIpAddress string `json:"ap_ip_address,omitempty"`
24861  
24862  	// Service set identifier (SSID) associated with Wireless Access Point.
24863  	ApSsid string `json:"ap_ssid,omitempty"`
24864  
24865  	// Discovered bridge domain.
24866  	BridgeDomain string `json:"bridge_domain,omitempty"`
24867  
24868  	// A comma-separated list of the discovered endpoint groups.
24869  	EndpointGroups string `json:"endpoint_groups,omitempty"`
24870  
24871  	// Discovered tenant.
24872  	Tenant string `json:"tenant,omitempty"`
24873  
24874  	// The name of the VRF.
24875  	VrfName string `json:"vrf_name,omitempty"`
24876  
24877  	// Description of the VRF.
24878  	VrfDescription string `json:"vrf_description,omitempty"`
24879  
24880  	// Route distinguisher of the VRF.
24881  	VrfRd string `json:"vrf_rd,omitempty"`
24882  
24883  	// The BGP autonomous system number.
24884  	BgpAs uint32 `json:"bgp_as,omitempty"`
24885  }
24886  
24887  // Discoverytaskport represents Infoblox struct discoverytaskport
24888  type Discoverytaskport struct {
24889  	// The TCP port number.
24890  	Number uint32 `json:"number,omitempty"`
24891  
24892  	// The TCP port descriptive comment.
24893  	Comment string `json:"comment,omitempty"`
24894  }
24895  
24896  // Discoverytaskvserver represents Infoblox struct discoverytaskvserver
24897  type Discoverytaskvserver struct {
24898  	// The disable flag of a vSphere server.
24899  	Disable bool `json:"disable,omitempty"`
24900  
24901  	// The connection protocol of a vSphere server.
24902  	ConnectionProtocol string `json:"connection_protocol,omitempty"`
24903  
24904  	// The FQDN (Fully Qualified Domain Name) or IP address of the vShpere server.
24905  	FqdnOrIp string `json:"fqdn_or_ip,omitempty"`
24906  
24907  	// The user password on the vSphere server.
24908  	Password string `json:"password,omitempty"`
24909  
24910  	// The connection port that the vSphere server uses.
24911  	Port uint32 `json:"port,omitempty"`
24912  
24913  	// The user name on the vSphere server.
24914  	Username string `json:"username,omitempty"`
24915  }
24916  
24917  // Dnsseckey represents Infoblox struct dnsseckey
24918  type Dnsseckey struct {
24919  	// The tag of the key for the zone.
24920  	Tag uint32 `json:"tag,omitempty"`
24921  
24922  	// The status of the key for the zone.
24923  	Status string `json:"status,omitempty"`
24924  
24925  	// The next event date for the key, the rollover date for an active key or the
24926  	// removal date for an already rolled one.
24927  	NextEventDate *UnixTime `json:"next_event_date,omitempty"`
24928  
24929  	// The key type.
24930  	Type string `json:"type,omitempty"`
24931  
24932  	// The public-key encryption algorithm.
24933  	Algorithm string `json:"algorithm,omitempty"`
24934  
24935  	// The Base-64 encoding of the public key.
24936  	PublicKey string `json:"public_key,omitempty"`
24937  }
24938  
24939  // Dnsseckeyalgorithm represents Infoblox struct dnsseckeyalgorithm
24940  type Dnsseckeyalgorithm struct {
24941  	// The signing key algorithm.
24942  	Algorithm string `json:"algorithm,omitempty"`
24943  
24944  	// The signing key size, in bits.
24945  	Size uint32 `json:"size,omitempty"`
24946  }
24947  
24948  // Dnsseckeyparams represents Infoblox struct dnsseckeyparams
24949  type Dnsseckeyparams struct {
24950  	// If set to True, automatic rollovers for the signing key is enabled.
24951  	EnableKskAutoRollover bool `json:"enable_ksk_auto_rollover,omitempty"`
24952  
24953  	// Key Signing Key algorithm. Deprecated.
24954  	KskAlgorithm string `json:"ksk_algorithm,omitempty"`
24955  
24956  	// A list of Key Signing Key Algorithms.
24957  	KskAlgorithms []*Dnsseckeyalgorithm `json:"ksk_algorithms,omitempty"`
24958  
24959  	// Key Signing Key rollover interval, in seconds.
24960  	KskRollover uint32 `json:"ksk_rollover,omitempty"`
24961  
24962  	// Key Signing Key size, in bits. Deprecated.
24963  	KskSize uint32 `json:"ksk_size,omitempty"`
24964  
24965  	// NSEC (next secure) types.
24966  	NextSecureType string `json:"next_secure_type,omitempty"`
24967  
24968  	// This field controls events for which users will be notified.
24969  	KskRolloverNotificationConfig string `json:"ksk_rollover_notification_config,omitempty"`
24970  
24971  	// Enable SNMP notifications for KSK related events.
24972  	KskSnmpNotificationEnabled bool `json:"ksk_snmp_notification_enabled,omitempty"`
24973  
24974  	// Enable email notifications for KSK related events.
24975  	KskEmailNotificationEnabled bool `json:"ksk_email_notification_enabled,omitempty"`
24976  
24977  	// The minimum length for NSEC3 salts.
24978  	Nsec3SaltMinLength uint32 `json:"nsec3_salt_min_length,omitempty"`
24979  
24980  	// The maximum length for NSEC3 salts.
24981  	Nsec3SaltMaxLength uint32 `json:"nsec3_salt_max_length,omitempty"`
24982  
24983  	// The number of iterations used for hashing NSEC3.
24984  	Nsec3Iterations uint32 `json:"nsec3_iterations,omitempty"`
24985  
24986  	// Signature expiration time, in seconds.
24987  	SignatureExpiration uint32 `json:"signature_expiration,omitempty"`
24988  
24989  	// Zone Signing Key algorithm. Deprecated.
24990  	ZskAlgorithm string `json:"zsk_algorithm,omitempty"`
24991  
24992  	// A list of Zone Signing Key Algorithms.
24993  	ZskAlgorithms []*Dnsseckeyalgorithm `json:"zsk_algorithms,omitempty"`
24994  
24995  	// Zone Signing Key rollover interval, in seconds.
24996  	ZskRollover uint32 `json:"zsk_rollover,omitempty"`
24997  
24998  	// Zone Signing Key rollover mechanism.
24999  	ZskRolloverMechanism string `json:"zsk_rollover_mechanism,omitempty"`
25000  
25001  	// Zone Signing Key size, in bits. Deprecated.
25002  	ZskSize uint32 `json:"zsk_size,omitempty"`
25003  }
25004  
25005  // Dnssectrustedkey represents Infoblox struct dnssectrustedkey
25006  type Dnssectrustedkey struct {
25007  	// The FQDN of the domain for which the member validates responses to recursive
25008  	// queries.
25009  	Fqdn string `json:"fqdn,omitempty"`
25010  
25011  	// The DNSSEC algorithm used to generate the key.
25012  	Algorithm string `json:"algorithm,omitempty"`
25013  
25014  	// The DNSSEC key.
25015  	Key string `json:"key,omitempty"`
25016  
25017  	// The secure entry point flag, if set it means this is a KSK configuration.
25018  	SecureEntryPoint bool `json:"secure_entry_point,omitempty"`
25019  
25020  	// Responses must be DNSSEC secure for this hierarchy/domain.
25021  	DnssecMustBeSecure bool `json:"dnssec_must_be_secure,omitempty"`
25022  }
25023  
25024  // Dnsserver represents Infoblox struct dnsserver
25025  type Dnsserver struct {
25026  	// Flag to override login name and password from the MS Server
25027  	UseLogin bool `json:"use_login,omitempty"`
25028  
25029  	// Microsoft Server login name
25030  	LoginName string `json:"login_name,omitempty"`
25031  
25032  	// Microsoft Server login password
25033  	LoginPassword string `json:"login_password,omitempty"`
25034  
25035  	// flag indicating if the DNS service is managed
25036  	Managed bool `json:"managed,omitempty"`
25037  
25038  	// Defines what control to apply on the DNS server
25039  	NextSyncControl string `json:"next_sync_control,omitempty"`
25040  
25041  	// Status of the Microsoft DNS Service
25042  	Status string `json:"status,omitempty"`
25043  
25044  	// Detailed status of the DNS status
25045  	StatusDetail string `json:"status_detail,omitempty"`
25046  
25047  	// Timestamp of the last update
25048  	StatusLastUpdated *UnixTime `json:"status_last_updated,omitempty"`
25049  
25050  	// Timestamp of the last synchronization attempt
25051  	LastSyncTs *UnixTime `json:"last_sync_ts,omitempty"`
25052  
25053  	// Status of the last synchronization attempt
25054  	LastSyncStatus string `json:"last_sync_status,omitempty"`
25055  
25056  	// Detailled status of the last synchronization attempt
25057  	LastSyncDetail string `json:"last_sync_detail,omitempty"`
25058  
25059  	// Ordered list of IP addresses to forward queries to
25060  	Forwarders string `json:"forwarders,omitempty"`
25061  
25062  	// Flag indicating if the server supports IPv6
25063  	SupportsIpv6 bool `json:"supports_ipv6,omitempty"`
25064  
25065  	// Flag indicating if the server supports reverse IPv6 zones
25066  	SupportsIpv6Reverse bool `json:"supports_ipv6_reverse,omitempty"`
25067  
25068  	// Flag indicating if the server supports DNAME records
25069  	SupportsRrDname bool `json:"supports_rr_dname,omitempty"`
25070  
25071  	// Flag indicating if the server supports
25072  	SupportsDnssec bool `json:"supports_dnssec,omitempty"`
25073  
25074  	// Flag indicating if the server supports AD integrated zones
25075  	SupportsActiveDirectory bool `json:"supports_active_directory,omitempty"`
25076  
25077  	// MS Server ip address
25078  	Address string `json:"address,omitempty"`
25079  
25080  	// Flag indicating if the server supports NAPTR records
25081  	SupportsRrNaptr bool `json:"supports_rr_naptr,omitempty"`
25082  
25083  	// Override enable monitoring inherited from grid level
25084  	UseEnableMonitoring bool `json:"use_enable_monitoring,omitempty"`
25085  
25086  	// Flag indicating if the DNS service is monitored and controlled
25087  	EnableMonitoring bool `json:"enable_monitoring,omitempty"`
25088  
25089  	// Flag to override synchronization interval from the MS Server
25090  	UseSynchronizationMinDelay bool `json:"use_synchronization_min_delay,omitempty"`
25091  
25092  	// Minimum number of minutes between two synchronizations
25093  	SynchronizationMinDelay uint32 `json:"synchronization_min_delay,omitempty"`
25094  
25095  	// Override enable reports data inherited from grid level
25096  	UseEnableDnsReportsSync bool `json:"use_enable_dns_reports_sync,omitempty"`
25097  
25098  	// Enable or Disable MS DNS data for reports from this MS Server
25099  	EnableDnsReportsSync bool `json:"enable_dns_reports_sync,omitempty"`
25100  }
25101  
25102  // Dnstapsetting represents Infoblox struct dnstapsetting
25103  type Dnstapsetting struct {
25104  	// Address of DNSTAP receiver.
25105  	DnstapReceiverAddress string `json:"dnstap_receiver_address,omitempty"`
25106  
25107  	// DNSTAP receiver port number.
25108  	DnstapReceiverPort uint32 `json:"dnstap_receiver_port,omitempty"`
25109  
25110  	// DNSTAP id string.
25111  	DnstapIdentity string `json:"dnstap_identity,omitempty"`
25112  
25113  	// DNSTAP version.
25114  	DnstapVersion string `json:"dnstap_version,omitempty"`
25115  }
25116  
25117  // DtcHealth represents Infoblox struct dtc:health
25118  type DtcHealth struct {
25119  	// The availability color status.
25120  	Availability string `json:"availability,omitempty"`
25121  
25122  	// The enabled state of the object.
25123  	EnabledState string `json:"enabled_state,omitempty"`
25124  
25125  	// The textual description of the object's status.
25126  	Description string `json:"description,omitempty"`
25127  }
25128  
25129  // DtcMonitorSnmpOid represents Infoblox struct dtc:monitor:snmp:oid
25130  type DtcMonitorSnmpOid struct {
25131  	// The SNMP OID value for DTC SNMP Monitor health checks.
25132  	Oid string `json:"oid,omitempty"`
25133  
25134  	// The comment for a DTC SNMP Health Monitor OID object.
25135  	Comment string `json:"comment,omitempty"`
25136  
25137  	// The value of the condition type for DTC SNMP Monitor health check results.
25138  	Type string `json:"type,omitempty"`
25139  
25140  	// The condition of the validation result for an SNMP health check. The
25141  	// following conditions can be applied to the health check results: 'ANY'
25142  	// accepts any response; 'EXACT' accepts result equal to 'first'; 'LEQ' accepts
25143  	// result which is less than 'first'; 'GEQ' accepts result which is greater
25144  	// than 'first'; 'RANGE' accepts result value of which is between 'first' and
25145  	// 'last'.
25146  	Condition string `json:"condition,omitempty"`
25147  
25148  	// The condition's first term to match against the SNMP health check result.
25149  	First string `json:"first,omitempty"`
25150  
25151  	// The condition's second term to match against the SNMP health check result
25152  	// with 'RANGE' condition.
25153  	Last string `json:"last,omitempty"`
25154  }
25155  
25156  // DtcPoolConsolidatedMonitorHealth represents Infoblox struct dtc:pool:consolidated_monitor_health
25157  type DtcPoolConsolidatedMonitorHealth struct {
25158  	// Members whose monitor statuses are shared across other members in a pool.
25159  	Members []string `json:"members,omitempty"`
25160  
25161  	// Monitor whose statuses are shared across other members in a pool.
25162  	Monitor string `json:"monitor,omitempty"`
25163  
25164  	// Servers assigned to a pool with monitor defined are healthy if ANY or ALL
25165  	// members report healthy status.
25166  	Availability string `json:"availability,omitempty"`
25167  
25168  	// Flag for switching health performing and sharing behavior to perform health
25169  	// checks on each DTC grid member that serves related LBDN(s) and send them
25170  	// across all DTC grid members from both selected and non-selected lists.
25171  	FullHealthCommunication bool `json:"full_health_communication,omitempty"`
25172  }
25173  
25174  // DtcPoolLink represents Infoblox struct dtc:pool:link
25175  type DtcPoolLink struct {
25176  	// The pool to link with.
25177  	Pool string `json:"pool,omitempty"`
25178  
25179  	// The weight of pool.
25180  	Ratio uint32 `json:"ratio,omitempty"`
25181  }
25182  
25183  // DtcServerLink represents Infoblox struct dtc:server:link
25184  type DtcServerLink struct {
25185  	// The server to link with.
25186  	Server string `json:"server,omitempty"`
25187  
25188  	// The weight of server.
25189  	Ratio uint32 `json:"ratio,omitempty"`
25190  }
25191  
25192  // DtcServerMonitor represents Infoblox struct dtc:server:monitor
25193  type DtcServerMonitor struct {
25194  	// The monitor related to server.
25195  	Monitor string `json:"monitor,omitempty"`
25196  
25197  	// IP address or FQDN of the server used for monitoring.
25198  	Host string `json:"host,omitempty"`
25199  }
25200  
25201  // DtcTopologyRuleSource represents Infoblox struct dtc:topology:rule:source
25202  type DtcTopologyRuleSource struct {
25203  	// The source type.
25204  	SourceType string `json:"source_type,omitempty"`
25205  
25206  	// The operation used to match the value.
25207  	SourceOp string `json:"source_op,omitempty"`
25208  
25209  	// The source value.
25210  	SourceValue string `json:"source_value,omitempty"`
25211  }
25212  
25213  // DxlEndpointBroker represents Infoblox struct dxl:endpoint:broker
25214  type DxlEndpointBroker struct {
25215  	// The FQDN for the DXL endpoint broker.
25216  	HostName string `json:"host_name,omitempty"`
25217  
25218  	// The IPv4 Address or IPv6 Address for the DXL endpoint broker.
25219  	Address string `json:"address,omitempty"`
25220  
25221  	// The communication port for the DXL endpoint broker.
25222  	Port uint32 `json:"port,omitempty"`
25223  
25224  	// The unique identifier for the DXL endpoint.
25225  	UniqueId string `json:"unique_id,omitempty"`
25226  }
25227  
25228  // Eaexpressionop represents Infoblox struct eaexpressionop
25229  type Eaexpressionop struct {
25230  	// The operation name.
25231  	Op string `json:"op,omitempty"`
25232  
25233  	// The name of the Extensible Attribute Definition object which is used as the
25234  	// first operand value.
25235  	Op1 string `json:"op1,omitempty"`
25236  
25237  	// The first operand type.
25238  	Op1Type string `json:"op1_type,omitempty"`
25239  
25240  	// The second operand value.
25241  	Op2 string `json:"op2,omitempty"`
25242  
25243  	// The second operand type.
25244  	Op2Type string `json:"op2_type,omitempty"`
25245  }
25246  
25247  // Exclusionrange represents Infoblox struct exclusionrange
25248  type Exclusionrange struct {
25249  	// The IPv4 Address starting address of the exclusion range.
25250  	StartAddress string `json:"start_address,omitempty"`
25251  
25252  	// The IPv4 Address ending address of the exclusion range.
25253  	EndAddress string `json:"end_address,omitempty"`
25254  
25255  	// Comment for the exclusion range; maximum 256 characters.
25256  	Comment string `json:"comment,omitempty"`
25257  }
25258  
25259  // Exclusionrangetemplate represents Infoblox struct exclusionrangetemplate
25260  type Exclusionrangetemplate struct {
25261  	// The address offset of the DHCP exclusion range template.
25262  	Offset uint32 `json:"offset,omitempty"`
25263  
25264  	// The number of addresses in the DHCP exclusion range template.
25265  	NumberOfAddresses uint32 `json:"number_of_addresses,omitempty"`
25266  
25267  	// A descriptive comment of a DHCP exclusion range template.
25268  	Comment string `json:"comment,omitempty"`
25269  }
25270  
25271  // Expressionop represents Infoblox struct expressionop
25272  type Expressionop struct {
25273  	// The operation name.
25274  	Op string `json:"op,omitempty"`
25275  
25276  	// The first operand value.
25277  	Op1 string `json:"op1,omitempty"`
25278  
25279  	// The first operand type.
25280  	Op1Type string `json:"op1_type,omitempty"`
25281  
25282  	// The second operand value.
25283  	Op2 string `json:"op2,omitempty"`
25284  
25285  	// The second operand type.
25286  	Op2Type string `json:"op2_type,omitempty"`
25287  }
25288  
25289  // ExtensibleattributedefDescendants represents Infoblox struct extensibleattributedef:descendants
25290  type ExtensibleattributedefDescendants struct {
25291  	// This option describes which action must be taken if the extensible attribute
25292  	// exists for both the parent and descendant objects: * INHERIT: inherit the
25293  	// extensible attribute from the parent object. * RETAIN: retain the value of
25294  	// an extensible attribute that was set for the child object. * CONVERT: the
25295  	// value of the extensible attribute must be copied from the parent object.
25296  	OptionWithEa string `json:"option_with_ea,omitempty"`
25297  
25298  	// This option describes which action must be taken if the extensible attribute
25299  	// exists for the parent, but is absent from the descendant object: * INHERIT:
25300  	// inherit the extensible attribute from the parent object. * NOT_INHERIT: do
25301  	// nothing.
25302  	OptionWithoutEa string `json:"option_without_ea,omitempty"`
25303  
25304  	// This option describes which action must be taken if the extensible attribute
25305  	// exists for the descendant, but is absent for the parent object: * RETAIN:
25306  	// retain the extensible attribute value for the descendant object. * REMOVE:
25307  	// remove this extensible attribute from the descendant object.
25308  	OptionDeleteEa string `json:"option_delete_ea,omitempty"`
25309  }
25310  
25311  // EADefListValue represents Infoblox struct extensibleattributedef:listvalues
25312  type EADefListValue struct {
25313  	// Enum value
25314  	Value string `json:"value,omitempty"`
25315  }
25316  
25317  // NameServer represents Infoblox struct extserver
25318  type NameServer struct {
25319  	// The IPv4 Address or IPv6 Address of the server.
25320  	Address string `json:"address,omitempty"`
25321  
25322  	// A resolvable domain name for the external DNS server.
25323  	Name string `json:"name,omitempty"`
25324  
25325  	// This flag represents whether the name server is shared with the parent
25326  	// Microsoft primary zone's delegation server.
25327  	SharedWithMsParentDelegation bool `json:"shared_with_ms_parent_delegation,omitempty"`
25328  
25329  	// Set this flag to hide the NS record for the primary name server from DNS
25330  	// queries.
25331  	Stealth bool `json:"stealth,omitempty"`
25332  
25333  	// A generated TSIG key.
25334  	TsigKey string `json:"tsig_key,omitempty"`
25335  
25336  	// The TSIG key algorithm.
25337  	TsigKeyAlg string `json:"tsig_key_alg,omitempty"`
25338  
25339  	// The TSIG key name.
25340  	TsigKeyName string `json:"tsig_key_name,omitempty"`
25341  
25342  	// Use flag for: tsig_key_name
25343  	UseTsigKeyName bool `json:"use_tsig_key_name,omitempty"`
25344  }
25345  
25346  // Extsyslogbackupserver represents Infoblox struct extsyslogbackupserver
25347  type Extsyslogbackupserver struct {
25348  	// The IPv4 or IPv6 address of the backup syslog server.
25349  	Address string `json:"address,omitempty"`
25350  
25351  	// The directory path for the replication of the rotated syslog files.
25352  	DirectoryPath string `json:"directory_path,omitempty"`
25353  
25354  	// If set to True, the syslog backup server is enabled.
25355  	Enable bool `json:"enable,omitempty"`
25356  
25357  	// The password of the backup syslog server.
25358  	Password string `json:"password,omitempty"`
25359  
25360  	// The port used to connect to the backup syslog server.
25361  	Port uint32 `json:"port,omitempty"`
25362  
25363  	// The transport protocol used to connect to the backup syslog server.
25364  	Protocol string `json:"protocol,omitempty"`
25365  
25366  	// The username of the backup syslog server.
25367  	Username string `json:"username,omitempty"`
25368  }
25369  
25370  // Filetransfersetting represents Infoblox struct filetransfersetting
25371  type Filetransfersetting struct {
25372  	// The directory to save the captured DNS queries and responses.
25373  	Directory string `json:"directory,omitempty"`
25374  
25375  	// The host name of the destination server for DNS capture transfer.
25376  	Host string `json:"host,omitempty"`
25377  
25378  	// The password to access the destination server directory.
25379  	Password string `json:"password,omitempty"`
25380  
25381  	// The transfer protocol for the captured DNS queries and responses.
25382  	Type string `json:"type,omitempty"`
25383  
25384  	// The username to access the destination server directory.
25385  	Username string `json:"username,omitempty"`
25386  
25387  	// Transfer scp port.
25388  	Port uint32 `json:"port,omitempty"`
25389  }
25390  
25391  // Filterrule represents Infoblox struct filterrule
25392  type Filterrule struct {
25393  	// The name of the DHCP filter.
25394  	Filter string `json:"filter,omitempty"`
25395  
25396  	// The permission to be applied.
25397  	Permission string `json:"permission,omitempty"`
25398  }
25399  
25400  // FireeyeAlertmap represents Infoblox struct fireeye:alertmap
25401  type FireeyeAlertmap struct {
25402  	// The type of Fireeye Alert.
25403  	AlertType string `json:"alert_type,omitempty"`
25404  
25405  	// The RPZ rule for the alert.
25406  	RpzRule string `json:"rpz_rule,omitempty"`
25407  
25408  	// The expiration Lifetime of alert type. The 32-bit unsigned integer
25409  	// represents the amount of seconds this alert type will live for. 0 means the
25410  	// alert will never expire.
25411  	Lifetime uint32 `json:"lifetime,omitempty"`
25412  }
25413  
25414  // FireeyeRulemapping represents Infoblox struct fireeye:rulemapping
25415  type FireeyeRulemapping struct {
25416  	// The override setting for APT alerts.
25417  	AptOverride string `json:"apt_override,omitempty"`
25418  
25419  	// The FireEye alert mapping.
25420  	FireeyeAlertMapping []*FireeyeAlertmap `json:"fireeye_alert_mapping,omitempty"`
25421  
25422  	// The domain name to be substituted, this is applicable only when apt_override
25423  	// is set to "SUBSTITUTE".
25424  	SubstitutedDomainName string `json:"substituted_domain_name,omitempty"`
25425  }
25426  
25427  // Forwardingmemberserver represents Infoblox struct forwardingmemberserver
25428  type Forwardingmemberserver struct {
25429  	// The name of this Grid member in FQDN format.
25430  	Name string `json:"name,omitempty"`
25431  
25432  	// Determines if the appliance sends queries to forwarders only, and not to
25433  	// other internal or Internet root servers.
25434  	ForwardersOnly bool `json:"forwarders_only,omitempty"`
25435  
25436  	// The information for the remote name server to which you want the Infoblox
25437  	// appliance to forward queries for a specified domain name.
25438  	ForwardTo NullableNameServers `json:"forward_to,omitempty"`
25439  
25440  	// Use flag for: forward_to
25441  	UseOverrideForwarders bool `json:"use_override_forwarders"`
25442  }
25443  
25444  // GridAttackdetect represents Infoblox struct grid:attackdetect
25445  type GridAttackdetect struct {
25446  	// Determines if DNS attack detection is enabled or not.
25447  	Enable bool `json:"enable,omitempty"`
25448  
25449  	// The high threshold value (in percentage) for starting DNS attack detection.
25450  	High uint32 `json:"high,omitempty"`
25451  
25452  	// The maximum number of events that have occurred before processing DNS attack
25453  	// detection.
25454  	IntervalMax uint32 `json:"interval_max,omitempty"`
25455  
25456  	// The minimum number of events that have occurred before processing DNS attack
25457  	// detection.
25458  	IntervalMin uint32 `json:"interval_min,omitempty"`
25459  
25460  	// The time interval between detection processing.
25461  	IntervalTime uint32 `json:"interval_time,omitempty"`
25462  
25463  	// The low threshold value (in percentage) for starting DNS attack detection.
25464  	Low uint32 `json:"low,omitempty"`
25465  }
25466  
25467  // GridAttackmitigation represents Infoblox struct grid:attackmitigation
25468  type GridAttackmitigation struct {
25469  	// Configuration for detecting changes for the Cache Hit Ratio (CHR) of
25470  	// recursive queries.
25471  	DetectChr *GridAttackdetect `json:"detect_chr,omitempty"`
25472  
25473  	// The cache utilization (in percentage) when Cache Hit Ratio (CHR) starts.
25474  	DetectChrGrace uint32 `json:"detect_chr_grace,omitempty"`
25475  
25476  	// Configuration for detecting NXDOMAIN responses from up-stream servers to all
25477  	// incoming recursive responses.
25478  	DetectNxdomainResponses *GridAttackdetect `json:"detect_nxdomain_responses,omitempty"`
25479  
25480  	// Configuration for detecting the UDP packet drop rate.
25481  	DetectUdpDrop *GridAttackdetect `json:"detect_udp_drop,omitempty"`
25482  
25483  	// The minimum time interval (in seconds) between changes in attack status.
25484  	Interval uint32 `json:"interval,omitempty"`
25485  
25486  	// Enable or disable the mitigation of possible NXDOMAIN attacks by splitting
25487  	// the Lease Recently Used (LRU) list into NX (non-existent) RRsets and all
25488  	// other RRsets, and by removing the least recently used items from the LRU
25489  	// list for NX RRsets before removing items for other RRsets.
25490  	MitigateNxdomainLru bool `json:"mitigate_nxdomain_lru,omitempty"`
25491  }
25492  
25493  // GridAutoblackhole represents Infoblox struct grid:autoblackhole
25494  type GridAutoblackhole struct {
25495  	// Enables or disables the configuration of the maximum number of concurrent
25496  	// recursive queries the appliance sends to each upstream DNS server.
25497  	EnableFetchesPerServer bool `json:"enable_fetches_per_server,omitempty"`
25498  
25499  	// Enables or disables the configuration of the maximum number of concurrent
25500  	// recursive queries the appliance sends to each DNS zone.
25501  	EnableFetchesPerZone bool `json:"enable_fetches_per_zone,omitempty"`
25502  
25503  	// Enables or disables the holddown configuration when the appliance stops
25504  	// sending queries to non-responsive servers.
25505  	EnableHolddown bool `json:"enable_holddown,omitempty"`
25506  
25507  	// The maximum number of concurrent recursive queries the appliance sends to a
25508  	// single upstream name server before blocking additional queries to that
25509  	// server.
25510  	FetchesPerServer uint32 `json:"fetches_per_server,omitempty"`
25511  
25512  	// The maximum number of concurrent recursive queries that a server sends for
25513  	// its domains.
25514  	FetchesPerZone uint32 `json:"fetches_per_zone,omitempty"`
25515  
25516  	// Determines how often (in number of recursive responses) the appliance
25517  	// recalculates the average timeout ratio for each DNS server.
25518  	FpsFreq uint32 `json:"fps_freq,omitempty"`
25519  
25520  	// The holddown duration for non-responsive servers.
25521  	Holddown uint32 `json:"holddown,omitempty"`
25522  
25523  	// The number of consecutive timeouts before holding down a non-responsive
25524  	// server.
25525  	HolddownThreshold uint32 `json:"holddown_threshold,omitempty"`
25526  
25527  	// The minimum time (in seconds) that needs to be passed before a timeout
25528  	// occurs. Note that only these timeouts are counted towards the number of
25529  	// consecutive timeouts.
25530  	HolddownTimeout uint32 `json:"holddown_timeout,omitempty"`
25531  }
25532  
25533  // GridCloudapiGatewayConfig represents Infoblox struct grid:cloudapi:gateway:config
25534  type GridCloudapiGatewayConfig struct {
25535  	// Enable Gateway Service.
25536  	EnableProxyService bool `json:"enable_proxy_service,omitempty"`
25537  
25538  	// Gateway port
25539  	Port uint32 `json:"port,omitempty"`
25540  
25541  	// List of Gateway FQDN to AWS Endpoint Mapping.
25542  	EndpointMapping []*GridCloudapiGatewayEndpointmapping `json:"endpoint_mapping,omitempty"`
25543  }
25544  
25545  // GridCloudapiGatewayEndpointmapping represents Infoblox struct grid:cloudapi:gateway:endpointmapping
25546  type GridCloudapiGatewayEndpointmapping struct {
25547  	// Gateway FQDN.
25548  	GatewayFqdn string `json:"gateway_fqdn,omitempty"`
25549  
25550  	// Endpoint FQDN.
25551  	EndpointFqdn string `json:"endpoint_fqdn,omitempty"`
25552  }
25553  
25554  // GridCloudapiInfo represents Infoblox struct grid:cloudapi:info
25555  type GridCloudapiInfo struct {
25556  	// The Cloud Platform Appliance to which authority of the object is delegated.
25557  	DelegatedMember *Dhcpmember `json:"delegated_member,omitempty"`
25558  
25559  	// Indicates the scope of delegation for the object. This can be one of the
25560  	// following: NONE (outside any delegation), ROOT (the delegation point),
25561  	// SUBTREE (within the scope of a delegation), RECLAIMING (within the scope of
25562  	// a delegation being reclaimed, either as the delegation point or in the
25563  	// subtree).
25564  	DelegatedScope string `json:"delegated_scope,omitempty"`
25565  
25566  	// Indicates the root of the delegation if delegated_scope is SUBTREE or
25567  	// RECLAIMING. This is not set otherwise.
25568  	DelegatedRoot string `json:"delegated_root,omitempty"`
25569  
25570  	// Determines whether the object was created by the cloud adapter or not.
25571  	OwnedByAdaptor bool `json:"owned_by_adaptor,omitempty"`
25572  
25573  	// Indicates the cloud origin of the object.
25574  	Usage string `json:"usage,omitempty"`
25575  
25576  	// Reference to the tenant object associated with the object, if any.
25577  	Tenant string `json:"tenant,omitempty"`
25578  
25579  	// Indicates the specified cloud management platform.
25580  	MgmtPlatform string `json:"mgmt_platform,omitempty"`
25581  
25582  	// Type of authority over the object.
25583  	AuthorityType string `json:"authority_type,omitempty"`
25584  }
25585  
25586  // GridCloudapiUser represents Infoblox struct grid:cloudapi:user
25587  type GridCloudapiUser struct {
25588  	// Determines whether this is a remote admin user.
25589  	IsRemote bool `json:"is_remote,omitempty"`
25590  
25591  	// Username that matches a remote administrator who can perform cloud API
25592  	// requests on the Cloud Platform Appliance.
25593  	RemoteAdmin string `json:"remote_admin,omitempty"`
25594  
25595  	// Local administrator who can perform cloud API requests on the Cloud Platform
25596  	// Appliance.
25597  	LocalAdmin string `json:"local_admin,omitempty"`
25598  }
25599  
25600  // GridConsentbannersetting represents Infoblox struct grid:consentbannersetting
25601  type GridConsentbannersetting struct {
25602  	// Determines whether the consent banner is enabled.
25603  	Enable bool `json:"enable,omitempty"`
25604  
25605  	// The message included in the consent banner.
25606  	Message string `json:"message,omitempty"`
25607  }
25608  
25609  // GridCspapiconfig represents Infoblox struct grid:cspapiconfig
25610  type GridCspapiconfig struct {
25611  	// The url for the CspApiConfig.
25612  	Url string `json:"url,omitempty"`
25613  
25614  	// The user name for the CspApiConfig.
25615  	Username string `json:"username,omitempty"`
25616  
25617  	// The password for the CspApiConfig.
25618  	Password string `json:"password,omitempty"`
25619  }
25620  
25621  // GridCspgridsetting represents Infoblox struct grid:cspgridsetting
25622  type GridCspgridsetting struct {
25623  	// Join token required to connect to a cluster
25624  	CspJoinToken string `json:"csp_join_token,omitempty"`
25625  
25626  	// IP address of DNS resolver in DFP
25627  	CspDnsResolver string `json:"csp_dns_resolver,omitempty"`
25628  
25629  	// HTTP Proxy IP address of CSP Portal
25630  	CspHttpsProxy string `json:"csp_https_proxy,omitempty"`
25631  }
25632  
25633  // GridDnsFixedrrsetorderfqdn represents Infoblox struct grid:dns:fixedrrsetorderfqdn
25634  type GridDnsFixedrrsetorderfqdn struct {
25635  	// The FQDN of the fixed RRset configuration item.
25636  	Fqdn string `json:"fqdn,omitempty"`
25637  
25638  	// The record type for the specified FQDN in the fixed RRset configuration.
25639  	RecordType string `json:"record_type,omitempty"`
25640  }
25641  
25642  // GridInformationalbannersetting represents Infoblox struct grid:informationalbannersetting
25643  type GridInformationalbannersetting struct {
25644  	// Determines whether the display of the informational level banner is enabled.
25645  	Enable bool `json:"enable,omitempty"`
25646  
25647  	// The message included in the informational level banner.
25648  	Message string `json:"message,omitempty"`
25649  
25650  	// The color for the informational level banner.
25651  	Color string `json:"color,omitempty"`
25652  }
25653  
25654  // GridLicensesubpool represents Infoblox struct grid:licensesubpool
25655  type GridLicensesubpool struct {
25656  	// The license string for the license subpool.
25657  	Key string `json:"key,omitempty"`
25658  
25659  	// The total number of dynamic licenses allowed for this license subpool.
25660  	Installed uint32 `json:"installed,omitempty"`
25661  
25662  	// License expiration date.
25663  	ExpiryDate *UnixTime `json:"expiry_date,omitempty"`
25664  }
25665  
25666  // GridLockoutsetting represents Infoblox struct grid:lockoutsetting
25667  type GridLockoutsetting struct {
25668  	// Enable/disable sequential failed login attempts lockout for local users
25669  	EnableSequentialFailedLoginAttemptsLockout bool `json:"enable_sequential_failed_login_attempts_lockout,omitempty"`
25670  
25671  	// The number of failed login attempts
25672  	SequentialAttempts uint32 `json:"sequential_attempts,omitempty"`
25673  
25674  	// Time period the account remains locked after sequential failed login attempt
25675  	// lockout.
25676  	FailedLockoutDuration uint32 `json:"failed_lockout_duration,omitempty"`
25677  
25678  	// Never unlock option is also provided and if set then user account is locked
25679  	// forever and only super user can unlock this account
25680  	NeverUnlockUser bool `json:"never_unlock_user,omitempty"`
25681  }
25682  
25683  // GridLoggingcategories represents Infoblox struct grid:loggingcategories
25684  type GridLoggingcategories struct {
25685  	// Determines whether the DTC GSLB activity is captured or not.
25686  	LogDtcGslb bool `json:"log_dtc_gslb,omitempty"`
25687  
25688  	// Determines whether the DTC health monitoring information is captured or not.
25689  	LogDtcHealth bool `json:"log_dtc_health,omitempty"`
25690  
25691  	// Determines whether the BIND messages that are not specifically classified
25692  	// are captured or not.
25693  	LogGeneral bool `json:"log_general,omitempty"`
25694  
25695  	// Determines whether the client requests are captured or not.
25696  	LogClient bool `json:"log_client,omitempty"`
25697  
25698  	// Determines whether the configuration file parsing is captured or not.
25699  	LogConfig bool `json:"log_config,omitempty"`
25700  
25701  	// Determines whether the BIND's internal database processes are captured or
25702  	// not.
25703  	LogDatabase bool `json:"log_database,omitempty"`
25704  
25705  	// Determines whether the DNSSEC-signed responses are captured or not.
25706  	LogDnssec bool `json:"log_dnssec,omitempty"`
25707  
25708  	// Determines whether the bad delegation instances are captured or not.
25709  	LogLameServers bool `json:"log_lame_servers,omitempty"`
25710  
25711  	// Determines whether the network operation messages are captured or not.
25712  	LogNetwork bool `json:"log_network,omitempty"`
25713  
25714  	// Determines whether the asynchronous zone change notification messages are
25715  	// captured or not.
25716  	LogNotify bool `json:"log_notify,omitempty"`
25717  
25718  	// Determines whether the query messages are captured or not.
25719  	LogQueries bool `json:"log_queries,omitempty"`
25720  
25721  	// Determines whether the query rewrite messages are captured or not.
25722  	LogQueryRewrite bool `json:"log_query_rewrite,omitempty"`
25723  
25724  	// Determines whether the response messages are captured or not.
25725  	LogResponses bool `json:"log_responses,omitempty"`
25726  
25727  	// Determines whether the DNS resolution instances, including recursive queries
25728  	// from resolvers are captured or not.
25729  	LogResolver bool `json:"log_resolver,omitempty"`
25730  
25731  	// Determines whether the approved and denied requests are captured or not.
25732  	LogSecurity bool `json:"log_security,omitempty"`
25733  
25734  	// Determines whether the dynamic update instances are captured or not.
25735  	LogUpdate bool `json:"log_update,omitempty"`
25736  
25737  	// Determines whether the zone transfer messages from the remote name servers
25738  	// to the appliance are captured or not.
25739  	LogXferIn bool `json:"log_xfer_in,omitempty"`
25740  
25741  	// Determines whether the zone transfer messages from the Infoblox appliance to
25742  	// remote name servers are captured or not.
25743  	LogXferOut bool `json:"log_xfer_out,omitempty"`
25744  
25745  	// Determines whether the security update messages are captured or not.
25746  	LogUpdateSecurity bool `json:"log_update_security,omitempty"`
25747  
25748  	// Determines whether the rate limit messages are captured or not.
25749  	LogRateLimit bool `json:"log_rate_limit,omitempty"`
25750  
25751  	// Determines whether the Response Policy Zone messages are captured or not.
25752  	LogRpz bool `json:"log_rpz,omitempty"`
25753  }
25754  
25755  // NTPSetting represents Infoblox struct grid:ntp
25756  type NTPSetting struct {
25757  	// Determines whether NTP is enabled on the Grid.
25758  	EnableNTP bool `json:"enable_ntp,omitempty"`
25759  
25760  	// The list of NTP servers configured on a Grid.
25761  	NTPServers []*NTPserver `json:"ntp_servers,omitempty"`
25762  
25763  	// The list of NTP authentication keys used to authenticate NTP clients.
25764  	NTPKeys []*Ntpkey `json:"ntp_keys,omitempty"`
25765  
25766  	// The NTP access control settings.
25767  	NTPAcl *Ntpaccess `json:"ntp_acl,omitempty"`
25768  
25769  	// Determines whether the Kiss-o'-Death packets are enabled.
25770  	NTPKod bool `json:"ntp_kod,omitempty"`
25771  
25772  	// Grid level GM local NTP stratum.
25773  	GmLocalNtpStratum uint32 `json:"gm_local_ntp_stratum,omitempty"`
25774  
25775  	// Local NTP stratum for non-GM members.
25776  	LocalNtpStratum uint32 `json:"local_ntp_stratum,omitempty"`
25777  
25778  	// This flag controls whether gm_local_ntp_stratum value be set to a default
25779  	// value
25780  	UseDefaultStratum bool `json:"use_default_stratum,omitempty"`
25781  }
25782  
25783  // GridResponseratelimiting represents Infoblox struct grid:responseratelimiting
25784  type GridResponseratelimiting struct {
25785  	// Determines if the response rate limiting is enabled or not.
25786  	EnableRrl bool `json:"enable_rrl,omitempty"`
25787  
25788  	// Determines if logging for response rate limiting without dropping any
25789  	// requests is enabled or not.
25790  	LogOnly bool `json:"log_only,omitempty"`
25791  
25792  	// The number of responses per client per second.
25793  	ResponsesPerSecond uint32 `json:"responses_per_second,omitempty"`
25794  
25795  	// The time interval in seconds over which responses are tracked.
25796  	Window uint32 `json:"window,omitempty"`
25797  
25798  	// The response rate limiting slip. Note that if slip is not equal to 0 every
25799  	// n-th rate-limited UDP request is sent a truncated response instead of being
25800  	// dropped.
25801  	Slip uint32 `json:"slip,omitempty"`
25802  }
25803  
25804  // GridRestartbannersetting represents Infoblox struct grid:restartbannersetting
25805  type GridRestartbannersetting struct {
25806  	// If set to True, the restart banner is enabled.
25807  	Enabled bool `json:"enabled,omitempty"`
25808  
25809  	// If set to True, the user is required to input name before restarting the
25810  	// services.
25811  	EnableDoubleConfirmation bool `json:"enable_double_confirmation,omitempty"`
25812  }
25813  
25814  // GridServicerestart represents Infoblox struct grid:servicerestart
25815  type GridServicerestart struct {
25816  	// The time duration to delay a restart for a restart group.
25817  	Delay uint32 `json:"delay,omitempty"`
25818  
25819  	// The duration of timeout for a restart group. The value "-1" means infinite.
25820  	Timeout int `json:"timeout,omitempty"`
25821  
25822  	// Determines whether the Grid should try to restart offline member.
25823  	RestartOffline bool `json:"restart_offline,omitempty"`
25824  }
25825  
25826  // GridServicerestartGroupSchedule represents Infoblox struct grid:servicerestart:group:schedule
25827  type GridServicerestartGroupSchedule struct {
25828  	// The list of applicable services for the restart.
25829  	Services []string `json:"services,omitempty"`
25830  
25831  	// The restart method for a Grid restart.
25832  	Mode string `json:"mode,omitempty"`
25833  
25834  	// The Schedule Setting struct that determines the schedule for the restart.
25835  	Schedule *SettingSchedule `json:"schedule,omitempty"`
25836  
25837  	// Determines if the Restart Group should have a force restart.
25838  	Force bool `json:"force,omitempty"`
25839  }
25840  
25841  // GridmemberSoamname represents Infoblox struct gridmember_soamname
25842  type GridmemberSoamname struct {
25843  	// The grid primary server for the zone. Only one of "grid_primary" or
25844  	// "ms_server_primary" should be set when modifying or creating the object.
25845  	GridPrimary string `json:"grid_primary,omitempty"`
25846  
25847  	// The primary MS server for the zone. Only one of "grid_primary" or
25848  	// "ms_server_primary" should be set when modifying or creating the object.
25849  	MsServerPrimary string `json:"ms_server_primary,omitempty"`
25850  
25851  	// Master's SOA MNAME. This value can be in unicode format.
25852  	Mname string `json:"mname,omitempty"`
25853  
25854  	// Master's SOA MNAME in punycode format.
25855  	DnsMname string `json:"dns_mname,omitempty"`
25856  }
25857  
25858  // GridmemberSoaserial represents Infoblox struct gridmember_soaserial
25859  type GridmemberSoaserial struct {
25860  	// The grid primary server for the zone. Only one of "grid_primary" or
25861  	// "ms_server_primary" will be set when the object is retrieved from the
25862  	// server.
25863  	GridPrimary string `json:"grid_primary,omitempty"`
25864  
25865  	// The primary MS server for the zone. Only one of "grid_primary" or
25866  	// "ms_server_primary" will be set when the object is retrieved from the
25867  	// server.
25868  	MsServerPrimary string `json:"ms_server_primary,omitempty"`
25869  
25870  	// The SOA serial number.
25871  	Serial uint32 `json:"serial,omitempty"`
25872  }
25873  
25874  // Hotfix represents Infoblox struct hotfix
25875  type Hotfix struct {
25876  	// The status text of the hotfix.
25877  	StatusText string `json:"status_text,omitempty"`
25878  
25879  	// Unique ID of the hotfix.
25880  	UniqueId string `json:"unique_id,omitempty"`
25881  }
25882  
25883  // HsmSafenet represents Infoblox struct hsm:safenet
25884  type HsmSafenet struct {
25885  	// The HSM SafeNet device IPv4 Address or FQDN.
25886  	Name string `json:"name,omitempty"`
25887  
25888  	// The HSM SafeNet device partition serial number (PSN).
25889  	PartitionSerialNumber string `json:"partition_serial_number,omitempty"`
25890  
25891  	// Determines whether the HSM SafeNet device is disabled.
25892  	Disable bool `json:"disable,omitempty"`
25893  
25894  	// Partition ID that is displayed after the appliance has successfully
25895  	// connected to the HSM SafeNet device.
25896  	PartitionId string `json:"partition_id,omitempty"`
25897  
25898  	// Determines whether the HSM SafeNet device is FIPS compliant.
25899  	IsFipsCompliant bool `json:"is_fips_compliant,omitempty"`
25900  
25901  	// The token returned by the uploadinit function call in object fileop for a
25902  	// SafeNet HSM device certificate.
25903  	ServerCert string `json:"server_cert,omitempty"`
25904  
25905  	// The HSM SafeNet device partition capacity percentage used.
25906  	PartitionCapacity uint32 `json:"partition_capacity,omitempty"`
25907  
25908  	// The HSM SafeNet device status.
25909  	Status string `json:"status,omitempty"`
25910  }
25911  
25912  // HsmThales represents Infoblox struct hsm:thales
25913  type HsmThales struct {
25914  	// The IPv4 Address of the Thales HSM device.
25915  	RemoteIp string `json:"remote_ip,omitempty"`
25916  
25917  	// The Thales HSM device destination port.
25918  	RemotePort uint32 `json:"remote_port,omitempty"`
25919  
25920  	// The Thales HSM device status.
25921  	Status string `json:"status,omitempty"`
25922  
25923  	// The Thales HSM device electronic serial number.
25924  	RemoteEsn string `json:"remote_esn,omitempty"`
25925  
25926  	// The Thales HSM device public key digest.
25927  	Keyhash string `json:"keyhash,omitempty"`
25928  
25929  	// Determines whether the Thales HSM device is disabled.
25930  	Disable bool `json:"disable,omitempty"`
25931  }
25932  
25933  // Interface represents Infoblox struct interface
25934  type Interface struct {
25935  	// Determines if anycast for the Interface object is enabled or not.
25936  	Anycast bool `json:"anycast,omitempty"`
25937  
25938  	// The IPv4 network settings of the Grid Member.
25939  	Ipv4NetworkSetting *SettingNetwork `json:"ipv4_network_setting,omitempty"`
25940  
25941  	// The IPv6 network settings of the Grid Member.
25942  	Ipv6NetworkSetting *Ipv6setting `json:"ipv6_network_setting,omitempty"`
25943  
25944  	// A descriptive comment of this structure.
25945  	Comment string `json:"comment,omitempty"`
25946  
25947  	// Determines if the BGP advertisement setting is enabled for this interface or
25948  	// not.
25949  	EnableBgp bool `json:"enable_bgp,omitempty"`
25950  
25951  	// Determines if the OSPF advertisement setting is enabled for this interface
25952  	// or not.
25953  	EnableOspf bool `json:"enable_ospf,omitempty"`
25954  
25955  	// The interface type for the Interface object.
25956  	Interface string `json:"interface,omitempty"`
25957  }
25958  
25959  // Ipv6networksetting represents Infoblox struct ipv6networksetting
25960  type Ipv6networksetting struct {
25961  	// IPv6 address.
25962  	Address string `json:"address,omitempty"`
25963  
25964  	// IPv6 CIDR
25965  	Cidr uint32 `json:"cidr,omitempty"`
25966  
25967  	// Gateway address.
25968  	Gateway string `json:"gateway,omitempty"`
25969  }
25970  
25971  // Ipv6setting represents Infoblox struct ipv6setting
25972  type Ipv6setting struct {
25973  	// Determines if IPv6 networking should be enabled.
25974  	Enabled bool `json:"enabled,omitempty"`
25975  
25976  	// IPv6 address.
25977  	VirtualIp string `json:"virtual_ip,omitempty"`
25978  
25979  	// IPv6 cidr prefix
25980  	CidrPrefix uint32 `json:"cidr_prefix,omitempty"`
25981  
25982  	// Gateway address.
25983  	Gateway string `json:"gateway,omitempty"`
25984  
25985  	// Determines if automatic router configuration should be enabled.
25986  	AutoRouterConfigEnabled bool `json:"auto_router_config_enabled,omitempty"`
25987  
25988  	// The identifier for the VLAN. Valid values are from 1 to 4096.
25989  	VlanId uint32 `json:"vlan_id,omitempty"`
25990  
25991  	// Determines if the current address is the primary VLAN address or not.
25992  	Primary bool `json:"primary,omitempty"`
25993  
25994  	// The DSCP (Differentiated Services Code Point) value determines relative
25995  	// priorities for the type of services on your network. The appliance
25996  	// implements QoS (Quality of Service) rules based on this configuration. Valid
25997  	// values are from 0 to 63.
25998  	Dscp uint32 `json:"dscp,omitempty"`
25999  
26000  	// Use flag for: dscp
26001  	UseDscp bool `json:"use_dscp,omitempty"`
26002  }
26003  
26004  // Lan2portsetting represents Infoblox struct lan2portsetting
26005  type Lan2portsetting struct {
26006  	// If the 'enabled' field is set to True, this defines the virtual router ID
26007  	// for the LAN2 port.
26008  	VirtualRouterId uint32 `json:"virtual_router_id,omitempty"`
26009  
26010  	// If this field is set to True, then it has its own IP settings. Otherwise,
26011  	// port redundancy mechanism is used, in which the LAN1 and LAN2 ports share
26012  	// the same IP settings for failover purposes.
26013  	Enabled bool `json:"enabled,omitempty"`
26014  
26015  	// If the 'enable' field is set to True, this defines IPv4 network settings for
26016  	// LAN2.
26017  	NetworkSetting *SettingNetwork `json:"network_setting,omitempty"`
26018  
26019  	// If the 'enable' field is set to True, this defines IPv6 network settings for
26020  	// the LAN2 port.
26021  	V6NetworkSetting *Ipv6setting `json:"v6_network_setting,omitempty"`
26022  
26023  	// Determines if NIC failover is enabled or not.
26024  	NicFailoverEnabled bool `json:"nic_failover_enabled,omitempty"`
26025  
26026  	// Prefer LAN1 when available.
26027  	NicFailoverEnablePrimary bool `json:"nic_failover_enable_primary,omitempty"`
26028  
26029  	// Default route failover for LAN1 and LAN2.
26030  	DefaultRouteFailoverEnabled bool `json:"default_route_failover_enabled,omitempty"`
26031  }
26032  
26033  // Lanhaportsetting represents Infoblox struct lanhaportsetting
26034  type Lanhaportsetting struct {
26035  	// Public IPv4 address for the LAN1 interface.
26036  	MgmtLan string `json:"mgmt_lan,omitempty"`
26037  
26038  	// Public IPv6 address for the LAN1 interface.
26039  	MgmtIpv6addr string `json:"mgmt_ipv6addr,omitempty"`
26040  
26041  	// HA IP address.
26042  	HaIpAddress string `json:"ha_ip_address,omitempty"`
26043  
26044  	// Physical port settings for the LAN interface.
26045  	LanPortSetting *Physicalportsetting `json:"lan_port_setting,omitempty"`
26046  
26047  	// Physical port settings for the HA interface.
26048  	HaPortSetting *Physicalportsetting `json:"ha_port_setting,omitempty"`
26049  }
26050  
26051  // LdapEamapping represents Infoblox struct ldap_eamapping
26052  type LdapEamapping struct {
26053  	// The LDAP attribute name.
26054  	Name string `json:"name,omitempty"`
26055  
26056  	// The name of the extensible attribute definition object to which the LDAP
26057  	// attribute is mapped.
26058  	MappedEa string `json:"mapped_ea,omitempty"`
26059  }
26060  
26061  // LdapServer represents Infoblox struct ldap_server
26062  type LdapServer struct {
26063  	// The IP address or FQDN of the LDAP server.
26064  	Address string `json:"address,omitempty"`
26065  
26066  	// The authentication type for the LDAP server.
26067  	AuthenticationType string `json:"authentication_type,omitempty"`
26068  
26069  	// The base DN for the LDAP server.
26070  	BaseDn string `json:"base_dn,omitempty"`
26071  
26072  	// The user password for authentication.
26073  	BindPassword string `json:"bind_password,omitempty"`
26074  
26075  	// The user DN for authentication.
26076  	BindUserDn string `json:"bind_user_dn,omitempty"`
26077  
26078  	// The LDAP descriptive comment.
26079  	Comment string `json:"comment,omitempty"`
26080  
26081  	// Determines if the LDAP server is disabled.
26082  	Disable bool `json:"disable,omitempty"`
26083  
26084  	// The LDAP server encryption type.
26085  	Encryption string `json:"encryption,omitempty"`
26086  
26087  	// The LDAP server port.
26088  	Port uint32 `json:"port,omitempty"`
26089  
26090  	// Determines if the connection via the MGMT interface is allowed.
26091  	UseMgmtPort bool `json:"use_mgmt_port,omitempty"`
26092  
26093  	// The LDAP server version.
26094  	Version string `json:"version,omitempty"`
26095  }
26096  
26097  // Logicfilterrule represents Infoblox struct logicfilterrule
26098  type Logicfilterrule struct {
26099  	// The filter name.
26100  	Filter string `json:"filter,omitempty"`
26101  
26102  	// The filter type. Valid values are: * MAC * NAC * Option
26103  	Type string `json:"type,omitempty"`
26104  }
26105  
26106  // Lomnetworkconfig represents Infoblox struct lomnetworkconfig
26107  type Lomnetworkconfig struct {
26108  	// The IPv4 Address of the Grid member.
26109  	Address string `json:"address,omitempty"`
26110  
26111  	// The default gateway for the Grid member.
26112  	Gateway string `json:"gateway,omitempty"`
26113  
26114  	// The subnet mask for the Grid member.
26115  	SubnetMask string `json:"subnet_mask,omitempty"`
26116  
26117  	// Determines if the physical node supports LOM or not.
26118  	IsLomCapable bool `json:"is_lom_capable,omitempty"`
26119  }
26120  
26121  // Lomuser represents Infoblox struct lomuser
26122  type Lomuser struct {
26123  	// The LOM user name.
26124  	Name string `json:"name,omitempty"`
26125  
26126  	// The LOM user password.
26127  	Password string `json:"password,omitempty"`
26128  
26129  	// The LOM user role which specifies the list of actions that are allowed for
26130  	// the user.
26131  	Role string `json:"role,omitempty"`
26132  
26133  	// Determines whether the LOM user is disabled.
26134  	Disable bool `json:"disable,omitempty"`
26135  
26136  	// The descriptive comment for the LOM user.
26137  	Comment string `json:"comment,omitempty"`
26138  }
26139  
26140  // MemberCspmembersetting represents Infoblox struct member:cspmembersetting
26141  type MemberCspmembersetting struct {
26142  	// Overrides grid join token
26143  	UseCspJoinToken bool `json:"use_csp_join_token,omitempty"`
26144  
26145  	// Overrides CSP DNS Resolver
26146  	UseCspDnsResolver bool `json:"use_csp_dns_resolver,omitempty"`
26147  
26148  	// Overrides grid https proxy
26149  	UseCspHttpsProxy bool `json:"use_csp_https_proxy,omitempty"`
26150  
26151  	// Join token required to connect to a cluster
26152  	CspJoinToken string `json:"csp_join_token,omitempty"`
26153  
26154  	// IP address of DNS resolver in DFP
26155  	CspDnsResolver string `json:"csp_dns_resolver,omitempty"`
26156  
26157  	// HTTP Proxy IP address of CSP Portal
26158  	CspHttpsProxy string `json:"csp_https_proxy,omitempty"`
26159  }
26160  
26161  // MemberDnsgluerecordaddr represents Infoblox struct member:dnsgluerecordaddr
26162  type MemberDnsgluerecordaddr struct {
26163  	// Determines if empty view with recursion enabled will be written into the
26164  	// conf file.
26165  	AttachEmptyRecursiveView bool `json:"attach_empty_recursive_view,omitempty"`
26166  
26167  	// The address the appliance uses to generate the glue record.
26168  	GlueRecordAddress string `json:"glue_record_address,omitempty"`
26169  
26170  	// The name of the DNS View in which the record resides. Example: "external".
26171  	View string `json:"view,omitempty"`
26172  
26173  	// The address choice for auto-created glue records for this view.
26174  	GlueAddressChoice string `json:"glue_address_choice,omitempty"`
26175  }
26176  
26177  // MemberDnsip represents Infoblox struct member:dnsip
26178  type MemberDnsip struct {
26179  	// The additional IP address of the member.
26180  	IpAddress string `json:"ip_address,omitempty"`
26181  }
26182  
26183  // MemberNtp represents Infoblox struct member:ntp
26184  type MemberNtp struct {
26185  	// Determines whether the NTP service is enabled on the member.
26186  	EnableNTP bool `json:"enable_ntp,omitempty"`
26187  
26188  	// The list of NTP servers configured on a member.
26189  	NTPServers []*NTPserver `json:"ntp_servers,omitempty"`
26190  
26191  	// The list of NTP authentication keys used to authenticate NTP clients.
26192  	NTPKeys []*Ntpkey `json:"ntp_keys,omitempty"`
26193  
26194  	// The NTP access control settings.
26195  	NTPAcl *Ntpaccess `json:"ntp_acl,omitempty"`
26196  
26197  	// Determines whether the Kiss-o'-Death packets are enabled or disabled.
26198  	NTPKod bool `json:"ntp_kod,omitempty"`
26199  
26200  	// Determines whether the use of the external NTP servers is enabled for the
26201  	// member.
26202  	EnableExternalNtpServers bool `json:"enable_external_ntp_servers,omitempty"`
26203  
26204  	// Determines whether the Grid Master is excluded as an NTP server.
26205  	ExcludeGridMasterNtpServer bool `json:"exclude_grid_master_ntp_server,omitempty"`
26206  
26207  	// Override Grid level NTP stratum.
26208  	UseLocalNtpStratum bool `json:"use_local_ntp_stratum,omitempty"`
26209  
26210  	// Vnode level local NTP stratum.
26211  	LocalNtpStratum uint32 `json:"local_ntp_stratum,omitempty"`
26212  
26213  	// Vnode level default stratum.
26214  	UseDefaultStratum bool `json:"use_default_stratum,omitempty"`
26215  
26216  	// Use flag for: ntp_servers
26217  	UseNtpServers bool `json:"use_ntp_servers,omitempty"`
26218  
26219  	// Use flag for: ntp_keys
26220  	UseNtpKeys bool `json:"use_ntp_keys,omitempty"`
26221  
26222  	// Use flag for: ntp_acl
26223  	UseNtpAcl bool `json:"use_ntp_acl,omitempty"`
26224  
26225  	// Use flag for: ntp_kod
26226  	UseNtpKod bool `json:"use_ntp_kod,omitempty"`
26227  }
26228  
26229  // Memberserver represents Infoblox struct memberserver
26230  type Memberserver struct {
26231  	// The grid member name.
26232  	Name string `json:"name,omitempty"`
26233  
26234  	// This flag governs whether the specified Grid member is in stealth mode or
26235  	// not. If set to True, the member is in stealth mode. This flag is ignored if
26236  	// the struct is specified as part of a stub zone.
26237  	Stealth bool `json:"stealth,omitempty"`
26238  
26239  	// The flag represents DNS zone transfers if set to True, and ID Grid
26240  	// Replication if set to False. This flag is ignored if the struct is specified
26241  	// as part of a stub zone or if it is set as grid_member in an authoritative
26242  	// zone.
26243  	GridReplicate bool `json:"grid_replicate,omitempty"`
26244  
26245  	// This flag controls whether the Grid lead secondary server performs zone
26246  	// transfers to non lead secondaries. This flag is ignored if the struct is
26247  	// specified as grid_member in an authoritative zone.
26248  	Lead bool `json:"lead,omitempty"`
26249  
26250  	// The primary preference list with Grid member names and\or External Server
26251  	// extserver structs for this member.
26252  	PreferredPrimaries []NameServer `json:"preferred_primaries,omitempty"`
26253  
26254  	// This flag represents whether the preferred_primaries field values of this
26255  	// member are used.
26256  	EnablePreferredPrimaries bool `json:"enable_preferred_primaries,omitempty"`
26257  }
26258  
26259  // Memberservicecommunication represents Infoblox struct memberservicecommunication
26260  type Memberservicecommunication struct {
26261  	// The service for a Grid member.
26262  	Service string `json:"service,omitempty"`
26263  
26264  	// Communication type.
26265  	Type string `json:"type,omitempty"`
26266  
26267  	// The option for communication type.
26268  	Option string `json:"option,omitempty"`
26269  }
26270  
26271  // Memberservicestatus represents Infoblox struct memberservicestatus
26272  type Memberservicestatus struct {
26273  	// The description of the current service status.
26274  	Description string `json:"description,omitempty"`
26275  
26276  	// The service status.
26277  	Status string `json:"status,omitempty"`
26278  
26279  	// The service identifier.
26280  	Service string `json:"service,omitempty"`
26281  }
26282  
26283  // Mgmtportsetting represents Infoblox struct mgmtportsetting
26284  type Mgmtportsetting struct {
26285  	// Determines if MGMT port settings should be enabled.
26286  	Enabled bool `json:"enabled,omitempty"`
26287  
26288  	// Determines if VPN on the MGMT port is enabled or not.
26289  	VpnEnabled bool `json:"vpn_enabled,omitempty"`
26290  
26291  	// Determines if security access on the MGMT port is enabled or not.
26292  	SecurityAccessEnabled bool `json:"security_access_enabled,omitempty"`
26293  }
26294  
26295  // Monitoreddomains represents Infoblox struct monitoreddomains
26296  type Monitoreddomains struct {
26297  	// Domain name (FQDN to Query).
26298  	DomainName string `json:"domain_name,omitempty"`
26299  
26300  	// Record type(record to query).
26301  	RecordType string `json:"record_type,omitempty"`
26302  }
26303  
26304  // Msdhcpoption represents Infoblox struct msdhcpoption
26305  type Msdhcpoption struct {
26306  	// The code of the DHCP option.
26307  	Num uint32 `json:"num,omitempty"`
26308  
26309  	// Value of the DHCP option.
26310  	Value string `json:"value,omitempty"`
26311  
26312  	// The name of the DHCP option.
26313  	Name string `json:"name,omitempty"`
26314  
26315  	// The name of the vendor class with which this DHCP option is associated.
26316  	VendorClass string `json:"vendor_class,omitempty"`
26317  
26318  	// The name of the user class with which this DHCP option is associated.
26319  	UserClass string `json:"user_class,omitempty"`
26320  
26321  	// The DHCP option type. Valid values are: * "16-bit signed integer" * "16-bit
26322  	// unsigned integer" * "32-bit signed integer" * "32-bit unsigned integer" *
26323  	// "64-bit unsigned integer" * "8-bit signed integer" * "8-bit unsigned integer
26324  	// (1,2,4,8)" * "8-bit unsigned integer" * "array of 16-bit integer" * "array
26325  	// of 16-bit unsigned integer" * "array of 32-bit integer" * "array of 32-bit
26326  	// unsigned integer" * "array of 64-bit unsigned integer" * "array of 8-bit
26327  	// integer" * "array of 8-bit unsigned integer" * "array of ip-address pair" *
26328  	// "array of ip-address" * "array of string" * "binary" * "boolean array of
26329  	// ip-address" * "boolean" * "boolean-text" * "domain-list" * "domain-name" *
26330  	// "encapsulated" * "ip-address" * "string" * "text"
26331  	Type string `json:"type,omitempty"`
26332  }
26333  
26334  // Msdhcpserver represents Infoblox struct msdhcpserver
26335  type Msdhcpserver struct {
26336  	// The IPv4 Address or FQDN of the Microsoft server.
26337  	Ipv4Addr string `json:"ipv4addr,omitempty"`
26338  }
26339  
26340  // Msdnsserver represents Infoblox struct msdnsserver
26341  type Msdnsserver struct {
26342  	// The address of the server.
26343  	Address string `json:"address,omitempty"`
26344  
26345  	// This flag indicates if this server is a synchronization master.
26346  	IsMaster bool `json:"is_master,omitempty"`
26347  
26348  	// This address is used when generating the NS record in the zone, which can be
26349  	// different in case of multihomed hosts.
26350  	NsIp string `json:"ns_ip,omitempty"`
26351  
26352  	// This name is used when generating the NS record in the zone, which can be
26353  	// different in case of multihomed hosts.
26354  	NsName string `json:"ns_name,omitempty"`
26355  
26356  	// Set this flag to hide the NS record for the primary name server from DNS
26357  	// queries.
26358  	Stealth bool `json:"stealth,omitempty"`
26359  
26360  	// This flag represents whether the name server is shared with the parent
26361  	// Microsoft primary zone's delegation server.
26362  	SharedWithMsParentDelegation bool `json:"shared_with_ms_parent_delegation,omitempty"`
26363  }
26364  
26365  // MsserverAduser represents Infoblox struct msserver:aduser
26366  type MsserverAduser struct {
26367  	// The login name of the Microsoft Server.
26368  	LoginName string `json:"login_name,omitempty"`
26369  
26370  	// The login password of the DHCP Microsoft Server.
26371  	LoginPassword string `json:"login_password,omitempty"`
26372  
26373  	// Determines whether the Active Directory user synchronization is enabled or
26374  	// not.
26375  	EnableUserSync bool `json:"enable_user_sync,omitempty"`
26376  
26377  	// The minimum number of minutes between two synchronizations.
26378  	SynchronizationInterval uint32 `json:"synchronization_interval,omitempty"`
26379  
26380  	// Timestamp of the last synchronization attempt.
26381  	LastSyncTime *UnixTime `json:"last_sync_time,omitempty"`
26382  
26383  	// The status of the last synchronization attempt.
26384  	LastSyncStatus string `json:"last_sync_status,omitempty"`
26385  
26386  	// The detailed status of the last synchronization attempt.
26387  	LastSyncDetail string `json:"last_sync_detail,omitempty"`
26388  
26389  	// Timestamp of the last successful synchronization attempt.
26390  	LastSuccessSyncTime *UnixTime `json:"last_success_sync_time,omitempty"`
26391  
26392  	// Flag to override login name and password from MS server
26393  	UseLogin bool `json:"use_login,omitempty"`
26394  
26395  	// Flag to override AD User sync from grid level
26396  	UseEnableAdUserSync bool `json:"use_enable_ad_user_sync,omitempty"`
26397  
26398  	// Flag to override synchronization interval from the MS Server
26399  	UseSynchronizationMinDelay bool `json:"use_synchronization_min_delay,omitempty"`
26400  
26401  	// Use flag for: enable_user_sync
26402  	UseEnableUserSync bool `json:"use_enable_user_sync,omitempty"`
26403  
26404  	// Use flag for: synchronization_interval
26405  	UseSynchronizationInterval bool `json:"use_synchronization_interval,omitempty"`
26406  }
26407  
26408  // MsserverAduserData represents Infoblox struct msserver:aduser:data
26409  type MsserverAduserData struct {
26410  	// The number of active users.
26411  	ActiveUsersCount uint32 `json:"active_users_count,omitempty"`
26412  }
26413  
26414  // MsserverDcnsrecordcreation represents Infoblox struct msserver:dcnsrecordcreation
26415  type MsserverDcnsrecordcreation struct {
26416  	// The IPv4 address of the domain controller that is allowed to create NS
26417  	// records.
26418  	Address string `json:"address,omitempty"`
26419  
26420  	// Optional user comment.
26421  	Comment string `json:"comment,omitempty"`
26422  }
26423  
26424  // Natsetting represents Infoblox struct natsetting
26425  type Natsetting struct {
26426  	// Determines if NAT should be enabled.
26427  	Enabled bool `json:"enabled,omitempty"`
26428  
26429  	// External IP address for NAT.
26430  	ExternalVirtualIp string `json:"external_virtual_ip,omitempty"`
26431  
26432  	// The NAT group.
26433  	Group string `json:"group,omitempty"`
26434  }
26435  
26436  // NetworkviewAssocmember represents Infoblox struct networkview:assocmember
26437  type NetworkviewAssocmember struct {
26438  	// The member object associated with a network view.
26439  	Member string `json:"member,omitempty"`
26440  
26441  	// The list of failover objects associated with each member.
26442  	Failovers []string `json:"failovers,omitempty"`
26443  }
26444  
26445  // Nodeinfo represents Infoblox struct nodeinfo
26446  type Nodeinfo struct {
26447  	// The service status list of the Grid Member.
26448  	ServiceStatus []*Servicestatus `json:"service_status,omitempty"`
26449  
26450  	// The OID of the physical node.
26451  	PhysicalOid string `json:"physical_oid,omitempty"`
26452  
26453  	// Status about the node of an HA pair.
26454  	HaStatus string `json:"ha_status,omitempty"`
26455  
26456  	// The platform on which NIOS is running on.
26457  	Hwplatform string `json:"hwplatform,omitempty"`
26458  
26459  	// Hardware ID.
26460  	Hwid string `json:"hwid,omitempty"`
26461  
26462  	// Hardware model.
26463  	Hwmodel string `json:"hwmodel,omitempty"`
26464  
26465  	// Hardware type.
26466  	Hwtype string `json:"hwtype,omitempty"`
26467  
26468  	// True if node is Paid NIOS.
26469  	PaidNios bool `json:"paid_nios,omitempty"`
26470  
26471  	// Network settings for the MGMT port of the node.
26472  	MgmtNetworkSetting *SettingNetwork `json:"mgmt_network_setting,omitempty"`
26473  
26474  	// LAN/HA port settings for the node.
26475  	LanHaPortSetting *Lanhaportsetting `json:"lan_ha_port_setting,omitempty"`
26476  
26477  	// Physical port settings for the MGMT interface.
26478  	MgmtPhysicalSetting *Physicalportsetting `json:"mgmt_physical_setting,omitempty"`
26479  
26480  	// Physical port settings for the LAN2 interface.
26481  	Lan2PhysicalSetting *Physicalportsetting `json:"lan2_physical_setting,omitempty"`
26482  
26483  	// The NAT external IP address for the node.
26484  	NatExternalIp string `json:"nat_external_ip,omitempty"`
26485  
26486  	// The network settings for the IPv6 MGMT port of the node.
26487  	V6MgmtNetworkSetting *Ipv6setting `json:"v6_mgmt_network_setting,omitempty"`
26488  }
26489  
26490  // NotificationRestTemplateinstance represents Infoblox struct notification:rest:templateinstance
26491  type NotificationRestTemplateinstance struct {
26492  	// The name of the REST API template parameter.
26493  	Template string `json:"template,omitempty"`
26494  
26495  	// The notification REST template parameters.
26496  	Parameters []*NotificationRestTemplateparameter `json:"parameters,omitempty"`
26497  }
26498  
26499  // NotificationRestTemplateparameter represents Infoblox struct notification:rest:templateparameter
26500  type NotificationRestTemplateparameter struct {
26501  	// The name of the REST API template parameter.
26502  	Name string `json:"name,omitempty"`
26503  
26504  	// The value of the REST API template parameter.
26505  	Value string `json:"value,omitempty"`
26506  
26507  	// The default value of the REST API template parameter.
26508  	DefaultValue string `json:"default_value,omitempty"`
26509  
26510  	// The syntax of the REST API template parameter.
26511  	Syntax string `json:"syntax,omitempty"`
26512  }
26513  
26514  // NotificationRuleexpressionop represents Infoblox struct notification:ruleexpressionop
26515  type NotificationRuleexpressionop struct {
26516  	// Rule expression type.
26517  	Op string `json:"op,omitempty"`
26518  
26519  	// Rule expression first operand value.
26520  	Op1 string `json:"op1,omitempty"`
26521  
26522  	// Rule expression first operand type.
26523  	Op1Type string `json:"op1_type,omitempty"`
26524  
26525  	// Rule expression second operand.
26526  	Op2 string `json:"op2,omitempty"`
26527  
26528  	// Rule expression second operand type.
26529  	Op2Type string `json:"op2_type,omitempty"`
26530  }
26531  
26532  // Ntpac represents Infoblox struct ntpac
26533  type Ntpac struct {
26534  	// The client address/network with access control.
26535  	AddressAc *Addressac `json:"address_ac,omitempty"`
26536  
26537  	// The type of service with access control.
26538  	Service string `json:"service,omitempty"`
26539  }
26540  
26541  // Ntpaccess represents Infoblox struct ntpaccess
26542  type Ntpaccess struct {
26543  	// The NTP access control list type.
26544  	AclType string `json:"acl_type,omitempty"`
26545  
26546  	// The list of NTP access control items.
26547  	AcList []*Ntpac `json:"ac_list,omitempty"`
26548  
26549  	// The NTP access named ACL.
26550  	NamedAcl string `json:"named_acl,omitempty"`
26551  
26552  	// The type of service with access control for the assigned named ACL.
26553  	Service string `json:"service,omitempty"`
26554  }
26555  
26556  // Ntpkey represents Infoblox struct ntpkey
26557  type Ntpkey struct {
26558  	// The NTP authentication key identifier.
26559  	Number uint32 `json:"number,omitempty"`
26560  
26561  	// The NTP authentication key string.
26562  	String string `json:"string,omitempty"`
26563  
26564  	// The NTP authentication key type.
26565  	Type string `json:"type,omitempty"`
26566  }
26567  
26568  // NTPserver represents Infoblox struct ntpserver
26569  type NTPserver struct {
26570  	// The NTP server IP address or FQDN.
26571  	Address string `json:"address,omitempty"`
26572  
26573  	// Determines whether the NTP authentication is enabled.
26574  	EnableAuthentication bool `json:"enable_authentication,omitempty"`
26575  
26576  	// The NTP authentication key number.
26577  	NtpKeyNumber uint32 `json:"ntp_key_number,omitempty"`
26578  
26579  	// Determines whether the NTP server is a preferred one or not.
26580  	Preferred bool `json:"preferred,omitempty"`
26581  
26582  	// Determines whether the BURST operation mode is enabled. In BURST operating
26583  	// mode, when the external server is reachable and a valid source of
26584  	// synchronization is available, NTP sends a burst of 8 packets with a 2 second
26585  	// interval between packets.
26586  	Burst bool `json:"burst,omitempty"`
26587  
26588  	// Determines whether the IBURST operation mode is enabled. In IBURST operating
26589  	// mode, when the external server is unreachable, NTP server sends a burst of 8
26590  	// packets with a 2 second interval between packets.
26591  	IBurst bool `json:"iburst,omitempty"`
26592  }
26593  
26594  // Nxdomainrule represents Infoblox struct nxdomainrule
26595  type Nxdomainrule struct {
26596  	// The action to perform when a domain name matches the pattern defined in this
26597  	// Ruleset.
26598  	Action string `json:"action,omitempty"`
26599  
26600  	// The pattern that is used to match the domain name.
26601  	Pattern string `json:"pattern,omitempty"`
26602  }
26603  
26604  // Objectschangestrackingsetting represents Infoblox struct objectschangestrackingsetting
26605  type Objectschangestrackingsetting struct {
26606  	// Determines whether the objects changes tracking feature is enabled or not.
26607  	Enable bool `json:"enable,omitempty"`
26608  
26609  	// Determines the percentage of completion for objects changes tracking.
26610  	EnableCompletion uint32 `json:"enable_completion,omitempty"`
26611  
26612  	// Determines the objects changes tracking enable state.
26613  	State string `json:"state,omitempty"`
26614  
26615  	// Maximum time period in seconds to track the deleted objects changes. You can
26616  	// enter a value from 7200 - 604800 seconds.
26617  	MaxTimeToTrack uint32 `json:"max_time_to_track,omitempty"`
26618  
26619  	// Maximum number of deleted objects retained for tracking. You can enter a
26620  	// value from 2000 - 20000.
26621  	MaxObjsToTrack uint32 `json:"max_objs_to_track,omitempty"`
26622  }
26623  
26624  // OcspResponder represents Infoblox struct ocsp_responder
26625  type OcspResponder struct {
26626  	// The FQDN (Fully Qualified Domain Name) or IP address of the server.
26627  	FqdnOrIp string `json:"fqdn_or_ip,omitempty"`
26628  
26629  	// The port used for connecting.
26630  	Port uint32 `json:"port,omitempty"`
26631  
26632  	// The descriptive comment for the OCSP authentication responder.
26633  	Comment string `json:"comment,omitempty"`
26634  
26635  	// Determines if this OCSP authentication responder is disabled.
26636  	Disabled bool `json:"disabled,omitempty"`
26637  
26638  	// The reference to the OCSP responder certificate.
26639  	Certificate string `json:"certificate,omitempty"`
26640  
26641  	// The token returned by the uploadinit function call in object fileop.
26642  	CertificateToken string `json:"certificate_token,omitempty"`
26643  }
26644  
26645  // Option60matchrule represents Infoblox struct option60matchrule
26646  type Option60matchrule struct {
26647  	// The match value for this DHCP Option 60 match rule.
26648  	MatchValue string `json:"match_value,omitempty"`
26649  
26650  	// The option space for this DHCP Option 60 match rule.
26651  	OptionSpace string `json:"option_space,omitempty"`
26652  
26653  	// Determines if the match value is a substring.
26654  	IsSubstring bool `json:"is_substring,omitempty"`
26655  
26656  	// The offset of match value for this DHCP Option 60 match rule.
26657  	SubstringOffset uint32 `json:"substring_offset,omitempty"`
26658  
26659  	// The length of match value for this DHCP Option 60 match rule.
26660  	SubstringLength uint32 `json:"substring_length,omitempty"`
26661  }
26662  
26663  // Ospf represents Infoblox struct ospf
26664  type Ospf struct {
26665  	// The area ID value of the OSPF settings.
26666  	AreaId string `json:"area_id,omitempty"`
26667  
26668  	// The OSPF area type.
26669  	AreaType string `json:"area_type,omitempty"`
26670  
26671  	// The authentication password to use for OSPF. The authentication key is valid
26672  	// only when authentication type is "SIMPLE" or "MESSAGE_DIGEST".
26673  	AuthenticationKey string `json:"authentication_key,omitempty"`
26674  
26675  	// The authentication type used for the OSPF advertisement.
26676  	AuthenticationType string `json:"authentication_type,omitempty"`
26677  
26678  	// Determines if auto calculate cost is enabled or not.
26679  	AutoCalcCostEnabled bool `json:"auto_calc_cost_enabled,omitempty"`
26680  
26681  	// A descriptive comment of the OSPF configuration.
26682  	Comment string `json:"comment,omitempty"`
26683  
26684  	// The cost metric associated with the OSPF advertisement.
26685  	Cost uint32 `json:"cost,omitempty"`
26686  
26687  	// The dead interval value of OSPF (in seconds). The dead interval describes
26688  	// the time to wait before declaring the device is unavailable and down.
26689  	DeadInterval uint32 `json:"dead_interval,omitempty"`
26690  
26691  	// The hello interval value of OSPF. The hello interval specifies how often to
26692  	// send OSPF hello advertisement, in seconds.
26693  	HelloInterval uint32 `json:"hello_interval,omitempty"`
26694  
26695  	// The interface that sends out OSPF advertisement information.
26696  	Interface string `json:"interface,omitempty"`
26697  
26698  	// The OSPF protocol version. Specify "true" if the IPv4 version of OSPF is
26699  	// used, or "false" if the IPv6 version of OSPF is used.
26700  	IsIpv4 bool `json:"is_ipv4,omitempty"`
26701  
26702  	// The hash key identifier to use for "MESSAGE_DIGEST" authentication. The hash
26703  	// key identifier is valid only when authentication type is "MESSAGE_DIGEST".
26704  	KeyId uint32 `json:"key_id,omitempty"`
26705  
26706  	// The retransmit interval time of OSPF (in seconds). The retransmit interval
26707  	// describes the time to wait before retransmitting OSPF advertisement.
26708  	RetransmitInterval uint32 `json:"retransmit_interval,omitempty"`
26709  
26710  	// The transmit delay value of OSPF (in seconds). The transmit delay describes
26711  	// the time to wait before sending an advertisement.
26712  	TransmitDelay uint32 `json:"transmit_delay,omitempty"`
26713  
26714  	// The VLAN used as the advertising interface for sending OSPF announcements.
26715  	AdvertiseInterfaceVlan string `json:"advertise_interface_vlan,omitempty"`
26716  
26717  	// Determines BFD template name.
26718  	BfdTemplate string `json:"bfd_template,omitempty"`
26719  
26720  	// Determines if the BFD is enabled or not.
26721  	EnableBfd bool `json:"enable_bfd,omitempty"`
26722  }
26723  
26724  // OutboundCloudclientEvent represents Infoblox struct outbound:cloudclient:event
26725  type OutboundCloudclientEvent struct {
26726  	// The event type enum rpz and analytics.
26727  	EventType string `json:"event_type,omitempty"`
26728  
26729  	// Determines if the event type is enabled or not.
26730  	Enabled bool `json:"enabled,omitempty"`
26731  }
26732  
26733  // ParentalcontrolAbs represents Infoblox struct parentalcontrol:abs
26734  type ParentalcontrolAbs struct {
26735  	// The IP address of addional blocking server.
26736  	IpAddress string `json:"ip_address,omitempty"`
26737  
26738  	// The blocking policy for the addional blocking server.
26739  	BlockingPolicy string `json:"blocking_policy,omitempty"`
26740  }
26741  
26742  // ParentalcontrolMsp represents Infoblox struct parentalcontrol:msp
26743  type ParentalcontrolMsp struct {
26744  	// The IPv4 Address of MSP.
26745  	IpAddress string `json:"ip_address,omitempty"`
26746  }
26747  
26748  // ParentalcontrolNasgateway represents Infoblox struct parentalcontrol:nasgateway
26749  type ParentalcontrolNasgateway struct {
26750  	// The name of NAS gateway.
26751  	Name string `json:"name,omitempty"`
26752  
26753  	// The IPv4 Address of NAS gateway.
26754  	IpAddress string `json:"ip_address,omitempty"`
26755  
26756  	// The protocol MD5 phrase.
26757  	SharedSecret string `json:"shared_secret,omitempty"`
26758  
26759  	// Determines whether an acknowledge needs to be sent.
26760  	SendAck bool `json:"send_ack,omitempty"`
26761  
26762  	// The message rate per server.
26763  	MessageRate uint32 `json:"message_rate,omitempty"`
26764  
26765  	// The human readable comment for NAS gateway.
26766  	Comment string `json:"comment,omitempty"`
26767  }
26768  
26769  // ParentalcontrolSitemember represents Infoblox struct parentalcontrol:sitemember
26770  type ParentalcontrolSitemember struct {
26771  	// The Grid member name.
26772  	Name string `json:"name,omitempty"`
26773  
26774  	// The type of member.
26775  	Type string `json:"type,omitempty"`
26776  }
26777  
26778  // ParentalcontrolSpm represents Infoblox struct parentalcontrol:spm
26779  type ParentalcontrolSpm struct {
26780  	// The IPv4 Address of SPM.
26781  	IpAddress string `json:"ip_address,omitempty"`
26782  }
26783  
26784  // Physicalportsetting represents Infoblox struct physicalportsetting
26785  type Physicalportsetting struct {
26786  	// Enable or disalbe the auto port setting.
26787  	AutoPortSettingEnabled bool `json:"auto_port_setting_enabled,omitempty"`
26788  
26789  	// The port speed; if speed is 1000, duplex is FULL.
26790  	Speed string `json:"speed,omitempty"`
26791  
26792  	// The port duplex; if speed is 1000, duplex must be FULL.
26793  	Duplex string `json:"duplex,omitempty"`
26794  }
26795  
26796  // Preprovision represents Infoblox struct preprovision
26797  type Preprovision struct {
26798  	// An array of structures that describe the hardware being pre-provisioned.
26799  	HardwareInfo []*Preprovisionhardware `json:"hardware_info,omitempty"`
26800  
26801  	// An array of license types the pre-provisioned member should have in order to
26802  	// join the Grid, or the licenses that must be allocated to the member when it
26803  	// joins the Grid using the token-based authentication.
26804  	Licenses []string `json:"licenses,omitempty"`
26805  }
26806  
26807  // Preprovisionhardware represents Infoblox struct preprovisionhardware
26808  type Preprovisionhardware struct {
26809  	// Hardware type.
26810  	Hwtype string `json:"hwtype,omitempty"`
26811  
26812  	// Hardware model - for IB-4010 are Rev1, Rev2; for IB-4030 are Rev1, Rev2; for
26813  	// PT-4000 is Rev2; for IB-VNIOS are IB-VM-100, IB-VM-810, IB-VM-820,
26814  	// IB-VM-RSP, IB-VM-1410, IB-VM-1420, IB-VM-2210, IB-VM-2220, IB-VM-4010,
26815  	// CP-V800, CP-V1400, CP-V2200. Note that you cannot specify hwmodel for
26816  	// following hardware types: IB-FLEX, IB-V2215, IB-V1425, IB-V4025, IB-V4015,
26817  	// IB-V1415, IB-V815, IB-V825, IB-V2225, CP-V805, CP-V1405, CP-V2205.
26818  	Hwmodel string `json:"hwmodel,omitempty"`
26819  }
26820  
26821  // PropertiesBlackoutsetting represents Infoblox struct properties:blackoutsetting
26822  type PropertiesBlackoutsetting struct {
26823  	// Determines whether a blackout is enabled or not.
26824  	EnableBlackout bool `json:"enable_blackout,omitempty"`
26825  
26826  	// The blackout duration in seconds; minimum value is 1 minute.
26827  	BlackoutDuration uint32 `json:"blackout_duration,omitempty"`
26828  
26829  	// A Schedule Setting struct that determines blackout schedule.
26830  	BlackoutSchedule *SettingSchedule `json:"blackout_schedule,omitempty"`
26831  }
26832  
26833  // Queriesuser represents Infoblox struct queriesuser
26834  type Queriesuser struct {
26835  	// The SNMPv3 user.
26836  	User string `json:"user,omitempty"`
26837  
26838  	// A descriptive comment for this queries user.
26839  	Comment string `json:"comment,omitempty"`
26840  }
26841  
26842  // RadiusServer represents Infoblox struct radius:server
26843  type RadiusServer struct {
26844  	// The accounting port.
26845  	AcctPort uint32 `json:"acct_port,omitempty"`
26846  
26847  	// The authorization port.
26848  	AuthPort uint32 `json:"auth_port,omitempty"`
26849  
26850  	// The authentication protocol.
26851  	AuthType string `json:"auth_type,omitempty"`
26852  
26853  	// The RADIUS descriptive comment.
26854  	Comment string `json:"comment,omitempty"`
26855  
26856  	// Determines whether the RADIUS server is disabled.
26857  	Disable bool `json:"disable,omitempty"`
26858  
26859  	// The FQDN or the IP address of the RADIUS server that is used for
26860  	// authentication.
26861  	Address string `json:"address,omitempty"`
26862  
26863  	// The shared secret that the NIOS appliance and the RADIUS server use to
26864  	// encrypt and decrypt their messages.
26865  	SharedSecret string `json:"shared_secret,omitempty"`
26866  
26867  	// Determines whether RADIUS accounting is enabled.
26868  	UseAccounting bool `json:"use_accounting,omitempty"`
26869  
26870  	// Determines whether connection via the management interface is allowed.
26871  	UseMgmtPort bool `json:"use_mgmt_port,omitempty"`
26872  }
26873  
26874  // Rdatasubfield represents Infoblox struct rdatasubfield
26875  type Rdatasubfield struct {
26876  	// String representation of subfield value.
26877  	FieldValue string `json:"field_value,omitempty"`
26878  
26879  	// Type of field. "B": unsigned 8-bit integer, "S": unsigned 16-bit integer,
26880  	// "I": unsigned 32-bit integer. "H": BASE64, "6": an IPv6 address, "4": an
26881  	// IPv4 address, "N": a domain name, "T": text string, "X": opaque binary data
26882  	FieldType string `json:"field_type,omitempty"`
26883  
26884  	// The 'size of 'length' sub-sub field to be included in RDATA.
26885  	IncludeLength string `json:"include_length,omitempty"`
26886  }
26887  
26888  // Remoteddnszone represents Infoblox struct remoteddnszone
26889  type Remoteddnszone struct {
26890  	// The FQDN of the remote server.
26891  	Fqdn string `json:"fqdn,omitempty"`
26892  
26893  	// The remote server IP address.
26894  	ServerAddress string `json:"server_address,omitempty"`
26895  
26896  	// The principal name in which GSS-TSIG for dynamic updates is enabled.
26897  	GssTsigDnsPrincipal string `json:"gss_tsig_dns_principal,omitempty"`
26898  
26899  	// The domain in which GSS-TSIG for dynamic updates is enabled.
26900  	GssTsigDomain string `json:"gss_tsig_domain,omitempty"`
26901  
26902  	// The TSIG key value.
26903  	TsigKey string `json:"tsig_key,omitempty"`
26904  
26905  	// The TSIG key alorithm name.
26906  	TsigKeyAlg string `json:"tsig_key_alg,omitempty"`
26907  
26908  	// The name of the TSIG key. The key name entered here must match the TSIG key
26909  	// name on the external name server.
26910  	TsigKeyName string `json:"tsig_key_name,omitempty"`
26911  
26912  	// The key type to be used.
26913  	KeyType string `json:"key_type,omitempty"`
26914  }
26915  
26916  // SamlIdp represents Infoblox struct saml:idp
26917  type SamlIdp struct {
26918  	// SAML Identity Provider type.
26919  	IdpType string `json:"idp_type,omitempty"`
26920  
26921  	// The SAML Identity Provider descriptive comment.
26922  	Comment string `json:"comment,omitempty"`
26923  
26924  	// Identity Provider Metadata URL.
26925  	MetadataUrl string `json:"metadata_url,omitempty"`
26926  
26927  	// The token returned by the uploadinit function call in object fileop.
26928  	MetadataToken string `json:"metadata_token,omitempty"`
26929  
26930  	// The SAML groupname optional user group attribute.
26931  	Groupname string `json:"groupname,omitempty"`
26932  
26933  	// host name or IP address of the GM
26934  	SsoRedirectUrl string `json:"sso_redirect_url,omitempty"`
26935  }
26936  
26937  // Scheduledbackup represents Infoblox struct scheduledbackup
26938  type Scheduledbackup struct {
26939  	// The status of the scheduled backup.
26940  	Status string `json:"status,omitempty"`
26941  
26942  	// The state for scheduled backup or restore operation.
26943  	Execute string `json:"execute,omitempty"`
26944  
26945  	// The scheduled backup operation.
26946  	Operation string `json:"operation,omitempty"`
26947  
26948  	// The destination of the backup files.
26949  	BackupType string `json:"backup_type,omitempty"`
26950  
26951  	// Determines whether the local backup performed before uploading backup to
26952  	// remote storage.
26953  	KeepLocalCopy bool `json:"keep_local_copy,omitempty"`
26954  
26955  	// The frequency of backups.
26956  	BackupFrequency string `json:"backup_frequency,omitempty"`
26957  
26958  	// The day of the week when the backup is performed.
26959  	Weekday string `json:"weekday,omitempty"`
26960  
26961  	// The hour of the day past 12:00 AM the backup is performed.
26962  	HourOfDay uint32 `json:"hour_of_day,omitempty"`
26963  
26964  	// The minute of the hour when the backup is performed.
26965  	MinutesPastHour uint32 `json:"minutes_past_hour,omitempty"`
26966  
26967  	// The user name on the backup server.
26968  	Username string `json:"username,omitempty"`
26969  
26970  	// The user password on the backup server.
26971  	Password string `json:"password,omitempty"`
26972  
26973  	// The IP address of the backup server.
26974  	BackupServer string `json:"backup_server,omitempty"`
26975  
26976  	// The directory path to the backup file stored on the server.
26977  	Path string `json:"path,omitempty"`
26978  
26979  	// The destination of the restore files.
26980  	RestoreType string `json:"restore_type,omitempty"`
26981  
26982  	// The IP address of the restore server.
26983  	RestoreServer string `json:"restore_server,omitempty"`
26984  
26985  	// The user name on the restore server.
26986  	RestoreUsername string `json:"restore_username,omitempty"`
26987  
26988  	// The password on the restore server.
26989  	RestorePassword string `json:"restore_password,omitempty"`
26990  
26991  	// The directory path to the restored file on the server.
26992  	RestorePath string `json:"restore_path,omitempty"`
26993  
26994  	// Determines whether the restore of the NIOS data is enabled.
26995  	NiosData bool `json:"nios_data,omitempty"`
26996  
26997  	// Determines whether the restore the NetMRI data is enabled.
26998  	DiscoveryData bool `json:"discovery_data,omitempty"`
26999  
27000  	// Determines whether the restore of the Splunk application data is enabled.
27001  	SplunkAppData bool `json:"splunk_app_data,omitempty"`
27002  
27003  	// Determines whether the scheduled backup is enabled.
27004  	Enable bool `json:"enable,omitempty"`
27005  
27006  	// If set, scp backup support based on keys
27007  	UseKeys bool `json:"use_keys,omitempty"`
27008  
27009  	// If set, scp backup support based on keys type
27010  	KeyType string `json:"key_type,omitempty"`
27011  
27012  	// If set, scp backup support to upload keys
27013  	UploadKeys bool `json:"upload_keys,omitempty"`
27014  
27015  	// If set, scp backup support to download keys
27016  	DownloadKeys bool `json:"download_keys,omitempty"`
27017  }
27018  
27019  // Servicestatus represents Infoblox struct servicestatus
27020  type Servicestatus struct {
27021  	// The description of the current service status.
27022  	Description string `json:"description,omitempty"`
27023  
27024  	// The service status.
27025  	Status string `json:"status,omitempty"`
27026  
27027  	// The service identifier.
27028  	Service string `json:"service,omitempty"`
27029  }
27030  
27031  // SettingAtpoutbound represents Infoblox struct setting:atpoutbound
27032  type SettingAtpoutbound struct {
27033  	// Flag to enable using DNS query FQDN for Outbound.
27034  	EnableQueryFqdn bool `json:"enable_query_fqdn,omitempty"`
27035  
27036  	// Max domain level for DNS Query FQDN
27037  	QueryFqdnLimit uint32 `json:"query_fqdn_limit,omitempty"`
27038  }
27039  
27040  // SettingAutomatedtrafficcapture represents Infoblox struct setting:automatedtrafficcapture
27041  type SettingAutomatedtrafficcapture struct {
27042  	// Enable automated traffic capture based on monitoring thresholds.
27043  	TrafficCaptureEnable bool `json:"traffic_capture_enable,omitempty"`
27044  
27045  	// Destination of traffic capture files. Save traffic capture locally or upload
27046  	// to remote server using FTP or SCP.
27047  	Destination string `json:"destination,omitempty"`
27048  
27049  	// The time interval on which traffic will be captured(in sec).
27050  	Duration uint32 `json:"duration,omitempty"`
27051  
27052  	// Enable automatic download for support bundle.
27053  	IncludeSupportBundle bool `json:"include_support_bundle,omitempty"`
27054  
27055  	// Save traffic capture files locally.
27056  	KeepLocalCopy bool `json:"keep_local_copy,omitempty"`
27057  
27058  	// IP Address of the destination host.
27059  	DestinationHost string `json:"destination_host,omitempty"`
27060  
27061  	// Directory to store the traffic capture files on the remote server.
27062  	TrafficCaptureDirectory string `json:"traffic_capture_directory,omitempty"`
27063  
27064  	// Directory to store the support bundle on the remote server.
27065  	SupportBundleDirectory string `json:"support_bundle_directory,omitempty"`
27066  
27067  	// User name for accessing the FTP/SCP server.
27068  	Username string `json:"username,omitempty"`
27069  
27070  	// Password for accessing the FTP/SCP server. This field is not readable.
27071  	Password string `json:"password,omitempty"`
27072  }
27073  
27074  // SettingDnsresolver represents Infoblox struct setting:dnsresolver
27075  type SettingDnsresolver struct {
27076  	// The resolvers of a Grid member. The Grid member sends queries to the first
27077  	// name server address in the list. The second name server address is used if
27078  	// first one does not response.
27079  	Resolvers []string `json:"resolvers,omitempty"`
27080  
27081  	// The Search Domain Group, which is a group of domain names that the Infoblox
27082  	// device can add to partial queries that do not specify a domain name. Note
27083  	// that you can set this parameter only when prefer_resolver or
27084  	// alternate_resolver is set.
27085  	SearchDomains []string `json:"search_domains,omitempty"`
27086  }
27087  
27088  // SettingDynamicratio represents Infoblox struct setting:dynamicratio
27089  type SettingDynamicratio struct {
27090  	// The method of the DTC dynamic ratio load balancing.
27091  	Method string `json:"method,omitempty"`
27092  
27093  	// The DTC monitor output of which will be used for dynamic ratio load
27094  	// balancing.
27095  	Monitor string `json:"monitor,omitempty"`
27096  
27097  	// The metric of the DTC SNMP monitor that will be used for dynamic weighing.
27098  	MonitorMetric string `json:"monitor_metric,omitempty"`
27099  
27100  	// The DTC monitor weight. 'PRIORITY' means that all clients will be forwarded
27101  	// to the least loaded server. 'RATIO' means that distribution will be
27102  	// calculated based on dynamic weights.
27103  	MonitorWeighing string `json:"monitor_weighing,omitempty"`
27104  
27105  	// Determines whether the inverted values of the DTC SNMP monitor metric will
27106  	// be used.
27107  	InvertMonitorMetric bool `json:"invert_monitor_metric,omitempty"`
27108  }
27109  
27110  // SettingEmail represents Infoblox struct setting:email
27111  type SettingEmail struct {
27112  	// Determines if email notification is enabled or not.
27113  	Enabled bool `json:"enabled,omitempty"`
27114  
27115  	// The email address of a Grid Member for 'from' field in notification.
27116  	FromAddress string `json:"from_address,omitempty"`
27117  
27118  	// The notification email address of a Grid member.
27119  	Address string `json:"address,omitempty"`
27120  
27121  	// Determines if email relay is enabled or not.
27122  	RelayEnabled bool `json:"relay_enabled,omitempty"`
27123  
27124  	// The relay name or IP address.
27125  	Relay string `json:"relay,omitempty"`
27126  
27127  	// Password to validate from address
27128  	Password string `json:"password,omitempty"`
27129  
27130  	// SMTP over TLS
27131  	Smtps bool `json:"smtps,omitempty"`
27132  
27133  	// SMTP port number
27134  	PortNumber uint32 `json:"port_number,omitempty"`
27135  
27136  	// Enable or disable SMTP auth
27137  	UseAuthentication bool `json:"use_authentication,omitempty"`
27138  }
27139  
27140  // SettingHttpproxyserver represents Infoblox struct setting:httpproxyserver
27141  type SettingHttpproxyserver struct {
27142  	// The address of the HTTP proxy server.
27143  	Address string `json:"address,omitempty"`
27144  
27145  	// The port on which the HTTP proxy server listens.
27146  	Port uint32 `json:"port,omitempty"`
27147  
27148  	// Determines if the HTTP proxy server is enabled or not.
27149  	EnableProxy bool `json:"enable_proxy,omitempty"`
27150  
27151  	// Determines if HTTPS content inspection by the HTTP proxy server is enabled
27152  	// or not.
27153  	EnableContentInspection bool `json:"enable_content_inspection,omitempty"`
27154  
27155  	// Determines if the CNAME record query verification is enabled or not.
27156  	VerifyCname bool `json:"verify_cname,omitempty"`
27157  
27158  	// The descriptive comment for the HTTP proxy server configuration.
27159  	Comment string `json:"comment,omitempty"`
27160  
27161  	// The user name for the HTTP proxy server.
27162  	Username string `json:"username,omitempty"`
27163  
27164  	// The password for the HTTP proxy server.
27165  	Password string `json:"password,omitempty"`
27166  
27167  	// The token returned by the uploadinit function call in object fileop for the
27168  	// CA certificate file used in the content inspection by an HTTP proxy server.
27169  	Certificate string `json:"certificate,omitempty"`
27170  
27171  	// Determines if username and password for HTTP Proxy Server connectivity is
27172  	// used or not.
27173  	EnableUsernameAndPassword bool `json:"enable_username_and_password,omitempty"`
27174  }
27175  
27176  // SettingInactivelockout represents Infoblox struct setting:inactivelockout
27177  type SettingInactivelockout struct {
27178  	// Enable/disable the account inactivity lockout.
27179  	AccountInactivityLockoutEnable bool `json:"account_inactivity_lockout_enable,omitempty"`
27180  
27181  	// Number of days after which account gets locked out if user does not login.
27182  	InactiveDays uint32 `json:"inactive_days,omitempty"`
27183  
27184  	// The number of days before the account lockout date when the appliance sends
27185  	// a reminder.
27186  	ReminderDays uint32 `json:"reminder_days,omitempty"`
27187  
27188  	// Enable/disable reactivating user account by logging in from serial console.
27189  	ReactivateViaSerialConsoleEnable bool `json:"reactivate_via_serial_console_enable,omitempty"`
27190  
27191  	// Enable/disable reactivating user account by logging in from remote console.
27192  	ReactivateViaRemoteConsoleEnable bool `json:"reactivate_via_remote_console_enable,omitempty"`
27193  }
27194  
27195  // SettingIpamThreshold represents Infoblox struct setting:ipam:threshold
27196  type SettingIpamThreshold struct {
27197  	// Indicates the percentage point which triggers the email/SNMP trap sending.
27198  	TriggerValue uint32 `json:"trigger_value,omitempty"`
27199  
27200  	// Indicates the percentage point which resets the email/SNMP trap sending.
27201  	ResetValue uint32 `json:"reset_value,omitempty"`
27202  }
27203  
27204  // SettingIpamTrap represents Infoblox struct setting:ipam:trap
27205  type SettingIpamTrap struct {
27206  	// Determines whether sending warnings by email is enabled or not.
27207  	EnableEmailWarnings bool `json:"enable_email_warnings,omitempty"`
27208  
27209  	// Determines whether sending warnings by SNMP is enabled or not.
27210  	EnableSnmpWarnings bool `json:"enable_snmp_warnings,omitempty"`
27211  }
27212  
27213  // SettingMsserver represents Infoblox struct setting:msserver
27214  type SettingMsserver struct {
27215  	// The logging of synchronization messages to the syslog or mslog.
27216  	LogDestination string `json:"log_destination,omitempty"`
27217  
27218  	// Determines if the invalid MAC address synchronization for DHCP leases and
27219  	// fixed addresses is enabled or not.
27220  	EnableInvalidMac bool `json:"enable_invalid_mac,omitempty"`
27221  
27222  	// Determines the maximum number of connections to Microsoft servers.
27223  	MaxConnection uint32 `json:"max_connection,omitempty"`
27224  
27225  	// Determines the timeout value (in seconds) for RPC connections to all
27226  	// Microsoft servers.
27227  	RpcTimeout uint32 `json:"rpc_timeout,omitempty"`
27228  
27229  	// Determines if the monitoring and control of DHCP service on all Microsoft
27230  	// servers in the Grid is enabled or not.
27231  	EnableDhcpMonitoring bool `json:"enable_dhcp_monitoring,omitempty"`
27232  
27233  	// Determines if the monitoring and control of DNS service on all Microsoft
27234  	// servers in the Grid is enabled or not.
27235  	EnableDnsMonitoring bool `json:"enable_dns_monitoring,omitempty"`
27236  
27237  	// Determines an LDAP connection timeout interval (in seconds) for all
27238  	// Microsoft servers.
27239  	LdapTimeout uint32 `json:"ldap_timeout,omitempty"`
27240  
27241  	// The default IP site link for sites created on NIOS for all Microsoft
27242  	// servers.
27243  	DefaultIpSiteLink string `json:"default_ip_site_link,omitempty"`
27244  
27245  	// Determines if the Network Users creation is enabled or not.
27246  	EnableNetworkUsers bool `json:"enable_network_users,omitempty"`
27247  
27248  	// Determines if Active Directory user synchronization for all Microsoft
27249  	// servers in the Grid is enabled or not.
27250  	EnableAdUserSync bool `json:"enable_ad_user_sync,omitempty"`
27251  
27252  	// Determines the default timeout value (in seconds) for Active Directory user
27253  	// synchronization for all Microsoft servers.
27254  	AdUserDefaultTimeout uint32 `json:"ad_user_default_timeout,omitempty"`
27255  
27256  	// Determines if synchronization of DNS reporting data from all Microsoft
27257  	// servers in the Grid is enabled or not.
27258  	EnableDnsReportsSync bool `json:"enable_dns_reports_sync,omitempty"`
27259  }
27260  
27261  // SettingNetwork represents Infoblox struct setting:network
27262  type SettingNetwork struct {
27263  	// The IPv4 Address of the Grid Member.
27264  	Address string `json:"address,omitempty"`
27265  
27266  	// The default gateway for the Grid Member.
27267  	Gateway string `json:"gateway,omitempty"`
27268  
27269  	// The subnet mask for the Grid Member.
27270  	SubnetMask string `json:"subnet_mask,omitempty"`
27271  
27272  	// The identifier for the VLAN. Valid values are from 1 to 4096.
27273  	VlanId uint32 `json:"vlan_id,omitempty"`
27274  
27275  	// Determines if the current address is the primary VLAN address or not.
27276  	Primary bool `json:"primary,omitempty"`
27277  
27278  	// The DSCP (Differentiated Services Code Point) value determines relative
27279  	// priorities for the type of services on your network. The appliance
27280  	// implements QoS (Quality of Service) rules based on this configuration. Valid
27281  	// values are from 0 to 63.
27282  	Dscp uint32 `json:"dscp,omitempty"`
27283  
27284  	// Use flag for: dscp
27285  	UseDscp bool `json:"use_dscp,omitempty"`
27286  }
27287  
27288  // SettingPassword represents Infoblox struct setting:password
27289  type SettingPassword struct {
27290  	// The minimum length of the password.
27291  	PasswordMinLength uint32 `json:"password_min_length,omitempty"`
27292  
27293  	// The minimum number of lowercase characters.
27294  	NumLowerChar uint32 `json:"num_lower_char,omitempty"`
27295  
27296  	// The minimum number of uppercase characters.
27297  	NumUpperChar uint32 `json:"num_upper_char,omitempty"`
27298  
27299  	// The minimum number of numeric characters.
27300  	NumNumericChar uint32 `json:"num_numeric_char,omitempty"`
27301  
27302  	// The minimum number of symbol characters. The allowed characters are ! @ # $
27303  	// % ^ & * ( ).
27304  	NumSymbolChar uint32 `json:"num_symbol_char,omitempty"`
27305  
27306  	// The minimum number of characters that must be changed when revising an admin
27307  	// password.
27308  	CharsToChange uint32 `json:"chars_to_change,omitempty"`
27309  
27310  	// The number of days of the password expiration period (if enabled).
27311  	ExpireDays uint32 `json:"expire_days,omitempty"`
27312  
27313  	// The number of days before the password expiration date when the appliance
27314  	// sends a reminder.
27315  	ReminderDays uint32 `json:"reminder_days,omitempty"`
27316  
27317  	// If set to True, all new users must change their passwords when they first
27318  	// log in to the system, and existing users must change the passwords that were
27319  	// just reset.
27320  	ForceResetEnable bool `json:"force_reset_enable,omitempty"`
27321  
27322  	// If set to True, password expiration is enabled.
27323  	ExpireEnable bool `json:"expire_enable,omitempty"`
27324  
27325  	// Enable/disable the password history.
27326  	HistoryEnable bool `json:"history_enable,omitempty"`
27327  
27328  	// Number of saved passwords if password history is enabled. Can be set between
27329  	// 1 to 20.
27330  	NumPasswordsSaved uint32 `json:"num_passwords_saved,omitempty"`
27331  
27332  	// Minimum password age in days before password can be updated. Can be set
27333  	// between 1 to 9998 days.
27334  	MinPasswordAge uint32 `json:"min_password_age,omitempty"`
27335  }
27336  
27337  // SettingScavenging represents Infoblox struct setting:scavenging
27338  type SettingScavenging struct {
27339  	// This flag indicates if the resource record scavenging is enabled or not.
27340  	EnableScavenging bool `json:"enable_scavenging,omitempty"`
27341  
27342  	// This flag indicates if the recurrent resource record scavenging is enabled
27343  	// or not.
27344  	EnableRecurrentScavenging bool `json:"enable_recurrent_scavenging,omitempty"`
27345  
27346  	// This flag indicates if the automatic resource record scavenging is enabled
27347  	// or not.
27348  	EnableAutoReclamation bool `json:"enable_auto_reclamation,omitempty"`
27349  
27350  	// This flag indicates if the resource record last queried monitoring in
27351  	// affected zones is enabled or not.
27352  	EnableRrLastQueried bool `json:"enable_rr_last_queried,omitempty"`
27353  
27354  	// This flag indicates if the last queried monitoring for affected zones is
27355  	// enabled or not.
27356  	EnableZoneLastQueried bool `json:"enable_zone_last_queried,omitempty"`
27357  
27358  	// This flag indicates if the associated resource record scavenging is enabled
27359  	// or not.
27360  	ReclaimAssociatedRecords bool `json:"reclaim_associated_records,omitempty"`
27361  
27362  	// Schedule setting for cloud discovery task.
27363  	ScavengingSchedule *SettingSchedule `json:"scavenging_schedule,omitempty"`
27364  
27365  	// The expression list. The particular record is treated as reclaimable if
27366  	// expression condition evaluates to 'true' for given record if scavenging
27367  	// hasn't been manually disabled on a given resource record.
27368  	ExpressionList []*Expressionop `json:"expression_list,omitempty"`
27369  
27370  	// The extensible attributes expression list. The particular record is treated
27371  	// as reclaimable if extensible attributes expression condition evaluates to
27372  	// 'true' for given record if scavenging hasn't been manually disabled on a
27373  	// given resource record.
27374  	EaExpressionList []*Eaexpressionop `json:"ea_expression_list,omitempty"`
27375  }
27376  
27377  // SettingSchedule represents Infoblox struct setting:schedule
27378  type SettingSchedule struct {
27379  	// Days of the week when scheduling is triggered.
27380  	Weekdays []string `json:"weekdays,omitempty"`
27381  
27382  	// The time zone for the schedule.
27383  	TimeZone string `json:"time_zone,omitempty"`
27384  
27385  	// The recurring time for the schedule in Epoch seconds format. This field is
27386  	// obsolete and is preserved only for backward compatibility purposes. Please
27387  	// use other applicable fields to define the recurring schedule. DO NOT use
27388  	// recurring_time together with these fields. If you use recurring_time with
27389  	// other fields to define the recurring schedule, recurring_time has priority
27390  	// over year, hour_of_day, and minutes_past_hour and will override the values
27391  	// of these fields, although it does not override month and day_of_month. In
27392  	// this case, the recurring time value might be different than the intended
27393  	// value that you define.
27394  	RecurringTime *UnixTime `json:"recurring_time,omitempty"`
27395  
27396  	// The frequency for the scheduled task.
27397  	Frequency string `json:"frequency,omitempty"`
27398  
27399  	// The number of frequency to wait before repeating the scheduled task.
27400  	Every uint32 `json:"every,omitempty"`
27401  
27402  	// The minutes past the hour for the scheduled task.
27403  	MinutesPastHour uint32 `json:"minutes_past_hour,omitempty"`
27404  
27405  	// The hour of day for the scheduled task.
27406  	HourOfDay uint32 `json:"hour_of_day,omitempty"`
27407  
27408  	// The year for the scheduled task.
27409  	Year uint32 `json:"year,omitempty"`
27410  
27411  	// The month for the scheduled task.
27412  	Month uint32 `json:"month,omitempty"`
27413  
27414  	// The day of the month for the scheduled task.
27415  	DayOfMonth uint32 `json:"day_of_month,omitempty"`
27416  
27417  	// Indicates if the scheduled task will be repeated or run only once.
27418  	Repeat string `json:"repeat,omitempty"`
27419  
27420  	// If set to True, the scheduled task is disabled.
27421  	Disable bool `json:"disable,omitempty"`
27422  }
27423  
27424  // SettingSecurity represents Infoblox struct setting:security
27425  type SettingSecurity struct {
27426  	// If set to True, rolling of audit logs is enabled.
27427  	AuditLogRollingEnable bool `json:"audit_log_rolling_enable,omitempty"`
27428  
27429  	// A list of access control settings used for security access.
27430  	AdminAccessItems []*Addressac `json:"admin_access_items,omitempty"`
27431  
27432  	// If set to True, HTTP connections are redirected to HTTPS.
27433  	HttpRedirectEnable bool `json:"http_redirect_enable,omitempty"`
27434  
27435  	// If set to True, the LCD buttons on the front panel of the NIOS appliance can
27436  	// be used for IP address settings of the LAN1 port.
27437  	LcdInputEnable bool `json:"lcd_input_enable,omitempty"`
27438  
27439  	// If set to True, the login banner is enabled.
27440  	LoginBannerEnable bool `json:"login_banner_enable,omitempty"`
27441  
27442  	// The login banner text.
27443  	LoginBannerText string `json:"login_banner_text,omitempty"`
27444  
27445  	// If set to True, superuser admins can access the Infoblox CLI from a remote
27446  	// location using an SSH (Secure Shell) v2 client.
27447  	RemoteConsoleAccessEnable bool `json:"remote_console_access_enable,omitempty"`
27448  
27449  	// If set to True, HTTP access restrictions are enabled.
27450  	SecurityAccessEnable bool `json:"security_access_enable,omitempty"`
27451  
27452  	// If set to True, remote console access restrictions will be enabled.
27453  	SecurityAccessRemoteConsoleEnable bool `json:"security_access_remote_console_enable,omitempty"`
27454  
27455  	// The session timeout interval in seconds.
27456  	SessionTimeout uint32 `json:"session_timeout,omitempty"`
27457  
27458  	// If set to False, SSH access is permanently disabled.
27459  	SshPermEnable bool `json:"ssh_perm_enable,omitempty"`
27460  
27461  	// If set to True, support access for the Grid has been enabled.
27462  	SupportAccessEnable bool `json:"support_access_enable,omitempty"`
27463  
27464  	// Information string to be used for support access requests.
27465  	SupportAccessInfo string `json:"support_access_info,omitempty"`
27466  
27467  	// Whether concurrent login allowed gridlevel
27468  	DisableConcurrentLogin bool `json:"disable_concurrent_login,omitempty"`
27469  
27470  	// The Admin Group security settings.
27471  	InactivityLockoutSetting *SettingInactivelockout `json:"inactivity_lockout_setting,omitempty"`
27472  }
27473  
27474  // SettingSecuritybanner represents Infoblox struct setting:securitybanner
27475  type SettingSecuritybanner struct {
27476  	// The security level color.
27477  	Color string `json:"color,omitempty"`
27478  
27479  	// The security level.
27480  	Level string `json:"level,omitempty"`
27481  
27482  	// The classification message to be displayed.
27483  	Message string `json:"message,omitempty"`
27484  
27485  	// If set to True, the security banner will be displayed on the header and
27486  	// footer of the Grid Manager screen, including the Login screen.
27487  	Enable bool `json:"enable,omitempty"`
27488  }
27489  
27490  // SettingSnmp represents Infoblox struct setting:snmp
27491  type SettingSnmp struct {
27492  	// The engine ID of the appliance that manages the SNMP agent.
27493  	EngineId []string `json:"engine_id,omitempty"`
27494  
27495  	// The community string for SNMP queries.
27496  	QueriesCommunityString string `json:"queries_community_string,omitempty"`
27497  
27498  	// If set to True, SNMP queries are enabled.
27499  	QueriesEnable bool `json:"queries_enable,omitempty"`
27500  
27501  	// If set to True, SNMPv3 queries are enabled.
27502  	Snmpv3QueriesEnable bool `json:"snmpv3_queries_enable,omitempty"`
27503  
27504  	// A list of SNMPv3 queries users.
27505  	Snmpv3QueriesUsers []*Queriesuser `json:"snmpv3_queries_users,omitempty"`
27506  
27507  	// If set to True, SNMPv3 traps are enabled.
27508  	Snmpv3TrapsEnable bool `json:"snmpv3_traps_enable,omitempty"`
27509  
27510  	// The name of the contact person for the appliance. Second value is applicable
27511  	// only for HA pair. Otherwise second value is ignored.
27512  	Syscontact []string `json:"syscontact,omitempty"`
27513  
27514  	// Useful information about the appliance. Second value is applicable only for
27515  	// HA pair. Otherwise second value is ignored.
27516  	Sysdescr []string `json:"sysdescr,omitempty"`
27517  
27518  	// The physical location of the appliance. Second value is applicable only for
27519  	// HA pair. Otherwise second value is ignored.
27520  	Syslocation []string `json:"syslocation,omitempty"`
27521  
27522  	// The FQDN (Fully Qualified Domain Name) of the appliance. Second value is
27523  	// applicable only for HA pair. Otherwise second value is ignored.
27524  	Sysname []string `json:"sysname,omitempty"`
27525  
27526  	// A list of trap receivers.
27527  	TrapReceivers []*Trapreceiver `json:"trap_receivers,omitempty"`
27528  
27529  	// A string the NIOS appliance sends to the management system together with its
27530  	// traps. Note that this community string must match exactly what you enter in
27531  	// the management system.
27532  	TrapsCommunityString string `json:"traps_community_string,omitempty"`
27533  
27534  	// If set to True, SNMP traps are enabled.
27535  	TrapsEnable bool `json:"traps_enable,omitempty"`
27536  }
27537  
27538  // SettingSyslogproxy represents Infoblox struct setting:syslogproxy
27539  type SettingSyslogproxy struct {
27540  	// If set to True, the member receives syslog messages from specified devices,
27541  	// such as syslog servers and routers, and then forwards these messages to an
27542  	// external syslog server.
27543  	Enable bool `json:"enable,omitempty"`
27544  
27545  	// If set to True, the appliance can receive messages from other devices via
27546  	// TCP.
27547  	TcpEnable bool `json:"tcp_enable,omitempty"`
27548  
27549  	// The TCP port the appliance must listen on.
27550  	TcpPort uint32 `json:"tcp_port,omitempty"`
27551  
27552  	// If set to True, the appliance can receive messages from other devices via
27553  	// UDP.
27554  	UdpEnable bool `json:"udp_enable,omitempty"`
27555  
27556  	// The UDP port the appliance must listen on.
27557  	UdpPort uint32 `json:"udp_port,omitempty"`
27558  
27559  	// This list controls the IP addresses and networks that are allowed to access
27560  	// the syslog proxy.
27561  	ClientAcls []*Addressac `json:"client_acls,omitempty"`
27562  }
27563  
27564  // SettingTrafficcapturechr represents Infoblox struct setting:trafficcapturechr
27565  type SettingTrafficcapturechr struct {
27566  	// Enable triggering automated traffic capture based on cache hit ratio
27567  	// thresholds.
27568  	ChrTriggerEnable bool `json:"chr_trigger_enable,omitempty"`
27569  
27570  	// DNS Cache hit ratio threshold(%) below which traffic capture will be
27571  	// triggered.
27572  	ChrThreshold uint32 `json:"chr_threshold,omitempty"`
27573  
27574  	// DNS Cache hit ratio threshold(%) above which traffic capture will be
27575  	// triggered.
27576  	ChrReset uint32 `json:"chr_reset,omitempty"`
27577  
27578  	// Minimum DNS cache utilization threshold(%) for triggering traffic capture
27579  	// based on DNS cache hit ratio.
27580  	ChrMinCacheUtilization uint32 `json:"chr_min_cache_utilization,omitempty"`
27581  }
27582  
27583  // SettingTrafficcaptureqps represents Infoblox struct setting:trafficcaptureqps
27584  type SettingTrafficcaptureqps struct {
27585  	// Enable triggering automated traffic capture based on DNS queries per second
27586  	// threshold.
27587  	QpsTriggerEnable bool `json:"qps_trigger_enable,omitempty"`
27588  
27589  	// DNS queries per second threshold below which traffic capture will be
27590  	// triggered.
27591  	QpsThreshold uint32 `json:"qps_threshold,omitempty"`
27592  
27593  	// DNS queries per second threshold below which traffic capture will be
27594  	// stopped.
27595  	QpsReset uint32 `json:"qps_reset,omitempty"`
27596  }
27597  
27598  // SettingTriggerrecdnslatency represents Infoblox struct setting:triggerrecdnslatency
27599  type SettingTriggerrecdnslatency struct {
27600  	// Enable triggering automated traffic capture based on recursive DNS latency.
27601  	RecDnsLatencyTriggerEnable bool `json:"rec_dns_latency_trigger_enable,omitempty"`
27602  
27603  	// Recursive DNS latency below which traffic capture will be triggered.
27604  	RecDnsLatencyThreshold uint32 `json:"rec_dns_latency_threshold,omitempty"`
27605  
27606  	// Recursive DNS latency above which traffic capture will be stopped.
27607  	RecDnsLatencyReset uint32 `json:"rec_dns_latency_reset,omitempty"`
27608  
27609  	// The local IP DNS service is listen on ( for recursive DNS latency trigger).
27610  	RecDnsLatencyListenOnSource string `json:"rec_dns_latency_listen_on_source,omitempty"`
27611  
27612  	// The DNS listen-on IP address used if rec_dns_latency_listen_on_source is IP.
27613  	RecDnsLatencyListenOnIp string `json:"rec_dns_latency_listen_on_ip,omitempty"`
27614  
27615  	// List of domains monitored by 'Recursive DNS Latency Threshold' trigger.
27616  	KpiMonitoredDomains []*Monitoreddomains `json:"kpi_monitored_domains,omitempty"`
27617  }
27618  
27619  // SettingTriggerrecqueries represents Infoblox struct setting:triggerrecqueries
27620  type SettingTriggerrecqueries struct {
27621  	// Enable triggering automated traffic capture based on outgoing recursive
27622  	// queries count.
27623  	RecursiveClientsCountTriggerEnable bool `json:"recursive_clients_count_trigger_enable,omitempty"`
27624  
27625  	// Concurrent outgoing recursive queries count below which traffic capture will
27626  	// be triggered.
27627  	RecursiveClientsCountThreshold uint32 `json:"recursive_clients_count_threshold,omitempty"`
27628  
27629  	// Concurrent outgoing recursive queries count below which traffic capture will
27630  	// be stopped.
27631  	RecursiveClientsCountReset uint32 `json:"recursive_clients_count_reset,omitempty"`
27632  }
27633  
27634  // SettingTriggeruthdnslatency represents Infoblox struct setting:triggeruthdnslatency
27635  type SettingTriggeruthdnslatency struct {
27636  	// Enabling trigger automated traffic capture based on authoritative DNS
27637  	// latency.
27638  	AuthDnsLatencyTriggerEnable bool `json:"auth_dns_latency_trigger_enable,omitempty"`
27639  
27640  	// Authoritative DNS latency below which traffic capture will be triggered.
27641  	AuthDnsLatencyThreshold uint32 `json:"auth_dns_latency_threshold,omitempty"`
27642  
27643  	// Authoritative DNS latency above which traffic capture will stopped.
27644  	AuthDnsLatencyReset uint32 `json:"auth_dns_latency_reset,omitempty"`
27645  
27646  	// The local IP DNS service is listen on (for authoritative DNS latency
27647  	// trigger).
27648  	AuthDnsLatencyListenOnSource string `json:"auth_dns_latency_listen_on_source,omitempty"`
27649  
27650  	// The DNS listen-on IP address used if auth_dns_latency_on_source is IP.
27651  	AuthDnsLatencyListenOnIp string `json:"auth_dns_latency_listen_on_ip,omitempty"`
27652  }
27653  
27654  // SettingViewaddress represents Infoblox struct setting:viewaddress
27655  type SettingViewaddress struct {
27656  	// The reference to DNS View
27657  	ViewName string `json:"view_name,omitempty"`
27658  
27659  	// Determines which IP address is used as the source for DDNS notify and
27660  	// transfer operations.
27661  	DnsNotifyTransferSource string `json:"dns_notify_transfer_source,omitempty"`
27662  
27663  	// The source address used if dns_notify_transfer_source type is "IP".
27664  	DnsNotifyTransferSourceAddress string `json:"dns_notify_transfer_source_address,omitempty"`
27665  
27666  	// Determines which IP address is used as the source for DDNS query operations.
27667  	DnsQuerySourceInterface string `json:"dns_query_source_interface,omitempty"`
27668  
27669  	// The source address used if dns_query_source_interface type is "IP".
27670  	DnsQuerySourceAddress string `json:"dns_query_source_address,omitempty"`
27671  
27672  	// Determines if the notify source port for a view is enabled or not.
27673  	EnableNotifySourcePort bool `json:"enable_notify_source_port,omitempty"`
27674  
27675  	// The source port for notify messages. When requesting zone transfers from the
27676  	// primary server, some secondary DNS servers use the source port number (the
27677  	// primary server used to send the notify message) as the destination port
27678  	// number in the zone transfer request. This setting overrides Grid static
27679  	// source port settings. Valid values are between 1 and 63999. The default is
27680  	// selected by BIND.
27681  	NotifySourcePort uint32 `json:"notify_source_port,omitempty"`
27682  
27683  	// Determines if the query source port for a view is enabled or not.
27684  	EnableQuerySourcePort bool `json:"enable_query_source_port,omitempty"`
27685  
27686  	// The source port for queries. Specifying a source port number for recursive
27687  	// queries ensures that a firewall will allow the response. Valid values are
27688  	// between 1 and 63999. The default is selected by BIND.
27689  	QuerySourcePort uint32 `json:"query_source_port,omitempty"`
27690  
27691  	// Specifies the number of seconds of delay the notify messages are sent to
27692  	// secondaries.
27693  	NotifyDelay uint32 `json:"notify_delay,omitempty"`
27694  
27695  	// Use flag for: enable_notify_source_port , notify_source_port,
27696  	// enable_query_source_port, query_source_port
27697  	UseSourcePorts bool `json:"use_source_ports,omitempty"`
27698  
27699  	// Use flag for: notify_delay
27700  	UseNotifyDelay bool `json:"use_notify_delay,omitempty"`
27701  }
27702  
27703  // SmartfolderGroupby represents Infoblox struct smartfolder:groupby
27704  type SmartfolderGroupby struct {
27705  	// The name of the Smart Folder grouping attribute.
27706  	Value string `json:"value,omitempty"`
27707  
27708  	// The type of the Smart Folder grouping attribute value.
27709  	ValueType string `json:"value_type,omitempty"`
27710  
27711  	// Determines whether the grouping is enabled.
27712  	EnableGrouping bool `json:"enable_grouping,omitempty"`
27713  }
27714  
27715  // SmartfolderQueryitem represents Infoblox struct smartfolder:queryitem
27716  type SmartfolderQueryitem struct {
27717  	// The Smart Folder query name.
27718  	Name string `json:"name,omitempty"`
27719  
27720  	// The Smart Folder query field type.
27721  	FieldType string `json:"field_type,omitempty"`
27722  
27723  	// The Smart Folder operator used in query.
27724  	Operator string `json:"operator,omitempty"`
27725  
27726  	// Determines whether the query operator should match.
27727  	OpMatch bool `json:"op_match,omitempty"`
27728  
27729  	// The Smart Folder query value type.
27730  	ValueType string `json:"value_type,omitempty"`
27731  
27732  	// The Smart Folder query value.
27733  	Value *SmartfolderQueryitemvalue `json:"value,omitempty"`
27734  }
27735  
27736  // SmartfolderQueryitemvalue represents Infoblox struct smartfolder:queryitemvalue
27737  type SmartfolderQueryitemvalue struct {
27738  	// The integer value of the Smart Folder query.
27739  	ValueInteger int `json:"value_integer,omitempty"`
27740  
27741  	// The string value of the Smart Folder query.
27742  	ValueString string `json:"value_string,omitempty"`
27743  
27744  	// The timestamp value of the Smart Folder query.
27745  	ValueDate *UnixTime `json:"value_date,omitempty"`
27746  
27747  	// The boolean value of the Smart Folder query.
27748  	ValueBoolean bool `json:"value_boolean,omitempty"`
27749  }
27750  
27751  // Sortlist represents Infoblox struct sortlist
27752  type Sortlist struct {
27753  	// The source address of a sortlist object.
27754  	Address string `json:"address,omitempty"`
27755  
27756  	// The match list of a sortlist.
27757  	MatchList []string `json:"match_list,omitempty"`
27758  }
27759  
27760  // SshKey represents Infoblox struct ssh_key
27761  type SshKey struct {
27762  	// Unique identifier for the key
27763  	KeyName string `json:"key_name,omitempty"`
27764  
27765  	// ssh_key_types
27766  	KeyType string `json:"key_type,omitempty"`
27767  
27768  	// ssh key text
27769  	KeyValue string `json:"key_value,omitempty"`
27770  }
27771  
27772  // SyslogEndpointServers represents Infoblox struct syslog:endpoint:servers
27773  type SyslogEndpointServers struct {
27774  	// Syslog Server IP address
27775  	Address string `json:"address,omitempty"`
27776  
27777  	// Connection type values
27778  	ConnectionType string `json:"connection_type,omitempty"`
27779  
27780  	// The port this server listens on.
27781  	Port uint32 `json:"port,omitempty"`
27782  
27783  	// List of hostnames
27784  	Hostname string `json:"hostname,omitempty"`
27785  
27786  	// Format vlues for syslog endpoint server
27787  	Format string `json:"format,omitempty"`
27788  
27789  	// Facility values for syslog endpoint server
27790  	Facility string `json:"facility,omitempty"`
27791  
27792  	// Severity values for syslog endpoint server.
27793  	Severity string `json:"severity,omitempty"`
27794  
27795  	// Reference for creating sysog endpoint server.
27796  	Certificate string `json:"certificate,omitempty"`
27797  
27798  	// The token returned by the uploadinit function call in object fileop.
27799  	CertificateToken string `json:"certificate_token,omitempty"`
27800  }
27801  
27802  // Syslogserver represents Infoblox struct syslogserver
27803  type Syslogserver struct {
27804  	// The server address.
27805  	Address string `json:"address,omitempty"`
27806  
27807  	// Reference to the underlying X509Certificate object grid:x509certificate.
27808  	Certificate string `json:"certificate,omitempty"`
27809  
27810  	// The token returned by the uploadinit function call in object fileop.
27811  	CertificateToken string `json:"certificate_token,omitempty"`
27812  
27813  	// The connection type for communicating with this server.
27814  	ConnectionType string `json:"connection_type,omitempty"`
27815  
27816  	// The port this server listens on.
27817  	Port uint32 `json:"port,omitempty"`
27818  
27819  	// The local interface through which the appliance sends syslog messages to the
27820  	// syslog server.
27821  	LocalInterface string `json:"local_interface,omitempty"`
27822  
27823  	// The source of syslog messages to be sent to the external syslog server. If
27824  	// set to 'INTERNAL', only messages the appliance generates will be sent to the
27825  	// syslog server. If set to 'EXTERNAL', the appliance sends syslog messages
27826  	// that it receives from other devices, such as syslog servers and routers. If
27827  	// set to 'ANY', the appliance sends both internal and external syslog
27828  	// messages.
27829  	MessageSource string `json:"message_source,omitempty"`
27830  
27831  	// Identify the node in the syslog message.
27832  	MessageNodeId string `json:"message_node_id,omitempty"`
27833  
27834  	// The severity filter. The appliance sends log messages of the specified
27835  	// severity and above to the external syslog server.
27836  	Severity string `json:"severity,omitempty"`
27837  
27838  	// The list of all syslog logging categories.
27839  	CategoryList []string `json:"category_list,omitempty"`
27840  
27841  	// The list of selected syslog logging categories. The appliance forwards
27842  	// syslog messages that belong to the selected categories.
27843  	OnlyCategoryList bool `json:"only_category_list,omitempty"`
27844  }
27845  
27846  // TacacsplusServer represents Infoblox struct tacacsplus:server
27847  type TacacsplusServer struct {
27848  	// The valid IP address or FQDN of the TACACS+ server.
27849  	Address string `json:"address,omitempty"`
27850  
27851  	// The TACACS+ server port.
27852  	Port uint32 `json:"port,omitempty"`
27853  
27854  	// The secret key with which to connect to the TACACS+ server.
27855  	SharedSecret string `json:"shared_secret,omitempty"`
27856  
27857  	// The authentication protocol.
27858  	AuthType string `json:"auth_type,omitempty"`
27859  
27860  	// The TACACS+ descriptive comment.
27861  	Comment string `json:"comment,omitempty"`
27862  
27863  	// Determines whether the TACACS+ server is disabled.
27864  	Disable bool `json:"disable,omitempty"`
27865  
27866  	// Determines whether the TACACS+ server is connected via the management
27867  	// interface.
27868  	UseMgmtPort bool `json:"use_mgmt_port,omitempty"`
27869  
27870  	// Determines whether the TACACS+ accounting server is used.
27871  	UseAccounting bool `json:"use_accounting,omitempty"`
27872  }
27873  
27874  // TaxiiRpzconfig represents Infoblox struct taxii:rpzconfig
27875  type TaxiiRpzconfig struct {
27876  	// The STIX collection name.
27877  	CollectionName string `json:"collection_name,omitempty"`
27878  
27879  	// The reference to the RPZ in which rules are created through the Taxii
27880  	// protocol requests.
27881  	Zone string `json:"zone,omitempty"`
27882  }
27883  
27884  // ThreatprotectionNatport represents Infoblox struct threatprotection:natport
27885  type ThreatprotectionNatport struct {
27886  	// The start port value for the NAT port configuration object.
27887  	StartPort uint32 `json:"start_port,omitempty"`
27888  
27889  	// The end port value for the NAT port configuration object.
27890  	EndPort uint32 `json:"end_port,omitempty"`
27891  
27892  	// The block size for the NAT Port configuration object.
27893  	BlockSize uint32 `json:"block_size,omitempty"`
27894  }
27895  
27896  // ThreatprotectionNatrule represents Infoblox struct threatprotection:natrule
27897  type ThreatprotectionNatrule struct {
27898  	// The rule type for the threat protection NAT mapping rule.
27899  	RuleType string `json:"rule_type,omitempty"`
27900  
27901  	// The IP address for the threat protection NAT mapping rule.
27902  	Address string `json:"address,omitempty"`
27903  
27904  	// The network address for the threat protection NAT mapping rule.
27905  	Network string `json:"network,omitempty"`
27906  
27907  	// The network CIDR for the threat protection NAT mapping rule.
27908  	Cidr uint32 `json:"cidr,omitempty"`
27909  
27910  	// The start address for the range of the threat protection NAT mapping rule.
27911  	StartAddress string `json:"start_address,omitempty"`
27912  
27913  	// The end address for the range of the threat protection NAT mapping rule.
27914  	EndAddress string `json:"end_address,omitempty"`
27915  
27916  	// The NAT port configuration for the threat protection NAT mapping rule.
27917  	NatPorts []*ThreatprotectionNatport `json:"nat_ports,omitempty"`
27918  }
27919  
27920  // ThreatprotectionRuleconfig represents Infoblox struct threatprotection:ruleconfig
27921  type ThreatprotectionRuleconfig struct {
27922  	// The rule action.
27923  	Action string `json:"action,omitempty"`
27924  
27925  	// The rule log severity.
27926  	LogSeverity string `json:"log_severity,omitempty"`
27927  
27928  	// The threat protection rule parameters.
27929  	Params []*ThreatprotectionRuleparam `json:"params,omitempty"`
27930  }
27931  
27932  // ThreatprotectionRuleparam represents Infoblox struct threatprotection:ruleparam
27933  type ThreatprotectionRuleparam struct {
27934  	// The rule parameter name.
27935  	Name string `json:"name,omitempty"`
27936  
27937  	// The rule parameter description.
27938  	Description string `json:"description,omitempty"`
27939  
27940  	// The rule parameter syntax.
27941  	Syntax string `json:"syntax,omitempty"`
27942  
27943  	// The rule parameter value.
27944  	Value string `json:"value,omitempty"`
27945  
27946  	// The rule parameter minimum.
27947  	Min uint32 `json:"min,omitempty"`
27948  
27949  	// The rule parameter maximum.
27950  	Max uint32 `json:"max,omitempty"`
27951  
27952  	// Determines if parameter value is editable at member level.
27953  	ReadOnly bool `json:"read_only,omitempty"`
27954  
27955  	// The rule parameter enum values.
27956  	EnumValues []string `json:"enum_values,omitempty"`
27957  }
27958  
27959  // ThreatprotectionStatinfo represents Infoblox struct threatprotection:statinfo
27960  type ThreatprotectionStatinfo struct {
27961  	// The timestamp when data was collected.
27962  	Timestamp *UnixTime `json:"timestamp,omitempty"`
27963  
27964  	// The number of critical events.
27965  	Critical uint64 `json:"critical,omitempty"`
27966  
27967  	// The number of major events.
27968  	Major uint64 `json:"major,omitempty"`
27969  
27970  	// The number of warning events.
27971  	Warning uint64 `json:"warning,omitempty"`
27972  
27973  	// The number of informational events.
27974  	Informational uint64 `json:"informational,omitempty"`
27975  
27976  	// The total number of events.
27977  	Total uint64 `json:"total,omitempty"`
27978  }
27979  
27980  // Thresholdtrap represents Infoblox struct thresholdtrap
27981  type Thresholdtrap struct {
27982  	// Determines the type of a given trap.
27983  	TrapType string `json:"trap_type,omitempty"`
27984  
27985  	// Determines the threshold value to reset the trap.
27986  	TrapReset uint32 `json:"trap_reset,omitempty"`
27987  
27988  	// Determines the threshold value to trigger the trap.
27989  	TrapTrigger uint32 `json:"trap_trigger,omitempty"`
27990  }
27991  
27992  // Trapnotification represents Infoblox struct trapnotification
27993  type Trapnotification struct {
27994  	// Determines the type of a given trap.
27995  	TrapType string `json:"trap_type,omitempty"`
27996  
27997  	// Determines if the email notifications for the given trap are enabled or not.
27998  	EnableEmail bool `json:"enable_email,omitempty"`
27999  
28000  	// Determines if the trap is enabled or not.
28001  	EnableTrap bool `json:"enable_trap,omitempty"`
28002  }
28003  
28004  // Trapreceiver represents Infoblox struct trapreceiver
28005  type Trapreceiver struct {
28006  	// The address of the trap receiver.
28007  	Address string `json:"address,omitempty"`
28008  
28009  	// The SNMPv3 user for this trap receiver.
28010  	User string `json:"user,omitempty"`
28011  
28012  	// A descriptive comment for this trap receiver.
28013  	Comment string `json:"comment,omitempty"`
28014  }
28015  
28016  // Tsigac represents Infoblox struct tsigac
28017  type Tsigac struct {
28018  	// The address this rule applies to or "Any".
28019  	Address string `json:"address,omitempty"`
28020  
28021  	// The permission to use for this address.
28022  	Permission string `json:"permission,omitempty"`
28023  
28024  	// A generated TSIG key. If the external primary server is a NIOS appliance
28025  	// running DNS One 2.x code, this can be set to :2xCOMPAT.
28026  	TsigKey string `json:"tsig_key,omitempty"`
28027  
28028  	// The TSIG key algorithm.
28029  	TsigKeyAlg string `json:"tsig_key_alg,omitempty"`
28030  
28031  	// The name of the TSIG key. If 2.x TSIG compatibility is used, this is set to
28032  	// 'tsig_xfer' on retrieval, and ignored on insert or update.
28033  	TsigKeyName string `json:"tsig_key_name,omitempty"`
28034  
28035  	// Use flag for: tsig_key_name
28036  	UseTsigKeyName bool `json:"use_tsig_key_name,omitempty"`
28037  }
28038  
28039  // Updatesdownloadmemberconfig represents Infoblox struct updatesdownloadmemberconfig
28040  type Updatesdownloadmemberconfig struct {
28041  	// The name of the updates download member.
28042  	Member string `json:"member,omitempty"`
28043  
28044  	// The source interface for updates download requests.
28045  	Interface string `json:"interface,omitempty"`
28046  
28047  	// Determines if the updates download member is online or not.
28048  	IsOnline bool `json:"is_online,omitempty"`
28049  }
28050  
28051  // UpgradegroupMember represents Infoblox struct upgradegroup:member
28052  type UpgradegroupMember struct {
28053  	// The upgrade group member name.
28054  	Member string `json:"member,omitempty"`
28055  
28056  	// The upgrade group member time zone.
28057  	TimeZone string `json:"time_zone,omitempty"`
28058  }
28059  
28060  // UpgradegroupSchedule represents Infoblox struct upgradegroup:schedule
28061  type UpgradegroupSchedule struct {
28062  	// The upgrade group name.
28063  	Name string `json:"name,omitempty"`
28064  
28065  	// The time zone for scheduling operations.
28066  	TimeZone string `json:"time_zone,omitempty"`
28067  
28068  	// The distribution dependent group name.
28069  	DistributionDependentGroup string `json:"distribution_dependent_group,omitempty"`
28070  
28071  	// The upgrade dependent group name.
28072  	UpgradeDependentGroup string `json:"upgrade_dependent_group,omitempty"`
28073  
28074  	// The time of the next scheduled distribution.
28075  	DistributionTime *UnixTime `json:"distribution_time,omitempty"`
28076  
28077  	// The time of the next scheduled upgrade.
28078  	UpgradeTime *UnixTime `json:"upgrade_time,omitempty"`
28079  }
28080  
28081  // Upgradestep represents Infoblox struct upgradestep
28082  type Upgradestep struct {
28083  	// The status value of a step.
28084  	StatusValue string `json:"status_value,omitempty"`
28085  
28086  	// The status text that describes a step.
28087  	StatusText string `json:"status_text,omitempty"`
28088  }
28089  
28090  // Vlanlink represents Infoblox struct vlanlink
28091  type Vlanlink struct {
28092  	// VLAN ID value.
28093  	Id uint32 `json:"id,omitempty"`
28094  
28095  	// Name of the VLAN.
28096  	Name string `json:"name,omitempty"`
28097  }
28098  
28099  // Vtftpdirmember represents Infoblox struct vtftpdirmember
28100  type Vtftpdirmember struct {
28101  	// The Grid member on which to create the virtual TFTP directory.
28102  	Member string `json:"member,omitempty"`
28103  
28104  	// The IP type of the virtual TFTP root directory.
28105  	IpType string `json:"ip_type,omitempty"`
28106  
28107  	// The IP address of the clients which will see the virtual TFTP directory as
28108  	// the root directory.
28109  	Address string `json:"address,omitempty"`
28110  
28111  	// The start IP address of the range within which the clients will see the
28112  	// virtual TFTP directory as the root directory.
28113  	StartAddress string `json:"start_address,omitempty"`
28114  
28115  	// The end IP address of the range within which the clients will see the
28116  	// virtual TFTP directory as the root directory.
28117  	EndAddress string `json:"end_address,omitempty"`
28118  
28119  	// The IP address of network the clients from which will see the virtual TFTP
28120  	// directory as the root directory.
28121  	Network string `json:"network,omitempty"`
28122  
28123  	// The CIDR of network the clients from which will see the virtual TFTP
28124  	// directory as the root directory.
28125  	Cidr uint32 `json:"cidr,omitempty"`
28126  }
28127  
28128  // Zoneassociation represents Infoblox struct zoneassociation
28129  type Zoneassociation struct {
28130  	// The FQDN of the authoritative forward zone.
28131  	Fqdn string `json:"fqdn,omitempty"`
28132  
28133  	// True if this is the default zone.
28134  	IsDefault bool `json:"is_default,omitempty"`
28135  
28136  	// The view to which the zone belongs. If a view is not specified, the default
28137  	// view is used.
28138  	View string `json:"view,omitempty"`
28139  }
28140  
28141  // ZoneNameServer represents Infoblox struct zonenameserver
28142  type ZoneNameServer struct {
28143  	// The address of the Zone Name Server.
28144  	Address string `json:"address,omitempty"`
28145  
28146  	// Flag to indicate if ptr records need to be auto created.
28147  	AutoCreatePtr bool `json:"auto_create_ptr,omitempty"`
28148  }
28149