func IntegrationsServerSchema()

in ec/ecresource/deploymentresource/integrationsserver/v2/schema.go [34:178]


func IntegrationsServerSchema() schema.Attribute {
	return schema.SingleNestedAttribute{
		Description: "Integrations Server cluster definition. Integrations Server replaces `apm` in Stack versions > 8.0",
		Optional:    true,
		Validators: []validator.Object{
			objectvalidator.AlsoRequires(path.MatchRoot("kibana")),
		},
		Attributes: map[string]schema.Attribute{
			"elasticsearch_cluster_ref_id": schema.StringAttribute{
				Optional: true,
				Computed: true,
				PlanModifiers: []planmodifier.String{
					planmodifiers.StringDefaultValue("main-elasticsearch"),
				},
			},
			"ref_id": schema.StringAttribute{
				Optional: true,
				Computed: true,
				PlanModifiers: []planmodifier.String{
					planmodifiers.StringDefaultValue("main-integrations_server"),
				},
			},
			"resource_id": schema.StringAttribute{
				Computed: true,
				PlanModifiers: []planmodifier.String{
					stringplanmodifier.UseStateForUnknown(),
				},
			},
			"region": schema.StringAttribute{
				Computed: true,
				PlanModifiers: []planmodifier.String{
					stringplanmodifier.UseStateForUnknown(),
				},
			},
			"http_endpoint": schema.StringAttribute{
				Computed: true,
				PlanModifiers: []planmodifier.String{
					stringplanmodifier.UseStateForUnknown(),
				},
			},
			"https_endpoint": schema.StringAttribute{
				Computed: true,
				PlanModifiers: []planmodifier.String{
					stringplanmodifier.UseStateForUnknown(),
				},
			},
			"endpoints": schema.ObjectAttribute{
				Optional:    true,
				Computed:    true,
				Description: "URLs for the accessing the Fleet and APM API's within this Integrations Server resource.",
				AttributeTypes: map[string]attr.Type{
					"apm":       types.StringType,
					"fleet":     types.StringType,
					"symbols":   types.StringType,
					"profiling": types.StringType,
				},
				PlanModifiers: []planmodifier.Object{
					objectplanmodifier.UseStateForUnknown(),
				},
			},
			"instance_configuration_id": schema.StringAttribute{
				Optional: true,
				Computed: true,
				PlanModifiers: []planmodifier.String{
					planmodifiers.UseStateForUnknownUnlessMigrationIsRequired("integrations_server", false),
				},
			},
			"latest_instance_configuration_id": schema.StringAttribute{
				Computed: true,
				PlanModifiers: []planmodifier.String{
					planmodifiers.UseStateForUnknownUnlessMigrationIsRequired("integrations_server", false),
				},
			},
			"instance_configuration_version": schema.Int64Attribute{
				Computed: true,
				Optional: true,
				PlanModifiers: []planmodifier.Int64{
					planmodifiers.UseStateForUnknownUnlessMigrationIsRequired("integrations_server", true),
				},
			},
			"latest_instance_configuration_version": schema.Int64Attribute{
				Computed: true,
				PlanModifiers: []planmodifier.Int64{
					planmodifiers.UseStateForUnknownUnlessMigrationIsRequired("integrations_server", true),
				},
			},
			"size": schema.StringAttribute{
				Computed: true,
				Optional: true,
				PlanModifiers: []planmodifier.String{
					planmodifiers.UseStateForUnknownUnlessMigrationIsRequired("integrations_server", false),
				},
			},
			"size_resource": schema.StringAttribute{
				Description: `Optional size type, defaults to "memory".`,
				Optional:    true,
				Computed:    true,
				PlanModifiers: []planmodifier.String{
					planmodifiers.StringDefaultValue("memory"),
				},
			},
			"zone_count": schema.Int64Attribute{
				Computed: true,
				Optional: true,
				PlanModifiers: []planmodifier.Int64{
					int64planmodifier.UseStateForUnknown(),
				},
			},
			"config": schema.SingleNestedAttribute{
				Description: `Optionally define the Integrations Server configuration options for the IntegrationsServer Server`,
				Optional:    true,
				Attributes: map[string]schema.Attribute{
					"docker_image": schema.StringAttribute{
						Description: "Optionally override the docker image the Integrations Server nodes will use. Note that this field will only work for internal users only.",
						Optional:    true,
					},
					"debug_enabled": schema.BoolAttribute{
						Description: `Optionally enable debug mode for Integrations Server instances - defaults to false`,
						Optional:    true,
						Computed:    true,
						PlanModifiers: []planmodifier.Bool{
							planmodifiers.BoolDefaultValue(false),
						},
					},
					"user_settings_json": schema.StringAttribute{
						Description: `An arbitrary JSON object allowing (non-admin) cluster owners to set their parameters (only one of this and 'user_settings_yaml' is allowed), provided they are on the whitelist ('user_settings_whitelist') and not on the blacklist ('user_settings_blacklist'). (This field together with 'user_settings_override*' and 'system_settings' defines the total set of resource settings)`,
						Optional:    true,
					},
					"user_settings_override_json": schema.StringAttribute{
						Description: `An arbitrary JSON object allowing ECE admins owners to set clusters' parameters (only one of this and 'user_settings_override_yaml' is allowed), ie in addition to the documented 'system_settings'. (This field together with 'system_settings' and 'user_settings*' defines the total set of resource settings)`,
						Optional:    true,
					},
					"user_settings_yaml": schema.StringAttribute{
						Description: `An arbitrary YAML object allowing (non-admin) cluster owners to set their parameters (only one of this and 'user_settings_json' is allowed), provided they are on the whitelist ('user_settings_whitelist') and not on the blacklist ('user_settings_blacklist'). (These field together with 'user_settings_override*' and 'system_settings' defines the total set of resource settings)`,
						Optional:    true,
					},
					"user_settings_override_yaml": schema.StringAttribute{
						Description: `An arbitrary YAML object allowing ECE admins owners to set clusters' parameters (only one of this and 'user_settings_override_json' is allowed), ie in addition to the documented 'system_settings'. (This field together with 'system_settings' and 'user_settings*' defines the total set of resource settings)`,
						Optional:    true,
					},
				},
			},
		},
	}
}