azure_devops_rust_api/service_endpoint/
models.rs

1// Copyright (c) Microsoft Corporation.
2// Licensed under the MIT License.
3#![allow(non_camel_case_types)]
4#![allow(unused_imports)]
5use serde::de::{value, Deserializer, IntoDeserializer};
6use serde::{Deserialize, Serialize, Serializer};
7use std::str::FromStr;
8#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
9pub struct AadOauthTokenRequest {
10    #[serde(default, skip_serializing_if = "Option::is_none")]
11    pub refresh: Option<bool>,
12    #[serde(default, skip_serializing_if = "Option::is_none")]
13    pub resource: Option<String>,
14    #[serde(rename = "tenantId", default, skip_serializing_if = "Option::is_none")]
15    pub tenant_id: Option<String>,
16    #[serde(default, skip_serializing_if = "Option::is_none")]
17    pub token: Option<String>,
18}
19impl AadOauthTokenRequest {
20    pub fn new() -> Self {
21        Self::default()
22    }
23}
24#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
25pub struct AadOauthTokenResult {
26    #[serde(
27        rename = "accessToken",
28        default,
29        skip_serializing_if = "Option::is_none"
30    )]
31    pub access_token: Option<String>,
32    #[serde(
33        rename = "refreshTokenCache",
34        default,
35        skip_serializing_if = "Option::is_none"
36    )]
37    pub refresh_token_cache: Option<String>,
38}
39impl AadOauthTokenResult {
40    pub fn new() -> Self {
41        Self::default()
42    }
43}
44#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
45pub struct AuthConfiguration {
46    #[serde(flatten)]
47    pub o_auth_configuration: OAuthConfiguration,
48    #[doc = "Gets or sets parameters contained in configuration object."]
49    #[serde(default, skip_serializing_if = "Option::is_none")]
50    pub parameters: Option<serde_json::Value>,
51}
52impl AuthConfiguration {
53    pub fn new() -> Self {
54        Self::default()
55    }
56}
57#[doc = "Specifies the authentication scheme to be used for authentication."]
58#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
59pub struct AuthenticationSchemeReference {
60    #[doc = "Gets or sets the key and value of the fields used for authentication."]
61    #[serde(default, skip_serializing_if = "Option::is_none")]
62    pub inputs: Option<serde_json::Value>,
63    #[doc = "Gets or sets the type of authentication scheme of an endpoint."]
64    #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
65    pub type_: Option<String>,
66}
67impl AuthenticationSchemeReference {
68    pub fn new() -> Self {
69        Self::default()
70    }
71}
72#[doc = "Represents the header of the REST request."]
73#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
74pub struct AuthorizationHeader {
75    #[doc = "Gets or sets the name of authorization header."]
76    #[serde(default, skip_serializing_if = "Option::is_none")]
77    pub name: Option<String>,
78    #[doc = "Gets or sets the value of authorization header."]
79    #[serde(default, skip_serializing_if = "Option::is_none")]
80    pub value: Option<String>,
81}
82impl AuthorizationHeader {
83    pub fn new() -> Self {
84        Self::default()
85    }
86}
87#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
88pub struct AzureAppService {
89    #[serde(default, skip_serializing_if = "Option::is_none")]
90    pub id: Option<String>,
91    #[serde(default, skip_serializing_if = "Option::is_none")]
92    pub name: Option<String>,
93}
94impl AzureAppService {
95    pub fn new() -> Self {
96        Self::default()
97    }
98}
99#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
100pub struct AzureKeyVaultPermission {
101    #[serde(flatten)]
102    pub azure_resource_permission: AzureResourcePermission,
103    #[serde(default, skip_serializing_if = "Option::is_none")]
104    pub vault: Option<String>,
105}
106impl AzureKeyVaultPermission {
107    pub fn new() -> Self {
108        Self::default()
109    }
110}
111#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
112pub struct AzureMlWorkspace {
113    #[serde(default, skip_serializing_if = "Option::is_none")]
114    pub id: Option<String>,
115    #[serde(default, skip_serializing_if = "Option::is_none")]
116    pub location: Option<String>,
117    #[serde(default, skip_serializing_if = "Option::is_none")]
118    pub name: Option<String>,
119}
120impl AzureMlWorkspace {
121    pub fn new() -> Self {
122        Self::default()
123    }
124}
125#[doc = "Azure Management Group"]
126#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
127pub struct AzureManagementGroup {
128    #[doc = "Display name of azure management group"]
129    #[serde(
130        rename = "displayName",
131        default,
132        skip_serializing_if = "Option::is_none"
133    )]
134    pub display_name: Option<String>,
135    #[doc = "Id of azure management group"]
136    #[serde(default, skip_serializing_if = "Option::is_none")]
137    pub id: Option<String>,
138    #[doc = "Azure management group name"]
139    #[serde(default, skip_serializing_if = "Option::is_none")]
140    pub name: Option<String>,
141    #[doc = "Id of tenant from which azure management group belogs"]
142    #[serde(rename = "tenantId", default, skip_serializing_if = "Option::is_none")]
143    pub tenant_id: Option<String>,
144}
145impl AzureManagementGroup {
146    pub fn new() -> Self {
147        Self::default()
148    }
149}
150#[doc = "Azure management group query result"]
151#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
152pub struct AzureManagementGroupQueryResult {
153    #[doc = "Error message in case of an exception"]
154    #[serde(
155        rename = "errorMessage",
156        default,
157        skip_serializing_if = "Option::is_none"
158    )]
159    pub error_message: Option<String>,
160    #[doc = "List of azure management groups"]
161    #[serde(
162        default,
163        deserialize_with = "crate::serde::deserialize_null_as_default",
164        skip_serializing_if = "Vec::is_empty"
165    )]
166    pub value: Vec<AzureManagementGroup>,
167}
168impl AzureManagementGroupQueryResult {
169    pub fn new() -> Self {
170        Self::default()
171    }
172}
173#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
174pub struct AzurePermission {
175    #[serde(default, skip_serializing_if = "Option::is_none")]
176    pub provisioned: Option<bool>,
177    #[serde(
178        rename = "resourceProvider",
179        default,
180        skip_serializing_if = "Option::is_none"
181    )]
182    pub resource_provider: Option<String>,
183}
184impl AzurePermission {
185    pub fn new() -> Self {
186        Self::default()
187    }
188}
189#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
190pub struct AzureResourcePermission {
191    #[serde(flatten)]
192    pub azure_permission: AzurePermission,
193    #[serde(
194        rename = "resourceGroup",
195        default,
196        skip_serializing_if = "Option::is_none"
197    )]
198    pub resource_group: Option<String>,
199}
200impl AzureResourcePermission {
201    pub fn new() -> Self {
202        Self::default()
203    }
204}
205#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
206pub struct AzureRoleAssignmentPermission {
207    #[serde(flatten)]
208    pub azure_permission: AzurePermission,
209    #[serde(
210        rename = "roleAssignmentId",
211        default,
212        skip_serializing_if = "Option::is_none"
213    )]
214    pub role_assignment_id: Option<String>,
215}
216impl AzureRoleAssignmentPermission {
217    pub fn new() -> Self {
218        Self::default()
219    }
220}
221#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
222pub struct AzureSpnOperationStatus {
223    #[serde(default, skip_serializing_if = "Option::is_none")]
224    pub severity: Option<String>,
225    #[serde(default, skip_serializing_if = "Option::is_none")]
226    pub state: Option<String>,
227    #[serde(
228        rename = "statusMessage",
229        default,
230        skip_serializing_if = "Option::is_none"
231    )]
232    pub status_message: Option<String>,
233}
234impl AzureSpnOperationStatus {
235    pub fn new() -> Self {
236        Self::default()
237    }
238}
239#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
240pub struct AzureSubscription {
241    #[serde(
242        rename = "displayName",
243        default,
244        skip_serializing_if = "Option::is_none"
245    )]
246    pub display_name: Option<String>,
247    #[serde(
248        rename = "subscriptionId",
249        default,
250        skip_serializing_if = "Option::is_none"
251    )]
252    pub subscription_id: Option<String>,
253    #[serde(
254        rename = "subscriptionTenantId",
255        default,
256        skip_serializing_if = "Option::is_none"
257    )]
258    pub subscription_tenant_id: Option<String>,
259    #[serde(
260        rename = "subscriptionTenantName",
261        default,
262        skip_serializing_if = "Option::is_none"
263    )]
264    pub subscription_tenant_name: Option<String>,
265}
266impl AzureSubscription {
267    pub fn new() -> Self {
268        Self::default()
269    }
270}
271#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
272pub struct AzureSubscriptionQueryResult {
273    #[serde(
274        rename = "errorMessage",
275        default,
276        skip_serializing_if = "Option::is_none"
277    )]
278    pub error_message: Option<String>,
279    #[serde(
280        default,
281        deserialize_with = "crate::serde::deserialize_null_as_default",
282        skip_serializing_if = "Vec::is_empty"
283    )]
284    pub value: Vec<AzureSubscription>,
285}
286impl AzureSubscriptionQueryResult {
287    pub fn new() -> Self {
288        Self::default()
289    }
290}
291#[doc = "Specifies the client certificate to be used for the endpoint request."]
292#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
293pub struct ClientCertificate {
294    #[doc = "Gets or sets the value of client certificate."]
295    #[serde(default, skip_serializing_if = "Option::is_none")]
296    pub value: Option<String>,
297}
298impl ClientCertificate {
299    pub fn new() -> Self {
300        Self::default()
301    }
302}
303#[doc = "Specifies the data sources for this endpoint."]
304#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
305pub struct DataSource {
306    #[doc = "Specifies the authentication scheme to be used for authentication."]
307    #[serde(
308        rename = "authenticationScheme",
309        default,
310        skip_serializing_if = "Option::is_none"
311    )]
312    pub authentication_scheme: Option<AuthenticationSchemeReference>,
313    #[doc = "Gets or sets the pagination format supported by this data source(ContinuationToken/SkipTop)."]
314    #[serde(
315        rename = "callbackContextTemplate",
316        default,
317        skip_serializing_if = "Option::is_none"
318    )]
319    pub callback_context_template: Option<String>,
320    #[doc = "Gets or sets the template to check if subsequent call is needed."]
321    #[serde(
322        rename = "callbackRequiredTemplate",
323        default,
324        skip_serializing_if = "Option::is_none"
325    )]
326    pub callback_required_template: Option<String>,
327    #[doc = "Gets or sets the endpoint url of the data source."]
328    #[serde(
329        rename = "endpointUrl",
330        default,
331        skip_serializing_if = "Option::is_none"
332    )]
333    pub endpoint_url: Option<String>,
334    #[doc = "Gets or sets the authorization headers of the request."]
335    #[serde(
336        default,
337        deserialize_with = "crate::serde::deserialize_null_as_default",
338        skip_serializing_if = "Vec::is_empty"
339    )]
340    pub headers: Vec<AuthorizationHeader>,
341    #[doc = "Gets or sets the initial value of the query params."]
342    #[serde(
343        rename = "initialContextTemplate",
344        default,
345        skip_serializing_if = "Option::is_none"
346    )]
347    pub initial_context_template: Option<String>,
348    #[doc = "Gets or sets the name of the data source."]
349    #[serde(default, skip_serializing_if = "Option::is_none")]
350    pub name: Option<String>,
351    #[doc = "Gets or sets the request content of the endpoint request."]
352    #[serde(
353        rename = "requestContent",
354        default,
355        skip_serializing_if = "Option::is_none"
356    )]
357    pub request_content: Option<String>,
358    #[doc = "Gets or sets the request method of the endpoint request."]
359    #[serde(
360        rename = "requestVerb",
361        default,
362        skip_serializing_if = "Option::is_none"
363    )]
364    pub request_verb: Option<String>,
365    #[doc = "Gets or sets the resource url of the endpoint request."]
366    #[serde(
367        rename = "resourceUrl",
368        default,
369        skip_serializing_if = "Option::is_none"
370    )]
371    pub resource_url: Option<String>,
372    #[doc = "Gets or sets the result selector to filter the response of the endpoint request."]
373    #[serde(
374        rename = "resultSelector",
375        default,
376        skip_serializing_if = "Option::is_none"
377    )]
378    pub result_selector: Option<String>,
379}
380impl DataSource {
381    pub fn new() -> Self {
382        Self::default()
383    }
384}
385#[doc = "Represents the data source binding of the endpoint."]
386#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
387pub struct DataSourceBinding {
388    #[serde(flatten)]
389    pub data_source_binding_base: DataSourceBindingBase,
390}
391impl DataSourceBinding {
392    pub fn new() -> Self {
393        Self::default()
394    }
395}
396#[doc = "Represents binding of data source for the service endpoint request."]
397#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
398pub struct DataSourceBindingBase {
399    #[doc = "Pagination format supported by this data source(ContinuationToken/SkipTop)."]
400    #[serde(
401        rename = "callbackContextTemplate",
402        default,
403        skip_serializing_if = "Option::is_none"
404    )]
405    pub callback_context_template: Option<String>,
406    #[doc = "Subsequent calls needed?"]
407    #[serde(
408        rename = "callbackRequiredTemplate",
409        default,
410        skip_serializing_if = "Option::is_none"
411    )]
412    pub callback_required_template: Option<String>,
413    #[doc = "Gets or sets the name of the data source."]
414    #[serde(
415        rename = "dataSourceName",
416        default,
417        skip_serializing_if = "Option::is_none"
418    )]
419    pub data_source_name: Option<String>,
420    #[doc = "Gets or sets the endpoint Id."]
421    #[serde(
422        rename = "endpointId",
423        default,
424        skip_serializing_if = "Option::is_none"
425    )]
426    pub endpoint_id: Option<String>,
427    #[doc = "Gets or sets the url of the service endpoint."]
428    #[serde(
429        rename = "endpointUrl",
430        default,
431        skip_serializing_if = "Option::is_none"
432    )]
433    pub endpoint_url: Option<String>,
434    #[doc = "Gets or sets the authorization headers."]
435    #[serde(
436        default,
437        deserialize_with = "crate::serde::deserialize_null_as_default",
438        skip_serializing_if = "Vec::is_empty"
439    )]
440    pub headers: Vec<AuthorizationHeader>,
441    #[doc = "Defines the initial value of the query params"]
442    #[serde(
443        rename = "initialContextTemplate",
444        default,
445        skip_serializing_if = "Option::is_none"
446    )]
447    pub initial_context_template: Option<String>,
448    #[doc = "Gets or sets the parameters for the data source."]
449    #[serde(default, skip_serializing_if = "Option::is_none")]
450    pub parameters: Option<serde_json::Value>,
451    #[doc = "Gets or sets http request body"]
452    #[serde(
453        rename = "requestContent",
454        default,
455        skip_serializing_if = "Option::is_none"
456    )]
457    pub request_content: Option<String>,
458    #[doc = "Gets or sets http request verb"]
459    #[serde(
460        rename = "requestVerb",
461        default,
462        skip_serializing_if = "Option::is_none"
463    )]
464    pub request_verb: Option<String>,
465    #[doc = "Gets or sets the result selector."]
466    #[serde(
467        rename = "resultSelector",
468        default,
469        skip_serializing_if = "Option::is_none"
470    )]
471    pub result_selector: Option<String>,
472    #[doc = "Gets or sets the result template."]
473    #[serde(
474        rename = "resultTemplate",
475        default,
476        skip_serializing_if = "Option::is_none"
477    )]
478    pub result_template: Option<String>,
479    #[doc = "Gets or sets the target of the data source."]
480    #[serde(default, skip_serializing_if = "Option::is_none")]
481    pub target: Option<String>,
482}
483impl DataSourceBindingBase {
484    pub fn new() -> Self {
485        Self::default()
486    }
487}
488#[doc = "Represents details of the service endpoint data source."]
489#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
490pub struct DataSourceDetails {
491    #[doc = "Gets or sets the data source name."]
492    #[serde(
493        rename = "dataSourceName",
494        default,
495        skip_serializing_if = "Option::is_none"
496    )]
497    pub data_source_name: Option<String>,
498    #[doc = "Gets or sets the data source url."]
499    #[serde(
500        rename = "dataSourceUrl",
501        default,
502        skip_serializing_if = "Option::is_none"
503    )]
504    pub data_source_url: Option<String>,
505    #[doc = "Gets or sets the request headers."]
506    #[serde(
507        default,
508        deserialize_with = "crate::serde::deserialize_null_as_default",
509        skip_serializing_if = "Vec::is_empty"
510    )]
511    pub headers: Vec<AuthorizationHeader>,
512    #[doc = "Gets or sets the initialization context used for the initial call to the data source"]
513    #[serde(
514        rename = "initialContextTemplate",
515        default,
516        skip_serializing_if = "Option::is_none"
517    )]
518    pub initial_context_template: Option<String>,
519    #[doc = "Gets the parameters of data source."]
520    #[serde(default, skip_serializing_if = "Option::is_none")]
521    pub parameters: Option<serde_json::Value>,
522    #[doc = "Gets or sets the data source request content."]
523    #[serde(
524        rename = "requestContent",
525        default,
526        skip_serializing_if = "Option::is_none"
527    )]
528    pub request_content: Option<String>,
529    #[doc = "Gets or sets the data source request verb. Get/Post are the only implemented types"]
530    #[serde(
531        rename = "requestVerb",
532        default,
533        skip_serializing_if = "Option::is_none"
534    )]
535    pub request_verb: Option<String>,
536    #[doc = "Gets or sets the resource url of data source."]
537    #[serde(
538        rename = "resourceUrl",
539        default,
540        skip_serializing_if = "Option::is_none"
541    )]
542    pub resource_url: Option<String>,
543    #[doc = "Gets or sets the result selector."]
544    #[serde(
545        rename = "resultSelector",
546        default,
547        skip_serializing_if = "Option::is_none"
548    )]
549    pub result_selector: Option<String>,
550}
551impl DataSourceDetails {
552    pub fn new() -> Self {
553        Self::default()
554    }
555}
556#[doc = "Represents the details of the input on which a given input is dependent."]
557#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
558pub struct DependencyBinding {
559    #[doc = "Gets or sets the value of the field on which url is dependent."]
560    #[serde(default, skip_serializing_if = "Option::is_none")]
561    pub key: Option<String>,
562    #[doc = "Gets or sets the corresponding value of url."]
563    #[serde(default, skip_serializing_if = "Option::is_none")]
564    pub value: Option<String>,
565}
566impl DependencyBinding {
567    pub fn new() -> Self {
568        Self::default()
569    }
570}
571#[doc = "Represents the dependency data for the endpoint inputs."]
572#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
573pub struct DependencyData {
574    #[doc = "Gets or sets the category of dependency data."]
575    #[serde(default, skip_serializing_if = "Option::is_none")]
576    pub input: Option<String>,
577    #[doc = "Gets or sets the key-value pair to specify properties and their values."]
578    #[serde(
579        default,
580        deserialize_with = "crate::serde::deserialize_null_as_default",
581        skip_serializing_if = "Vec::is_empty"
582    )]
583    pub map: Vec<serde_json::Value>,
584}
585impl DependencyData {
586    pub fn new() -> Self {
587        Self::default()
588    }
589}
590#[doc = "Represents the inputs on which any given input is dependent."]
591#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
592pub struct DependsOn {
593    #[doc = "Gets or sets the ID of the field on which URL's value is dependent."]
594    #[serde(default, skip_serializing_if = "Option::is_none")]
595    pub input: Option<String>,
596    #[doc = "Gets or sets key-value pair containing other's field value and corresponding url value."]
597    #[serde(
598        default,
599        deserialize_with = "crate::serde::deserialize_null_as_default",
600        skip_serializing_if = "Vec::is_empty"
601    )]
602    pub map: Vec<DependencyBinding>,
603}
604impl DependsOn {
605    pub fn new() -> Self {
606        Self::default()
607    }
608}
609#[doc = "Represents the authorization used for service endpoint."]
610#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
611pub struct EndpointAuthorization {
612    #[doc = "Gets or sets the parameters for the selected authorization scheme."]
613    #[serde(default, skip_serializing_if = "Option::is_none")]
614    pub parameters: Option<serde_json::Value>,
615    #[doc = "Gets or sets the scheme used for service endpoint authentication."]
616    #[serde(default, skip_serializing_if = "Option::is_none")]
617    pub scheme: Option<String>,
618}
619impl EndpointAuthorization {
620    pub fn new() -> Self {
621        Self::default()
622    }
623}
624#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
625pub struct EndpointOperationStatus {
626    #[serde(default, skip_serializing_if = "Option::is_none")]
627    pub state: Option<String>,
628    #[serde(
629        rename = "statusMessage",
630        default,
631        skip_serializing_if = "Option::is_none"
632    )]
633    pub status_message: Option<String>,
634}
635impl EndpointOperationStatus {
636    pub fn new() -> Self {
637        Self::default()
638    }
639}
640#[doc = "Represents url of the service endpoint."]
641#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
642pub struct EndpointUrl {
643    #[doc = "Represents the inputs on which any given input is dependent."]
644    #[serde(rename = "dependsOn", default, skip_serializing_if = "Option::is_none")]
645    pub depends_on: Option<DependsOn>,
646    #[doc = "Gets or sets the display name of service endpoint url."]
647    #[serde(
648        rename = "displayName",
649        default,
650        skip_serializing_if = "Option::is_none"
651    )]
652    pub display_name: Option<String>,
653    #[doc = "Gets or sets the format of the url."]
654    #[serde(default, skip_serializing_if = "Option::is_none")]
655    pub format: Option<String>,
656    #[doc = "Gets or sets the help text of service endpoint url."]
657    #[serde(rename = "helpText", default, skip_serializing_if = "Option::is_none")]
658    pub help_text: Option<String>,
659    #[doc = "Gets or sets the visibility of service endpoint url."]
660    #[serde(rename = "isVisible", default, skip_serializing_if = "Option::is_none")]
661    pub is_visible: Option<String>,
662    #[doc = "Gets or sets the value of service endpoint url."]
663    #[serde(default, skip_serializing_if = "Option::is_none")]
664    pub value: Option<String>,
665}
666impl EndpointUrl {
667    pub fn new() -> Self {
668        Self::default()
669    }
670}
671#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
672pub struct GraphSubjectBase {
673    #[doc = "Links"]
674    #[serde(rename = "_links", default, skip_serializing_if = "Option::is_none")]
675    pub links: Option<serde_json::Value>,
676    #[doc = "The descriptor is the primary way to reference the graph subject while the system is running. This field will uniquely identify the same graph subject across both Accounts and Organizations."]
677    #[serde(default, skip_serializing_if = "Option::is_none")]
678    pub descriptor: Option<String>,
679    #[doc = "This is the non-unique display name of the graph subject. To change this field, you must alter its value in the source provider."]
680    #[serde(
681        rename = "displayName",
682        default,
683        skip_serializing_if = "Option::is_none"
684    )]
685    pub display_name: Option<String>,
686    #[doc = "This url is the full route to the source resource of this graph subject."]
687    #[serde(default, skip_serializing_if = "Option::is_none")]
688    pub url: Option<String>,
689}
690impl GraphSubjectBase {
691    pub fn new() -> Self {
692        Self::default()
693    }
694}
695#[doc = "Specifies the public url of the help documentation."]
696#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
697pub struct HelpLink {
698    #[doc = "Gets or sets the help text."]
699    #[serde(default, skip_serializing_if = "Option::is_none")]
700    pub text: Option<String>,
701    #[doc = "Gets or sets the public url of the help documentation."]
702    #[serde(default, skip_serializing_if = "Option::is_none")]
703    pub url: Option<String>,
704}
705impl HelpLink {
706    pub fn new() -> Self {
707        Self::default()
708    }
709}
710#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
711pub struct IdentityRef {
712    #[serde(flatten)]
713    pub graph_subject_base: GraphSubjectBase,
714    #[doc = "Deprecated - Can be retrieved by querying the Graph user referenced in the \"self\" entry of the IdentityRef \"_links\" dictionary"]
715    #[serde(
716        rename = "directoryAlias",
717        default,
718        skip_serializing_if = "Option::is_none"
719    )]
720    pub directory_alias: Option<String>,
721    pub id: String,
722    #[doc = "Deprecated - Available in the \"avatar\" entry of the IdentityRef \"_links\" dictionary"]
723    #[serde(rename = "imageUrl", default, skip_serializing_if = "Option::is_none")]
724    pub image_url: Option<String>,
725    #[doc = "Deprecated - Can be retrieved by querying the Graph membership state referenced in the \"membershipState\" entry of the GraphUser \"_links\" dictionary"]
726    #[serde(default, skip_serializing_if = "Option::is_none")]
727    pub inactive: Option<bool>,
728    #[doc = "Deprecated - Can be inferred from the subject type of the descriptor (Descriptor.IsAadUserType/Descriptor.IsAadGroupType)"]
729    #[serde(
730        rename = "isAadIdentity",
731        default,
732        skip_serializing_if = "Option::is_none"
733    )]
734    pub is_aad_identity: Option<bool>,
735    #[doc = "Deprecated - Can be inferred from the subject type of the descriptor (Descriptor.IsGroupType)"]
736    #[serde(
737        rename = "isContainer",
738        default,
739        skip_serializing_if = "Option::is_none"
740    )]
741    pub is_container: Option<bool>,
742    #[serde(
743        rename = "isDeletedInOrigin",
744        default,
745        skip_serializing_if = "Option::is_none"
746    )]
747    pub is_deleted_in_origin: Option<bool>,
748    #[doc = "Deprecated - not in use in most preexisting implementations of ToIdentityRef"]
749    #[serde(
750        rename = "profileUrl",
751        default,
752        skip_serializing_if = "Option::is_none"
753    )]
754    pub profile_url: Option<String>,
755    #[doc = "Deprecated - use Domain+PrincipalName instead"]
756    #[serde(
757        rename = "uniqueName",
758        default,
759        skip_serializing_if = "Option::is_none"
760    )]
761    pub unique_name: Option<String>,
762}
763impl IdentityRef {
764    pub fn new(id: String) -> Self {
765        Self {
766            graph_subject_base: GraphSubjectBase::default(),
767            directory_alias: None,
768            id,
769            image_url: None,
770            inactive: None,
771            is_aad_identity: None,
772            is_container: None,
773            is_deleted_in_origin: None,
774            profile_url: None,
775            unique_name: None,
776        }
777    }
778}
779#[doc = "Describes an input for subscriptions."]
780#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
781pub struct InputDescriptor {
782    #[doc = "The ids of all inputs that the value of this input is dependent on."]
783    #[serde(
784        rename = "dependencyInputIds",
785        default,
786        deserialize_with = "crate::serde::deserialize_null_as_default",
787        skip_serializing_if = "Vec::is_empty"
788    )]
789    pub dependency_input_ids: Vec<String>,
790    #[doc = "Description of what this input is used for"]
791    #[serde(default, skip_serializing_if = "Option::is_none")]
792    pub description: Option<String>,
793    #[doc = "The group localized name to which this input belongs and can be shown as a header for the container that will include all the inputs in the group."]
794    #[serde(rename = "groupName", default, skip_serializing_if = "Option::is_none")]
795    pub group_name: Option<String>,
796    #[doc = "If true, the value information for this input is dynamic and should be fetched when the value of dependency inputs change."]
797    #[serde(
798        rename = "hasDynamicValueInformation",
799        default,
800        skip_serializing_if = "Option::is_none"
801    )]
802    pub has_dynamic_value_information: Option<bool>,
803    #[doc = "Identifier for the subscription input"]
804    #[serde(default, skip_serializing_if = "Option::is_none")]
805    pub id: Option<String>,
806    #[doc = "Mode in which the value of this input should be entered"]
807    #[serde(rename = "inputMode", default, skip_serializing_if = "Option::is_none")]
808    pub input_mode: Option<input_descriptor::InputMode>,
809    #[doc = "Gets whether this input is confidential, such as for a password or application key"]
810    #[serde(
811        rename = "isConfidential",
812        default,
813        skip_serializing_if = "Option::is_none"
814    )]
815    pub is_confidential: Option<bool>,
816    #[doc = "Localized name which can be shown as a label for the subscription input"]
817    #[serde(default, skip_serializing_if = "Option::is_none")]
818    pub name: Option<String>,
819    #[doc = "Custom properties for the input which can be used by the service provider"]
820    #[serde(default, skip_serializing_if = "Option::is_none")]
821    pub properties: Option<serde_json::Value>,
822    #[doc = "Underlying data type for the input value. When this value is specified, InputMode, Validation and Values are optional."]
823    #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
824    pub type_: Option<String>,
825    #[doc = "Gets whether this input is included in the default generated action description."]
826    #[serde(
827        rename = "useInDefaultDescription",
828        default,
829        skip_serializing_if = "Option::is_none"
830    )]
831    pub use_in_default_description: Option<bool>,
832    #[doc = "Describes what values are valid for a subscription input"]
833    #[serde(default, skip_serializing_if = "Option::is_none")]
834    pub validation: Option<InputValidation>,
835    #[doc = "A hint for input value. It can be used in the UI as the input placeholder."]
836    #[serde(rename = "valueHint", default, skip_serializing_if = "Option::is_none")]
837    pub value_hint: Option<String>,
838    #[doc = "Information about the possible/allowed values for a given subscription input"]
839    #[serde(default, skip_serializing_if = "Option::is_none")]
840    pub values: Option<InputValues>,
841}
842impl InputDescriptor {
843    pub fn new() -> Self {
844        Self::default()
845    }
846}
847pub mod input_descriptor {
848    use super::*;
849    #[doc = "Mode in which the value of this input should be entered"]
850    #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
851    pub enum InputMode {
852        #[serde(rename = "none")]
853        None,
854        #[serde(rename = "textBox")]
855        TextBox,
856        #[serde(rename = "passwordBox")]
857        PasswordBox,
858        #[serde(rename = "combo")]
859        Combo,
860        #[serde(rename = "radioButtons")]
861        RadioButtons,
862        #[serde(rename = "checkBox")]
863        CheckBox,
864        #[serde(rename = "textArea")]
865        TextArea,
866    }
867}
868#[doc = "Describes what values are valid for a subscription input"]
869#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
870pub struct InputValidation {
871    #[doc = "Gets or sets the data type to validate."]
872    #[serde(rename = "dataType", default, skip_serializing_if = "Option::is_none")]
873    pub data_type: Option<input_validation::DataType>,
874    #[doc = "Gets or sets if this is a required field."]
875    #[serde(
876        rename = "isRequired",
877        default,
878        skip_serializing_if = "Option::is_none"
879    )]
880    pub is_required: Option<bool>,
881    #[doc = "Gets or sets the maximum length of this descriptor."]
882    #[serde(rename = "maxLength", default, skip_serializing_if = "Option::is_none")]
883    pub max_length: Option<i32>,
884    #[doc = "Gets or sets the minimum value for this descriptor."]
885    #[serde(rename = "maxValue", default, skip_serializing_if = "Option::is_none")]
886    pub max_value: Option<String>,
887    #[doc = "Gets or sets the minimum length of this descriptor."]
888    #[serde(rename = "minLength", default, skip_serializing_if = "Option::is_none")]
889    pub min_length: Option<i32>,
890    #[doc = "Gets or sets the minimum value for this descriptor."]
891    #[serde(rename = "minValue", default, skip_serializing_if = "Option::is_none")]
892    pub min_value: Option<String>,
893    #[doc = "Gets or sets the pattern to validate."]
894    #[serde(default, skip_serializing_if = "Option::is_none")]
895    pub pattern: Option<String>,
896    #[doc = "Gets or sets the error on pattern mismatch."]
897    #[serde(
898        rename = "patternMismatchErrorMessage",
899        default,
900        skip_serializing_if = "Option::is_none"
901    )]
902    pub pattern_mismatch_error_message: Option<String>,
903}
904impl InputValidation {
905    pub fn new() -> Self {
906        Self::default()
907    }
908}
909pub mod input_validation {
910    use super::*;
911    #[doc = "Gets or sets the data type to validate."]
912    #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
913    pub enum DataType {
914        #[serde(rename = "none")]
915        None,
916        #[serde(rename = "string")]
917        String,
918        #[serde(rename = "number")]
919        Number,
920        #[serde(rename = "boolean")]
921        Boolean,
922        #[serde(rename = "guid")]
923        Guid,
924        #[serde(rename = "uri")]
925        Uri,
926    }
927}
928#[doc = "Information about a single value for an input"]
929#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
930pub struct InputValue {
931    #[doc = "Any other data about this input"]
932    #[serde(default, skip_serializing_if = "Option::is_none")]
933    pub data: Option<serde_json::Value>,
934    #[doc = "The text to show for the display of this value"]
935    #[serde(
936        rename = "displayValue",
937        default,
938        skip_serializing_if = "Option::is_none"
939    )]
940    pub display_value: Option<String>,
941    #[doc = "The value to store for this input"]
942    #[serde(default, skip_serializing_if = "Option::is_none")]
943    pub value: Option<String>,
944}
945impl InputValue {
946    pub fn new() -> Self {
947        Self::default()
948    }
949}
950#[doc = "Information about the possible/allowed values for a given subscription input"]
951#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
952pub struct InputValues {
953    #[doc = "The default value to use for this input"]
954    #[serde(
955        rename = "defaultValue",
956        default,
957        skip_serializing_if = "Option::is_none"
958    )]
959    pub default_value: Option<String>,
960    #[doc = "Error information related to a subscription input value."]
961    #[serde(default, skip_serializing_if = "Option::is_none")]
962    pub error: Option<InputValuesError>,
963    #[doc = "The id of the input"]
964    #[serde(rename = "inputId", default, skip_serializing_if = "Option::is_none")]
965    pub input_id: Option<String>,
966    #[doc = "Should this input be disabled"]
967    #[serde(
968        rename = "isDisabled",
969        default,
970        skip_serializing_if = "Option::is_none"
971    )]
972    pub is_disabled: Option<bool>,
973    #[doc = "Should the value be restricted to one of the values in the PossibleValues (True) or are the values in PossibleValues just a suggestion (False)"]
974    #[serde(
975        rename = "isLimitedToPossibleValues",
976        default,
977        skip_serializing_if = "Option::is_none"
978    )]
979    pub is_limited_to_possible_values: Option<bool>,
980    #[doc = "Should this input be made read-only"]
981    #[serde(
982        rename = "isReadOnly",
983        default,
984        skip_serializing_if = "Option::is_none"
985    )]
986    pub is_read_only: Option<bool>,
987    #[doc = "Possible values that this input can take"]
988    #[serde(
989        rename = "possibleValues",
990        default,
991        deserialize_with = "crate::serde::deserialize_null_as_default",
992        skip_serializing_if = "Vec::is_empty"
993    )]
994    pub possible_values: Vec<InputValue>,
995}
996impl InputValues {
997    pub fn new() -> Self {
998        Self::default()
999    }
1000}
1001#[doc = "Error information related to a subscription input value."]
1002#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1003pub struct InputValuesError {
1004    #[doc = "The error message."]
1005    #[serde(default, skip_serializing_if = "Option::is_none")]
1006    pub message: Option<String>,
1007}
1008impl InputValuesError {
1009    pub fn new() -> Self {
1010        Self::default()
1011    }
1012}
1013#[doc = "Represents a JSON object."]
1014#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1015pub struct JObject {
1016    #[doc = "Represents an abstract JSON token."]
1017    #[serde(default, skip_serializing_if = "Option::is_none")]
1018    pub item: Option<JToken>,
1019    #[doc = "Gets the node type for this JToken."]
1020    #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
1021    pub type_: Option<String>,
1022}
1023impl JObject {
1024    pub fn new() -> Self {
1025        Self::default()
1026    }
1027}
1028#[doc = "Represents an abstract JSON token."]
1029#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1030pub struct JToken {
1031    #[doc = "Represents an abstract JSON token."]
1032    #[serde(default, skip_serializing_if = "Option::is_none")]
1033    pub first: Option<Box<JToken>>,
1034    #[doc = "Gets a value indicating whether this token has child tokens."]
1035    #[serde(rename = "hasValues", default, skip_serializing_if = "Option::is_none")]
1036    pub has_values: Option<bool>,
1037    #[doc = "Represents an abstract JSON token."]
1038    #[serde(default, skip_serializing_if = "Option::is_none")]
1039    pub item: Option<Box<JToken>>,
1040    #[doc = "Represents an abstract JSON token."]
1041    #[serde(default, skip_serializing_if = "Option::is_none")]
1042    pub last: Option<Box<JToken>>,
1043    #[doc = "Represents an abstract JSON token."]
1044    #[serde(default, skip_serializing_if = "Option::is_none")]
1045    pub next: Option<Box<JToken>>,
1046    #[doc = "Gets or sets the parent."]
1047    #[serde(default, skip_serializing_if = "Option::is_none")]
1048    pub parent: Option<String>,
1049    #[doc = "Gets the path of the JSON token."]
1050    #[serde(default, skip_serializing_if = "Option::is_none")]
1051    pub path: Option<String>,
1052    #[doc = "Represents an abstract JSON token."]
1053    #[serde(default, skip_serializing_if = "Option::is_none")]
1054    pub previous: Option<Box<JToken>>,
1055    #[doc = "Represents an abstract JSON token."]
1056    #[serde(default, skip_serializing_if = "Option::is_none")]
1057    pub root: Option<Box<JToken>>,
1058    #[doc = "Gets the node type for this JToken."]
1059    #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
1060    pub type_: Option<String>,
1061}
1062impl JToken {
1063    pub fn new() -> Self {
1064        Self::default()
1065    }
1066}
1067#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1068pub struct OAuth2TokenResult {
1069    #[serde(
1070        rename = "accessToken",
1071        default,
1072        skip_serializing_if = "Option::is_none"
1073    )]
1074    pub access_token: Option<String>,
1075    #[serde(default, skip_serializing_if = "Option::is_none")]
1076    pub error: Option<String>,
1077    #[serde(
1078        rename = "errorDescription",
1079        default,
1080        skip_serializing_if = "Option::is_none"
1081    )]
1082    pub error_description: Option<String>,
1083    #[serde(rename = "expiresIn", default, skip_serializing_if = "Option::is_none")]
1084    pub expires_in: Option<String>,
1085    #[serde(rename = "issuedAt", default, skip_serializing_if = "Option::is_none")]
1086    pub issued_at: Option<String>,
1087    #[serde(
1088        rename = "refreshToken",
1089        default,
1090        skip_serializing_if = "Option::is_none"
1091    )]
1092    pub refresh_token: Option<String>,
1093    #[serde(default, skip_serializing_if = "Option::is_none")]
1094    pub scope: Option<String>,
1095}
1096impl OAuth2TokenResult {
1097    pub fn new() -> Self {
1098        Self::default()
1099    }
1100}
1101#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1102pub struct OAuthConfiguration {
1103    #[doc = "Gets or sets the ClientId"]
1104    #[serde(rename = "clientId", default, skip_serializing_if = "Option::is_none")]
1105    pub client_id: Option<String>,
1106    #[doc = "Gets or sets the ClientSecret"]
1107    #[serde(
1108        rename = "clientSecret",
1109        default,
1110        skip_serializing_if = "Option::is_none"
1111    )]
1112    pub client_secret: Option<String>,
1113    #[serde(rename = "createdBy", default, skip_serializing_if = "Option::is_none")]
1114    pub created_by: Option<IdentityRef>,
1115    #[doc = "Gets or sets the time when config was created."]
1116    #[serde(
1117        rename = "createdOn",
1118        default,
1119        skip_serializing_if = "Option::is_none",
1120        with = "crate::date_time::rfc3339::option"
1121    )]
1122    pub created_on: Option<time::OffsetDateTime>,
1123    #[doc = "Gets or sets the type of the endpoint."]
1124    #[serde(
1125        rename = "endpointType",
1126        default,
1127        skip_serializing_if = "Option::is_none"
1128    )]
1129    pub endpoint_type: Option<String>,
1130    #[doc = "Gets or sets the unique identifier of this field"]
1131    #[serde(default, skip_serializing_if = "Option::is_none")]
1132    pub id: Option<String>,
1133    #[serde(
1134        rename = "modifiedBy",
1135        default,
1136        skip_serializing_if = "Option::is_none"
1137    )]
1138    pub modified_by: Option<IdentityRef>,
1139    #[doc = "Gets or sets the time when variable group was modified"]
1140    #[serde(
1141        rename = "modifiedOn",
1142        default,
1143        skip_serializing_if = "Option::is_none",
1144        with = "crate::date_time::rfc3339::option"
1145    )]
1146    pub modified_on: Option<time::OffsetDateTime>,
1147    #[doc = "Gets or sets the name"]
1148    #[serde(default, skip_serializing_if = "Option::is_none")]
1149    pub name: Option<String>,
1150    #[doc = "Gets or sets the Url"]
1151    #[serde(default, skip_serializing_if = "Option::is_none")]
1152    pub url: Option<String>,
1153}
1154impl OAuthConfiguration {
1155    pub fn new() -> Self {
1156        Self::default()
1157    }
1158}
1159#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1160pub struct OAuthConfigurationParams {
1161    #[doc = "Gets or sets the ClientId"]
1162    #[serde(rename = "clientId", default, skip_serializing_if = "Option::is_none")]
1163    pub client_id: Option<String>,
1164    #[doc = "Gets or sets the ClientSecret"]
1165    #[serde(
1166        rename = "clientSecret",
1167        default,
1168        skip_serializing_if = "Option::is_none"
1169    )]
1170    pub client_secret: Option<String>,
1171    #[doc = "Gets or sets the type of the endpoint."]
1172    #[serde(
1173        rename = "endpointType",
1174        default,
1175        skip_serializing_if = "Option::is_none"
1176    )]
1177    pub endpoint_type: Option<String>,
1178    #[doc = "Gets or sets the name"]
1179    #[serde(default, skip_serializing_if = "Option::is_none")]
1180    pub name: Option<String>,
1181    #[doc = "Gets or sets the Url"]
1182    #[serde(default, skip_serializing_if = "Option::is_none")]
1183    pub url: Option<String>,
1184}
1185impl OAuthConfigurationParams {
1186    pub fn new() -> Self {
1187        Self::default()
1188    }
1189}
1190#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1191pub struct OAuthEndpointStatus {
1192    #[serde(default, skip_serializing_if = "Option::is_none")]
1193    pub state: Option<String>,
1194    #[serde(
1195        rename = "statusMessage",
1196        default,
1197        skip_serializing_if = "Option::is_none"
1198    )]
1199    pub status_message: Option<String>,
1200}
1201impl OAuthEndpointStatus {
1202    pub fn new() -> Self {
1203        Self::default()
1204    }
1205}
1206#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1207pub struct Parameter {
1208    #[serde(rename = "isSecret", default, skip_serializing_if = "Option::is_none")]
1209    pub is_secret: Option<bool>,
1210    #[serde(default, skip_serializing_if = "Option::is_none")]
1211    pub value: Option<String>,
1212}
1213impl Parameter {
1214    pub fn new() -> Self {
1215        Self::default()
1216    }
1217}
1218#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
1219pub struct ProjectReference {
1220    pub id: String,
1221    #[serde(default, skip_serializing_if = "Option::is_none")]
1222    pub name: Option<String>,
1223}
1224impl ProjectReference {
1225    pub fn new(id: String) -> Self {
1226        Self { id, name: None }
1227    }
1228}
1229#[doc = "The class to represent a collection of REST reference links."]
1230#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1231pub struct ReferenceLinks {
1232    #[doc = "The readonly view of the links.  Because Reference links are readonly, we only want to expose them as read only."]
1233    #[serde(default, skip_serializing_if = "Option::is_none")]
1234    pub links: Option<serde_json::Value>,
1235}
1236impl ReferenceLinks {
1237    pub fn new() -> Self {
1238        Self::default()
1239    }
1240}
1241#[doc = "Specify the properties for refreshing the endpoint authentication object being queried"]
1242#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1243pub struct RefreshAuthenticationParameters {
1244    #[doc = "EndpointId which needs new authentication params"]
1245    #[serde(
1246        rename = "endpointId",
1247        default,
1248        skip_serializing_if = "Option::is_none"
1249    )]
1250    pub endpoint_id: Option<String>,
1251    #[doc = "Scope of the token requested. For GitHub marketplace apps, scope contains repository Ids"]
1252    #[serde(
1253        default,
1254        deserialize_with = "crate::serde::deserialize_null_as_default",
1255        skip_serializing_if = "Vec::is_empty"
1256    )]
1257    pub scope: Vec<i32>,
1258    #[doc = "The requested endpoint authentication should be valid for _ minutes. Authentication params will not be refreshed if the token contained in endpoint already has active token."]
1259    #[serde(
1260        rename = "tokenValidityInMinutes",
1261        default,
1262        skip_serializing_if = "Option::is_none"
1263    )]
1264    pub token_validity_in_minutes: Option<i64>,
1265}
1266impl RefreshAuthenticationParameters {
1267    pub fn new() -> Self {
1268        Self::default()
1269    }
1270}
1271#[doc = "Represents template to transform the result data."]
1272#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1273pub struct ResultTransformationDetails {
1274    #[doc = "Gets or sets the template for callback parameters"]
1275    #[serde(
1276        rename = "callbackContextTemplate",
1277        default,
1278        skip_serializing_if = "Option::is_none"
1279    )]
1280    pub callback_context_template: Option<String>,
1281    #[doc = "Gets or sets the template to decide whether to callback or not"]
1282    #[serde(
1283        rename = "callbackRequiredTemplate",
1284        default,
1285        skip_serializing_if = "Option::is_none"
1286    )]
1287    pub callback_required_template: Option<String>,
1288    #[doc = "Gets or sets the template for result transformation."]
1289    #[serde(
1290        rename = "resultTemplate",
1291        default,
1292        skip_serializing_if = "Option::is_none"
1293    )]
1294    pub result_template: Option<String>,
1295}
1296impl ResultTransformationDetails {
1297    pub fn new() -> Self {
1298        Self::default()
1299    }
1300}
1301#[doc = "Represents an endpoint which may be used by an orchestration job."]
1302#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
1303pub struct ServiceEndpoint {
1304    #[serde(
1305        rename = "administratorsGroup",
1306        default,
1307        skip_serializing_if = "Option::is_none"
1308    )]
1309    pub administrators_group: Option<IdentityRef>,
1310    #[doc = "Represents the authorization used for service endpoint."]
1311    pub authorization: EndpointAuthorization,
1312    #[serde(rename = "createdBy")]
1313    pub created_by: IdentityRef,
1314    pub data: serde_json::Value,
1315    #[doc = "Gets or sets the description of endpoint."]
1316    #[serde(default, skip_serializing_if = "Option::is_none")]
1317    pub description: Option<String>,
1318    #[doc = "This is a deprecated field."]
1319    #[serde(
1320        rename = "groupScopeId",
1321        default,
1322        skip_serializing_if = "Option::is_none"
1323    )]
1324    pub group_scope_id: Option<String>,
1325    #[doc = "Gets or sets the identifier of this endpoint."]
1326    pub id: String,
1327    #[doc = "EndPoint state indicator"]
1328    #[serde(rename = "isReady")]
1329    pub is_ready: bool,
1330    #[doc = "Indicates whether service endpoint is shared with other projects or not."]
1331    #[serde(rename = "isShared")]
1332    pub is_shared: bool,
1333    #[doc = "Gets or sets the friendly name of the endpoint."]
1334    pub name: String,
1335    #[doc = "Error message during creation/deletion of endpoint"]
1336    #[serde(
1337        rename = "operationStatus",
1338        default,
1339        skip_serializing_if = "Option::is_none"
1340    )]
1341    pub operation_status: Option<serde_json::Value>,
1342    #[doc = "Owner of the endpoint Supported values are \"library\", \"agentcloud\""]
1343    pub owner: String,
1344    #[serde(
1345        rename = "readersGroup",
1346        default,
1347        skip_serializing_if = "Option::is_none"
1348    )]
1349    pub readers_group: Option<IdentityRef>,
1350    #[doc = "All other project references where the service endpoint is shared."]
1351    #[serde(
1352        rename = "serviceEndpointProjectReferences",
1353        default,
1354        deserialize_with = "crate::serde::deserialize_null_as_default",
1355        skip_serializing_if = "Vec::is_empty"
1356    )]
1357    pub service_endpoint_project_references: Vec<ServiceEndpointProjectReference>,
1358    #[doc = "Gets or sets the type of the endpoint."]
1359    #[serde(rename = "type")]
1360    pub type_: String,
1361    #[doc = "Gets or sets the url of the endpoint."]
1362    pub url: String,
1363}
1364impl ServiceEndpoint {
1365    pub fn new(
1366        authorization: EndpointAuthorization,
1367        created_by: IdentityRef,
1368        data: serde_json::Value,
1369        id: String,
1370        is_ready: bool,
1371        is_shared: bool,
1372        name: String,
1373        owner: String,
1374        type_: String,
1375        url: String,
1376    ) -> Self {
1377        Self {
1378            administrators_group: None,
1379            authorization,
1380            created_by,
1381            data,
1382            description: None,
1383            group_scope_id: None,
1384            id,
1385            is_ready,
1386            is_shared,
1387            name,
1388            operation_status: None,
1389            owner,
1390            readers_group: None,
1391            service_endpoint_project_references: Vec::new(),
1392            type_,
1393            url,
1394        }
1395    }
1396}
1397#[doc = "Represents the authentication scheme used to authenticate the endpoint."]
1398#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1399pub struct ServiceEndpointAuthenticationScheme {
1400    #[doc = "Gets or sets the authorization headers of service endpoint authentication scheme."]
1401    #[serde(
1402        rename = "authorizationHeaders",
1403        default,
1404        deserialize_with = "crate::serde::deserialize_null_as_default",
1405        skip_serializing_if = "Vec::is_empty"
1406    )]
1407    pub authorization_headers: Vec<AuthorizationHeader>,
1408    #[doc = "Gets or sets the Authorization url required to authenticate using OAuth2"]
1409    #[serde(
1410        rename = "authorizationUrl",
1411        default,
1412        skip_serializing_if = "Option::is_none"
1413    )]
1414    pub authorization_url: Option<String>,
1415    #[doc = "Gets or sets the certificates of service endpoint authentication scheme."]
1416    #[serde(
1417        rename = "clientCertificates",
1418        default,
1419        deserialize_with = "crate::serde::deserialize_null_as_default",
1420        skip_serializing_if = "Vec::is_empty"
1421    )]
1422    pub client_certificates: Vec<ClientCertificate>,
1423    #[doc = "Gets or sets the data source bindings of the endpoint."]
1424    #[serde(
1425        rename = "dataSourceBindings",
1426        default,
1427        deserialize_with = "crate::serde::deserialize_null_as_default",
1428        skip_serializing_if = "Vec::is_empty"
1429    )]
1430    pub data_source_bindings: Vec<DataSourceBinding>,
1431    #[doc = "Gets or sets the display name for the service endpoint authentication scheme."]
1432    #[serde(
1433        rename = "displayName",
1434        default,
1435        skip_serializing_if = "Option::is_none"
1436    )]
1437    pub display_name: Option<String>,
1438    #[doc = "Gets or sets the input descriptors for the service endpoint authentication scheme."]
1439    #[serde(
1440        rename = "inputDescriptors",
1441        default,
1442        deserialize_with = "crate::serde::deserialize_null_as_default",
1443        skip_serializing_if = "Vec::is_empty"
1444    )]
1445    pub input_descriptors: Vec<InputDescriptor>,
1446    #[doc = "Gets or sets the properties of service endpoint authentication scheme."]
1447    #[serde(default, skip_serializing_if = "Option::is_none")]
1448    pub properties: Option<serde_json::Value>,
1449    #[doc = "Gets or sets whether this auth scheme requires OAuth2 configuration or not."]
1450    #[serde(
1451        rename = "requiresOAuth2Configuration",
1452        default,
1453        skip_serializing_if = "Option::is_none"
1454    )]
1455    pub requires_o_auth2_configuration: Option<bool>,
1456    #[doc = "Gets or sets the scheme for service endpoint authentication."]
1457    #[serde(default, skip_serializing_if = "Option::is_none")]
1458    pub scheme: Option<String>,
1459}
1460impl ServiceEndpointAuthenticationScheme {
1461    pub fn new() -> Self {
1462        Self::default()
1463    }
1464}
1465#[doc = "Represents details of the service endpoint."]
1466#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1467pub struct ServiceEndpointDetails {
1468    #[doc = "Represents the authorization used for service endpoint."]
1469    #[serde(default, skip_serializing_if = "Option::is_none")]
1470    pub authorization: Option<EndpointAuthorization>,
1471    #[doc = "Gets or sets the data of service endpoint."]
1472    #[serde(default, skip_serializing_if = "Option::is_none")]
1473    pub data: Option<serde_json::Value>,
1474    #[doc = "Gets or sets the type of service endpoint."]
1475    #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
1476    pub type_: Option<String>,
1477    #[doc = "Gets or sets the connection url of service endpoint."]
1478    #[serde(default, skip_serializing_if = "Option::is_none")]
1479    pub url: Option<String>,
1480}
1481impl ServiceEndpointDetails {
1482    pub fn new() -> Self {
1483        Self::default()
1484    }
1485}
1486#[doc = "Represents service endpoint execution data."]
1487#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1488pub struct ServiceEndpointExecutionData {
1489    #[doc = "Represents execution owner of the service endpoint."]
1490    #[serde(default, skip_serializing_if = "Option::is_none")]
1491    pub definition: Option<ServiceEndpointExecutionOwner>,
1492    #[doc = "Gets the finish time of service endpoint execution."]
1493    #[serde(
1494        rename = "finishTime",
1495        default,
1496        skip_serializing_if = "Option::is_none",
1497        with = "crate::date_time::rfc3339::option"
1498    )]
1499    pub finish_time: Option<time::OffsetDateTime>,
1500    #[doc = "Gets the Id of service endpoint execution data."]
1501    #[serde(default, skip_serializing_if = "Option::is_none")]
1502    pub id: Option<i64>,
1503    #[doc = "Represents execution owner of the service endpoint."]
1504    #[serde(default, skip_serializing_if = "Option::is_none")]
1505    pub owner: Option<ServiceEndpointExecutionOwner>,
1506    #[doc = "Gets the additional details about the instance that used the service endpoint."]
1507    #[serde(
1508        rename = "ownerDetails",
1509        default,
1510        skip_serializing_if = "Option::is_none"
1511    )]
1512    pub owner_details: Option<String>,
1513    #[doc = "Gets the plan type of service endpoint execution data."]
1514    #[serde(rename = "planType", default, skip_serializing_if = "Option::is_none")]
1515    pub plan_type: Option<String>,
1516    #[doc = "Gets the result of service endpoint execution."]
1517    #[serde(default, skip_serializing_if = "Option::is_none")]
1518    pub result: Option<service_endpoint_execution_data::Result>,
1519    #[doc = "Gets the start time of service endpoint execution."]
1520    #[serde(
1521        rename = "startTime",
1522        default,
1523        skip_serializing_if = "Option::is_none",
1524        with = "crate::date_time::rfc3339::option"
1525    )]
1526    pub start_time: Option<time::OffsetDateTime>,
1527}
1528impl ServiceEndpointExecutionData {
1529    pub fn new() -> Self {
1530        Self::default()
1531    }
1532}
1533pub mod service_endpoint_execution_data {
1534    use super::*;
1535    #[doc = "Gets the result of service endpoint execution."]
1536    #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
1537    pub enum Result {
1538        #[serde(rename = "succeeded")]
1539        Succeeded,
1540        #[serde(rename = "succeededWithIssues")]
1541        SucceededWithIssues,
1542        #[serde(rename = "failed")]
1543        Failed,
1544        #[serde(rename = "canceled")]
1545        Canceled,
1546        #[serde(rename = "skipped")]
1547        Skipped,
1548        #[serde(rename = "abandoned")]
1549        Abandoned,
1550    }
1551}
1552#[doc = "Represents execution owner of the service endpoint."]
1553#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1554pub struct ServiceEndpointExecutionOwner {
1555    #[doc = "The class to represent a collection of REST reference links."]
1556    #[serde(rename = "_links", default, skip_serializing_if = "Option::is_none")]
1557    pub links: Option<ReferenceLinks>,
1558    #[doc = "Gets or sets the Id of service endpoint execution owner."]
1559    #[serde(default, skip_serializing_if = "Option::is_none")]
1560    pub id: Option<i32>,
1561    #[doc = "Gets or sets the name of service endpoint execution owner."]
1562    #[serde(default, skip_serializing_if = "Option::is_none")]
1563    pub name: Option<String>,
1564}
1565impl ServiceEndpointExecutionOwner {
1566    pub fn new() -> Self {
1567        Self::default()
1568    }
1569}
1570#[doc = "Represents the details of service endpoint execution."]
1571#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1572pub struct ServiceEndpointExecutionRecord {
1573    #[doc = "Represents service endpoint execution data."]
1574    #[serde(default, skip_serializing_if = "Option::is_none")]
1575    pub data: Option<ServiceEndpointExecutionData>,
1576    #[doc = "Gets the Id of service endpoint."]
1577    #[serde(
1578        rename = "endpointId",
1579        default,
1580        skip_serializing_if = "Option::is_none"
1581    )]
1582    pub endpoint_id: Option<String>,
1583}
1584impl ServiceEndpointExecutionRecord {
1585    pub fn new() -> Self {
1586        Self::default()
1587    }
1588}
1589#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1590pub struct ServiceEndpointExecutionRecordList {
1591    #[serde(default, skip_serializing_if = "Option::is_none")]
1592    pub count: Option<i32>,
1593    #[serde(
1594        default,
1595        deserialize_with = "crate::serde::deserialize_null_as_default",
1596        skip_serializing_if = "Vec::is_empty"
1597    )]
1598    pub value: Vec<ServiceEndpointExecutionRecord>,
1599}
1600impl ServiceEndpointExecutionRecordList {
1601    pub fn new() -> Self {
1602        Self::default()
1603    }
1604}
1605#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1606pub struct ServiceEndpointExecutionRecordsInput {
1607    #[doc = "Represents service endpoint execution data."]
1608    #[serde(default, skip_serializing_if = "Option::is_none")]
1609    pub data: Option<ServiceEndpointExecutionData>,
1610    #[serde(
1611        rename = "endpointIds",
1612        default,
1613        deserialize_with = "crate::serde::deserialize_null_as_default",
1614        skip_serializing_if = "Vec::is_empty"
1615    )]
1616    pub endpoint_ids: Vec<String>,
1617}
1618impl ServiceEndpointExecutionRecordsInput {
1619    pub fn new() -> Self {
1620        Self::default()
1621    }
1622}
1623#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1624pub struct ServiceEndpointList {
1625    #[serde(default, skip_serializing_if = "Option::is_none")]
1626    pub count: Option<i32>,
1627    #[serde(
1628        default,
1629        deserialize_with = "crate::serde::deserialize_null_as_default",
1630        skip_serializing_if = "Vec::is_empty"
1631    )]
1632    pub value: Vec<ServiceEndpoint>,
1633}
1634impl ServiceEndpointList {
1635    pub fn new() -> Self {
1636        Self::default()
1637    }
1638}
1639#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1640pub struct ServiceEndpointOAuthConfigurationReference {
1641    #[serde(
1642        rename = "configurationId",
1643        default,
1644        skip_serializing_if = "Option::is_none"
1645    )]
1646    pub configuration_id: Option<String>,
1647    #[serde(
1648        rename = "serviceEndpointId",
1649        default,
1650        skip_serializing_if = "Option::is_none"
1651    )]
1652    pub service_endpoint_id: Option<String>,
1653    #[serde(
1654        rename = "serviceEndpointProjectId",
1655        default,
1656        skip_serializing_if = "Option::is_none"
1657    )]
1658    pub service_endpoint_project_id: Option<String>,
1659}
1660impl ServiceEndpointOAuthConfigurationReference {
1661    pub fn new() -> Self {
1662        Self::default()
1663    }
1664}
1665#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
1666pub struct ServiceEndpointProjectReference {
1667    #[doc = "Gets or sets description of the service endpoint."]
1668    #[serde(default, skip_serializing_if = "Option::is_none")]
1669    pub description: Option<String>,
1670    #[doc = "Gets or sets name of the service endpoint."]
1671    #[serde(default, skip_serializing_if = "Option::is_none")]
1672    pub name: Option<String>,
1673    #[serde(rename = "projectReference")]
1674    pub project_reference: ProjectReference,
1675}
1676impl ServiceEndpointProjectReference {
1677    pub fn new(project_reference: ProjectReference) -> Self {
1678        Self {
1679            description: None,
1680            name: None,
1681            project_reference,
1682        }
1683    }
1684}
1685#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1686pub struct ServiceEndpointRequest {
1687    #[doc = "Represents details of the service endpoint data source."]
1688    #[serde(
1689        rename = "dataSourceDetails",
1690        default,
1691        skip_serializing_if = "Option::is_none"
1692    )]
1693    pub data_source_details: Option<DataSourceDetails>,
1694    #[doc = "Represents template to transform the result data."]
1695    #[serde(
1696        rename = "resultTransformationDetails",
1697        default,
1698        skip_serializing_if = "Option::is_none"
1699    )]
1700    pub result_transformation_details: Option<ResultTransformationDetails>,
1701    #[doc = "Represents details of the service endpoint."]
1702    #[serde(
1703        rename = "serviceEndpointDetails",
1704        default,
1705        skip_serializing_if = "Option::is_none"
1706    )]
1707    pub service_endpoint_details: Option<ServiceEndpointDetails>,
1708}
1709impl ServiceEndpointRequest {
1710    pub fn new() -> Self {
1711        Self::default()
1712    }
1713}
1714#[doc = "Represents result of the service endpoint request."]
1715#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1716pub struct ServiceEndpointRequestResult {
1717    #[doc = "Gets or sets the parameters used to make subsequent calls to the data source"]
1718    #[serde(
1719        rename = "callbackContextParameters",
1720        default,
1721        skip_serializing_if = "Option::is_none"
1722    )]
1723    pub callback_context_parameters: Option<serde_json::Value>,
1724    #[doc = "Gets or sets the flat that decides if another call to the data source is to be made"]
1725    #[serde(
1726        rename = "callbackRequired",
1727        default,
1728        skip_serializing_if = "Option::is_none"
1729    )]
1730    pub callback_required: Option<bool>,
1731    #[doc = "Gets or sets the error message of the service endpoint request result."]
1732    #[serde(
1733        rename = "errorMessage",
1734        default,
1735        skip_serializing_if = "Option::is_none"
1736    )]
1737    pub error_message: Option<String>,
1738    #[doc = "Represents an abstract JSON token."]
1739    #[serde(default, skip_serializing_if = "Option::is_none")]
1740    pub result: Option<JToken>,
1741    #[doc = "Gets or sets the status code of the service endpoint request result."]
1742    #[serde(
1743        rename = "statusCode",
1744        default,
1745        skip_serializing_if = "Option::is_none"
1746    )]
1747    pub status_code: Option<service_endpoint_request_result::StatusCode>,
1748}
1749impl ServiceEndpointRequestResult {
1750    pub fn new() -> Self {
1751        Self::default()
1752    }
1753}
1754pub mod service_endpoint_request_result {
1755    use super::*;
1756    #[doc = "Gets or sets the status code of the service endpoint request result."]
1757    #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
1758    pub enum StatusCode {
1759        #[serde(rename = "continue")]
1760        Continue,
1761        #[serde(rename = "switchingProtocols")]
1762        SwitchingProtocols,
1763        #[serde(rename = "ok")]
1764        Ok,
1765        #[serde(rename = "created")]
1766        Created,
1767        #[serde(rename = "accepted")]
1768        Accepted,
1769        #[serde(rename = "nonAuthoritativeInformation")]
1770        NonAuthoritativeInformation,
1771        #[serde(rename = "noContent")]
1772        NoContent,
1773        #[serde(rename = "resetContent")]
1774        ResetContent,
1775        #[serde(rename = "partialContent")]
1776        PartialContent,
1777        #[serde(rename = "multipleChoices")]
1778        MultipleChoices,
1779        #[serde(rename = "ambiguous")]
1780        Ambiguous,
1781        #[serde(rename = "movedPermanently")]
1782        MovedPermanently,
1783        #[serde(rename = "moved")]
1784        Moved,
1785        #[serde(rename = "found")]
1786        Found,
1787        #[serde(rename = "redirect")]
1788        Redirect,
1789        #[serde(rename = "seeOther")]
1790        SeeOther,
1791        #[serde(rename = "redirectMethod")]
1792        RedirectMethod,
1793        #[serde(rename = "notModified")]
1794        NotModified,
1795        #[serde(rename = "useProxy")]
1796        UseProxy,
1797        #[serde(rename = "unused")]
1798        Unused,
1799        #[serde(rename = "temporaryRedirect")]
1800        TemporaryRedirect,
1801        #[serde(rename = "redirectKeepVerb")]
1802        RedirectKeepVerb,
1803        #[serde(rename = "badRequest")]
1804        BadRequest,
1805        #[serde(rename = "unauthorized")]
1806        Unauthorized,
1807        #[serde(rename = "paymentRequired")]
1808        PaymentRequired,
1809        #[serde(rename = "forbidden")]
1810        Forbidden,
1811        #[serde(rename = "notFound")]
1812        NotFound,
1813        #[serde(rename = "methodNotAllowed")]
1814        MethodNotAllowed,
1815        #[serde(rename = "notAcceptable")]
1816        NotAcceptable,
1817        #[serde(rename = "proxyAuthenticationRequired")]
1818        ProxyAuthenticationRequired,
1819        #[serde(rename = "requestTimeout")]
1820        RequestTimeout,
1821        #[serde(rename = "conflict")]
1822        Conflict,
1823        #[serde(rename = "gone")]
1824        Gone,
1825        #[serde(rename = "lengthRequired")]
1826        LengthRequired,
1827        #[serde(rename = "preconditionFailed")]
1828        PreconditionFailed,
1829        #[serde(rename = "requestEntityTooLarge")]
1830        RequestEntityTooLarge,
1831        #[serde(rename = "requestUriTooLong")]
1832        RequestUriTooLong,
1833        #[serde(rename = "unsupportedMediaType")]
1834        UnsupportedMediaType,
1835        #[serde(rename = "requestedRangeNotSatisfiable")]
1836        RequestedRangeNotSatisfiable,
1837        #[serde(rename = "expectationFailed")]
1838        ExpectationFailed,
1839        #[serde(rename = "upgradeRequired")]
1840        UpgradeRequired,
1841        #[serde(rename = "internalServerError")]
1842        InternalServerError,
1843        #[serde(rename = "notImplemented")]
1844        NotImplemented,
1845        #[serde(rename = "badGateway")]
1846        BadGateway,
1847        #[serde(rename = "serviceUnavailable")]
1848        ServiceUnavailable,
1849        #[serde(rename = "gatewayTimeout")]
1850        GatewayTimeout,
1851        #[serde(rename = "httpVersionNotSupported")]
1852        HttpVersionNotSupported,
1853    }
1854}
1855#[doc = "Represents type of the service endpoint."]
1856#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1857pub struct ServiceEndpointType {
1858    #[doc = "Authentication scheme of service endpoint type."]
1859    #[serde(
1860        rename = "authenticationSchemes",
1861        default,
1862        deserialize_with = "crate::serde::deserialize_null_as_default",
1863        skip_serializing_if = "Vec::is_empty"
1864    )]
1865    pub authentication_schemes: Vec<ServiceEndpointAuthenticationScheme>,
1866    #[doc = "Data sources of service endpoint type."]
1867    #[serde(
1868        rename = "dataSources",
1869        default,
1870        deserialize_with = "crate::serde::deserialize_null_as_default",
1871        skip_serializing_if = "Vec::is_empty"
1872    )]
1873    pub data_sources: Vec<DataSource>,
1874    #[doc = "Dependency data of service endpoint type."]
1875    #[serde(
1876        rename = "dependencyData",
1877        default,
1878        deserialize_with = "crate::serde::deserialize_null_as_default",
1879        skip_serializing_if = "Vec::is_empty"
1880    )]
1881    pub dependency_data: Vec<DependencyData>,
1882    #[doc = "Gets or sets the description of service endpoint type."]
1883    #[serde(default, skip_serializing_if = "Option::is_none")]
1884    pub description: Option<String>,
1885    #[doc = "Gets or sets the display name of service endpoint type."]
1886    #[serde(
1887        rename = "displayName",
1888        default,
1889        skip_serializing_if = "Option::is_none"
1890    )]
1891    pub display_name: Option<String>,
1892    #[doc = "Represents url of the service endpoint."]
1893    #[serde(
1894        rename = "endpointUrl",
1895        default,
1896        skip_serializing_if = "Option::is_none"
1897    )]
1898    pub endpoint_url: Option<EndpointUrl>,
1899    #[doc = "Specifies the public url of the help documentation."]
1900    #[serde(rename = "helpLink", default, skip_serializing_if = "Option::is_none")]
1901    pub help_link: Option<HelpLink>,
1902    #[doc = "Gets or sets the help text shown at the endpoint create dialog."]
1903    #[serde(
1904        rename = "helpMarkDown",
1905        default,
1906        skip_serializing_if = "Option::is_none"
1907    )]
1908    pub help_mark_down: Option<String>,
1909    #[doc = "Gets or sets the icon url of service endpoint type."]
1910    #[serde(rename = "iconUrl", default, skip_serializing_if = "Option::is_none")]
1911    pub icon_url: Option<String>,
1912    #[doc = "Input descriptor of service endpoint type."]
1913    #[serde(
1914        rename = "inputDescriptors",
1915        default,
1916        deserialize_with = "crate::serde::deserialize_null_as_default",
1917        skip_serializing_if = "Vec::is_empty"
1918    )]
1919    pub input_descriptors: Vec<InputDescriptor>,
1920    #[doc = "Gets or sets the name of service endpoint type."]
1921    #[serde(default, skip_serializing_if = "Option::is_none")]
1922    pub name: Option<String>,
1923    #[doc = "Trusted hosts of a service endpoint type."]
1924    #[serde(
1925        rename = "trustedHosts",
1926        default,
1927        deserialize_with = "crate::serde::deserialize_null_as_default",
1928        skip_serializing_if = "Vec::is_empty"
1929    )]
1930    pub trusted_hosts: Vec<String>,
1931    #[doc = "Gets or sets the ui contribution id of service endpoint type."]
1932    #[serde(
1933        rename = "uiContributionId",
1934        default,
1935        skip_serializing_if = "Option::is_none"
1936    )]
1937    pub ui_contribution_id: Option<String>,
1938}
1939impl ServiceEndpointType {
1940    pub fn new() -> Self {
1941        Self::default()
1942    }
1943}
1944#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1945pub struct ServiceEndpointTypeList {
1946    #[serde(default, skip_serializing_if = "Option::is_none")]
1947    pub count: Option<i32>,
1948    #[serde(
1949        default,
1950        deserialize_with = "crate::serde::deserialize_null_as_default",
1951        skip_serializing_if = "Vec::is_empty"
1952    )]
1953    pub value: Vec<ServiceEndpointType>,
1954}
1955impl ServiceEndpointTypeList {
1956    pub fn new() -> Self {
1957        Self::default()
1958    }
1959}
1960#[doc = "This class is used to serialize collections as a single JSON object on the wire."]
1961#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1962pub struct VssJsonCollectionWrapper {
1963    #[serde(flatten)]
1964    pub vss_json_collection_wrapper_base: VssJsonCollectionWrapperBase,
1965    #[doc = "The serialized item."]
1966    #[serde(default, skip_serializing_if = "Option::is_none")]
1967    pub value: Option<String>,
1968}
1969impl VssJsonCollectionWrapper {
1970    pub fn new() -> Self {
1971        Self::default()
1972    }
1973}
1974#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1975pub struct VssJsonCollectionWrapperBase {
1976    #[doc = "The number of serialized items."]
1977    #[serde(default, skip_serializing_if = "Option::is_none")]
1978    pub count: Option<i32>,
1979}
1980impl VssJsonCollectionWrapperBase {
1981    pub fn new() -> Self {
1982        Self::default()
1983    }
1984}