Proposal Proposals
Operations Summary
Core CRUD
List Proposal Proposals
HTTPie Python TypeScript Query Parameters Responses
http \
GET \
https://api.example.com/api/proposal-proposals/ \
Authorization:"Token YOUR_API_TOKEN"
1
2
3
4
5
6
7
8
9
10
11
12 from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.models.proposal_o_enum import ProposalOEnum # (1)
from waldur_api_client.models.proposal_states import ProposalStates # (2)
from waldur_api_client.api.proposal_proposals import proposal_proposals_list # (3)
client = AuthenticatedClient (
base_url = "https://api.example.com" , token = "YOUR_API_TOKEN"
)
response = proposal_proposals_list . sync ( client = client )
for item in response :
print ( item )
Model Source: ProposalOEnum
Model Source: ProposalStates
API Source: proposal_proposals_list
import { proposalProposalsList } from 'waldur-js-client' ;
try {
const response = await proposalProposalsList ({
auth : "Token YOUR_API_TOKEN"
});
console . log ( 'Success:' , response );
} catch ( error ) {
console . error ( 'Error:' , error );
}
Name
Type
Description
call_uuid
string (uuid)
created_by_uuid
string (uuid)
my_proposals
boolean
name
string
o
array
Ordering
organization_uuid
string (uuid)
page
integer
A page number within the paginated result set.
page_size
integer
Number of results to return per page.
round
string (uuid)
round_uuid
string (uuid)
slug
string
Slug
state
array
200 -
The response body is an array of objects, where each object has the following structure:
Field
Type
Description
uuid
string (uuid)
url
string (uri)
slug
string
name
string
description
string
project_name
string
project_summary
string
project_is_confidential
boolean
project_has_civilian_purpose
boolean
supporting_documentation
array of objects
supporting_documentation.uuid
string (uuid)
supporting_documentation.file
string (uri)
Upload supporting documentation in PDF format.
supporting_documentation.file_name
string
supporting_documentation.file_size
integer
supporting_documentation.created
string (date-time)
state
any
approved_by
string (uri)
created_by
string (uri)
created_by_name
string
created_by_uuid
string (uuid)
applicant_username
string
Required. 128 characters or fewer. Lowercase letters, numbers and @/./+/-/_ characters
applicant_full_name
string
applicant_first_name
string
applicant_last_name
string
applicant_email
string (email)
applicant_registration_method
string
Indicates what registration method was used.
applicant_phone_number
string
applicant_organization
string
applicant_organization_country
string
applicant_organization_type
string
SCHAC URN (e.g., urn:schac:homeOrganizationType:int:university)
applicant_organization_registry_code
string
Company registration code of the user's organization, if known
applicant_organization_vat_code
string
VAT code of the user's organization
applicant_organization_address
string
Postal address of the user's organization
applicant_job_title
string
applicant_affiliations
array of strings
applicant_gender
any
User's gender (male, female, or unknown)
applicant_personal_title
string
Honorific title (Mr, Ms, Dr, Prof, etc.)
applicant_place_of_birth
string
applicant_address
string
applicant_country_of_residence
string
applicant_nationality
string
Primary citizenship (ISO 3166-1 alpha-2 code)
applicant_nationalities
array of strings
applicant_eduperson_assurance
array of strings
applicant_identity_source
string
Indicates what identity provider was used.
applicant_civil_number
string
applicant_birth_date
string (date)
applicant_active_isds
array of strings
duration_in_days
integer
Duration in days after provisioning of resources.
project
string (uri)
round
any
call_uuid
string (uuid)
call_name
string
call_managing_organisation_uuid
string (uuid)
oecd_fos_2007_code
any
oecd_fos_2007_label
string
science_sub_domain
string (uuid)
science_sub_domain_name
string
science_domain_uuid
string (uuid)
science_domain_name
string
allocation_comment
string
created
string (date-time)
compliance_status
any
can_submit
any
awaiting_manual_advance
boolean
workflow_step
any
Current active workflow step for this proposal.
Retrieve
HTTPie Python TypeScript Path Parameters Responses
http \
GET \
https://api.example.com/api/proposal-proposals/a1b2c3d4-e5f6-7890-abcd-ef1234567890/ \
Authorization:"Token YOUR_API_TOKEN"
1
2
3
4
5
6
7
8
9
10
11
12 from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.api.proposal_proposals import proposal_proposals_retrieve # (1)
client = AuthenticatedClient (
base_url = "https://api.example.com" , token = "YOUR_API_TOKEN"
)
response = proposal_proposals_retrieve . sync (
uuid = "a1b2c3d4-e5f6-7890-abcd-ef1234567890" ,
client = client
)
print ( response )
API Source: proposal_proposals_retrieve
1
2
3
4
5
6
7
8
9
10
11
12
13 import { proposalProposalsRetrieve } from 'waldur-js-client' ;
try {
const response = await proposalProposalsRetrieve ({
auth : "Token YOUR_API_TOKEN" ,
path : {
"uuid" : "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
});
console . log ( 'Success:' , response );
} catch ( error ) {
console . error ( 'Error:' , error );
}
Name
Type
Required
uuid
string (uuid)
✓
200 -
Field
Type
Description
uuid
string (uuid)
url
string (uri)
slug
string
name
string
description
string
project_name
string
project_summary
string
project_is_confidential
boolean
project_has_civilian_purpose
boolean
supporting_documentation
array of objects
supporting_documentation.uuid
string (uuid)
supporting_documentation.file
string (uri)
Upload supporting documentation in PDF format.
supporting_documentation.file_name
string
supporting_documentation.file_size
integer
supporting_documentation.created
string (date-time)
state
any
approved_by
string (uri)
created_by
string (uri)
created_by_name
string
created_by_uuid
string (uuid)
applicant_username
string
Required. 128 characters or fewer. Lowercase letters, numbers and @/./+/-/_ characters
applicant_full_name
string
applicant_first_name
string
applicant_last_name
string
applicant_email
string (email)
applicant_registration_method
string
Indicates what registration method was used.
applicant_phone_number
string
applicant_organization
string
applicant_organization_country
string
applicant_organization_type
string
SCHAC URN (e.g., urn:schac:homeOrganizationType:int:university)
applicant_organization_registry_code
string
Company registration code of the user's organization, if known
applicant_organization_vat_code
string
VAT code of the user's organization
applicant_organization_address
string
Postal address of the user's organization
applicant_job_title
string
applicant_affiliations
array of strings
applicant_gender
any
User's gender (male, female, or unknown)
applicant_personal_title
string
Honorific title (Mr, Ms, Dr, Prof, etc.)
applicant_place_of_birth
string
applicant_address
string
applicant_country_of_residence
string
applicant_nationality
string
Primary citizenship (ISO 3166-1 alpha-2 code)
applicant_nationalities
array of strings
applicant_eduperson_assurance
array of strings
applicant_identity_source
string
Indicates what identity provider was used.
applicant_civil_number
string
applicant_birth_date
string (date)
applicant_active_isds
array of strings
duration_in_days
integer
Duration in days after provisioning of resources.
project
string (uri)
round
any
call_uuid
string (uuid)
call_name
string
call_managing_organisation_uuid
string (uuid)
oecd_fos_2007_code
any
oecd_fos_2007_label
string
science_sub_domain
string (uuid)
science_sub_domain_name
string
science_domain_uuid
string (uuid)
science_domain_name
string
allocation_comment
string
created
string (date-time)
compliance_status
any
can_submit
any
awaiting_manual_advance
boolean
workflow_step
any
Current active workflow step for this proposal.
Create
HTTPie Python TypeScript Request Body (required) Responses
http \
POST \
https://api.example.com/api/proposal-proposals/ \
Authorization:"Token YOUR_API_TOKEN" \
name = "my-awesome-proposal-proposal" \
round_uuid = "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.models.proposal_request import ProposalRequest # (1)
from waldur_api_client.api.proposal_proposals import proposal_proposals_create # (2)
client = AuthenticatedClient (
base_url = "https://api.example.com" , token = "YOUR_API_TOKEN"
)
body_data = ProposalRequest (
name = "my-awesome-proposal-proposal" ,
round_uuid = "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
)
response = proposal_proposals_create . sync (
client = client ,
body = body_data
)
print ( response )
Model Source: ProposalRequest
API Source: proposal_proposals_create
1
2
3
4
5
6
7
8
9
10
11
12
13
14 import { proposalProposalsCreate } from 'waldur-js-client' ;
try {
const response = await proposalProposalsCreate ({
auth : "Token YOUR_API_TOKEN" ,
body : {
"name" : "my-awesome-proposal-proposal" ,
"round_uuid" : "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
});
console . log ( 'Success:' , response );
} catch ( error ) {
console . error ( 'Error:' , error );
}
Field
Type
Required
Description
name
string
✓
description
string
project_summary
string
project_is_confidential
boolean
project_has_civilian_purpose
boolean
duration_in_days
integer
Duration in days after provisioning of resources.
round_uuid
string (uuid)
✓
Constraints: write-only
oecd_fos_2007_code
any
science_sub_domain
string (uuid)
201 -
Field
Type
Description
uuid
string (uuid)
url
string (uri)
slug
string
name
string
description
string
project_name
string
project_summary
string
project_is_confidential
boolean
project_has_civilian_purpose
boolean
supporting_documentation
array of objects
supporting_documentation.uuid
string (uuid)
supporting_documentation.file
string (uri)
Upload supporting documentation in PDF format.
supporting_documentation.file_name
string
supporting_documentation.file_size
integer
supporting_documentation.created
string (date-time)
state
any
approved_by
string (uri)
created_by
string (uri)
created_by_name
string
created_by_uuid
string (uuid)
applicant_username
string
Required. 128 characters or fewer. Lowercase letters, numbers and @/./+/-/_ characters
applicant_full_name
string
applicant_first_name
string
applicant_last_name
string
applicant_email
string (email)
applicant_registration_method
string
Indicates what registration method was used.
applicant_phone_number
string
applicant_organization
string
applicant_organization_country
string
applicant_organization_type
string
SCHAC URN (e.g., urn:schac:homeOrganizationType:int:university)
applicant_organization_registry_code
string
Company registration code of the user's organization, if known
applicant_organization_vat_code
string
VAT code of the user's organization
applicant_organization_address
string
Postal address of the user's organization
applicant_job_title
string
applicant_affiliations
array of strings
applicant_gender
any
User's gender (male, female, or unknown)
applicant_personal_title
string
Honorific title (Mr, Ms, Dr, Prof, etc.)
applicant_place_of_birth
string
applicant_address
string
applicant_country_of_residence
string
applicant_nationality
string
Primary citizenship (ISO 3166-1 alpha-2 code)
applicant_nationalities
array of strings
applicant_eduperson_assurance
array of strings
applicant_identity_source
string
Indicates what identity provider was used.
applicant_civil_number
string
applicant_birth_date
string (date)
applicant_active_isds
array of strings
duration_in_days
integer
Duration in days after provisioning of resources.
project
string (uri)
round
any
call_uuid
string (uuid)
call_name
string
call_managing_organisation_uuid
string (uuid)
oecd_fos_2007_code
any
oecd_fos_2007_label
string
science_sub_domain
string (uuid)
science_sub_domain_name
string
science_domain_uuid
string (uuid)
science_domain_name
string
allocation_comment
string
created
string (date-time)
compliance_status
any
can_submit
any
awaiting_manual_advance
boolean
workflow_step
any
Current active workflow step for this proposal.
Update project details of a proposal
Update project details of a proposal.
Delete
Permissions & Users
List users and their roles in a scope
Retrieves a list of users who have a role within a specific scope (e.g., a project or an organization). The list can be filtered by user details or role.
Grant a role to a user
Assigns a specific role to a user within the current scope. An optional expiration time for the role can be set.
HTTPie Python TypeScript Path Parameters Request Body (required) Responses
http \
POST \
https://api.example.com/api/proposal-proposals/a1b2c3d4-e5f6-7890-abcd-ef1234567890/add_user/ \
Authorization:"Token YOUR_API_TOKEN" \
role = "string-value" \
user = "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.models.user_role_create_request import UserRoleCreateRequest # (1)
from waldur_api_client.api.proposal_proposals import proposal_proposals_add_user # (2)
client = AuthenticatedClient (
base_url = "https://api.example.com" , token = "YOUR_API_TOKEN"
)
body_data = UserRoleCreateRequest (
role = "string-value" ,
user = "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
)
response = proposal_proposals_add_user . sync (
uuid = "a1b2c3d4-e5f6-7890-abcd-ef1234567890" ,
client = client ,
body = body_data
)
print ( response )
Model Source: UserRoleCreateRequest
API Source: proposal_proposals_add_user
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 import { proposalProposalsAddUser } from 'waldur-js-client' ;
try {
const response = await proposalProposalsAddUser ({
auth : "Token YOUR_API_TOKEN" ,
path : {
"uuid" : "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
},
body : {
"role" : "string-value" ,
"user" : "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
});
console . log ( 'Success:' , response );
} catch ( error ) {
console . error ( 'Error:' , error );
}
Name
Type
Required
uuid
string (uuid)
✓
Field
Type
Required
role
string
✓
user
string (uuid)
✓
expiration_time
string (date-time)
201 -
Field
Type
expiration_time
string (date-time)
400 - Validation error, for example when trying to add a user to a terminated project.
Revoke a role from a user
Removes a specific role from a user within the current scope. This effectively revokes their permissions associated with that role.
Update a user's role expiration
Updates the expiration time for a user's existing role in the current scope. This is useful for extending or shortening the duration of a permission. To make a role permanent, set expiration_time to null.
Other Actions
Get checklist with questions and existing answers
Get checklist with questions and existing answers.
HTTPie Python TypeScript Path Parameters Query Parameters Responses
http \
GET \
https://api.example.com/api/proposal-proposals/a1b2c3d4-e5f6-7890-abcd-ef1234567890/checklist/ \
Authorization:"Token YOUR_API_TOKEN"
1
2
3
4
5
6
7
8
9
10
11
12 from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.api.proposal_proposals import proposal_proposals_checklist_retrieve # (1)
client = AuthenticatedClient (
base_url = "https://api.example.com" , token = "YOUR_API_TOKEN"
)
response = proposal_proposals_checklist_retrieve . sync (
uuid = "a1b2c3d4-e5f6-7890-abcd-ef1234567890" ,
client = client
)
print ( response )
API Source: proposal_proposals_checklist_retrieve
1
2
3
4
5
6
7
8
9
10
11
12
13 import { proposalProposalsChecklistRetrieve } from 'waldur-js-client' ;
try {
const response = await proposalProposalsChecklistRetrieve ({
auth : "Token YOUR_API_TOKEN" ,
path : {
"uuid" : "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
});
console . log ( 'Success:' , response );
} catch ( error ) {
console . error ( 'Error:' , error );
}
Name
Type
Required
uuid
string (uuid)
✓
Name
Type
Description
include_all
boolean
If true, returns all questions including hidden ones (for dynamic form visibility). Default: false.
200 -
Field
Type
Description
checklist
any
completion
object
completion.uuid
string (uuid)
completion.is_completed
boolean
Whether all required questions have been answered
completion.completion_percentage
number (double)
completion.unanswered_required_questions
array of anys
completion.checklist_name
string
completion.checklist_description
string
completion.created
string (date-time)
completion.modified
string (date-time)
questions
array of objects
questions.uuid
string (uuid)
questions.description
string
questions.user_guidance
string
questions.question_type
any
Type of question and expected answer format
questions.required
boolean
questions.order
integer
questions.existing_answer
any
questions.question_options
array of anys
questions.min_value
string (decimal)
Minimum value allowed for NUMBER, YEAR, and RATING type questions
questions.max_value
string (decimal)
Maximum value allowed for NUMBER, YEAR, and RATING type questions
questions.allowed_file_types
object (free-form)
List of allowed file extensions (e.g., ['.pdf', '.doc', '.docx']). If empty, all file types are allowed.
questions.allowed_mime_types
object (free-form)
List of allowed MIME types (e.g., ['application/pdf', 'application/msword']). If empty, MIME type validation is not enforced. When both extensions and MIME types are specified, files must match both criteria for security.
questions.max_file_size_mb
integer
Maximum file size in megabytes. If not set, no size limit is enforced.
questions.max_files_count
integer
Maximum number of files allowed for MULTIPLE_FILES type questions. If not set, no count limit is enforced.
questions.likert_scale_length
any
Number of points on the Likert scale (3, 5, or 7). Required for LIKERT type questions.
questions.likert_low_label
string
Label for the lowest point on the Likert scale (e.g. 'Strongly disagree'). Optional.
questions.likert_high_label
string
Label for the highest point on the Likert scale (e.g. 'Strongly agree'). Optional.
questions.likert_allow_na
boolean
Allow respondents to choose 'N/A' as an answer for LIKERT type questions.
questions.rich_text_char_limit
integer
Maximum number of characters allowed in RICH_TEXT type answers. If not set, no limit is enforced.
questions.rich_text_toolbar_level
any
Toolbar level for the rich text editor: 'minimal', 'standard', or 'extended'.
questions.dependencies_info
any
400 -
404 -
Checklist review
Get checklist with questions and existing answers including review logic (reviewers only).
HTTPie Python TypeScript Path Parameters Responses
http \
GET \
https://api.example.com/api/proposal-proposals/a1b2c3d4-e5f6-7890-abcd-ef1234567890/checklist_review/ \
Authorization:"Token YOUR_API_TOKEN"
1
2
3
4
5
6
7
8
9
10
11
12 from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.api.proposal_proposals import proposal_proposals_checklist_review_retrieve # (1)
client = AuthenticatedClient (
base_url = "https://api.example.com" , token = "YOUR_API_TOKEN"
)
response = proposal_proposals_checklist_review_retrieve . sync (
uuid = "a1b2c3d4-e5f6-7890-abcd-ef1234567890" ,
client = client
)
print ( response )
API Source: proposal_proposals_checklist_review_retrieve
1
2
3
4
5
6
7
8
9
10
11
12
13 import { proposalProposalsChecklistReviewRetrieve } from 'waldur-js-client' ;
try {
const response = await proposalProposalsChecklistReviewRetrieve ({
auth : "Token YOUR_API_TOKEN" ,
path : {
"uuid" : "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
});
console . log ( 'Success:' , response );
} catch ( error ) {
console . error ( 'Error:' , error );
}
Name
Type
Required
uuid
string (uuid)
✓
200 -
Field
Type
Description
checklist
any
completion
object
completion.uuid
string (uuid)
completion.is_completed
boolean
Whether all required questions have been answered
completion.completion_percentage
number (double)
completion.unanswered_required_questions
array of anys
completion.checklist_name
string
completion.checklist_description
string
completion.created
string (date-time)
completion.modified
string (date-time)
completion.requires_review
boolean
Whether any answers triggered review requirements
completion.reviewed_by
integer
User who reviewed the checklist completion
completion.reviewed_by_name
string
completion.reviewed_at
string (date-time)
completion.review_notes
string
Notes from the reviewer
completion.review_trigger_summary
array of anys
questions
array of objects
questions.uuid
string (uuid)
questions.description
string
questions.user_guidance
string
questions.question_type
any
Type of question and expected answer format
questions.required
boolean
questions.order
integer
questions.existing_answer
any
questions.question_options
array of anys
questions.min_value
string (decimal)
Minimum value allowed for NUMBER, YEAR, and RATING type questions
questions.max_value
string (decimal)
Maximum value allowed for NUMBER, YEAR, and RATING type questions
questions.allowed_file_types
object (free-form)
List of allowed file extensions (e.g., ['.pdf', '.doc', '.docx']). If empty, all file types are allowed.
questions.allowed_mime_types
object (free-form)
List of allowed MIME types (e.g., ['application/pdf', 'application/msword']). If empty, MIME type validation is not enforced. When both extensions and MIME types are specified, files must match both criteria for security.
questions.max_file_size_mb
integer
Maximum file size in megabytes. If not set, no size limit is enforced.
questions.max_files_count
integer
Maximum number of files allowed for MULTIPLE_FILES type questions. If not set, no count limit is enforced.
questions.likert_scale_length
any
Number of points on the Likert scale (3, 5, or 7). Required for LIKERT type questions.
questions.likert_low_label
string
Label for the lowest point on the Likert scale (e.g. 'Strongly disagree'). Optional.
questions.likert_high_label
string
Label for the highest point on the Likert scale (e.g. 'Strongly agree'). Optional.
questions.likert_allow_na
boolean
Allow respondents to choose 'N/A' as an answer for LIKERT type questions.
questions.rich_text_char_limit
integer
Maximum number of characters allowed in RICH_TEXT type answers. If not set, no limit is enforced.
questions.rich_text_toolbar_level
any
Toolbar level for the rich text editor: 'minimal', 'standard', or 'extended'.
questions.dependencies_info
any
questions.operator
any
questions.review_answer_value
any
questions.always_requires_review
boolean
This question always requires review regardless of answer
400 -
404 -
Get checklist template for creating new objects
Get checklist template for creating new objects.
HTTPie Python TypeScript Query Parameters Responses
http \
GET \
https://api.example.com/api/proposal-proposals/checklist-template/ \
Authorization:"Token YOUR_API_TOKEN" \
parent_uuid == "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
1
2
3
4
5
6
7
8
9
10
11
12 from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.api.proposal_proposals import proposal_proposals_checklist_template_retrieve # (1)
client = AuthenticatedClient (
base_url = "https://api.example.com" , token = "YOUR_API_TOKEN"
)
response = proposal_proposals_checklist_template_retrieve . sync (
client = client ,
parent_uuid = "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
)
print ( response )
API Source: proposal_proposals_checklist_template_retrieve
1
2
3
4
5
6
7
8
9
10
11
12
13 import { proposalProposalsChecklistTemplateRetrieve } from 'waldur-js-client' ;
try {
const response = await proposalProposalsChecklistTemplateRetrieve ({
auth : "Token YOUR_API_TOKEN" ,
query : {
"parent_uuid" : "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
});
console . log ( 'Success:' , response );
} catch ( error ) {
console . error ( 'Error:' , error );
}
Name
Type
Required
Description
parent_uuid
string (uuid)
✓
UUID of the parent object (e.g., customer UUID for new projects)
200 -
Field
Type
Description
checklist
any
questions
array of objects
questions.uuid
string (uuid)
questions.required
boolean
questions.description
string
questions.user_guidance
string
Additional guidance text visible to users when answering and reviewing
questions.question_options
array of objects
questions.question_options.uuid
string (uuid)
questions.question_options.label
string
questions.question_options.order
integer
questions.question_type
any
Type of question and expected answer format
questions.order
integer
questions.min_value
string (decimal)
Minimum value allowed for NUMBER, YEAR, and RATING type questions
questions.max_value
string (decimal)
Maximum value allowed for NUMBER, YEAR, and RATING type questions
questions.allowed_file_types
array of strings
questions.allowed_mime_types
array of strings
questions.max_file_size_mb
integer
Maximum file size in megabytes. If not set, no size limit is enforced.
questions.max_files_count
integer
Maximum number of files allowed for MULTIPLE_FILES type questions. If not set, no count limit is enforced.
questions.likert_scale_length
any
Number of points on the Likert scale (3, 5, or 7). Required for LIKERT type questions.
questions.likert_low_label
string
Label for the lowest point on the Likert scale (e.g. 'Strongly disagree'). Optional.
questions.likert_high_label
string
Label for the highest point on the Likert scale (e.g. 'Strongly agree'). Optional.
questions.likert_allow_na
boolean
Allow respondents to choose 'N/A' as an answer for LIKERT type questions.
questions.rich_text_char_limit
integer
Maximum number of characters allowed in RICH_TEXT type answers. If not set, no limit is enforced.
questions.rich_text_toolbar_level
any
Toolbar level for the rich text editor: 'minimal', 'standard', or 'extended'.
questions.operator
any
questions.review_answer_value
any
questions.always_requires_review
boolean
This question always requires review regardless of answer
questions.guidance_answer_value
object (free-form)
Answer value that triggers display of user guidance.
questions.guidance_operator
any
Operator to use when comparing answer with guidance_answer_value
questions.always_show_guidance
boolean
Show user guidance always, regardless of answer. If False, guidance is conditional on answer matching guidance_answer_value with guidance_operator
questions.dependency_logic_operator
any
Defines how multiple dependencies are evaluated. AND: All dependencies must be satisfied. OR: At least one dependency must be satisfied.
initial_visible_questions
array of objects
initial_visible_questions.uuid
string (uuid)
initial_visible_questions.required
boolean
initial_visible_questions.description
string
initial_visible_questions.user_guidance
string
Additional guidance text visible to users when answering and reviewing
initial_visible_questions.question_options
array of objects
initial_visible_questions.question_options.uuid
string (uuid)
initial_visible_questions.question_options.label
string
initial_visible_questions.question_options.order
integer
initial_visible_questions.question_type
any
Type of question and expected answer format
initial_visible_questions.order
integer
initial_visible_questions.min_value
string (decimal)
Minimum value allowed for NUMBER, YEAR, and RATING type questions
initial_visible_questions.max_value
string (decimal)
Maximum value allowed for NUMBER, YEAR, and RATING type questions
initial_visible_questions.allowed_file_types
array of strings
initial_visible_questions.allowed_mime_types
array of strings
initial_visible_questions.max_file_size_mb
integer
Maximum file size in megabytes. If not set, no size limit is enforced.
initial_visible_questions.max_files_count
integer
Maximum number of files allowed for MULTIPLE_FILES type questions. If not set, no count limit is enforced.
initial_visible_questions.likert_scale_length
any
Number of points on the Likert scale (3, 5, or 7). Required for LIKERT type questions.
initial_visible_questions.likert_low_label
string
Label for the lowest point on the Likert scale (e.g. 'Strongly disagree'). Optional.
initial_visible_questions.likert_high_label
string
Label for the highest point on the Likert scale (e.g. 'Strongly agree'). Optional.
initial_visible_questions.likert_allow_na
boolean
Allow respondents to choose 'N/A' as an answer for LIKERT type questions.
initial_visible_questions.rich_text_char_limit
integer
Maximum number of characters allowed in RICH_TEXT type answers. If not set, no limit is enforced.
initial_visible_questions.rich_text_toolbar_level
any
Toolbar level for the rich text editor: 'minimal', 'standard', or 'extended'.
initial_visible_questions.operator
any
initial_visible_questions.review_answer_value
any
initial_visible_questions.always_requires_review
boolean
This question always requires review regardless of answer
initial_visible_questions.guidance_answer_value
object (free-form)
Answer value that triggers display of user guidance.
initial_visible_questions.guidance_operator
any
Operator to use when comparing answer with guidance_answer_value
initial_visible_questions.always_show_guidance
boolean
Show user guidance always, regardless of answer. If False, guidance is conditional on answer matching guidance_answer_value with guidance_operator
initial_visible_questions.dependency_logic_operator
any
Defines how multiple dependencies are evaluated. AND: All dependencies must be satisfied. OR: At least one dependency must be satisfied.
400 -
404 -
Get checklist completion status with review triggers (reviewers only)
Get checklist completion status with review triggers (reviewers only).
Get checklist completion status
Get checklist completion status.
List resources for a proposal
List resources for a proposal.
Retrieve
Step checklist responses
List a workflow step's checklist answers grouped by reviewer, for the threaded technical-assessment view. Each technical reviewer (offering manager) answers the same checklist; this returns every reviewer's decision and comment.
Get a workflow step's checklist with questions and answers
Get a workflow step's checklist with questions and answers.
HTTPie Python TypeScript Path Parameters Query Parameters Responses
http \
GET \
https://api.example.com/api/proposal-proposals/a1b2c3d4-e5f6-7890-abcd-ef1234567890/step-checklist/ \
Authorization:"Token YOUR_API_TOKEN" \
step == "string-value"
1
2
3
4
5
6
7
8
9
10
11
12
13 from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.api.proposal_proposals import proposal_proposals_step_checklist_retrieve # (1)
client = AuthenticatedClient (
base_url = "https://api.example.com" , token = "YOUR_API_TOKEN"
)
response = proposal_proposals_step_checklist_retrieve . sync (
uuid = "a1b2c3d4-e5f6-7890-abcd-ef1234567890" ,
client = client ,
step = "string-value"
)
print ( response )
API Source: proposal_proposals_step_checklist_retrieve
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 import { proposalProposalsStepChecklistRetrieve } from 'waldur-js-client' ;
try {
const response = await proposalProposalsStepChecklistRetrieve ({
auth : "Token YOUR_API_TOKEN" ,
path : {
"uuid" : "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
},
query : {
"step" : "string-value"
}
});
console . log ( 'Success:' , response );
} catch ( error ) {
console . error ( 'Error:' , error );
}
Name
Type
Required
uuid
string (uuid)
✓
Name
Type
Required
Description
include_all
string
Return all questions ignoring dynamic visibility.
step
string
✓
Workflow step key (e.g. technical_assessment).
200 -
Field
Type
Description
checklist
any
completion
object
completion.uuid
string (uuid)
completion.is_completed
boolean
Whether all required questions have been answered
completion.completion_percentage
number (double)
completion.unanswered_required_questions
array of anys
completion.checklist_name
string
completion.checklist_description
string
completion.created
string (date-time)
completion.modified
string (date-time)
questions
array of objects
questions.uuid
string (uuid)
questions.description
string
questions.user_guidance
string
questions.question_type
any
Type of question and expected answer format
questions.required
boolean
questions.order
integer
questions.existing_answer
any
questions.question_options
array of anys
questions.min_value
string (decimal)
Minimum value allowed for NUMBER, YEAR, and RATING type questions
questions.max_value
string (decimal)
Maximum value allowed for NUMBER, YEAR, and RATING type questions
questions.allowed_file_types
object (free-form)
List of allowed file extensions (e.g., ['.pdf', '.doc', '.docx']). If empty, all file types are allowed.
questions.allowed_mime_types
object (free-form)
List of allowed MIME types (e.g., ['application/pdf', 'application/msword']). If empty, MIME type validation is not enforced. When both extensions and MIME types are specified, files must match both criteria for security.
questions.max_file_size_mb
integer
Maximum file size in megabytes. If not set, no size limit is enforced.
questions.max_files_count
integer
Maximum number of files allowed for MULTIPLE_FILES type questions. If not set, no count limit is enforced.
questions.likert_scale_length
any
Number of points on the Likert scale (3, 5, or 7). Required for LIKERT type questions.
questions.likert_low_label
string
Label for the lowest point on the Likert scale (e.g. 'Strongly disagree'). Optional.
questions.likert_high_label
string
Label for the highest point on the Likert scale (e.g. 'Strongly agree'). Optional.
questions.likert_allow_na
boolean
Allow respondents to choose 'N/A' as an answer for LIKERT type questions.
questions.rich_text_char_limit
integer
Maximum number of characters allowed in RICH_TEXT type answers. If not set, no limit is enforced.
questions.rich_text_toolbar_level
any
Toolbar level for the rich text editor: 'minimal', 'standard', or 'extended'.
questions.dependencies_info
any
400 -
List all workflow step instances for this proposal
List all workflow step instances for this proposal.
HTTPie Python TypeScript Path Parameters Query Parameters Responses
http \
GET \
https://api.example.com/api/proposal-proposals/a1b2c3d4-e5f6-7890-abcd-ef1234567890/workflow_states/ \
Authorization:"Token YOUR_API_TOKEN"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.models.proposal_o_enum import ProposalOEnum # (1)
from waldur_api_client.models.proposal_states import ProposalStates # (2)
from waldur_api_client.api.proposal_proposals import proposal_proposals_workflow_states_list # (3)
client = AuthenticatedClient (
base_url = "https://api.example.com" , token = "YOUR_API_TOKEN"
)
response = proposal_proposals_workflow_states_list . sync (
uuid = "a1b2c3d4-e5f6-7890-abcd-ef1234567890" ,
client = client
)
for item in response :
print ( item )
Model Source: ProposalOEnum
Model Source: ProposalStates
API Source: proposal_proposals_workflow_states_list
1
2
3
4
5
6
7
8
9
10
11
12
13 import { proposalProposalsWorkflowStatesList } from 'waldur-js-client' ;
try {
const response = await proposalProposalsWorkflowStatesList ({
auth : "Token YOUR_API_TOKEN" ,
path : {
"uuid" : "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
});
console . log ( 'Success:' , response );
} catch ( error ) {
console . error ( 'Error:' , error );
}
Name
Type
Required
uuid
string (uuid)
✓
Name
Type
Description
call_uuid
string (uuid)
created_by_uuid
string (uuid)
my_proposals
boolean
name
string
o
array
Ordering
organization_uuid
string (uuid)
page
integer
A page number within the paginated result set.
page_size
integer
Number of results to return per page.
round
string (uuid)
round_uuid
string (uuid)
slug
string
Slug
state
array
200 -
The response body is an array of objects, where each object has the following structure:
Field
Type
Description
uuid
string (uuid)
step
any
step_name
string
step_description
string
responsible_role
string
status
any
outcome
string
Step-specific outcome (e.g., eligible, feasible, approved).
outcome_reason
string
Explanation for the outcome (e.g., rejection reason).
rejection_reason
string
internal_notes
string
started_at
string (date-time)
When this step became active.
completed_at
string (date-time)
completed_by
string (uuid)
deadline
string (date-time)
Computed from started_at + step duration_in_days.
applicant_visible
boolean
duration_in_days
integer
is_required
boolean
checklist_status
any
Manually advance a workflow that is awaiting call-manager confirmation
Manually advance a workflow that is awaiting call-manager confirmation.
Attach document to proposal
Attach document to proposal.
Complete the current workflow step with an outcome
Complete the current workflow step with an outcome.
Detach documents from proposal
Detach documents from proposal.
Reject the proposal at the current workflow step
Reject the proposal at the current workflow step.
Upload or replace the purchase order of a requested resource
Upload or replace the purchase order of a requested resource.
Create resource for a proposal
Create resource for a proposal.
Submit a proposal
Submit a proposal.
Submit checklist answers
Submit checklist answers.
Submit answers to a workflow step's checklist
Submit answers to a workflow step's checklist.
HTTPie Python TypeScript Path Parameters Query Parameters Request Body (required) Responses
echo '[{"question_uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "answer_data": null}]' | http \
POST \
https://api.example.com/api/proposal-proposals/a1b2c3d4-e5f6-7890-abcd-ef1234567890/submit-step-checklist-answers/ \
Authorization:"Token YOUR_API_TOKEN" \
step == "string-value"
1
2
3
4
5
6
7
8
9
10
11
12
13 from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.api.proposal_proposals import proposal_proposals_submit_step_checklist_answers # (1)
client = AuthenticatedClient (
base_url = "https://api.example.com" , token = "YOUR_API_TOKEN"
)
response = proposal_proposals_submit_step_checklist_answers . sync (
uuid = "a1b2c3d4-e5f6-7890-abcd-ef1234567890" ,
client = client ,
step = "string-value"
)
print ( response )
API Source: proposal_proposals_submit_step_checklist_answers
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 import { proposalProposalsSubmitStepChecklistAnswers } from 'waldur-js-client' ;
try {
const response = await proposalProposalsSubmitStepChecklistAnswers ({
auth : "Token YOUR_API_TOKEN" ,
path : {
"uuid" : "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
},
query : {
"step" : "string-value"
},
body : [{ "question_uuid" : "a1b2c3d4-e5f6-7890-abcd-ef1234567890" , "answer_data" : null }]
});
console . log ( 'Success:' , response );
} catch ( error ) {
console . error ( 'Error:' , error );
}
Name
Type
Required
uuid
string (uuid)
✓
Name
Type
Required
Description
step
string
✓
Workflow step key (e.g. technical_assessment).
The request body is an array of objects, where each object has the following structure:
Field
Type
Required
question_uuid
string (uuid)
✓
answer_data
any
✓
200 -
Field
Type
Description
detail
string
completion
object
completion.uuid
string (uuid)
completion.is_completed
boolean
Whether all required questions have been answered
completion.completion_percentage
number (double)
completion.unanswered_required_questions
array of anys
completion.checklist_name
string
completion.checklist_description
string
completion.created
string (date-time)
completion.modified
string (date-time)
completion.requires_review
boolean
Whether any answers triggered review requirements
completion.reviewed_by
integer
User who reviewed the checklist completion
completion.reviewed_by_name
string
completion.reviewed_at
string (date-time)
completion.review_notes
string
Notes from the reviewer
completion.review_trigger_summary
array of anys
400 -
Update
Partial Update
Remove the purchase order of a requested resource
Remove the purchase order of a requested resource.
Delete