Setting values for resource from API response which has slice of struct, and object values

Trying to implement setting some attributes after create for this AppliedPolicy resource. Can someone please help guide me to properly set data.Options and data.PolicyTemplate for the resource using the API response struct ap which is an AppliedPolicy{} struct:

ap := api_resp.JSON201 // api_resp.JSON201 is `AppliedPolicy` struct

data.Options, diags = types.ListValueFrom(ctx, ???) // Not sure how to set data.Options which is a slice of ConfigurationOption{}
if diags.HasError() {
	....
}

data.PolicyTemplate, diags = types.ObjectValueFrom(ctx, ???) // Not sure how to set data.PolicyTemplate which is an object
if diags.HasError() {
	....
}

Schema for “options” and “policy_template” attributes (Generated with Framework Code Generator):

			"options": schema.ListNestedAttribute{
				NestedObject: schema.NestedAttributeObject{
					Attributes: map[string]schema.Attribute{
						"label": schema.StringAttribute{
							Computed:            true,
							Description:         "label of option",
						},
						"name": schema.StringAttribute{
							Required:            true,
							Description:         "name of option",
						},
						"sanitized": schema.BoolAttribute{
							Computed:            true,
							Description:         "sanitized determines whether the value of the configuration option should be hidden in UIs and API responses.",
							Default:             booldefault.StaticBool(false),
						},
						"type": schema.StringAttribute{
							Computed:            true,
							Description:         "type of option",
						},
						"value": schema.DynamicAttribute{
							Required:            true,
							Description:         "value of option",
						},
					},
					CustomType: OptionsType{
						ObjectType: types.ObjectType{
							AttrTypes: OptionsValue{}.AttributeTypes(ctx),
						},
					},
				},
				Optional:            true,
				Computed:            true,
				Description:         "options are the answers to questions raised by a policy template's parameters. Parameters without default values do not require options if the default value is acceptable. Parameters without default values must be answered with a valid option.",
			},
			"policy_template": schema.SingleNestedAttribute{
				Attributes: map[string]schema.Attribute{
					"id": schema.StringAttribute{
						Computed:            true,
						Description:         "id identifies a policy template by ID.",
					},
					"name": schema.StringAttribute{
						Computed:            true,
						Description:         "name is the unique name of the policy template within the project.",
					},
					"project_id": schema.Int64Attribute{
						Computed:            true,
						Description:         "The unique identifier for the project",
					},
				},
				CustomType: PolicyTemplateType{
					ObjectType: types.ObjectType{
						AttrTypes: PolicyTemplateValue{}.AttributeTypes(ctx),
					},
				},
				Computed:            true,
				Description:         "PolicyTemplateLink describes a previously uploaded policy template.",
			},

Here’s the structs for the API response / resource (ap):

// AppliedPolicy defines model for AppliedPolicy.
type AppliedPolicy struct {
	// Credentials A map of the credentials to use when the policy is evaluated. The value in the map is the ID of the corresponding credential. The credential's ID can be obtained from the Credentials Management in  One, or from the [Credential API](https://developer..com/docs/api/cred/v2).
	Credentials *map[string]string `json:"credentials,omitempty"`
	// Id id identifies an Applied Policy.
	Id string `json:"id"`
	// Options options are the answers to questions raised by a policy template's parameters. Parameters without default values do not require options if the default value is acceptable. Parameters without default values must be answered with a valid option.
	Options *[]ConfigurationOption `json:"options,omitempty"`
	// PolicyTemplate PolicyTemplateLink describes a previously uploaded policy template.
	PolicyTemplate *PolicyPolicyTemplateLink `json:"policyTemplate,omitempty"`
}

// ConfigurationOption describes a single parameter value used to configure an applied policy.
type ConfigurationOption struct {
	// Label label of option
	Label string `json:"label"`
	// Name name of option
	Name string `json:"name"`
	// Sanitized sanitized determines whether the value of the configuration option should be hidden in UIs and API responses.
	Sanitized *bool `json:"sanitized,omitempty"`
	// Type type of option
	Type ConfigurationOptionType `json:"type"`
	// Value value of option
	Value interface{} `json:"value"`
}

// PolicyPolicyTemplateLink describes a previously uploaded policy template.
type PolicyPolicyTemplateLink struct {
	// Id id identifies a policy template by ID.
	Id string `json:"id"`
	// Name name is the unique name of the policy template within the project.
	Name string `json:"name"`
	// ProjectId The unique identifier for the project
	ProjectId *int `json:"projectId,omitempty"`
}