diff --git a/pkg/api/oas_client_gen.go b/pkg/api/oas_client_gen.go
index 3fac351..5135a88 100644
--- a/pkg/api/oas_client_gen.go
+++ b/pkg/api/oas_client_gen.go
@@ -148,13 +148,13 @@ type Invoker interface {
 	// Create a new script.
 	//
 	// POST /scripts
-	CreateScript(ctx context.Context, request *ScriptCreate) (*ID, error)
+	CreateScript(ctx context.Context, request *ScriptCreate) (*ScriptID, error)
 	// CreateScriptPolicy invokes createScriptPolicy operation.
 	//
 	// Create a new script policy.
 	//
 	// POST /script-policy
-	CreateScriptPolicy(ctx context.Context, request *ScriptPolicyCreate) (*ID, error)
+	CreateScriptPolicy(ctx context.Context, request *ScriptPolicyCreate) (*ScriptPolicyID, error)
 	// CreateSubmission invokes createSubmission operation.
 	//
 	// Trigger the validator to create a new submission.
@@ -2695,12 +2695,12 @@ func (c *Client) sendCreateMapfix(ctx context.Context, request *MapfixTriggerCre
 // Create a new script.
 //
 // POST /scripts
-func (c *Client) CreateScript(ctx context.Context, request *ScriptCreate) (*ID, error) {
+func (c *Client) CreateScript(ctx context.Context, request *ScriptCreate) (*ScriptID, error) {
 	res, err := c.sendCreateScript(ctx, request)
 	return res, err
 }
 
-func (c *Client) sendCreateScript(ctx context.Context, request *ScriptCreate) (res *ID, err error) {
+func (c *Client) sendCreateScript(ctx context.Context, request *ScriptCreate) (res *ScriptID, err error) {
 	otelAttrs := []attribute.KeyValue{
 		otelogen.OperationID("createScript"),
 		semconv.HTTPRequestMethodKey.String("POST"),
@@ -2803,12 +2803,12 @@ func (c *Client) sendCreateScript(ctx context.Context, request *ScriptCreate) (r
 // Create a new script policy.
 //
 // POST /script-policy
-func (c *Client) CreateScriptPolicy(ctx context.Context, request *ScriptPolicyCreate) (*ID, error) {
+func (c *Client) CreateScriptPolicy(ctx context.Context, request *ScriptPolicyCreate) (*ScriptPolicyID, error) {
 	res, err := c.sendCreateScriptPolicy(ctx, request)
 	return res, err
 }
 
-func (c *Client) sendCreateScriptPolicy(ctx context.Context, request *ScriptPolicyCreate) (res *ID, err error) {
+func (c *Client) sendCreateScriptPolicy(ctx context.Context, request *ScriptPolicyCreate) (res *ScriptPolicyID, err error) {
 	otelAttrs := []attribute.KeyValue{
 		otelogen.OperationID("createScriptPolicy"),
 		semconv.HTTPRequestMethodKey.String("POST"),
diff --git a/pkg/api/oas_handlers_gen.go b/pkg/api/oas_handlers_gen.go
index d667263..f848f69 100644
--- a/pkg/api/oas_handlers_gen.go
+++ b/pkg/api/oas_handlers_gen.go
@@ -3871,7 +3871,7 @@ func (s *Server) handleCreateScriptRequest(args [0]string, argsEscaped bool, w h
 		}
 	}()
 
-	var response *ID
+	var response *ScriptID
 	if m := s.cfg.Middleware; m != nil {
 		mreq := middleware.Request{
 			Context:          ctx,
@@ -3886,7 +3886,7 @@ func (s *Server) handleCreateScriptRequest(args [0]string, argsEscaped bool, w h
 		type (
 			Request  = *ScriptCreate
 			Params   = struct{}
-			Response = *ID
+			Response = *ScriptID
 		)
 		response, err = middleware.HookMiddleware[
 			Request,
@@ -4066,7 +4066,7 @@ func (s *Server) handleCreateScriptPolicyRequest(args [0]string, argsEscaped boo
 		}
 	}()
 
-	var response *ID
+	var response *ScriptPolicyID
 	if m := s.cfg.Middleware; m != nil {
 		mreq := middleware.Request{
 			Context:          ctx,
@@ -4081,7 +4081,7 @@ func (s *Server) handleCreateScriptPolicyRequest(args [0]string, argsEscaped boo
 		type (
 			Request  = *ScriptPolicyCreate
 			Params   = struct{}
-			Response = *ID
+			Response = *ScriptPolicyID
 		)
 		response, err = middleware.HookMiddleware[
 			Request,
diff --git a/pkg/api/oas_json_gen.go b/pkg/api/oas_json_gen.go
index 6833f15..4e2c532 100644
--- a/pkg/api/oas_json_gen.go
+++ b/pkg/api/oas_json_gen.go
@@ -126,102 +126,6 @@ func (s *Error) UnmarshalJSON(data []byte) error {
 	return s.Decode(d)
 }
 
-// Encode implements json.Marshaler.
-func (s *ID) Encode(e *jx.Encoder) {
-	e.ObjStart()
-	s.encodeFields(e)
-	e.ObjEnd()
-}
-
-// encodeFields encodes fields.
-func (s *ID) encodeFields(e *jx.Encoder) {
-	{
-		e.FieldStart("ID")
-		e.Int64(s.ID)
-	}
-}
-
-var jsonFieldsNameOfID = [1]string{
-	0: "ID",
-}
-
-// Decode decodes ID from json.
-func (s *ID) Decode(d *jx.Decoder) error {
-	if s == nil {
-		return errors.New("invalid: unable to decode ID to nil")
-	}
-	var requiredBitSet [1]uint8
-
-	if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
-		switch string(k) {
-		case "ID":
-			requiredBitSet[0] |= 1 << 0
-			if err := func() error {
-				v, err := d.Int64()
-				s.ID = int64(v)
-				if err != nil {
-					return err
-				}
-				return nil
-			}(); err != nil {
-				return errors.Wrap(err, "decode field \"ID\"")
-			}
-		default:
-			return d.Skip()
-		}
-		return nil
-	}); err != nil {
-		return errors.Wrap(err, "decode ID")
-	}
-	// Validate required fields.
-	var failures []validate.FieldError
-	for i, mask := range [1]uint8{
-		0b00000001,
-	} {
-		if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
-			// Mask only required fields and check equality to mask using XOR.
-			//
-			// If XOR result is not zero, result is not equal to expected, so some fields are missed.
-			// Bits of fields which would be set are actually bits of missed fields.
-			missed := bits.OnesCount8(result)
-			for bitN := 0; bitN < missed; bitN++ {
-				bitIdx := bits.TrailingZeros8(result)
-				fieldIdx := i*8 + bitIdx
-				var name string
-				if fieldIdx < len(jsonFieldsNameOfID) {
-					name = jsonFieldsNameOfID[fieldIdx]
-				} else {
-					name = strconv.Itoa(fieldIdx)
-				}
-				failures = append(failures, validate.FieldError{
-					Name:  name,
-					Error: validate.ErrFieldRequired,
-				})
-				// Reset bit.
-				result &^= 1 << bitIdx
-			}
-		}
-	}
-	if len(failures) > 0 {
-		return &validate.Error{Fields: failures}
-	}
-
-	return nil
-}
-
-// MarshalJSON implements stdjson.Marshaler.
-func (s *ID) MarshalJSON() ([]byte, error) {
-	e := jx.Encoder{}
-	s.Encode(&e)
-	return e.Bytes(), nil
-}
-
-// UnmarshalJSON implements stdjson.Unmarshaler.
-func (s *ID) UnmarshalJSON(data []byte) error {
-	d := jx.DecodeBytes(data)
-	return s.Decode(d)
-}
-
 // Encode implements json.Marshaler.
 func (s *Map) Encode(e *jx.Encoder) {
 	e.ObjStart()
@@ -1719,6 +1623,102 @@ func (s *ScriptCreate) UnmarshalJSON(data []byte) error {
 	return s.Decode(d)
 }
 
+// Encode implements json.Marshaler.
+func (s *ScriptID) Encode(e *jx.Encoder) {
+	e.ObjStart()
+	s.encodeFields(e)
+	e.ObjEnd()
+}
+
+// encodeFields encodes fields.
+func (s *ScriptID) encodeFields(e *jx.Encoder) {
+	{
+		e.FieldStart("ScriptID")
+		e.Int64(s.ScriptID)
+	}
+}
+
+var jsonFieldsNameOfScriptID = [1]string{
+	0: "ScriptID",
+}
+
+// Decode decodes ScriptID from json.
+func (s *ScriptID) Decode(d *jx.Decoder) error {
+	if s == nil {
+		return errors.New("invalid: unable to decode ScriptID to nil")
+	}
+	var requiredBitSet [1]uint8
+
+	if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
+		switch string(k) {
+		case "ScriptID":
+			requiredBitSet[0] |= 1 << 0
+			if err := func() error {
+				v, err := d.Int64()
+				s.ScriptID = int64(v)
+				if err != nil {
+					return err
+				}
+				return nil
+			}(); err != nil {
+				return errors.Wrap(err, "decode field \"ScriptID\"")
+			}
+		default:
+			return d.Skip()
+		}
+		return nil
+	}); err != nil {
+		return errors.Wrap(err, "decode ScriptID")
+	}
+	// Validate required fields.
+	var failures []validate.FieldError
+	for i, mask := range [1]uint8{
+		0b00000001,
+	} {
+		if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
+			// Mask only required fields and check equality to mask using XOR.
+			//
+			// If XOR result is not zero, result is not equal to expected, so some fields are missed.
+			// Bits of fields which would be set are actually bits of missed fields.
+			missed := bits.OnesCount8(result)
+			for bitN := 0; bitN < missed; bitN++ {
+				bitIdx := bits.TrailingZeros8(result)
+				fieldIdx := i*8 + bitIdx
+				var name string
+				if fieldIdx < len(jsonFieldsNameOfScriptID) {
+					name = jsonFieldsNameOfScriptID[fieldIdx]
+				} else {
+					name = strconv.Itoa(fieldIdx)
+				}
+				failures = append(failures, validate.FieldError{
+					Name:  name,
+					Error: validate.ErrFieldRequired,
+				})
+				// Reset bit.
+				result &^= 1 << bitIdx
+			}
+		}
+	}
+	if len(failures) > 0 {
+		return &validate.Error{Fields: failures}
+	}
+
+	return nil
+}
+
+// MarshalJSON implements stdjson.Marshaler.
+func (s *ScriptID) MarshalJSON() ([]byte, error) {
+	e := jx.Encoder{}
+	s.Encode(&e)
+	return e.Bytes(), nil
+}
+
+// UnmarshalJSON implements stdjson.Unmarshaler.
+func (s *ScriptID) UnmarshalJSON(data []byte) error {
+	d := jx.DecodeBytes(data)
+	return s.Decode(d)
+}
+
 // Encode implements json.Marshaler.
 func (s *ScriptPolicy) Encode(e *jx.Encoder) {
 	e.ObjStart()
@@ -1996,6 +1996,102 @@ func (s *ScriptPolicyCreate) UnmarshalJSON(data []byte) error {
 	return s.Decode(d)
 }
 
+// Encode implements json.Marshaler.
+func (s *ScriptPolicyID) Encode(e *jx.Encoder) {
+	e.ObjStart()
+	s.encodeFields(e)
+	e.ObjEnd()
+}
+
+// encodeFields encodes fields.
+func (s *ScriptPolicyID) encodeFields(e *jx.Encoder) {
+	{
+		e.FieldStart("ScriptPolicyID")
+		e.Int64(s.ScriptPolicyID)
+	}
+}
+
+var jsonFieldsNameOfScriptPolicyID = [1]string{
+	0: "ScriptPolicyID",
+}
+
+// Decode decodes ScriptPolicyID from json.
+func (s *ScriptPolicyID) Decode(d *jx.Decoder) error {
+	if s == nil {
+		return errors.New("invalid: unable to decode ScriptPolicyID to nil")
+	}
+	var requiredBitSet [1]uint8
+
+	if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
+		switch string(k) {
+		case "ScriptPolicyID":
+			requiredBitSet[0] |= 1 << 0
+			if err := func() error {
+				v, err := d.Int64()
+				s.ScriptPolicyID = int64(v)
+				if err != nil {
+					return err
+				}
+				return nil
+			}(); err != nil {
+				return errors.Wrap(err, "decode field \"ScriptPolicyID\"")
+			}
+		default:
+			return d.Skip()
+		}
+		return nil
+	}); err != nil {
+		return errors.Wrap(err, "decode ScriptPolicyID")
+	}
+	// Validate required fields.
+	var failures []validate.FieldError
+	for i, mask := range [1]uint8{
+		0b00000001,
+	} {
+		if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
+			// Mask only required fields and check equality to mask using XOR.
+			//
+			// If XOR result is not zero, result is not equal to expected, so some fields are missed.
+			// Bits of fields which would be set are actually bits of missed fields.
+			missed := bits.OnesCount8(result)
+			for bitN := 0; bitN < missed; bitN++ {
+				bitIdx := bits.TrailingZeros8(result)
+				fieldIdx := i*8 + bitIdx
+				var name string
+				if fieldIdx < len(jsonFieldsNameOfScriptPolicyID) {
+					name = jsonFieldsNameOfScriptPolicyID[fieldIdx]
+				} else {
+					name = strconv.Itoa(fieldIdx)
+				}
+				failures = append(failures, validate.FieldError{
+					Name:  name,
+					Error: validate.ErrFieldRequired,
+				})
+				// Reset bit.
+				result &^= 1 << bitIdx
+			}
+		}
+	}
+	if len(failures) > 0 {
+		return &validate.Error{Fields: failures}
+	}
+
+	return nil
+}
+
+// MarshalJSON implements stdjson.Marshaler.
+func (s *ScriptPolicyID) MarshalJSON() ([]byte, error) {
+	e := jx.Encoder{}
+	s.Encode(&e)
+	return e.Bytes(), nil
+}
+
+// UnmarshalJSON implements stdjson.Unmarshaler.
+func (s *ScriptPolicyID) UnmarshalJSON(data []byte) error {
+	d := jx.DecodeBytes(data)
+	return s.Decode(d)
+}
+
 // Encode implements json.Marshaler.
 func (s *ScriptPolicyUpdate) Encode(e *jx.Encoder) {
 	e.ObjStart()
diff --git a/pkg/api/oas_response_decoders_gen.go b/pkg/api/oas_response_decoders_gen.go
index 197eacd..c75e01d 100644
--- a/pkg/api/oas_response_decoders_gen.go
+++ b/pkg/api/oas_response_decoders_gen.go
@@ -1016,7 +1016,7 @@ func decodeCreateMapfixResponse(resp *http.Response) (res *OperationID, _ error)
 	return res, errors.Wrap(defRes, "error")
 }
 
-func decodeCreateScriptResponse(resp *http.Response) (res *ID, _ error) {
+func decodeCreateScriptResponse(resp *http.Response) (res *ScriptID, _ error) {
 	switch resp.StatusCode {
 	case 201:
 		// Code 201.
@@ -1032,7 +1032,7 @@ func decodeCreateScriptResponse(resp *http.Response) (res *ID, _ error) {
 			}
 			d := jx.DecodeBytes(buf)
 
-			var response ID
+			var response ScriptID
 			if err := func() error {
 				if err := response.Decode(d); err != nil {
 					return err
@@ -1099,7 +1099,7 @@ func decodeCreateScriptResponse(resp *http.Response) (res *ID, _ error) {
 	return res, errors.Wrap(defRes, "error")
 }
 
-func decodeCreateScriptPolicyResponse(resp *http.Response) (res *ID, _ error) {
+func decodeCreateScriptPolicyResponse(resp *http.Response) (res *ScriptPolicyID, _ error) {
 	switch resp.StatusCode {
 	case 201:
 		// Code 201.
@@ -1115,7 +1115,7 @@ func decodeCreateScriptPolicyResponse(resp *http.Response) (res *ID, _ error) {
 			}
 			d := jx.DecodeBytes(buf)
 
-			var response ID
+			var response ScriptPolicyID
 			if err := func() error {
 				if err := response.Decode(d); err != nil {
 					return err
diff --git a/pkg/api/oas_response_encoders_gen.go b/pkg/api/oas_response_encoders_gen.go
index 58f61b3..24ef6b4 100644
--- a/pkg/api/oas_response_encoders_gen.go
+++ b/pkg/api/oas_response_encoders_gen.go
@@ -153,7 +153,7 @@ func encodeCreateMapfixResponse(response *OperationID, w http.ResponseWriter, sp
 	return nil
 }
 
-func encodeCreateScriptResponse(response *ID, w http.ResponseWriter, span trace.Span) error {
+func encodeCreateScriptResponse(response *ScriptID, w http.ResponseWriter, span trace.Span) error {
 	w.Header().Set("Content-Type", "application/json; charset=utf-8")
 	w.WriteHeader(201)
 	span.SetStatus(codes.Ok, http.StatusText(201))
@@ -167,7 +167,7 @@ func encodeCreateScriptResponse(response *ID, w http.ResponseWriter, span trace.
 	return nil
 }
 
-func encodeCreateScriptPolicyResponse(response *ID, w http.ResponseWriter, span trace.Span) error {
+func encodeCreateScriptPolicyResponse(response *ScriptPolicyID, w http.ResponseWriter, span trace.Span) error {
 	w.Header().Set("Content-Type", "application/json; charset=utf-8")
 	w.WriteHeader(201)
 	span.SetStatus(codes.Ok, http.StatusText(201))
diff --git a/pkg/api/oas_schemas_gen.go b/pkg/api/oas_schemas_gen.go
index 5141d86..8e241af 100644
--- a/pkg/api/oas_schemas_gen.go
+++ b/pkg/api/oas_schemas_gen.go
@@ -138,21 +138,6 @@ func (s *ErrorStatusCode) SetResponse(val Error) {
 	s.Response = val
 }
 
-// Ref: #/components/schemas/Id
-type ID struct {
-	ID int64 `json:"ID"`
-}
-
-// GetID returns the value of ID.
-func (s *ID) GetID() int64 {
-	return s.ID
-}
-
-// SetID sets the value of ID.
-func (s *ID) SetID(val int64) {
-	s.ID = val
-}
-
 // Ref: #/components/schemas/Map
 type Map struct {
 	ID          int64  `json:"ID"`
@@ -770,6 +755,21 @@ func (s *ScriptCreate) SetResourceID(val OptInt64) {
 	s.ResourceID = val
 }
 
+// Ref: #/components/schemas/ScriptID
+type ScriptID struct {
+	ScriptID int64 `json:"ScriptID"`
+}
+
+// GetScriptID returns the value of ScriptID.
+func (s *ScriptID) GetScriptID() int64 {
+	return s.ScriptID
+}
+
+// SetScriptID sets the value of ScriptID.
+func (s *ScriptID) SetScriptID(val int64) {
+	s.ScriptID = val
+}
+
 // Ref: #/components/schemas/ScriptPolicy
 type ScriptPolicy struct {
 	ID             int64  `json:"ID"`
@@ -855,6 +855,21 @@ func (s *ScriptPolicyCreate) SetPolicy(val int32) {
 	s.Policy = val
 }
 
+// Ref: #/components/schemas/ScriptPolicyID
+type ScriptPolicyID struct {
+	ScriptPolicyID int64 `json:"ScriptPolicyID"`
+}
+
+// GetScriptPolicyID returns the value of ScriptPolicyID.
+func (s *ScriptPolicyID) GetScriptPolicyID() int64 {
+	return s.ScriptPolicyID
+}
+
+// SetScriptPolicyID sets the value of ScriptPolicyID.
+func (s *ScriptPolicyID) SetScriptPolicyID(val int64) {
+	s.ScriptPolicyID = val
+}
+
 // Ref: #/components/schemas/ScriptPolicyUpdate
 type ScriptPolicyUpdate struct {
 	ID           int64    `json:"ID"`
diff --git a/pkg/api/oas_server_gen.go b/pkg/api/oas_server_gen.go
index b06f259..8a0473b 100644
--- a/pkg/api/oas_server_gen.go
+++ b/pkg/api/oas_server_gen.go
@@ -127,13 +127,13 @@ type Handler interface {
 	// Create a new script.
 	//
 	// POST /scripts
-	CreateScript(ctx context.Context, req *ScriptCreate) (*ID, error)
+	CreateScript(ctx context.Context, req *ScriptCreate) (*ScriptID, error)
 	// CreateScriptPolicy implements createScriptPolicy operation.
 	//
 	// Create a new script policy.
 	//
 	// POST /script-policy
-	CreateScriptPolicy(ctx context.Context, req *ScriptPolicyCreate) (*ID, error)
+	CreateScriptPolicy(ctx context.Context, req *ScriptPolicyCreate) (*ScriptPolicyID, error)
 	// CreateSubmission implements createSubmission operation.
 	//
 	// Trigger the validator to create a new submission.
diff --git a/pkg/api/oas_unimplemented_gen.go b/pkg/api/oas_unimplemented_gen.go
index 3e92782..6bc9775 100644
--- a/pkg/api/oas_unimplemented_gen.go
+++ b/pkg/api/oas_unimplemented_gen.go
@@ -189,7 +189,7 @@ func (UnimplementedHandler) CreateMapfix(ctx context.Context, req *MapfixTrigger
 // Create a new script.
 //
 // POST /scripts
-func (UnimplementedHandler) CreateScript(ctx context.Context, req *ScriptCreate) (r *ID, _ error) {
+func (UnimplementedHandler) CreateScript(ctx context.Context, req *ScriptCreate) (r *ScriptID, _ error) {
 	return r, ht.ErrNotImplemented
 }
 
@@ -198,7 +198,7 @@ func (UnimplementedHandler) CreateScript(ctx context.Context, req *ScriptCreate)
 // Create a new script policy.
 //
 // POST /script-policy
-func (UnimplementedHandler) CreateScriptPolicy(ctx context.Context, req *ScriptPolicyCreate) (r *ID, _ error) {
+func (UnimplementedHandler) CreateScriptPolicy(ctx context.Context, req *ScriptPolicyCreate) (r *ScriptPolicyID, _ error) {
 	return r, ht.ErrNotImplemented
 }
 
diff --git a/pkg/internal/oas_client_gen.go b/pkg/internal/oas_client_gen.go
index 21152b2..d57735f 100644
--- a/pkg/internal/oas_client_gen.go
+++ b/pkg/internal/oas_client_gen.go
@@ -75,25 +75,25 @@ type Invoker interface {
 	// Create a mapfix.
 	//
 	// POST /mapfixes
-	CreateMapfix(ctx context.Context, request *MapfixCreate) (*ID, error)
+	CreateMapfix(ctx context.Context, request *MapfixCreate) (*MapfixID, error)
 	// CreateScript invokes createScript operation.
 	//
 	// Create a new script.
 	//
 	// POST /scripts
-	CreateScript(ctx context.Context, request *ScriptCreate) (*ID, error)
+	CreateScript(ctx context.Context, request *ScriptCreate) (*ScriptID, error)
 	// CreateScriptPolicy invokes createScriptPolicy operation.
 	//
 	// Create a new script policy.
 	//
 	// POST /script-policy
-	CreateScriptPolicy(ctx context.Context, request *ScriptPolicyCreate) (*ID, error)
+	CreateScriptPolicy(ctx context.Context, request *ScriptPolicyCreate) (*ScriptPolicyID, error)
 	// CreateSubmission invokes createSubmission operation.
 	//
 	// Create a new submission.
 	//
 	// POST /submissions
-	CreateSubmission(ctx context.Context, request *SubmissionCreate) (*ID, error)
+	CreateSubmission(ctx context.Context, request *SubmissionCreate) (*SubmissionID, error)
 	// GetScript invokes getScript operation.
 	//
 	// Get the specified script by ID.
@@ -887,12 +887,12 @@ func (c *Client) sendActionSubmissionValidated(ctx context.Context, params Actio
 // Create a mapfix.
 //
 // POST /mapfixes
-func (c *Client) CreateMapfix(ctx context.Context, request *MapfixCreate) (*ID, error) {
+func (c *Client) CreateMapfix(ctx context.Context, request *MapfixCreate) (*MapfixID, error) {
 	res, err := c.sendCreateMapfix(ctx, request)
 	return res, err
 }
 
-func (c *Client) sendCreateMapfix(ctx context.Context, request *MapfixCreate) (res *ID, err error) {
+func (c *Client) sendCreateMapfix(ctx context.Context, request *MapfixCreate) (res *MapfixID, err error) {
 	otelAttrs := []attribute.KeyValue{
 		otelogen.OperationID("createMapfix"),
 		semconv.HTTPRequestMethodKey.String("POST"),
@@ -962,12 +962,12 @@ func (c *Client) sendCreateMapfix(ctx context.Context, request *MapfixCreate) (r
 // Create a new script.
 //
 // POST /scripts
-func (c *Client) CreateScript(ctx context.Context, request *ScriptCreate) (*ID, error) {
+func (c *Client) CreateScript(ctx context.Context, request *ScriptCreate) (*ScriptID, error) {
 	res, err := c.sendCreateScript(ctx, request)
 	return res, err
 }
 
-func (c *Client) sendCreateScript(ctx context.Context, request *ScriptCreate) (res *ID, err error) {
+func (c *Client) sendCreateScript(ctx context.Context, request *ScriptCreate) (res *ScriptID, err error) {
 	otelAttrs := []attribute.KeyValue{
 		otelogen.OperationID("createScript"),
 		semconv.HTTPRequestMethodKey.String("POST"),
@@ -1037,12 +1037,12 @@ func (c *Client) sendCreateScript(ctx context.Context, request *ScriptCreate) (r
 // Create a new script policy.
 //
 // POST /script-policy
-func (c *Client) CreateScriptPolicy(ctx context.Context, request *ScriptPolicyCreate) (*ID, error) {
+func (c *Client) CreateScriptPolicy(ctx context.Context, request *ScriptPolicyCreate) (*ScriptPolicyID, error) {
 	res, err := c.sendCreateScriptPolicy(ctx, request)
 	return res, err
 }
 
-func (c *Client) sendCreateScriptPolicy(ctx context.Context, request *ScriptPolicyCreate) (res *ID, err error) {
+func (c *Client) sendCreateScriptPolicy(ctx context.Context, request *ScriptPolicyCreate) (res *ScriptPolicyID, err error) {
 	otelAttrs := []attribute.KeyValue{
 		otelogen.OperationID("createScriptPolicy"),
 		semconv.HTTPRequestMethodKey.String("POST"),
@@ -1112,12 +1112,12 @@ func (c *Client) sendCreateScriptPolicy(ctx context.Context, request *ScriptPoli
 // Create a new submission.
 //
 // POST /submissions
-func (c *Client) CreateSubmission(ctx context.Context, request *SubmissionCreate) (*ID, error) {
+func (c *Client) CreateSubmission(ctx context.Context, request *SubmissionCreate) (*SubmissionID, error) {
 	res, err := c.sendCreateSubmission(ctx, request)
 	return res, err
 }
 
-func (c *Client) sendCreateSubmission(ctx context.Context, request *SubmissionCreate) (res *ID, err error) {
+func (c *Client) sendCreateSubmission(ctx context.Context, request *SubmissionCreate) (res *SubmissionID, err error) {
 	otelAttrs := []attribute.KeyValue{
 		otelogen.OperationID("createSubmission"),
 		semconv.HTTPRequestMethodKey.String("POST"),
diff --git a/pkg/internal/oas_handlers_gen.go b/pkg/internal/oas_handlers_gen.go
index 99977b4..96b8c4b 100644
--- a/pkg/internal/oas_handlers_gen.go
+++ b/pkg/internal/oas_handlers_gen.go
@@ -1179,7 +1179,7 @@ func (s *Server) handleCreateMapfixRequest(args [0]string, argsEscaped bool, w h
 		}
 	}()
 
-	var response *ID
+	var response *MapfixID
 	if m := s.cfg.Middleware; m != nil {
 		mreq := middleware.Request{
 			Context:          ctx,
@@ -1194,7 +1194,7 @@ func (s *Server) handleCreateMapfixRequest(args [0]string, argsEscaped bool, w h
 		type (
 			Request  = *MapfixCreate
 			Params   = struct{}
-			Response = *ID
+			Response = *MapfixID
 		)
 		response, err = middleware.HookMiddleware[
 			Request,
@@ -1328,7 +1328,7 @@ func (s *Server) handleCreateScriptRequest(args [0]string, argsEscaped bool, w h
 		}
 	}()
 
-	var response *ID
+	var response *ScriptID
 	if m := s.cfg.Middleware; m != nil {
 		mreq := middleware.Request{
 			Context:          ctx,
@@ -1343,7 +1343,7 @@ func (s *Server) handleCreateScriptRequest(args [0]string, argsEscaped bool, w h
 		type (
 			Request  = *ScriptCreate
 			Params   = struct{}
-			Response = *ID
+			Response = *ScriptID
 		)
 		response, err = middleware.HookMiddleware[
 			Request,
@@ -1477,7 +1477,7 @@ func (s *Server) handleCreateScriptPolicyRequest(args [0]string, argsEscaped boo
 		}
 	}()
 
-	var response *ID
+	var response *ScriptPolicyID
 	if m := s.cfg.Middleware; m != nil {
 		mreq := middleware.Request{
 			Context:          ctx,
@@ -1492,7 +1492,7 @@ func (s *Server) handleCreateScriptPolicyRequest(args [0]string, argsEscaped boo
 		type (
 			Request  = *ScriptPolicyCreate
 			Params   = struct{}
-			Response = *ID
+			Response = *ScriptPolicyID
 		)
 		response, err = middleware.HookMiddleware[
 			Request,
@@ -1626,7 +1626,7 @@ func (s *Server) handleCreateSubmissionRequest(args [0]string, argsEscaped bool,
 		}
 	}()
 
-	var response *ID
+	var response *SubmissionID
 	if m := s.cfg.Middleware; m != nil {
 		mreq := middleware.Request{
 			Context:          ctx,
@@ -1641,7 +1641,7 @@ func (s *Server) handleCreateSubmissionRequest(args [0]string, argsEscaped bool,
 		type (
 			Request  = *SubmissionCreate
 			Params   = struct{}
-			Response = *ID
+			Response = *SubmissionID
 		)
 		response, err = middleware.HookMiddleware[
 			Request,
diff --git a/pkg/internal/oas_json_gen.go b/pkg/internal/oas_json_gen.go
index 7ad30b5..4de742d 100644
--- a/pkg/internal/oas_json_gen.go
+++ b/pkg/internal/oas_json_gen.go
@@ -125,102 +125,6 @@ func (s *Error) UnmarshalJSON(data []byte) error {
 	return s.Decode(d)
 }
 
-// Encode implements json.Marshaler.
-func (s *ID) Encode(e *jx.Encoder) {
-	e.ObjStart()
-	s.encodeFields(e)
-	e.ObjEnd()
-}
-
-// encodeFields encodes fields.
-func (s *ID) encodeFields(e *jx.Encoder) {
-	{
-		e.FieldStart("ID")
-		e.Int64(s.ID)
-	}
-}
-
-var jsonFieldsNameOfID = [1]string{
-	0: "ID",
-}
-
-// Decode decodes ID from json.
-func (s *ID) Decode(d *jx.Decoder) error {
-	if s == nil {
-		return errors.New("invalid: unable to decode ID to nil")
-	}
-	var requiredBitSet [1]uint8
-
-	if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
-		switch string(k) {
-		case "ID":
-			requiredBitSet[0] |= 1 << 0
-			if err := func() error {
-				v, err := d.Int64()
-				s.ID = int64(v)
-				if err != nil {
-					return err
-				}
-				return nil
-			}(); err != nil {
-				return errors.Wrap(err, "decode field \"ID\"")
-			}
-		default:
-			return d.Skip()
-		}
-		return nil
-	}); err != nil {
-		return errors.Wrap(err, "decode ID")
-	}
-	// Validate required fields.
-	var failures []validate.FieldError
-	for i, mask := range [1]uint8{
-		0b00000001,
-	} {
-		if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
-			// Mask only required fields and check equality to mask using XOR.
-			//
-			// If XOR result is not zero, result is not equal to expected, so some fields are missed.
-			// Bits of fields which would be set are actually bits of missed fields.
-			missed := bits.OnesCount8(result)
-			for bitN := 0; bitN < missed; bitN++ {
-				bitIdx := bits.TrailingZeros8(result)
-				fieldIdx := i*8 + bitIdx
-				var name string
-				if fieldIdx < len(jsonFieldsNameOfID) {
-					name = jsonFieldsNameOfID[fieldIdx]
-				} else {
-					name = strconv.Itoa(fieldIdx)
-				}
-				failures = append(failures, validate.FieldError{
-					Name:  name,
-					Error: validate.ErrFieldRequired,
-				})
-				// Reset bit.
-				result &^= 1 << bitIdx
-			}
-		}
-	}
-	if len(failures) > 0 {
-		return &validate.Error{Fields: failures}
-	}
-
-	return nil
-}
-
-// MarshalJSON implements stdjson.Marshaler.
-func (s *ID) MarshalJSON() ([]byte, error) {
-	e := jx.Encoder{}
-	s.Encode(&e)
-	return e.Bytes(), nil
-}
-
-// UnmarshalJSON implements stdjson.Unmarshaler.
-func (s *ID) UnmarshalJSON(data []byte) error {
-	d := jx.DecodeBytes(data)
-	return s.Decode(d)
-}
-
 // Encode implements json.Marshaler.
 func (s *MapfixCreate) Encode(e *jx.Encoder) {
 	e.ObjStart()
@@ -436,6 +340,102 @@ func (s *MapfixCreate) UnmarshalJSON(data []byte) error {
 	return s.Decode(d)
 }
 
+// Encode implements json.Marshaler.
+func (s *MapfixID) Encode(e *jx.Encoder) {
+	e.ObjStart()
+	s.encodeFields(e)
+	e.ObjEnd()
+}
+
+// encodeFields encodes fields.
+func (s *MapfixID) encodeFields(e *jx.Encoder) {
+	{
+		e.FieldStart("MapfixID")
+		e.Int64(s.MapfixID)
+	}
+}
+
+var jsonFieldsNameOfMapfixID = [1]string{
+	0: "MapfixID",
+}
+
+// Decode decodes MapfixID from json.
+func (s *MapfixID) Decode(d *jx.Decoder) error {
+	if s == nil {
+		return errors.New("invalid: unable to decode MapfixID to nil")
+	}
+	var requiredBitSet [1]uint8
+
+	if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
+		switch string(k) {
+		case "MapfixID":
+			requiredBitSet[0] |= 1 << 0
+			if err := func() error {
+				v, err := d.Int64()
+				s.MapfixID = int64(v)
+				if err != nil {
+					return err
+				}
+				return nil
+			}(); err != nil {
+				return errors.Wrap(err, "decode field \"MapfixID\"")
+			}
+		default:
+			return d.Skip()
+		}
+		return nil
+	}); err != nil {
+		return errors.Wrap(err, "decode MapfixID")
+	}
+	// Validate required fields.
+	var failures []validate.FieldError
+	for i, mask := range [1]uint8{
+		0b00000001,
+	} {
+		if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
+			// Mask only required fields and check equality to mask using XOR.
+			//
+			// If XOR result is not zero, result is not equal to expected, so some fields are missed.
+			// Bits of fields which would be set are actually bits of missed fields.
+			missed := bits.OnesCount8(result)
+			for bitN := 0; bitN < missed; bitN++ {
+				bitIdx := bits.TrailingZeros8(result)
+				fieldIdx := i*8 + bitIdx
+				var name string
+				if fieldIdx < len(jsonFieldsNameOfMapfixID) {
+					name = jsonFieldsNameOfMapfixID[fieldIdx]
+				} else {
+					name = strconv.Itoa(fieldIdx)
+				}
+				failures = append(failures, validate.FieldError{
+					Name:  name,
+					Error: validate.ErrFieldRequired,
+				})
+				// Reset bit.
+				result &^= 1 << bitIdx
+			}
+		}
+	}
+	if len(failures) > 0 {
+		return &validate.Error{Fields: failures}
+	}
+
+	return nil
+}
+
+// MarshalJSON implements stdjson.Marshaler.
+func (s *MapfixID) MarshalJSON() ([]byte, error) {
+	e := jx.Encoder{}
+	s.Encode(&e)
+	return e.Bytes(), nil
+}
+
+// UnmarshalJSON implements stdjson.Unmarshaler.
+func (s *MapfixID) UnmarshalJSON(data []byte) error {
+	d := jx.DecodeBytes(data)
+	return s.Decode(d)
+}
+
 // Encode encodes int64 as json.
 func (o OptInt64) Encode(e *jx.Encoder) {
 	if !o.Set {
@@ -799,6 +799,102 @@ func (s *ScriptCreate) UnmarshalJSON(data []byte) error {
 	return s.Decode(d)
 }
 
+// Encode implements json.Marshaler.
+func (s *ScriptID) Encode(e *jx.Encoder) {
+	e.ObjStart()
+	s.encodeFields(e)
+	e.ObjEnd()
+}
+
+// encodeFields encodes fields.
+func (s *ScriptID) encodeFields(e *jx.Encoder) {
+	{
+		e.FieldStart("ScriptID")
+		e.Int64(s.ScriptID)
+	}
+}
+
+var jsonFieldsNameOfScriptID = [1]string{
+	0: "ScriptID",
+}
+
+// Decode decodes ScriptID from json.
+func (s *ScriptID) Decode(d *jx.Decoder) error {
+	if s == nil {
+		return errors.New("invalid: unable to decode ScriptID to nil")
+	}
+	var requiredBitSet [1]uint8
+
+	if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
+		switch string(k) {
+		case "ScriptID":
+			requiredBitSet[0] |= 1 << 0
+			if err := func() error {
+				v, err := d.Int64()
+				s.ScriptID = int64(v)
+				if err != nil {
+					return err
+				}
+				return nil
+			}(); err != nil {
+				return errors.Wrap(err, "decode field \"ScriptID\"")
+			}
+		default:
+			return d.Skip()
+		}
+		return nil
+	}); err != nil {
+		return errors.Wrap(err, "decode ScriptID")
+	}
+	// Validate required fields.
+	var failures []validate.FieldError
+	for i, mask := range [1]uint8{
+		0b00000001,
+	} {
+		if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
+			// Mask only required fields and check equality to mask using XOR.
+			//
+			// If XOR result is not zero, result is not equal to expected, so some fields are missed.
+			// Bits of fields which would be set are actually bits of missed fields.
+			missed := bits.OnesCount8(result)
+			for bitN := 0; bitN < missed; bitN++ {
+				bitIdx := bits.TrailingZeros8(result)
+				fieldIdx := i*8 + bitIdx
+				var name string
+				if fieldIdx < len(jsonFieldsNameOfScriptID) {
+					name = jsonFieldsNameOfScriptID[fieldIdx]
+				} else {
+					name = strconv.Itoa(fieldIdx)
+				}
+				failures = append(failures, validate.FieldError{
+					Name:  name,
+					Error: validate.ErrFieldRequired,
+				})
+				// Reset bit.
+				result &^= 1 << bitIdx
+			}
+		}
+	}
+	if len(failures) > 0 {
+		return &validate.Error{Fields: failures}
+	}
+
+	return nil
+}
+
+// MarshalJSON implements stdjson.Marshaler.
+func (s *ScriptID) MarshalJSON() ([]byte, error) {
+	e := jx.Encoder{}
+	s.Encode(&e)
+	return e.Bytes(), nil
+}
+
+// UnmarshalJSON implements stdjson.Unmarshaler.
+func (s *ScriptID) UnmarshalJSON(data []byte) error {
+	d := jx.DecodeBytes(data)
+	return s.Decode(d)
+}
+
 // Encode implements json.Marshaler.
 func (s *ScriptPolicy) Encode(e *jx.Encoder) {
 	e.ObjStart()
@@ -1076,6 +1172,102 @@ func (s *ScriptPolicyCreate) UnmarshalJSON(data []byte) error {
 	return s.Decode(d)
 }
 
+// Encode implements json.Marshaler.
+func (s *ScriptPolicyID) Encode(e *jx.Encoder) {
+	e.ObjStart()
+	s.encodeFields(e)
+	e.ObjEnd()
+}
+
+// encodeFields encodes fields.
+func (s *ScriptPolicyID) encodeFields(e *jx.Encoder) {
+	{
+		e.FieldStart("ScriptPolicyID")
+		e.Int64(s.ScriptPolicyID)
+	}
+}
+
+var jsonFieldsNameOfScriptPolicyID = [1]string{
+	0: "ScriptPolicyID",
+}
+
+// Decode decodes ScriptPolicyID from json.
+func (s *ScriptPolicyID) Decode(d *jx.Decoder) error {
+	if s == nil {
+		return errors.New("invalid: unable to decode ScriptPolicyID to nil")
+	}
+	var requiredBitSet [1]uint8
+
+	if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
+		switch string(k) {
+		case "ScriptPolicyID":
+			requiredBitSet[0] |= 1 << 0
+			if err := func() error {
+				v, err := d.Int64()
+				s.ScriptPolicyID = int64(v)
+				if err != nil {
+					return err
+				}
+				return nil
+			}(); err != nil {
+				return errors.Wrap(err, "decode field \"ScriptPolicyID\"")
+			}
+		default:
+			return d.Skip()
+		}
+		return nil
+	}); err != nil {
+		return errors.Wrap(err, "decode ScriptPolicyID")
+	}
+	// Validate required fields.
+	var failures []validate.FieldError
+	for i, mask := range [1]uint8{
+		0b00000001,
+	} {
+		if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
+			// Mask only required fields and check equality to mask using XOR.
+			//
+			// If XOR result is not zero, result is not equal to expected, so some fields are missed.
+			// Bits of fields which would be set are actually bits of missed fields.
+			missed := bits.OnesCount8(result)
+			for bitN := 0; bitN < missed; bitN++ {
+				bitIdx := bits.TrailingZeros8(result)
+				fieldIdx := i*8 + bitIdx
+				var name string
+				if fieldIdx < len(jsonFieldsNameOfScriptPolicyID) {
+					name = jsonFieldsNameOfScriptPolicyID[fieldIdx]
+				} else {
+					name = strconv.Itoa(fieldIdx)
+				}
+				failures = append(failures, validate.FieldError{
+					Name:  name,
+					Error: validate.ErrFieldRequired,
+				})
+				// Reset bit.
+				result &^= 1 << bitIdx
+			}
+		}
+	}
+	if len(failures) > 0 {
+		return &validate.Error{Fields: failures}
+	}
+
+	return nil
+}
+
+// MarshalJSON implements stdjson.Marshaler.
+func (s *ScriptPolicyID) MarshalJSON() ([]byte, error) {
+	e := jx.Encoder{}
+	s.Encode(&e)
+	return e.Bytes(), nil
+}
+
+// UnmarshalJSON implements stdjson.Unmarshaler.
+func (s *ScriptPolicyID) UnmarshalJSON(data []byte) error {
+	d := jx.DecodeBytes(data)
+	return s.Decode(d)
+}
+
 // Encode implements json.Marshaler.
 func (s *SubmissionCreate) Encode(e *jx.Encoder) {
 	e.ObjStart()
@@ -1273,3 +1465,99 @@ func (s *SubmissionCreate) UnmarshalJSON(data []byte) error {
 	d := jx.DecodeBytes(data)
 	return s.Decode(d)
 }
+
+// Encode implements json.Marshaler.
+func (s *SubmissionID) Encode(e *jx.Encoder) {
+	e.ObjStart()
+	s.encodeFields(e)
+	e.ObjEnd()
+}
+
+// encodeFields encodes fields.
+func (s *SubmissionID) encodeFields(e *jx.Encoder) {
+	{
+		e.FieldStart("SubmissionID")
+		e.Int64(s.SubmissionID)
+	}
+}
+
+var jsonFieldsNameOfSubmissionID = [1]string{
+	0: "SubmissionID",
+}
+
+// Decode decodes SubmissionID from json.
+func (s *SubmissionID) Decode(d *jx.Decoder) error {
+	if s == nil {
+		return errors.New("invalid: unable to decode SubmissionID to nil")
+	}
+	var requiredBitSet [1]uint8
+
+	if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
+		switch string(k) {
+		case "SubmissionID":
+			requiredBitSet[0] |= 1 << 0
+			if err := func() error {
+				v, err := d.Int64()
+				s.SubmissionID = int64(v)
+				if err != nil {
+					return err
+				}
+				return nil
+			}(); err != nil {
+				return errors.Wrap(err, "decode field \"SubmissionID\"")
+			}
+		default:
+			return d.Skip()
+		}
+		return nil
+	}); err != nil {
+		return errors.Wrap(err, "decode SubmissionID")
+	}
+	// Validate required fields.
+	var failures []validate.FieldError
+	for i, mask := range [1]uint8{
+		0b00000001,
+	} {
+		if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
+			// Mask only required fields and check equality to mask using XOR.
+			//
+			// If XOR result is not zero, result is not equal to expected, so some fields are missed.
+			// Bits of fields which would be set are actually bits of missed fields.
+			missed := bits.OnesCount8(result)
+			for bitN := 0; bitN < missed; bitN++ {
+				bitIdx := bits.TrailingZeros8(result)
+				fieldIdx := i*8 + bitIdx
+				var name string
+				if fieldIdx < len(jsonFieldsNameOfSubmissionID) {
+					name = jsonFieldsNameOfSubmissionID[fieldIdx]
+				} else {
+					name = strconv.Itoa(fieldIdx)
+				}
+				failures = append(failures, validate.FieldError{
+					Name:  name,
+					Error: validate.ErrFieldRequired,
+				})
+				// Reset bit.
+				result &^= 1 << bitIdx
+			}
+		}
+	}
+	if len(failures) > 0 {
+		return &validate.Error{Fields: failures}
+	}
+
+	return nil
+}
+
+// MarshalJSON implements stdjson.Marshaler.
+func (s *SubmissionID) MarshalJSON() ([]byte, error) {
+	e := jx.Encoder{}
+	s.Encode(&e)
+	return e.Bytes(), nil
+}
+
+// UnmarshalJSON implements stdjson.Unmarshaler.
+func (s *SubmissionID) UnmarshalJSON(data []byte) error {
+	d := jx.DecodeBytes(data)
+	return s.Decode(d)
+}
diff --git a/pkg/internal/oas_response_decoders_gen.go b/pkg/internal/oas_response_decoders_gen.go
index 1c492e1..bdabeaa 100644
--- a/pkg/internal/oas_response_decoders_gen.go
+++ b/pkg/internal/oas_response_decoders_gen.go
@@ -372,7 +372,7 @@ func decodeActionSubmissionValidatedResponse(resp *http.Response) (res *ActionSu
 	return res, errors.Wrap(defRes, "error")
 }
 
-func decodeCreateMapfixResponse(resp *http.Response) (res *ID, _ error) {
+func decodeCreateMapfixResponse(resp *http.Response) (res *MapfixID, _ error) {
 	switch resp.StatusCode {
 	case 201:
 		// Code 201.
@@ -388,7 +388,7 @@ func decodeCreateMapfixResponse(resp *http.Response) (res *ID, _ error) {
 			}
 			d := jx.DecodeBytes(buf)
 
-			var response ID
+			var response MapfixID
 			if err := func() error {
 				if err := response.Decode(d); err != nil {
 					return err
@@ -455,7 +455,7 @@ func decodeCreateMapfixResponse(resp *http.Response) (res *ID, _ error) {
 	return res, errors.Wrap(defRes, "error")
 }
 
-func decodeCreateScriptResponse(resp *http.Response) (res *ID, _ error) {
+func decodeCreateScriptResponse(resp *http.Response) (res *ScriptID, _ error) {
 	switch resp.StatusCode {
 	case 201:
 		// Code 201.
@@ -471,7 +471,7 @@ func decodeCreateScriptResponse(resp *http.Response) (res *ID, _ error) {
 			}
 			d := jx.DecodeBytes(buf)
 
-			var response ID
+			var response ScriptID
 			if err := func() error {
 				if err := response.Decode(d); err != nil {
 					return err
@@ -538,7 +538,7 @@ func decodeCreateScriptResponse(resp *http.Response) (res *ID, _ error) {
 	return res, errors.Wrap(defRes, "error")
 }
 
-func decodeCreateScriptPolicyResponse(resp *http.Response) (res *ID, _ error) {
+func decodeCreateScriptPolicyResponse(resp *http.Response) (res *ScriptPolicyID, _ error) {
 	switch resp.StatusCode {
 	case 201:
 		// Code 201.
@@ -554,7 +554,7 @@ func decodeCreateScriptPolicyResponse(resp *http.Response) (res *ID, _ error) {
 			}
 			d := jx.DecodeBytes(buf)
 
-			var response ID
+			var response ScriptPolicyID
 			if err := func() error {
 				if err := response.Decode(d); err != nil {
 					return err
@@ -621,7 +621,7 @@ func decodeCreateScriptPolicyResponse(resp *http.Response) (res *ID, _ error) {
 	return res, errors.Wrap(defRes, "error")
 }
 
-func decodeCreateSubmissionResponse(resp *http.Response) (res *ID, _ error) {
+func decodeCreateSubmissionResponse(resp *http.Response) (res *SubmissionID, _ error) {
 	switch resp.StatusCode {
 	case 201:
 		// Code 201.
@@ -637,7 +637,7 @@ func decodeCreateSubmissionResponse(resp *http.Response) (res *ID, _ error) {
 			}
 			d := jx.DecodeBytes(buf)
 
-			var response ID
+			var response SubmissionID
 			if err := func() error {
 				if err := response.Decode(d); err != nil {
 					return err
diff --git a/pkg/internal/oas_response_encoders_gen.go b/pkg/internal/oas_response_encoders_gen.go
index ab1b12d..03bd236 100644
--- a/pkg/internal/oas_response_encoders_gen.go
+++ b/pkg/internal/oas_response_encoders_gen.go
@@ -62,7 +62,7 @@ func encodeActionSubmissionValidatedResponse(response *ActionSubmissionValidated
 	return nil
 }
 
-func encodeCreateMapfixResponse(response *ID, w http.ResponseWriter, span trace.Span) error {
+func encodeCreateMapfixResponse(response *MapfixID, w http.ResponseWriter, span trace.Span) error {
 	w.Header().Set("Content-Type", "application/json; charset=utf-8")
 	w.WriteHeader(201)
 	span.SetStatus(codes.Ok, http.StatusText(201))
@@ -76,7 +76,7 @@ func encodeCreateMapfixResponse(response *ID, w http.ResponseWriter, span trace.
 	return nil
 }
 
-func encodeCreateScriptResponse(response *ID, w http.ResponseWriter, span trace.Span) error {
+func encodeCreateScriptResponse(response *ScriptID, w http.ResponseWriter, span trace.Span) error {
 	w.Header().Set("Content-Type", "application/json; charset=utf-8")
 	w.WriteHeader(201)
 	span.SetStatus(codes.Ok, http.StatusText(201))
@@ -90,7 +90,7 @@ func encodeCreateScriptResponse(response *ID, w http.ResponseWriter, span trace.
 	return nil
 }
 
-func encodeCreateScriptPolicyResponse(response *ID, w http.ResponseWriter, span trace.Span) error {
+func encodeCreateScriptPolicyResponse(response *ScriptPolicyID, w http.ResponseWriter, span trace.Span) error {
 	w.Header().Set("Content-Type", "application/json; charset=utf-8")
 	w.WriteHeader(201)
 	span.SetStatus(codes.Ok, http.StatusText(201))
@@ -104,7 +104,7 @@ func encodeCreateScriptPolicyResponse(response *ID, w http.ResponseWriter, span
 	return nil
 }
 
-func encodeCreateSubmissionResponse(response *ID, w http.ResponseWriter, span trace.Span) error {
+func encodeCreateSubmissionResponse(response *SubmissionID, w http.ResponseWriter, span trace.Span) error {
 	w.Header().Set("Content-Type", "application/json; charset=utf-8")
 	w.WriteHeader(201)
 	span.SetStatus(codes.Ok, http.StatusText(201))
diff --git a/pkg/internal/oas_schemas_gen.go b/pkg/internal/oas_schemas_gen.go
index cc5c4ed..1fecc20 100644
--- a/pkg/internal/oas_schemas_gen.go
+++ b/pkg/internal/oas_schemas_gen.go
@@ -84,21 +84,6 @@ func (s *ErrorStatusCode) SetResponse(val Error) {
 	s.Response = val
 }
 
-// Ref: #/components/schemas/Id
-type ID struct {
-	ID int64 `json:"ID"`
-}
-
-// GetID returns the value of ID.
-func (s *ID) GetID() int64 {
-	return s.ID
-}
-
-// SetID sets the value of ID.
-func (s *ID) SetID(val int64) {
-	s.ID = val
-}
-
 // Ref: #/components/schemas/MapfixCreate
 type MapfixCreate struct {
 	OperationID   int32  `json:"OperationID"`
@@ -191,6 +176,21 @@ func (s *MapfixCreate) SetTargetAssetID(val int64) {
 	s.TargetAssetID = val
 }
 
+// Ref: #/components/schemas/MapfixID
+type MapfixID struct {
+	MapfixID int64 `json:"MapfixID"`
+}
+
+// GetMapfixID returns the value of MapfixID.
+func (s *MapfixID) GetMapfixID() int64 {
+	return s.MapfixID
+}
+
+// SetMapfixID sets the value of MapfixID.
+func (s *MapfixID) SetMapfixID(val int64) {
+	s.MapfixID = val
+}
+
 // NewOptInt32 returns new OptInt32 with value set to v.
 func NewOptInt32(v int32) OptInt32 {
 	return OptInt32{
@@ -447,6 +447,21 @@ func (s *ScriptCreate) SetResourceID(val OptInt64) {
 	s.ResourceID = val
 }
 
+// Ref: #/components/schemas/ScriptID
+type ScriptID struct {
+	ScriptID int64 `json:"ScriptID"`
+}
+
+// GetScriptID returns the value of ScriptID.
+func (s *ScriptID) GetScriptID() int64 {
+	return s.ScriptID
+}
+
+// SetScriptID sets the value of ScriptID.
+func (s *ScriptID) SetScriptID(val int64) {
+	s.ScriptID = val
+}
+
 // Ref: #/components/schemas/ScriptPolicy
 type ScriptPolicy struct {
 	ID             int64  `json:"ID"`
@@ -532,6 +547,21 @@ func (s *ScriptPolicyCreate) SetPolicy(val int32) {
 	s.Policy = val
 }
 
+// Ref: #/components/schemas/ScriptPolicyID
+type ScriptPolicyID struct {
+	ScriptPolicyID int64 `json:"ScriptPolicyID"`
+}
+
+// GetScriptPolicyID returns the value of ScriptPolicyID.
+func (s *ScriptPolicyID) GetScriptPolicyID() int64 {
+	return s.ScriptPolicyID
+}
+
+// SetScriptPolicyID sets the value of ScriptPolicyID.
+func (s *ScriptPolicyID) SetScriptPolicyID(val int64) {
+	s.ScriptPolicyID = val
+}
+
 // Ref: #/components/schemas/SubmissionCreate
 type SubmissionCreate struct {
 	OperationID  int32  `json:"OperationID"`
@@ -613,6 +643,21 @@ func (s *SubmissionCreate) SetAssetVersion(val int64) {
 	s.AssetVersion = val
 }
 
+// Ref: #/components/schemas/SubmissionID
+type SubmissionID struct {
+	SubmissionID int64 `json:"SubmissionID"`
+}
+
+// GetSubmissionID returns the value of SubmissionID.
+func (s *SubmissionID) GetSubmissionID() int64 {
+	return s.SubmissionID
+}
+
+// SetSubmissionID sets the value of SubmissionID.
+func (s *SubmissionID) SetSubmissionID(val int64) {
+	s.SubmissionID = val
+}
+
 // UpdateMapfixValidatedModelNoContent is response for UpdateMapfixValidatedModel operation.
 type UpdateMapfixValidatedModelNoContent struct{}
 
diff --git a/pkg/internal/oas_server_gen.go b/pkg/internal/oas_server_gen.go
index 0423592..b19609a 100644
--- a/pkg/internal/oas_server_gen.go
+++ b/pkg/internal/oas_server_gen.go
@@ -55,25 +55,25 @@ type Handler interface {
 	// Create a mapfix.
 	//
 	// POST /mapfixes
-	CreateMapfix(ctx context.Context, req *MapfixCreate) (*ID, error)
+	CreateMapfix(ctx context.Context, req *MapfixCreate) (*MapfixID, error)
 	// CreateScript implements createScript operation.
 	//
 	// Create a new script.
 	//
 	// POST /scripts
-	CreateScript(ctx context.Context, req *ScriptCreate) (*ID, error)
+	CreateScript(ctx context.Context, req *ScriptCreate) (*ScriptID, error)
 	// CreateScriptPolicy implements createScriptPolicy operation.
 	//
 	// Create a new script policy.
 	//
 	// POST /script-policy
-	CreateScriptPolicy(ctx context.Context, req *ScriptPolicyCreate) (*ID, error)
+	CreateScriptPolicy(ctx context.Context, req *ScriptPolicyCreate) (*ScriptPolicyID, error)
 	// CreateSubmission implements createSubmission operation.
 	//
 	// Create a new submission.
 	//
 	// POST /submissions
-	CreateSubmission(ctx context.Context, req *SubmissionCreate) (*ID, error)
+	CreateSubmission(ctx context.Context, req *SubmissionCreate) (*SubmissionID, error)
 	// GetScript implements getScript operation.
 	//
 	// Get the specified script by ID.
diff --git a/pkg/internal/oas_unimplemented_gen.go b/pkg/internal/oas_unimplemented_gen.go
index 0f56dad..1adcfdf 100644
--- a/pkg/internal/oas_unimplemented_gen.go
+++ b/pkg/internal/oas_unimplemented_gen.go
@@ -81,7 +81,7 @@ func (UnimplementedHandler) ActionSubmissionValidated(ctx context.Context, param
 // Create a mapfix.
 //
 // POST /mapfixes
-func (UnimplementedHandler) CreateMapfix(ctx context.Context, req *MapfixCreate) (r *ID, _ error) {
+func (UnimplementedHandler) CreateMapfix(ctx context.Context, req *MapfixCreate) (r *MapfixID, _ error) {
 	return r, ht.ErrNotImplemented
 }
 
@@ -90,7 +90,7 @@ func (UnimplementedHandler) CreateMapfix(ctx context.Context, req *MapfixCreate)
 // Create a new script.
 //
 // POST /scripts
-func (UnimplementedHandler) CreateScript(ctx context.Context, req *ScriptCreate) (r *ID, _ error) {
+func (UnimplementedHandler) CreateScript(ctx context.Context, req *ScriptCreate) (r *ScriptID, _ error) {
 	return r, ht.ErrNotImplemented
 }
 
@@ -99,7 +99,7 @@ func (UnimplementedHandler) CreateScript(ctx context.Context, req *ScriptCreate)
 // Create a new script policy.
 //
 // POST /script-policy
-func (UnimplementedHandler) CreateScriptPolicy(ctx context.Context, req *ScriptPolicyCreate) (r *ID, _ error) {
+func (UnimplementedHandler) CreateScriptPolicy(ctx context.Context, req *ScriptPolicyCreate) (r *ScriptPolicyID, _ error) {
 	return r, ht.ErrNotImplemented
 }
 
@@ -108,7 +108,7 @@ func (UnimplementedHandler) CreateScriptPolicy(ctx context.Context, req *ScriptP
 // Create a new submission.
 //
 // POST /submissions
-func (UnimplementedHandler) CreateSubmission(ctx context.Context, req *SubmissionCreate) (r *ID, _ error) {
+func (UnimplementedHandler) CreateSubmission(ctx context.Context, req *SubmissionCreate) (r *SubmissionID, _ error) {
 	return r, ht.ErrNotImplemented
 }